Creality CR-10 updates…

So, I got a new 3D printer about ten days ago, a Creality CR-10. While this printer requires a bit of assembly, it is in general a much nicer printer. It has a 300x300mm heated bed, a control box which is actually in a case that won’t electrocute you, and is constructed from aluminum channel which makes for a much stiffer platform.

This is not to say that it has been entirely easy to get going. When I initially assembled it, I had some difficulty getting the alignment just right. Unlike the Anet A8, the Creality CR-10 has a single stepper driving the Z axis up, powered by a single leadscrew mounted vertically. While I am not exactly a mechanical engineer, I do not think this is actually a very good scheme, and indeed, the upgraded version of the CR-10, the CR-10S has dual leadscrews. But in any case, when I initially powered up, it was clear that the X axis wasn’t level, and getting it to be level is a bit of a hit and miss process. Eventually, I loosened the right side of the carriage and evened the tension, and got it to travel approximately level. After that, I leveled the bed, and was off to the races.

I initially had some difficulty getting PLA parts to stick to the glass bed (I’d never used a glass bed before). Eventually, I just covered it with blue painters tape, lowered the first layer print speed. and we were off to the races.

I spent most of Saturday night and Sunday printing the parts for a small quadcopter. The CR-10 uses a Bowden extruder, which means that I had to tune the retract settings, but overall they came out very well. I’ll do a separate writeup when I get them assembled.

I then decided to try something more challenging, and use some PETG filament. PETG requires higher temperatures, but is supposed to be even sturdier. I printed a calibration cube which turned out very nicely, and then did a quick “Benchy”.

The print quality overall is pretty good. The cube was especially nice. The Benchy shows some rounding of the corners, a few little surface blemishes and stringing. I’ll have to work on improving the quality with some tuning, but given that I’ve really only had two days of experience with the printer, and less than an hour of experience printing PETG, I’m pretty happy.

Stay tuned.

Weekend Update…

This is just a short set of updates for my weekend projects, meant to keep me in the habit. I’ll write up a more complete version of these projects going forward.

First of all, a new acquisition. My Anet A8 3D printer has proven to be, well, not the most reliable of gadgets. I still haven’t gotten around to fixing its heated bed, but should get to it shortly. But as it happens, a small windfall came my way, so I decided to get a Creality CR-10 which I caught on a good price for less than $400. Unlike the laser-cut, hours-to-assemble Anet A8, the Creality is mostly assembled. It has a 300mmx300mm bed, a much taller range of travel, and is constructed by aluminum extrusions that make for a nice, stiff, and easy to assemble printer. I mostly assembled it in a little less than an hour, but ran out of steam and decided to go to a movie with Carmen and then watch the Superbowl. I’m hoping to print a Benchy when I get home tonight: the only thing I have left to do is get the bed leveled.

I also spent some more time on the ISS clock. I added a new display mode that shows details of upcoming passes, including a diagram of the pass, showing its path across the sky and its maximum elevation. I also updated the epoch that the Plan 13 code was using so that it would be more accurate, and now it compares to within about a degree or so with what other, more sophisticated models have. There are still a couple of lingering glitches. Occasionally it looks for the next pass before the current pass is complete. I suspect that is because I used a number of global variables to communicate between processes, and something in the logic isn’t quite right. But as they say, any program worth writing is worth rewriting. I’ll try to get a version of the code up on github tonight, even though it’s kind of embarrassing.

Stay tuned for CR-10 print experiences and more on the ISS clock.

Connector resistance matters: the Anet A8 PCB heated bed…

My previous entry talked about the problems that I’ve been having with the Anet A8. I haven’t had the time to actually do some rework of the connector (I should get to that later today) but while I was commuting I thought about it a bit, and was trying to answer the following questions.

  • How much resistance would this bad connection need to add to affect the bed heating?
  • How much power was being dissipated by the PCB and at the location of the bad joint?
  • Was there a significant danger of a serious meltdown?

The way I approached this was to first get some data about the heated bed. Nominally, the bed is rated for 12V at 1.2 ohms resistance. Using Ohm’s law, we know that the current is voltage divided by resistance, so the total current draw should be 10 amps, and the power is current times voltage, so the power should be 120 watts.

If you look at the bed, you’ll see it consists entirely of a very long, thin, wide PCB track which winds around the 220x220mm surface. It dissipates the power as heat, and since the resistance of the track is (very nearly) uniform, you would expect the total power to be dissipated across the entire length of the track, providing relatively uniform and modest heating.

We can model this system as a simple voltage source as 12v DC, with a series load resistance of 1.2 ohms.

If we have a bad resistive connection to the heated bed, we have some additional resistance in series with our load resistance. The total current through the bed drops because the resistance is now the sum of the connector and load resistance, which means that the total power drops. (We will imagine that the supply will continue to provide 12v regulated for this experiment.) The total power is divided between the power dissipated by the bad connector and the heated bed. A little work with Ohm’s law and voltage dividers, and you can figure out how that power splits depending on the connector resistance. I could go through the math, but it’s basic intro DC stuff. I wrote a little scrap of Python and made a graph as I varied the connector resistance
through some low values.

You can see that at even pretty small resistances, the power to the heated bed starts to drop significantly. More than that though, the power dissipated by the connector grows pretty quickly. It actually reaches its peak when its resistance matches that of the bed, where the green and blue lines cross, indicating that the power dissipated by the bed and pcb are equal, and dissipate 30 watts each.

But from a practical standpoint it is important to remember that while the 30w of the bed is spread along its entire (and substantial length) the 30w dissipated by the connector is quite small, and thus there is likely to be significant (or even catastrophic) heating at the connector. It is also important to note that as the connector resistance grows beyond this point, the power curve drops slowly, so it might continue to heat significantly over a much larger range of resistance values.

So, my math indicates that I should really be concerned about connector resistance. I think this means that I am going to avoid using a connector entirely, and solder 12 AWG wire directly to the power terminals, and carefully measure the total resistance before and after. I will also provide some additional strain relief so that as the wire flexes, it doesn’t work the joint loose.

That’s the theory. Stay tuned for the rework.

Debugging my Anet A8 hot bed…

As in most things, whether you achieve success has a lot to do with what connections you have. And this is true of my somewhat unreliable Anet A8 3D printer more than most.

My printer had been down for a month while I worked on getting a new hot end installed properly. It wasn’t so much that it was difficult, but that it simply took time to get the new parts, find an appropriate crimping tool for the thermistor, and install the new head. Mind you, reassembling the MK8 seems to be more difficult than you would think, but I am getting better at it.

I have been thinking of doing a hot end replacement to a new Bowden extruder, so I thought that while the iron was hot (so to speak) I would print the necessary brackets so I would have them on hand when I felt like that kind of tinkering. I got the stepper motor bracket printed, and was printing the necessary bracket to mount on the X-axis when I had the print fail because of a THERMAL RUNAWAY error message. A bit of debugging revealed that there was a problem not with the hot end, but with the heated bed. In particular, it seemed like it was unable to come to temperature. The controller basically jammed the current on full blast, but it seemed to stabilize at around 38 degrees Celsius instead of the desired 50 degrees.

That was where I left it a week ago.

Finally today I decided to disassemble the hot bed and see what the issue is. My suspicion was that as with the hot end, a thermistor had failed (or perhaps just become dislodged) and was no longer reading properly. I thought I’d remove the hot bed so I could examine the underside so I could see if there was any obvious problem. To remove the hot bed, you pull the four leveling bolts at the four corners, and disconnect the connector.

Looking on the underside, you can see the connector has six pins. There are two positive, two negative and two pins which go to the thermistor. You can order replacements fairly easily, for $13-$20.

But back to my broken hot bed.

Like 99% of all problems, it was pretty obvious once I looked. Here is a picture of this connector:

It may not be obvious in this picture, but the left most pin (wired to positive) is pretty oxidized and gray. Looking at the corresponding socket on the plug, it also appears oxidized and gray.

Normally, the resistance of the hot bed is supposed to be around 1.2 ohms. At 12V, that means that the bed should draw 10 amps and therefore about 120w. But if the connector adds just one more ohm of resistance, it basically halves the available power, and the bed may not heat very effectively. That’s what I’m thinking of doing.

Apparently these connectors do fail fairly often because they aren’t really rated for as much current as is passing through them, and they also aren’t really designed for a connection which flexes. I think what I’m going to do is remove the connector entirely and solder the wires directly to the pins. I’ll probably have to wait until this weekend.

3DPrint Wiki on replacing the Hot Bed connector

