Thursday, January 22, 2009
Introductions and Thermal measurements
I decided that I'd put together a RepStrap in my own unique way: I want to use largely reprap components, but I want to tie it all together with some electronics that I already have around, most notably, I intend to use an embedded 486 processor card running Linux as my RepRap controller, with an attached FPGA expansion card to do all my I/O. I already have both of these cards and no other practical use for them, so it just makes sense to me.
To that end, I started looking over the RepRap electronics, and immediately noticed one improvement that would be necessary if we are to continue with swappable toolheads: Toolhead controllers. There is quite a nexus of control and measurement right on the toolhead. It doesn't make sense to me to be mixing analog, PWM, quadrature, etc., all on a thick cable and sending them back to a controller. It makes far more sense to put a secondary controller right on the toolhead and then ship the information back using RS-485.
So in an effort to revamp the toolhead electronics, I've been going step by step through the parts of the toolhead, trying to do things better, faster, cheaper. I'll take a moment here to say that I don't think the work that has been done on RepRap is bad. I think it's excellent. I think that a move away from the token-ring style network of controllers was absolutely necessary, and the gen2 electronics are great. But I think it is important to move back towards a modular approach for the toolhead since the toolhead is going to become modular.
My first point is the thermal sensing system. Thermocouples are the route we need to go for higher temperatures, I think most people agree on that. However, I disagree with the implementation of the thermocouple reader. It's expensive, and noise prone (think long analog line near PWM signals, here). I have an alternative which I've discussed in the forums, and here it is! The MAX6675 thermocouple reader board.
The parts cost is minimal, (Digikey part numbers shown for ease of use, single unit prices shown on all but the MAX6675, which is priced from Maxim's online store) $0.86 for connectors (A98333-ND + 708-1028-ND), $7.18 ($3.88 @ 1000 units) for the MAX6675, and $0.54 for the filter capacitor (399-3526-ND)
I've tested this board on an ATmega162, and the temperature readings are accurate. The interface is quite simple, just a left-justified two-byte SPI frame, with a 12-bit temperature code, in 0.25C increments, and a flag for detecting open thermocouples
In one shot, the temperature sensing will be cheaper, smaller and more reliable.
By popular demand, here is the schematic!
VCC, GND, SCK, CS, MISO are all wired to the closest pin of the SIP, and T+, T- are wired to the closest pin of the terminal block. T- is strapped to GND, and there's a 0.1uF capacitor between VCC and GND. Check the datasheet of the MAX6675 for pinout details.
Provided you can make that work, it should work well. Don't forget that there needs to be a decoupling cap in close proximity to the MAX6675
I think it's best to draw a schematic for this anyways. There are a lot of people here who are not big into electronics that are very visual. I for one did not understand your explaination of how to wire this chip. So if it's not too much to ask could someone still generate a schematic?
In short, this will likely work better with toolhead controllers, where there will be a power/data cable connected between the primary reprap controller and the toolhead controller--which is where I'm trying to push development anyway.
I'll have some posts about toolhead controllers in the nearish future.
Links to this post: