Thursday, February 19, 2009


PIC32 controller – OLED

On my last post I detailed the basic outline of the new controller board, one significant part was missing from the complete assembly, the OLED screen.
Since this is the main interface I thought it might be worth doing a few notes of the kind of stuff we are putting out.
The last couple of images are of the Windows application that controls the USB Boot loader.
Its very easy to use.

First step is to power up the controller board while holding down one of the switches, this initialises the USB interface and displays the screen message.
Start the windows application and if the board is in boot mode it links in.
Once the coms are up and running point the application at the HEX file and download.
Resetting the board allows the new file to run.

The top pictures show the screen activity during normal running, the BfB logo on power up followed by the run screen.
The run screen is showing Firmware version number followed by the tool type found. We use an analogue input on the board to read a static voltage returned by the device attached to the tool header. The voltage is prefixed with a resistor that is unique to each of the tool types that may be fitted.

In this instance it has found the device attached and returned its type.
The tool type is used throughout the code to enable appropriate control.
Top of the Blue section of the screen shows the file being run is MINIMUG.TXT, this field changes as we jog through the contents of the card. The “Open” flag indicates the file status.
Below this we see the machine is in AUTO mode running the txt file from the SD card. We can switch this to MANUAL at any point and move the head using the axis buttons.
G_Code Line needs little explanation, it simply is a running line count of the G_Code lines executed.

A solid bar below G_Code Line represents the print progress, we can see at this point we are at line 3687 in the file and this is just a bit less than half way through the print. The bar reaches the right hand side of the screen when it gets to the end of the file.

The shorter bar below, is a representation of the step buffer contents, this line flicks side to side as the fill status of the buffer changes. The status is reported just before the code renters the Bresenham routine where its contents are replenished. As it stand it looks like the buffer is still about 25% full after preparing the next line ready to run. I don't know if I will leave this in, it was useful during development to see a more or less real-time status indicator, there are probably more interesting things to show on this line.

The temperature reading at the bottom is the current extruder temperature,measured by the thermistor, its low as the pictures were taken with the board on the bench during test.
One thing to note is that the screen is small, the pictures make it look huge, the actual size is about 25mm wide x 15 high (128 x 64pixel.)
For those with an interest in the screen, the contrast is fantastic, the text is small but very crisp and clear.

Screen images like the BfB logo can be changed quite easily, basically if you have a 128x64 bit map file in line art, single bit colour depth, I have written a short program that reads the standard file and outputs a text file containing the bitmap translated into a Byte array that plugs directly into the code. Any picture on the screen in 10 mins. There is loads of memory spare so you could even play with animations!

That about wraps it up, Ian has designed a Laser cut protective shield that fits over the display, this has some nice little extensions that bring out the buttons and a window for the display.

Monday, February 16, 2009


I have had my head down recently to wrap up the new electronics developed in conjunction with Bits from Bytes.
If ordered, this board is available with the new Version 3 Laser cut machine. We have tried to keep everything neat and compact. Ian has done a splendid job on the board layout, I have concentrated on porting the code to its new environment..
The board is shown without the OLED screen attached in the first image to show the PIC32 chip.
So, what does it do?
The answer is really quite simple, you plug in the stepper motors across the top, connect limit switches and a fan. The extruder connects via the header on the left. On power up, it reads the SD card and runs the print process. In the past I have given a few details of the SD card interface and how in conjunction with a joystick we are able to jog through the files on the card, pick the one you want and run the print.
The new firmware sends the machine “home” at the start of the print, hovers in a rest position while things warm up then proceeds to print the object in the centre of the table. Manual mode can interrupt the print at any time, the tool can be moved away from the printed object, when it comes out of manual it then returns to the print and continues the print from the next instruction.
The production board does not use a joystick but 6 buttons instead. The four in diamond format on the right do X & Y while the two just to the right of the SD socket do Z.
The final button on the board is used for switching modes, Auto/Manual.
Across the top of the board are 4 identical stepper controllers, the three to the right do XY&Z, the one on the left is something new, a stepper controller for the extruder. The V3 machine will ship with a new extruder design, a new screw-feed design but much more robust with machined spindle and bearing supported both ends. The drive is a stepper motor to give precise speed control.
Moving to the bottom of the board we have the SD socket on the left, moving right, the two Z buttons followed by three FET's we use to control the heater and cooling fan with one spare (AUX) for future use. To the right of the FET's we see an 8MHz crystal with the PIC32 below it. Next the XY buttons and voltage regulator and finally two sockets, 12VDC Power on top and USB below.
You can also see at the bottom of the board (below the XY buttons) a PICKit2 programming interface.
We have tried to make programming and update as simple as possible for all, the PIC32 can be programmed in several ways:
USB boot loader, used in conjunction with a small PC application. The PC software downloads HEX files straight onto the chip, no need for any programmer at all! Develop software in the free MPLAB IDE and flash the HEX file via USB.
PIC Kit2, the low cost programmer debugger from Microchip, the one I have cost £20 and it came with a low pin count development board.
ICD2/ICD3 Full programming /debugging facility direct to the chip
With this system we can distribute HEX updates for those that just want to flash the chip with new firmware, and for more adventurous types you can make it do what you want.
The G_Code interpreter is still pretty much the one I posted back last year, it reads a text file from the SD card and serves up steps in more or less real time. We have implemented a FIFO step buffer that takes the output from the Bresenham algorithm, the buffer is then read by an interrupt that fires at the required feed rate. Feed rate is adjusted to compensate for moves in both X&Y if they step at the same time.
The buffering also enables control functions of the extruder to happen in parallel, temperature control and extruder speed and fan control all happen in the background running off another interrupt.
The OLED screen is small but so useful for this application. Its fast, very fast compared to the LCD's I used before. This increase in performance lets us show the code line number, even the G_code text as the lines are processed from the card. We can also show the buffer status with a bar graph across the screen. With this you can observe that the buffer never “runs dry”, confirming real time operation. Another feature added to the screen is a file progress bar giving a graphical representation of how long there is to go.
Other information like tool type(pen, extruder, router etc) current file name, print status and error messages are also put out as appropriate.
As for the output of the machine, I have posted many pictures in the builders blog, the improvements in the print quality mainly down to improved control.