I might also take the time to do the MOSFET upgrade that people recommend for additional safety.

Fun, but Frustrating: the Anet A8 3D Printer

3D printing is a big topic, and I’ve done a lot of work with this printer. There is no way for a short blog post to completely describe my experience. Consider this post the slimmest introduction about 3D printing, and a request for questions that can help others who are interested in the topic. My goal is to merely document a small part of what I’ve done for now. Expect more in the future.

For quite some time, I’ve been interested in 3D printing. At work, I had intermittent access to a Makerbot Replicator 2, but that was inconvenient and my access was shared with others, which made it even less so. I wanted a 3D printer of my own, but it was hard to justify the expense. My imagined use case was to print custom cases for various electronic projects and the like. I had used OpenSCAD to design bumper cases for the Arduino and the like, and felt that it would enable me to make more permanent versions of some projects. On the other hand, since the uses I had in mind had no real commercial or even practical value, justifying the several thousand dollar expense of a 3D printer seemed impossible.

Then, around last October, I discovered the Anet A8 kit, which was being offered for import by a number of outlets, including which is an importer that I’ve used quite a bit for getting development boards like Arduino and ESP8266/ESP32 clones.

The Anet A8 being offered from banggood

What is amazing about this 3D printer is that it is being offered as a kit at an astonishingly low price. I paid $165 for mine, shipped via DHL. I’ve seen prices hover up and down a bit, and seen kits go for as little as $140. That price point was low enough, and I read enough about people’s experience that I thought I would take a risk, and pulled the trigger.

It arrived packaged neatly in a moderately sized box. I set aside a weekend for assembly, watched a bunch of videos and set to work.

First of all, here are some of the basic features of the 3D printer.

  • It is based upon the proven open source design of the Prusa I3.
  • The frame is constructed mostly of parts which are laser cut from acrylic plastic.
  • It has a print volume of about 220x220x180 mm, which is actually pretty good.
  • It has a heated bed, and can thus print either PLA or ABS plastic.
  • It uses a custom controller board that speaks G-code, and can interface via USB as well as read gcode files directly from a microSD card.
  • It has been pretty popular, so there are lots of reviews, tips and tricks on YouTube and on the web. Replacement parts are fairly easy and inexpensive to get online.

It took me about two days and maybe a total of ten hours to assembly. The instructions are available as a PDF file on an included microSD card, and were generally pretty good, but there were several places where I was confused, and had to consult other resources or just sit and ponder to reveal how to continue. I made a couple of mistakes that I only discovered late: a mistake in assembling the X-axis meant that it operated in reverse when I first powered it on, which was confusing until I thought very carefully about what certain diagrams meant. But in the end, I encountered no real serious problems. After 10 hours, I had a pile of parts that I thought were assembled properly.

And here is where the instructions actually get a little weak. Making your first print is actually not that well described. In particular, making sure that your printer bed is level is not all that well described, and that is an essential step in getting good quality prints. The included software on the microSD card was also for Windows, and I had (and desired) no Windows box to run it on, so I knew that I would need some additional software, and that meant developing a working configuration file for the printer.

It took me about another day of on and off pondering until I thought that I had tweaked my printer enough so that I would give it a try. I took some green “glow in the dark” PLA that I had used on the Makerbot, and tried to print one of the pre processed g-code files for a Chinese chess piece from the microSD card:

Not bad. In fact, not bad at all! I still didn’t have the bed leveling quite right. The first layer of this print was a bit uneven and high. I tweaked it, and decided to try to actually try something more challenging. The obvious to try was a Benchy which is a little toy boat which is often used as a quality benchmark. It has overhangs, smooth curves, small details, and generally is a pretty good workout for a 3D printer.

To do this, I needed to convert the STL file into a compatible G-code file. The program that came on the microSD card with the printer was an old version of Cura, and that wasn’t really going to work for me and my Linux laptop. I ended up using the open-source program slic3r, which was just an “apt-get install slic3r” command away from being installed on my Linux laptop. I used the settings for a Prusa i3, and only adjusted the bed size to match the slightly larger size of the Anet A8. I set a layer height of .2mm, the bed heat to 50 degrees C, and the filament temperature to 200 degrees C. I did not have it generate any support structures. I then clicked the “generate g code” button, saved it out, and then copied it to the microSD card, and then hoped for the best.

