Tuesday 26 July 2011

Chapter 8 - In which Bernard comes out of retirement, and I wrestle with snakes

I decided a couple of weeks ago that I was going to run my printer from a laptop. I figured that this has several advantages:

- I can install and play around with as much new software as I like, without fear of damaging my main machine
- I can run the machine and calculate Gcode without it slowing down anything I'm doing on my main machine
- Its portable. I will probably have to move the printer setup from the spare room in the future, so portability is good.

Enter "Bernard":


Bernard is my girlfriend's old laptop, who has been enjoying his retirement shut away in a draw. Not any more - he ought to be just right for what I need.

Since I still can't build any further, I thought I'd get Bernard up and running, and have a look at the various software packages I will be needing. Enter problem number 1 - the screen went blank after a few seconds of being turned on. Adjusting the angle of the screen seems to have fixed it (loose cable I guess) and it hasn't happened again.

I spent some time reorganising some old files, but before I could go any further the screen went black again, and all the lights went out. It was fairly hot too, which lead me to problem 2 - the cooling fan has broken, causing the CPU to overheat and Bernard to shut down.

I figured I had just the short-term solution - several years ago I had picked up this nail-polish dryer, and had rewired the push-pad switch to a rocker switch. I had intended to use it to dry the paint on small models, but it was too noisy (and it blew the smallest parts away!). Turns out it was a perfect fit:


I used the nail dryer to push air (backwards) over the cooling fins, and out the bottom of the laptop. I installed a CPU temperature monitor to gauge when to turn the fan on and off.

With the cooling sorted, I pushed on with the next part of the plan - updates. Bernard has been out of use for about 2 years, and so was rather lacking in care packages from Microsoft. The first batch consisted of some 50-odd updates and security fixes, along with a new version of IE. I also updated the anti-virus.

My plan is to have Bernard drive the printer, but do the design work on my main machine. I set up a small network to allow me to share files between the two wirelessly. I will design parts and models, and export them to .stl format before transferring them to be printed.

Next I started to look at the software I would need to drive the printer and to generate Gcode. I don't know why, but I started with Skeinforge. I hadn't planned to start out using it, as by all accounts it is very in-depth, with a lot of things to configure, but I must have been reading about it, because I decided to get it working.

Now Skeinforge needs a slightly older version of the Python programming language to run, namely version 2, not the newer version 3. I went off and started to download the latest version of 2.7.  I then went and looked at Psyco, a Python script that can speed up other scripts, potentially doubling the rate of gcode generation.

Psyco hasn't been updated for Python 2.7 yet (and doubtfully ever will be, as development has stopped), but I found a version for Python 2.6. I went off and downloaded the latest build - 2.6.7. After unzipping however, I realised that I only had the source, not a compiled version. I just couldn't work out how to compile it, so I went back and found an older version of python which came compiled - V2.6.6.

I installed Python 2.6.6, Psyco 2.0.0 for python 2.6, and Skeinforge 41, and woohoo, it worked! Overjoyed with my progress, I moved on to the firmware.

The recommended firmware for the Sanguiniololu board is Sprinter. I downloaded the project from github, and went off to get the prerequisites - the Arduino software (version 0018) and Sanguinio addons. I unzipped the Arduino software, and added the Sanguinio expansion as directed in the sanguinio readme. I unpacked the sprinter download, and tried to follow the instructions to build the firmware. While I don't have a board to send it too yet, I figured I could at least make sure I had everything I needed and could make a successful build. Once again I got stuck. The sprinter instructions are all written for linux, and consequently don't make much sense for windows users. I managed to get the firmware to compile in Arduino, but whether it was correct or not is another matter.

It was 2am by this point, and I had had enough. I'll come back to Sprinter when I am closer to needing it, and will most certainly write up what I have to do to make it work!

My adventures were not quite over yet, as the next day I decided to install XP's service pack 3 - this only took about 3 hours! (Time well spent watching the German Grand prix) After rebooting for the umpteenth time, and installing another 54(!!!) updates, I tried to run skeinforge again to make sure everything was ok.

It wasn't. Somewhere along the line, something had gone wrong, and now python crashed every time I launched skeinforge. I removed everything, put it all back on, and still no joy. I removed it all again, and this time installed skeinforge before psyco and tested that it worked, which it did. Adding psyco broke the install again, so I removed it.

I gave skeinforge a test run with a couple of .stl files I had generated some time ago, and it successfully generated gcode. It didn't look right though, and it generated very quickly, so I suspect that the STL's I used are at fault. I'll test something else at a later date.

Just to prove to myself that it works:


Not being quite done for the weekend, I took Bernard's back off to establish what was wrong with the fan:

http://img.photobucket.com/albums/v31/lsutehall/reprap/IMG_1087.jpg (direct link as blogspot seems not to like the photo)

It was jammed by the most dense fluffball I've ever come across. Fluffball removed, cooling was restored.

I also found what looks like an old inkjet printer part that ought to do nicely as a laptop stand:


In other news, the Sanguiniololu board arrived last week. I've not removed it from it's bag, as I want to avoid static damage to the chip:


Up next - Installing the java host software.

No comments:

Post a Comment