Syndicate This Blog |
Tommelise 3.0 I2C board finally builtSaturday, June 6. 2009In which your narrator turns designs into hardware with remarkably little trouble... Some time ago, I built up an I2C stepper controller board which can control two steppers to run my IR ranging scanner. This project allowed me to test out the viability of using I2C comms with I2C slave chips and to run open loop steppers with them. The board was pretty clean and very effective.
Rather than build a whole new board for Tommelise 3.0 I'm modifying that one and parking the third stepper controller and the eeprom memory buffer on a second board connected to the first by an I2C twisted pair. Here you can see the result. ![]() The IR scanner board is on the right and the extender board connected to it by the I2C bus is on the left. You can see that there is considerable real estate in the middle of the board left free. I might be able to park the extruder controller there, but if not, I just create another extender board. I included the possibility of handling opto-endstops on the z-axis stepper controller. I need to add that in to the x and y-axis steppers on the old board. That is not a big thing to do.
The circuit diagrams shown in my previous blog entry, I2C-based Reprap control, are exactly what was used in the new board with one exception. The stepper controller circuit diagram that I posted had a small bug in it that I uncovered when I actually went to make the board. Here is the corrected circuit layout. The two pole connector that was on the right hand side of the board has been moved to the left (circled in red) above the 12 volt power feed and a mistaken pin assignment corrected. There is room there for endstops at both ends of an axis, though I've never used more than one and that for resetting the start point of the axis. The EEPROM buffer layout is a bit different in look from my earlier diagrams. This is a result of two factors. The first is that I'm using what is known as full-line Euro Card stripboard rather than milled, single sided printed circuit board. On a single sided pcb one tries very hard to minimize the number of jumpers. On stripboard, jumpers are the name of the game, which means that your board, though topologically identical looks very different. As well, I used twin, 18 pin sockets to house the EEPROMs rather than four, 8 pin sockets. I had the 18 pin sockets and didn't have any 8 pin sockets.
The next step will be to test out the card to make sure everything works and then to rewrite Tommelise 2.0's firmware for the new bus architecture. Using I2C should considerably simplify the firmware. As well, I will be able to do half and full stepping with the new cards instead of merely wave stepping. That has already shown me that I can get a LOT more power out of my z-axis linear stepper. Heretofore, the lack of thrust in the z-axis has been a continuing headache for me in terms of the reliability of positioning in the z-axis. It appears that that will be a thing of the past with the new controller cards if the tests are any indicator. I2C-based Reprap controlTuesday, May 26. 2009In which the control strategy for Tommelise 3.0 begins
to emerge ... with implications for mainstream Arduino controllers...
I joined the Reprap project in 2006. At that time we were using Microchip 16F628A MCUs and the old SDCC open source compiler. I was Windows bound at the time and could never manage to get the cranky SDCC compiler to work on my system. I wanted to work with the firmware and finally acquired a cheap Serbian BASIC IDE for 16F family chips made by Oshonsoft that I could work with easily. From there I quickly migrated to the much more capable 16F877A and, when I discovered that stack space in the 16F family of MCUs was very limited, made the jump to 18Fs instead. I began with the brilliant 18F4610 which I used to power Tommelise 1.0. I wanted to move over to USB comms from RS-232 and found the 18F4550 which had integral USB capability built-in when I began to build Tommelise 2.0 in 2008. By that time the mainstream of the Reprap project had moved over to the Arduino boards and the gcc C language compiler which they still use today. I was happy with what I had and stayed with Microchip processors. About that time Reprap ran into a data transfer bottleneck. You could either transmit compressed control commands from your PC and have the MCU decode and expand them or you could send over less compressed data and buffer it. There has been a problem in that if you send compressed commands the decoding and expansion of them takes significant time which can cause pauses in printing operations. Given that extruders have a rather large lag time, that is not a good situation. The other option is to create a data buffer. Most MCUs tend to be short of RAM memory. I took a rather heterodox approach to the problem. I decided that it would be nice if the PC could create pretty much completely decompressed data, viz, direct instructions to run steppers and extruders, and store them on a large buffer. The MCU would then only have to read the instructions off the buffer and execute them with no decoding to speak of. I soon discovered that EEPROMS could be turned to this task. The 1 MegaBit 24FC1025 proved to be very well-suited to the task. You could address eight of them via an I2C bus from your MCU for a full megabyte of data buffering. While writing to them took a while you could read from them very quickly. I was able to build a half megabyte buffer with the 24F1025 which has proved very robust as a data buffer. Depending on the kind of milling or printing it is put to it can store anywhere up to 90 minutes worth of data. The I2C bus proved to be a very useful way of organising things on a board. Before long I discovered the PCF8574 I2C slave chip. You could use one of these with virtually any chip made and reduce the connection to your MCU to a pair of traces. Instead of boards which were mare's nests of traces you could group a slave chip with a particular chip and then hang the slave on the I2C bus. A few months ago I demonstrated that the PCF 8574 could successfully control an SN754410 half-H stepper driver chip with no trouble whatsoever. That success led me to commit to using an I2C bus architecture for Tommelise 3.0. It's all very well to talk about such things, but quite another to actually see the possibilities. In order to let you see what is possible, I've undertaken to document the architecture of what I know already works. I've reduced the architecture to a series of modules connected to an I2C bus for simplicity. In reality it matters little whether you create a bunch of little module boards or park all of the circuitry on a single board. Modular boards are simple and flexible while big boards tend to be better if you have a firm idea of what your system needs. I'll begin showing you the system with a basic power conditioning circuit that dates back to the 16F628A days. I've never found cause to change it because it simply works. You take in 12v DC power from an ATX power unit that you can either buy or salvage from an old PC and put out +5v stabilised power for your Reprap. The circuit also has a nice big radial capacitor to smooth out any little wrinkles in your 12v power. I've overlaid a standard 0.1 inch grid on the circuit so that you can get an idea of scale. Looking at just the components, you see them identified.
Once you have power it is a simple matter to describe the MCU circuit. The Microchip 18F4550 is a 40 pin chip, rather big but not very expensive. Using the 4550 lets you dispense with silly RS-232 to USB chips and the whole mismatch between RS-232 as your PC understands it and RS-232 as your MCU understands it. You can see that there is just not a hell of a lot on this board. We also only use two port B pins (7 and 8) to drive the I2C bus. Nothing else is necessary. Looking at the components. As you can see, there isn't much required on this board. There is a 10K ohm resistor between +5v and pin 1 on the 18F4550 and there are three (3) 104 nF disk capacitors that are required for the 3.3 v input to the USB power supply if you're not actually putting power into that pin. The MCU uses a 20 MHz resonator for clock timing. Aside from a couple of 2 pole connectors and the single USB type B connector, that's about it. Here you can see the traces that connect everything. I plan on milling mine, but there is nothing to stop you from using stripboard or any of half a dozen other ways of connecting the components. The EEPROM board is even simpler. Those little green arcs are jumpers. I've designed the boards to be single sided, so jumpers are required from time to time. Not many, though. For components you've basically just got a few connectors, jumpers and the EEPROMs themselves. I've configured this board so that the EEPROMS fill 0-512 Kbytes. I could have made a single layout that you could use for both the bottom and top half of the megabyte that these EEPROMs will allow you, but that would have required four more jumpers which I felt would confuse matters for now. Moving on to the bipolar stepper controller board, you see that it is similarly rather trivial. The three green jumpers on this board set the address for the I2C bus. You are going to want to control more than one stepper presumably, I couldn't just set the address to a single set of values. Components are similarly skimpy.
That's basically it, except for a slave MCU circuit that uses an MCF8574 and another, smaller Microchip MCU chip to look after the extruder. There will be a little pushing and shoving, but don't expect much in the way of complexity. I already have a unipolar stepper controller board designed. I would have included it here, except that I haven't incorporated the extra diodes into it that Nophead says I need to make it really robust. Any of the I2C slave boards could be incorporated into the Arduino/Sanguino system without a hiccough. There is nothing sacred about the Microchip MCU that I'm using. You could replace my 18F4550 with an equivalent Atmel chip and program it with gcc. About the only obstacle you'd run into would be that Atmel only offers an MCU with integral USB circuitry in surface mount technology. The 4550 is through-the-hole DIP technology, which, imo, is easier for people with more than two thumbs to work with. :-) I'm committed to designing Reprap machines that can be pretty much built from the ground up by ordinary people. I think the current arrangement goes a long way toward making that possible. Continue reading "I2C-based Reprap control" A new controller board sooner than I'd thought...Sunday, May 17. 2009
I was annoyed with the limited power I was getting out of my Haydon
3600 series linear stepper that I am using on my z-axis. I'd planned
on shifting over the controller board for Tommelise 3.0 to I2C
controlled 754410's to drive them and I already had a prototype board
that I'd used to run the NEMA 17's on the 3D scanner that I blogged
about some time ago.
Because I'd used inverters on the T2 board I was limited to wave stepping. For T3 I wanted to see if I could get full stepping and half stepping going so that I could double the resolution on T3 for milling. Just for fun I hooked the x-axis up to one of the stepper controllers on that prototype board and to my shock I was not only able to run that tin can stepper on full stepping but I was also able to drive the z-axis up and down with plenty of power at 30 mm/sec. I am going to have to do some serious thinking about the implications of all this. Some notes on the way to an easy-to-make pinchwheel extruderFriday, May 15. 2009In which your narrator experiments with ways to make Nophead's GM-17/tin can stepper hack pinchwheel extruder without a lathe... After working for a while with the Nutjob extruder, I came to the conclusion that it was too big, complicated and didn't perform well enough. I backtracked and decided to use my knock-off of Nophead's GM-17/tin can stepper hack and do a pinchwheel. I had a problem, though, in that I didn't really have a lathe that I could use to make a gripper like Nophead did. Looking over his work I decided that I could make something like the knurled pinch wheel that he had also tried. I took an hour off Sunday and spent time at my local hardware store seeing if there was something I could use as stock to do such a knurled concept pinch wheel. Sure enough, Ace had some nice stainless steel bolts made for hex wrenches. I figured that I could use my little diamond cutting wheel to cut some knurling into the business end of one of these. Notice that I've gone for 3/8-16 bolts which go with the flanged, 3/8ths inch bearings that I have lying about from Tommelise 1.0 days. I'd have probably gone for an M8 bolt and skateboard bearings except they didn't have this kind of bolt in M8, this being the US, and the surf and skateboard shop where I can get M8 bearings is closed on Sunday. Pay attention! This is how critical design decisions are usually made, by me at least. :-) I bought two of these stainless steel bolts so that I could afford some mistakes. Being Scots-Irish and the bolts costing $2.80 a pop, I wasn't excited about making a lot of mistakes. It wasn't long before I ran into design reality when I discovered that cutting knurling into what turned out to be a very hard stainless steel bolt was more than I could deal with. Another reality I encountered was that for milling the thickest sheet stock I had was 3/8ths inch. Making a connector between the GM-17 gearbox and the bolt was going to require something a bit thicker than that. I either had to order thicker stock, which is expensive, or bolt two thicknesses together with a few #4 machine bolts. That was awkward and I had serious questions about how something like that would hold together with the torque loads that were going to be generated. I started fooling around with some scrap that I had to see if I could solve these sorts of problems. The first thing that seemed promising was when I simply cut paths parallel to the bolt axis in the threaded part of a piece of 3/8-16 threaded rod. Just for fun, I tried using the diamond wheel on the threads of the stainless steel bolt and discovered that I could actually cut those pretty quickly.
That cut held the filament as well as the threaded rod cut. It then occurred to me that if I took advantage of the hex pocket in the bolt I could easily make a 3/8ths inch thick connector to connect the bolt to the GM-17 gearbox. This humble little gripper was able to handle 10+ kg before the connector between the filament and the spring scale failed.
You see only 4 kg of load here. That's all I could manage holding the scale in one hand and the camera in the other. The moment arm on the gripper is about 4.5 mm. Combine that with a 10 kg load and you see that you are looking at a torque of... torque = (10 kg)(1000 gm/kg) (4.5 mm)(.1 cm/mm) = 4500 gm-cm ~ 62.5 oz-in ...which is about what a low end NEMA 23 or a high end NEMA 17 can deliver. Now, if we leave the GM-17 hack gearbox at its original 228:1 and calculate torque assuming 150 gm-cm which is the holding torque for the Jameco tin can stepper torque = (150 gm-cm)(228) = 34200 gm-cm ~ 475 oz-in Figuring that a 3 mm filament has a cross-sectional area of about 7.1 mm^2 and a 0.5 mm filament about 0.2 mm^2, you can extrude 35.5 mm of 0.5 mm thread for every mm of filament consumed. Thus you'd need about 1.4 mm of filament/sec to extrude at a rate of 50 mm/sec. To do that you need to be turning the gripper at about 3 rpm. We should be able to do that pretty easily without overheating the tin can stepper. I already know that I can get 5 rpm out of that hack at that gear ratio, so I should be okay. More thinking about NutjobSaturday, May 9. 2009I'm not so happy with the Mk I Nutjob. I finally got the GM-17 hack tweaked to give what Nophead got from his. It turned out that I I was running it on wave stepping instead of full stepping. Wave stepping only energises one coil at a time. As a result it gets half the torque. Once I reprogrammed it to do full stepping it began to behave properly. Unfortunately, I seem to be losing a lot of energy running that big gear pair in Nutjob's housing. I can get Nutjob to do what I want but it seems to me to be too sassy for a bright twelve year old to keep running properly. The whole point of a 3D printer is to be able to walk off and leave the damned thing. Unless something magical happens with Nutjob, I can't see it being any less hands off than my milling rig with Tommelise 2.0. That's simply a non-starter. What really annoys me, though, is the size of the Nutjob. Compared to those little dinky pinch wheel extruders that Adrian and Nophead are making and now that Nophead has figured out how to run one without a NEMA 17 stepper, Nutjob is HUGE! I am thinking of leveraging Adrian's method of putting splines on his NEMA 17 and Nophead's GM-17 hack, which I already have running, to make a splined shaft pinch wheel. I'm going to have a go at that this weekend. Doh!Friday, May 8. 2009The additional Solarbotics GM-17s and the Didel Rome gear kits as well as the Didel GM-17 encoder pitched up today. I popped the GM-17 gearbox off of the Nutjob extruder and put in the Didel 51:1 gears. On a really loose compression spring setting I could get Nutjob to pump filament at about 32 mm/minute, which is what I needed. The problem was that with that loose a spring setting the extruder really wasn't gripping the filament, just moving it. After a great deal of fiddling with settings I finally detached the GM-17 from the extruder and discovered that the terrific torque that the tin can stepper was putting into the gear train was tripping the gear clutch. Whereas in the GM-3 the gear clutch made a huge racket when it slipped, I only got a very quiet buzz out of the the GM-17 gear clutch. This was keeping the torque in the GM-17 down to a very low level. Mind, it was high for a Solarbotics gearmotor, but nowhere near what I needed. I used some epoxy to lock it down. It should have set by morning and I'll give it another try then. Taking the Gm-17 out of Nophead's GM-17/tin can stepper hackTuesday, May 5. 2009Reducing the vitamin content of the Mk I Nutjob extruder...
Stovetop recycling of HDPE swarfSunday, May 3. 2009In which your narrator solves the problem of recycling plastic scrap, for milling... One of the great unsolved problems for Reprap has been that of either figuring out how to make plastic filament locally from scrap or how to design an extruder that can digest scrap. Reprap has successfully created a 3D printer for less than $1000 that replaces a commercial machine costing anywhere from $30-50,000. A plastic grinder and monofilament production machine runs anywhere from $75-100,000 and, unlike a commercial printer, can weigh several tons. For milling, as opposed to printing, I've discovered that recycling can become much less challenging. Years ago in South Africa, I encountered a plastics fabrication technique called Rotary Moulding or Rotomoulding. Typically, you dump a measured amount of polymer powder into a big steel mould and secure it to a motorized gimbaled drive in a heated enclosure. The steel mold becomes slightly hotter than the melting point of the plastic while the tumbling action of the gimballed drive coats the inside of the mould with plastic powder. The method is used to make everything from the petrol tank on your automobile to portable toilets and large water tanks. One guy I got to know in Pretoria back in the 1980's was using HDPE swarf to rotomold bins and water tanks. Yesterday, I got to thinking. I'm buried in fine HDPE swarf and I need HDPE sheet. Could I modify the rotary moulding technology to create it. I took an old teflon coated frying pan that I didn't need any more and heated on my stove to about 220 C, checking the evenness of the surface temperature with my handy-dandy IR thermometer. At that point I began sprinkling a couple of cups of milling swarf on the heated teflon surface. Interestingly, the swarf, being heated from below, tended to melt into the already melted surface without trapping large air bubbles like happened with my experiments some years ago to melt HDPE scrap in a toaster oven. Once I ran out of swarf I cooled the pan and plastic down in cool water, then peeled the melted swarf out of the pan and cut it in half to see how thick it was. The bottom surface is very slightly porous, though not enough to leak water. The top surface is rough with unmelted swarf and a few bits of poplar.
Here you can see the thickness of the melt, 2 mm. It would have been thicker except that I ran out of swarf. The slightly mottled colouring of the melt reflects the mix of white and black swarf that I had. With thicker melts I could simply mill off a flat top surface. The need for that could be reduced by using a small aluminum rolling pin to flatten the top. Now I have to either buy or mill a small hand vacuum cleaner to collect the swarf in a more orderly manner than I do presently by using compressed air. Documenting the Mk I NutjobSunday, May 3. 2009
Nophead: This looks really promising, but I am having trouble understanding the
physical arrangement from the photos. Any chance of a view from underneath, or a
diagram?
Forrest: Absolutely... I had a few minutes Friday to run some tests on the Mk I Nutjob. Using a GM-17 it was able to generate several kilograms of thrust, which, from Nophead's research, should be enough to extrude ABS. Frankly, though, I couldn't see that having enough torque to just extrude was going to be that much fun. Tommelise 1.0 taught me that operating on the edge of an extruder's capabilities is a frustrating exercise at the best of times and a waste of time at other times. The diameter and shaft diameter of the little coreless DC motor in the GM-17 is a common one. A variety of more capable, read that longer, DC motors can easily be slotted into its place. Indeed, Solarbotics is looking for an upgrade motor for the GM-17 not unlike the 12v upgrade that they have for the GM-3. At that point it occurred to me that I could easily do the GM-17 hack that Nophead demonstrated a few days ago. I certainly had exactly the Jameco tin can stepper that he used and I also had the ability to mill a special mount for it. Nophead's mounting plate was, as usual, elegant. It would have been quite easy for me to mill it save one little issue. The ventral strap simply didn't work well for my extruder. As a result, I designed an alternative that made use of the extant mounting points on the GM-17.
From there it is a simple matter of sliding the top plate with the GM-17 hack onto the bolts and applying the washers, lock washers and nuts to them to complete the assembly.
Milling polypropyleneThursday, April 30. 2009
In which your narrator finally manages to mill polypropylene without melting
it...
As you know, I've been trying to mill polypropylene for quite some time without success. Why I would want to do so is purely an economic matter.
Polypropylene is far and away the cheapest commercial plastic on the market. It is also quite strong. Anyway, today I milled it and I milled it without coolant, something I didn't think was possible. I was talking with Fred Schultheis at North Bay Technical a few days ago about reordering some two flute, fish-tailed end mills. Fred and I had discussed milling polypropylene before and he had mentioned that you'd need to use coolant and/or a single flute end mill. As you reduce the number of flutes you reduce the amount of energy generated by the end mill. Fred checked his stock and for some reason mentioned that he had a 2 mm single flute end mill. I bought it immediately just to give it a try. This morning Fred's order arrived and, since it was lunchtime and I'd already eaten, I thought I'd give the new end mill a try without coolant just to see how it behaved. It turned out that I can reliably mill quarter inch polypropylene with the new end mill using the same settings as I use with HDPE and two flute end mills, viz, 20K rpms/8.33 mm/sec except that I can, so far, only take 0.5 mm deep cuts rather than the 1.0 cuts that I can manage with HDPE using my regular, two flute end mills. The new end mill makes VERY clean cuts with HDPE and I get no melting. The chips it throws are a bit bigger and tend to fly considerably higher, so safety glasses are in order. I'll be doing more tests this weekend and blogging the results.
(Page 1 of 11, totaling 104 entries)
» next page
'Coffee Bar' design by David Cummins powered by Serendipity |