Here is the result:

Not bad. Not bad at all! In fact, pretty freakin’ amazing! I was ecstatic that I was getting pretty respectable results after only about three days of tinkering.

Since then, I’ve printed some more cool stuff. The most complicated thing that I’ve done to date is this dinosaur skull that I downloaded from thingiverse:

This was about 12 hours of continuous printing, using some white Solutech PLA that I bought from Fry’s Electronics. It sits on my desk at work. It’s pretty neat.

Okay, so what’s the downside?

I was happy (and mostly remain happy) but there are a few things that have been rather problematic.

First of all, in terms of general reliability, the printer has been pretty abysmal. I had a thermistor fail in the filament heater block after a few weeks of working, and it took me a white to order replacements and get them installed. Then, after just a couple of days of use, I had a thermistor sensor fail in the heated bed. I haven’t had the chance to debug this yet, but suspect that it may be something fairly simple (like the thermistor just not making contact with the heated bed and giving unreliable readings, but I have to set aside some time to dissemble the heated bed and then relevel it, so I haven’t gotten around to it yet. And this is perhaps the most annoying thing. The printer is made from parts which are sourced from the cheapest vendor imaginable, so you might imagine that you are going to have some part failures. But the overall design of the printer is such that doing some of these replacements is inconvenient or unnecessarily complicated.

For instance, the MK8 extruder is held in place by a metal bracket that slides along the X axis. It is held by a screw which is mounted somewhat inaccessibly underneath the print head (which makes it difficult to reach or even see) and a nut which is screwed onto the heat tube and clamps the stepper motor assembly. It seems like the MK8 is just designed for maximum annoyance when assembling and disassembling. I’ve had to take it apart and reassemble it multiple times, and it seems like every time I do I am looking for at least an hour of my time. It’s impossible to make any adjustment to the head without also being forced to completely re-level the bed and generally just spend a fair amount of time tweaking stuff.

The good news is that if you’ve assembled the printer, you probably have a good idea of what all the parts are and where they should go. And the parts are inexpensive. But if your goal is to have a reliable printer that you can keep running 24/7, then the Anet A8 will not be the printer for you, at least not without significant upgrades that blunt its initial low cost.

And you will be spending more money than the initial inexpensive cost will reveal. I’ve bought a bunch of heater block/thermistor replacements. I had to buy a crimping tool and a bunch of the JST connectors you use for the thermistors because none of them can be bought “pre-crimped.” The connectors are annoyingly small and difficult to crimp, and it takes me two or three tries to get them to work. I bought some additional Kapton tape. Some spiral cable guides. A set of small metric wrenches. Some additiout sonal metric hardware in stainless steel to replace cheap adjustment screws. Some white lithium grease. A roll of good quality blue masking tape to cover the bed. I suspect I’ve added easily another $100 to the cost.

A note about safety

I should also add that the design itself is not well engineered from a safety standpoint.

First of all, the entire printer is powered by a small 12V power supply which bolts to the side of the printer. To wire it up, you need to wire in a 120 volt plug (I’m in the U.S.). There is no provision for a switch or any strain relief on this cord. I got my cord from Orchard Supply and Hardware, and crimped on some spade connectors, which I then bolt in. This is what it looks like:

I do not consider this adequately safe. If someone trips over the cord, all sorts of bad things could happen, including a dead short across the freshly exposed connectors. If you intend to use this printer around children, then this part of the printer should be seriously upgraded to include a properly grounded case, fuses, and proper strain relief. As it is, I leave the printer unplugged when it is not in use, and unplug it, and carefully coil the power cable up. An upgrade to this part of the printer is clearly in my future.

The other major safety issue is that the Anet A8 board is not engineered with appropriate connectors to handle the power necessary to drive the hot end heater block and the bed heater simultaneously. While I have had no real difficulties, there are no shortage of stories on the internet about people with melted connectors like this one:

This is because the power connectors on this board are not actually properly rated for the amount of current that might be drawn through the mainboard. There are a number of ways that you can fix this shortcoming. The basic idea is to use the outputs from this board not to directly drive the bed heaters, but instead drive separate, better engineered daughter boards which use a good MOSFET and better connectors to drive the heaters. This reduces the current draw from the main board, enabling those connectors to remain cool, and shifts the power draw to the MOSFET boards which include better connectors and heatsinks. I have not yet installed those on my printers, and thus am careful not to operate the printer unattended. On long prints, I also monitor the temperature of those connectors using a non-contact infrared thermometer (yes, also bought for this product, add that to the total) and always am careful to keep a fire extinguisher handy.

In short, this is not a beginner project. If you don’t know what you are doing (or if you value your time) get a more turnkey system.

Future posts

3D printing is a big topic. I’ve also experimented with using Octopi, which is a Linux distribution for the Raspberry Pi that you can use to make printing to your Anet A8 (or any other printer) wireless (no more schlepping microSD cards around). I’ve also goofed around with PrintRun so that I can print directly from laptop. Or I could elaborate on any of the topics that I briefly introduced above. Do you have any questions, comments or suggestions? Feel free to leave them below, or leave me a note via @brainwagon on Twitter.

Some new addition to the brainwagon labs…

Okay, I bet that hardly anyone comes to this blog anymore.  I’ve been slack, and there hasn’t been any reason other than the simple fact that I haven’t felt motivated to invest the time and energy to talk about any of my projects.  But that doesn’t mean that I have completely halted all attempts at doing cool (or at least “cool to me”) projects.  Over the last few months, I have:

  • started teaching myself how to use Kicad
  • ordered all sorts of crazy electronics modules from China
  • upgraded my soldering iron to a Hakko 888 and got a hot air rework station from Sparkfun
  • ordered my first boards from OSHpark
  • and in the last week, assembled a 3D printer from a $150 kit

Just as a tease, here’s my second print off my completely unoptimized 3D printer.   Not at all bad!

If any of these projects sound interesting and you’d like to hear more, why not send me a tweet (@twitter) and let me know what topics you are interested in.  I could use a little poking and prodding to increase my enthusiasm.  I still might get around to it without your questions and polite prodding, but every little bit helps.

3D Printed Motor mounts for Mark H.’s 1 Hour Quadcopter

A few days ago I pointed at Mark Harrison’s Instructable on a 1 Hour Quadcopter. I thought it was cool, not so much because it could be built by him in an hour, but because it showed that quadcopters are actually not all that complex, and you might expect to be able to build one yourself. As I was mulling this over, I thought it might be nice to design and 3D print some motor mounts, just as I did for the Axon. So, I spent about 20 minutes tinkering an OpenSCAD version together, and came up with this:


And it took about 24 minutes and 4 meters of PLA filament to print:


The blackish bits on the top are an artifact of the previous user printing something using black filament, which took a while to clear out. The weight of this bracket should be about 12 grams, but I printed this test with 100% infill, and I think other model changes could result in a significant reduction in overall weight (I think all 4 brackets could easily be less than 25 grams, and probably be less than 18 grams). As soon as I test this against the real motors, I’ll be putting the revised model files up for download on Thingiverse. Stay tuned!

Chris Fenton’s Amazing Electro/Mechanical computers

I remember reading about Chris Fenton’s homebrew Cray, which was impressive enough. It was implemented on a Xilinx Spartan-3E FPGA board, and eventually he got a Cray assembler written. It also is neat, because it looks like a tiny Cray:


But I wasn’t too interested in actually building one. But the gods of Internet surfing sent me back to his website today and I found two new projects of exceeding awesomeness:

The FIBIAC – an electromechanical computer

And the even more amazing, purely mechanical Turbo Encabulator:

As my only “value added” link, Chris makes reference to a book entitled “The Mechanism of Weaving”, which detailed the function of the Jacquard looms that were the predecessors of punch cards and early mechanical computers. His edition was published in 1895, but it turns out you can get an online copy from the Internet Archive. Very neat.

On Theo Jansen’s walking mechanism…

If you haven’t heard of Theo Jansen and his incredible walking machines, I can’t do them justice with words. Check this out:

His work is accessible from I find his creations amazingly cool.

And others do as well, even hamsters (although cats seem less impressed):

But while I’ve found these things fascinating, I didn’t spend a lot of time researching the exact mechanism, nor thought about fabricating my own. And now I don’t need to!

Check out this awesome link to get code to design variants, visualize them, and even OpenSCAD source code go generate actual 3d printed models. That’s just too cool.

My First Thingiverse Item: A motor mount for the Axon…

Last year, Mark H (who blogs at Eastbay RC got me into the world of building RC airplanes. While my early attempts were limited in their overall successfulness (I demonstrated that I was awfully good at snapping props) I have been keeping up in my interest, and slowly acquiring more tools and hardware. Recently, I’ve had the opportunity to serve as a mentor to some local students and one of them expressed a desire to build his own RC airplane. I had recently been inspired by the great videos by Ed Orsine of the Experimental Airlines Youtube channel, so we decided that constructing an Axon, one of his designs would be a cool design to try:

A lot of it can be constructed with just Dollar tree foam and packing tape. But i recently got access to a 3D printer, and I thought it might be cool to fabricate some parts using that. A good candidate was the motor mount: we wanted the motor to be firmly held, with the appropriate 5 degrees of down angle. I just recently started teaching myself how to design simple parts using OpenSCAD. It bills itself as the “Programmer’s Solid 3D Cad Modeller”, and I couldn’t agree more: it plays right into my skillset. I’ve made an printed a few objects, and for these kind of purely functional 3D objects, I found it to be easy and straightforward.

The basic idea is to make a little plastic bracket that can be mounted at the end of a piece of 5/8″ square wood which is held with mounting tape inside the main fuselage. It took me about twenty minutes to design, and it went through a couple of minor tweaks before it got to it’s final form. And here it is, mounted in my student’s plane:


Mark H. thought it might be of interest to others in the builder/RC community, so I placed it up on thingiverse. Feel free to download it and print it, and let me know of you find it of value.

Motor Mount for the Axon

If all goes as well, we’ll have our first maiden flight of our resulting aircraft, and video and pictures coming soon.

My Arduino bumper, with actual prints!

Okay, our Replicator 2 went back online this week, and I decided to give printing my Arduino bumper another try. Since the last time, I have revised the program and code a couple of times. I was concerned that the various bits of solder protruding from the bottom of the board would need extra relief cuts. As I tried to account for more and more of these, I decided I did not like the design especially well, so I took a different tactic: I decided to make the bumper’s walls as thin as possible, and only include an area around each of the Arduino bolt holes. This minimized the amount of material needed, and also means that it could be printed more quickly.

And so, I printed it out. I use the Makerbot software, set for the Replicator 2, once using medium quality (with a print time of about sixteen minutes) and once using the high quality (print time of nearly an hour). I used 25% infill for both, I wanted to make sure the outer and inner shells were sufficiently bonded. I then printed it!


I had a little spare time, so I also decided to print out a simple model I made in OpenSCAD: a cross section of the Clark Y airfoil, with 1/8″ thickness. It turned out rather well, fairly smooth, and with only a minor divot at the trailing edge. It was also reasonably sturdy, I don’t think I could crush it in compression with my hand, although it’s impact resistance is unknown. I also took the time to download a model of the chicken from Minecraft and print that. It comes in four parts, which we could then glue together. I had no real failures:


But there were a few issues.

First of all, my Arduino bumpers were a pretty tight fit.

I coded in a clearance of 0.008″ around the nominal board size, but that was simply not enough. I think I’ll expand that to 0.012″ or even 0.015″ next time around. I was able to press fit one of my OSEPP Arduino boards into it, but just barely, and only by shaving a small amount off one corner of the board with an Exacto knife. I also think I should thicken the bottom slightly: if you used this shield to bolt against a conductive surface, some of the solder joints on the bottom of the board could still short out. I am also thinking of widening the channels cut for the USB and DC jack a small amount, they fit, but just barely. An additional 0.02″ of an inch would make them more comfortable. I also noticed that one of the prints had a corner which seemed to pull up and not be level/coplanar with the rest of the print. Not sure what that was about. But overall it worked! I’ll make these changes to the design, and then try another set of prints, and then you should be able to see it on Thingiverse.

I also printed this model of the chicken from Minecraft. It comes in four parts (body, head, two feet) which you can assemble and paint. The model is quite simple, I printed it with medium quality settings and 10% infill. It worked rather well, except that the parts do not assemble easily: the head is slightly too wide to fit into the slot in the body and the feet do not fit into the holes left in the bottom. I think a little judicious belt sanding will make the head fit, and I’ll measure and redrill out the holes to make the legs fit. But in general, the issue of clearances seems to be one I need to explore more. Does anyone have any good references/hints/guides they would like to share?