Wednesday 25 December 2013

3D printer problems.

Seriously, who thought it would be a good idea to base a whole system around uploading an arduino sketch to something which isn't an arduino? Really not a happy chappy right now. If you hadn't already worked it out I've recently bought a 3D printer. It's a RepRap Prusa Mendel I2 from GeeeTech and it has a Sanguinololu 1.3a electronics board with an ATMEL ATMEGA1284P processor.

The whole thing has been a bit of a disaster really. When I first bought it off eBay I thought I was getting a really great deal and that I'd be printing in no time. Not so. A week after I paid for it, another similar printer appeared which could print four times more accurately and cost $200 less and when it cost a few hundred, that really makes a difference, so I wasn't too happy about that. The seller I bought it from said that they ship within 48 hours of receiving payment but after a week of waiting I spoke to them and asked what was going on, they grovelled and atoned and after yet another week it was finally on its way. Two more weeks later it arrived and I was beside myself with anticipation.

It came in kit form and I put it together over a weekend using the general plans on the RepRap Wiki. It was only after I finished it that I discovered there were plans for the exact model I had. You see, although it's an open source design and they should all be the same, each manufacturer makes lots of little changes to the ones they produce. What this means is that the general plans are useless, and that there were lots of little mistakes in mine. So I fixed the ones I could be bothered to fix and left it at that. But really, my troubles hadn't even started yet.

The fully assembled printer with everything but electronics. 

The way the whole software works on a 3D printer is fairly simple. The processor chip has a bootloader on it which allows you to actually use it and upload programs to it. Then there is the firmware which takes the form of a program, specifically an arduino sketch, this is what takes the instructions of what must be printed where and translates that into motor movements and this has to be calibrated and have various parameters set. The instructions of what must be printed where is stored in a file and is usually called G-code. The G-code is worked out by a 3D CAD program on a computer from a model of whatever your printing. Okay well maybe it's not that simple but the problem I'm having is getting the firmware onto the chip. Once you have the right software installed it should be a simple matter of configuring the firmware and uploading it to the controller board but whenever I try to do that I just get an "uploading" message for about ten minutes and then it times out without having uploaded anything.

I tried lots of different settings and software and got some help from some friends but no matter what I tried the error wouldn't go away. I got so desperate that I went to my local hackerspace for help because I knew they had a 3D printer there and that the place is full of nerds. I figured if they couldn't fix it, no one could. After a couple of hours of fiddling around with it they determined the problem was most likely the FTDI chip which allows the computer to communicate with the controller. Unfortunately this renders the whole board basically useless so because I know my arduino MEGA2560 works I'm going to use that instead and buy a 3D printer shield for it. So until that arrives, printer progress is halted.
I'll catch up with you again soon, cheers.