Sunday, February 15, 2009


Picking up speed

In which your narrator reduces the time to mill a thrust collar gear by just over 88%... do you want to hear more?

Friday, February 13, 2009


Another off-the-shelf linear bearing experiment

This linear bearing was made completely from items purchased at my local Menards. The square perforated tube (also known as Gridbeam) is 1 inch square with holes spaced 1 inch apart. About $22 US for a 6 foot section. It's easily cut with an angle grinder, chop saw, or other abrasive disc - probably a hacksaw as well. The carriage bolts are 4 inch long 1/4 inch diameter 20 threads / inch. A couple dollars for a pack of 20 or so. Same for the nuts. The 'bearings' are $2.36 each 'sliding door rollers', also 1 inch diameter.

Unfortunately, the sliding door rollers have quite a bit of lateral play, so 8 were needed to give the bearing a solid feel. 4 - with two each on opposing sides - allowed far too much play for any productive use. So this linear bearing cost approximately $25, only allows movement in one axis (as well as rotationally), and functions better than any of my other off-the-shelf linear bearing experiments so far.

I don't think the concave surface of the sliding door rollers provides much, if any advantage with this design. I intend to experiment with regular skate bearings as soon as I have some of the apropriate size. As pictured, the linear bearing would benefit greatly from the addition of some lockwashers. I intend to flesh out a full repstrap using this style linear bearing, and more perferated square tube. My goal is a complete repstrap buildable with off-the-shelf parts, and as little tooling as possible, from a local "big box" or hardware store - with the obvious exception of motors and electronics. Suggestions welcome.

Wednesday, February 11, 2009


A much simpler approach to the backlash problem

In which your narrator has a "doh!" moment... do you want to read more?

Labels: , , , , ,

Tuesday, February 10, 2009


A note about milling polypropylene

A few observations after several attempts to mill polypropylene over the past month... do you want to read more?

Labels: ,

Monday, February 09, 2009


More steam punk

In which your narrator makes a first try at building a fluidic amplifier... do you want to read more?

Saturday, February 07, 2009


liveUSB image testing phase 1

Hi Everyone,

I'm a relatively new contributor to the Reprap project. I'm building my own Reprap at home, but since I'm away for school right now, I've been focusing more on the software side of things. I'm currently working on writing a new gcode printer to communicate with the arduino/sanguino and also working on the liveusb images.

For people who would like to cut to the chase, the release download information is here

I'd like to announce that the first version of the liveusb image is ready for testing. At the moment, it is a custom Fedora F10 XFCE liveCD spin. Through the magic of liveusb-creator, you can easily turn this liveCD into a liveUSB image, which can then be used to boot the image at near-native performance. Liveusb-creator also allows your image to have persistent storage.

For the non Linux-initiated, a liveCD is a full Linux install that boots off a CD or USB flash drive. You don't need to worry because it will not write to your hard drive. Thus, you can run Windows and simply pop the USB key into your computer and reboot your system to use the host software, and reboot back into Windows when you are done.

If you would be able to, I would greatly appreciate any help in testing this liveusb image across a variety of hardware configurations and especially with print testing (since my Reprap is not yet assembled).

There are a couple of known issues with this release and I've attempted to address them in the release documentation located here:

The download location of the host software image is also in the documentation.

The next couple of steps for me are to:
- make sure the current liveusb image is stable.
- create a liveusb image for the GCode toolchain
- update the toolchain with my GCode printer and possibly a BRL-CAD slicer
- build my Reprap!

That's it for now! Hope to hear from you all!

Labels: , , ,

Friday, February 06, 2009


AoI gets extra innings

In which your narrator gets to have his cake and eat it, too. Do you want to hear more?

Thursday, February 05, 2009


Milling the starfish

In which your narrator chooses between getting on with designing the millable stepper motor or learning another 3D CAD system... Do you want to read more?

Wednesday, February 04, 2009


Pushing the limits

In which your narrator pushes tests the envelope of both Art of Illusion and himself in pursuit of a printable stepper motor... do you want to read more?

This page is powered by Blogger. Isn't yours?

Subscribe to
Posts [Atom]