Thursday, 27 December 2012

Huxley Panelolu display and heated bed...

Ever since I saw the Panelolu LCD display for a RepRap printer, I just had to have one for Huxley #710. Unfortunately the original implementation used most of the I/O pins available and meant that one had to loose the heated bed and possibility of self setting bed height (not in a release yet as far as I know). Additionally any further developments that RepRap Pro might choose to implement might be blocked.

HD44780 Compatible display
With this in mind I have been working on an I2C implementation of Panelolu type display system. A couple of weeks ago I managed to implement the software based on Marlin release 97fa2a9c30 28 November 2012.

There are a number of advantages of an I2C implementation:
  • Only two I/O pins are required.
  • More i/o can be added on the same two wires.
  • The lines can be longer than a parallel implementation and readily screened.
  • The Atmel part has a native I2C port
  • Lots of support in Arduino libraries
  • Could be bit banged if necessary
The principle disadvantage is the speed limitation associated with a serial communications interface. Polling is also not a good idea due to the speed limitation. Although it might be possible to implement an interrupt feature to support better responsiveness on the proviso it does not interfere with the printer software.

The implementation was based on the LiquidCrystal_I2C for the Arduino using a Phillips (NXP) I2C chip PCF8574P as described in the libraries associated documentation. Using this device a serial communication can be achieved to a parallel I/O port.  This essentially allows for a serial to parallel conversion and thus control of a HD44780 compatible LCD display device as used in the Panelolu design. The chip also has bi-directional i/o ports. Thus supporting input as well as output. So the plan was to use two devices one for the display and one for the switches etc.

The good, the bad and the ugly...
The great thing about open sources is that you get to benefit from lots of people working on projects thus 'standing on the shoulders of giant's'. Simultaneously of course you can find yourself working in parallel on a blind alley. In this case I selected the chip as the library seemed well supported and the chip is low cost, with alternates out there that would not lock a solution into one device.

LiquidCrystal_I2C implementation from the notes
After finishing the code, I was looking around the internet and came across an update from Think3DPrint3d who designed the Panelolu. Tony has also been working on an I2C implementation and has elected to work with a Microchip I2C part MCP23017. This beast has twice the I/O capability of the Philips part and the Microchip MCP23008 I2C part.

So I have decided to junk the Philips part and switch to the Microchip part as one part will support both the LCD and the keboard.

Whilst doing this, I also developed a CAD model to allow me to implement a neat box for my display and keyboard. If you would like a copy of the HD44780 STEP model for the 20 x 4 model, you can download it from here. You can get the software configured for Huxley #710 here. I have no intention of taking this software forward in this form at the moment. I have ordered the Microchip part so that I am hardware compatible with the upcoming Panelolu implementation.

Either way, I will have Huxley #710 running with the Microchip part by the end of January at the latest. Until then, the LCD panel with the Philips part is fantastic. The temperature updates are rapid and the status updates on the display are very handy.
RS 720-0226 Fordata FDCC2004B-FLYYBW-51SE

I may yet implement the Nokia 5110 display with Huxley #710, a graphic of the part being printed would be cool on a progress style screen. At the moment though we are just having too much fun printing and working with our new glass table!

Sparkfun Nokia 5110 LCD Display CAD mode

Friday, 21 December 2012

Christmas is going to be Fab..erdashery

Utterly fantastic service from Faberdashery

Thing 38444
I saw the robot and light sabre on Thingiverse this week and thought the boys might like to print one over the seasonal holidays. Along with the easier to print 'Mini Programable Cryptex' that has proven very popular at home and on Thingiverse. We needed more filament and fast! Before Christmas, I was not holding out much hope to say the least!

Faberdashery were recommended by the RepRap Pro guys down at Bath University and I have always been pleased with the quality of the Faberdashery PLA filament. My children tell me the smell is sweet when we print; although I personally can't detect any odour. Then again I have been working with polymers all my life, so it could be I just don't smell them anymore. The colour is always even through the roll and seems to be a consistent diameter based on my repeated measurements. I had a kink once in the tail end of a white roll but that could have been me, it pulled out readily enough. There have never been any issues with feed or blocking through the extruder and never any signs of excessive moisture in the filament which would lead to bubbles in the print.

Thing 37745
I ordered Robot silver and Bling Bling Gold and to my delight and amazement Faberdashery have managed to pull out all the stops and delivered our order, exceeding my expectations completely. 24 hours by post not a carrier, in the run up to Christmas with all the orders they must have had! The boys are ecstatic and its not even Christmas day!

Blink Bling Gold looks perfect for the Mini Programable Cryptex and the Robot Silver now looks as though it might offer a nice contrast for the separator segments.

If you have ever wonderd what a shipment from Faberdashery looks like, here are a few pictures (you can click on them for higher resolution images).
Chirstmas is HERE!
Beautiful colors
Look carefully!
It's Christmas just opening the pack! Look carefully under the beautiful Bling Bling Gold. There peeking from the bottom, is a beautiful sample of what looks like Raspberry Spark.

Compliments of the season and thanks Faberdashery.