Saturday, January 30, 2010

Heatsinking the A4983 Mark 2


Top View


Here's four A4983s under a 40mm chipset cooler. Since my first experiment with heatsinking worked so well, and at the same time showed where things could be done better, I cogitated for a while and came up with the above. As you may notice, they're not nearly finished yet- only two have sprouted enough wires to control, and they're only temporary until I obtain some more headers and some more screw terminals.

The current adjustment pots are sticking out the sides, and I cut channels in the heatsink base so as to not foul the onboard Vmotor capacitors. If ever I remove the heatsink I'll grab a photo, but if you imagine a keyway in the face of the heatsink you already know what it looks like. There's also a 7805 and a large capacitor, and a liberal sprinkling of 100nF decoupling capacitors. You can never have too much decoupling when high frequency, high current PWM and logic signals are in the same vicinity. The motor wires are twisted even over these short runs for exactly the same reason.

Although I haven't measured the new maximum currents I don't think I need forced air, but I prefer having it set up to remove rather than trying to shoehorn it in later.

I think that this may become my reprap motherboard- what more do I need? A temperature sensor interface (max6675 and thermocouple waiting to be hooked up and tested), a mosfet (I have some of the amazing IRL3803s on the way) for the heater and some end-stops (already arrived, ironically lacking 390R). Should be plenty of room for all that plus my arduino on the unused board space, and I can run the lot off the 7805.

Wednesday, January 20, 2010

Project: FiveD on Arduino

I've been looking at the firmware lately, specifically the FiveD firmware for Sanguino and the claims that the Arduino is simply too small.

I disagree.

Official FiveD has a liberal sprinkling of floating point math, some even in interrupt context! The floating point library for Atmega takes up over 2k. The FiveD firmware is written in C++, which is lovely on desktop systems but adds lots of costly and unnecessary overhead in the context of microcontrollers.

So, I'm rewriting the firmware in C with 100% integer math. My target is to keep it under 14k so I can keep the bootloader, but I'll settle for 16k if necessary. So far, I've replicated about 95% of the functionality and have used less than 9k of the 16k available on my Arduino.

Currently it compiles but is mostly untested. At this stage, expect serious bugs and frequent radical changes. I will make a release when I have successfully printed my first mendel part with it.

If you want to see where I'm up to, FiveD on Arduino at github.

Comments? Suggestions? Bug Fixes? FiveD on Arduino Forum Thread

Thursday, January 14, 2010

X Carriage

X Carriage

Channel View

Race End View

Here's my X Carriage. I'm really not sure why the top is pine and the bottom is hardwood- perhaps because I prefer doing weird angles and things in hardwood. You may notice that the belt clamp section is missing a piece, this is because I didn't have any pieces of wood tall enough. I'll just screw/glue a section on if necessary, however I may not need to since I'm using ball chain. You may also note the print-outs glued on the ends, which guided me beautifully.

Trapped Nuts

The trapped nuts were fun to do, about 20 mins each with my dremel's small round engraving bit. I then glue the nuts in with PVA to stop them escaping, without making them impossible to remove.

Bottom Cut-Outs

I also added some cut-outs to the bottom so the angled bearing screws would sit nicely.

Friday, January 8, 2010

Heatsinking the A4983

A4983 Heatsinked

Side Shot


Some spent hacksaw blade sacrificed itself for this adventure, providing a lovely balance of springiness, machinability and rigidity. The heatsink itself is part of an original pentium heatsink, cut to size. With this in place, I can squeeze 1.5A from my drivers, 3x what I had available before. Some forced air would probably increase that again.

Invisible in these shots is the paper shim I made to prevent components shorting against the heatsink's bare aluminium base. I simply cut some paper the same width as a saw blade, then placed it in about the right spot and rubbed with a pencil to give a lovely outline of the chip. A few deft swipes with the box-cutter later and I have a neat shim. I may remake them from plastic if necessary, but this is fine for now. Electrical tape would probably work beautifully too.

Extruder Block

With Motor

Here's the extruder block from yesterday with a motor installed. I've been extruding satay sticks and things to test, and it seems to work nicely. Vexingly, the friction in the holes in the wood seems to be enough to jam the sticks enough that the motor just rips strips off the outside. Not sure what I'll do about this, maybe widen the hole and stick in a plastic barrel or something.

Thursday, January 7, 2010

Extruder Block

Extruder Block Front




Here's my extruder block. The addition of a usable bandsaw has helped immensely, and the pedestal drill is significantly tighter, although still can't drill a straight hole. As you can see, this piece is a fair bit neater than my others. I have tried it with my splined motor (no pics yet though), and it works fairly well on some copper cored wire. I haven't made the large cut-out for the thermal break yet as I haven't actually decided whether or not I'm going to make my melt barrel that way.

Originally, the bearing was too far over by about half a mm, so I enlarged the hole a little bit and put in a matchstick to hold it in the proper place.

I have read the A4983 datasheet with an eye to current capacity, and I will have to heatsink them. The current pot and Vbb capacitor on the pololu breakout boards are taller than the chip, so that will make it a fun exercise. I think I will leave the pot sticking out the side, and either put a copper strap over the chips or cut a recess for the Vbb capacitor. A 40mm chipset heatsink has made itself available for this project.