Codebuggy rolls on

I’ve been making some progress with building my Codebuggy (Robot chassis for a codebug).


I’ve stripped a USB powerbank out of it’s shell and hot-glued it onto the chassis. I rotated the circuit board so that the USB socket was facing upward and I’ve covered it in hot-glue to make it safe for (and from) little fingers.


I made up an interface board to connect the servos and the codebug to the USB powerbank.

After a few hours I added a powerswitch to my interface board, making it easier to turn off the CodeBuggy (it runs off fairly quickly).

I’m having a problem adjusting the speed of the servos, they don’t respond correctly to changes in the program.


Still to do:

Replace experimenters kit croc clip leads with short connectors to codebug legs;

Improve control program.


RasPiO duino with nokia 5110 LCD

I’ve added a cheap nokia 5110 LCD to my RasPiO Duino, it took me awhile to get the example code to work.

I downloaded the PCD8544 display library (Nokia 5110) (http://adafru.it/aHn) and the GFX graphics core library (

Reading the readme note was essential as the name and location of the library is critical to getting this to compile.
One issue to be aware of is that the readme suggested placing the files in sketchbook/Libraries whereas I found that it was required to be in sketchbook/libraries (lowercase L).

The example code compiled OK (once I’d figured out the correct file name and location).

I found a nice clear wiring scheme at duino4projects, which I’ve followed (but I’ve connected the backlight to a pin 9 for PWM so I can dim it). http://duino4projects.com/getting-nokia-5110-lcd-running-arduino/
Pictures of the wiring are less useful as there are different variants of this LCD board so the pin locations are relative.

I added some more female and male headers to my RasPiO Duino, in the prototyping area, for easier connections to peripherals.20150603_205520

I changed the male headers on the LCD for female ones (because I could only find my male dupont cables.

nokia 5110 lcd female header

With a swift (OK, slow and painful) re-write of the display code we have a short countdown to….

I started with code for a countdown timer for 5110 LCD which I found on the Arduino forums:



I modified it a bit to give me this:

This is an example sketch for a countdown timer using Nokia 5110 LCD
and adafruit library for the display

#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>

// pin 7 - SCE
// pin 6 - RST
// pin 5 - D/C
// pin 4 - DN
// pin 3 - SCLK
// pin 9 - Backlight PWM

// set timer position on lcd
int xPos1 = 16;
int xPos2 = 4;
int xPos3 = 4;
int yPos1 = 16;
int yPos2 = 8;
int yPos3 = 16;

int hours =0;
int minutes = 0;
int seconds = 5;
int backlight = 9;    // setting the PWM Pin for the Backlight
int brightness = 130;   // setting the brightness level for the backlight

Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);

void setup()   {
  display.clearDisplay();   // clears the screen and buffer
  pinMode(backlight, OUTPUT);
  analogWrite(backlight, brightness);

void loop() {
  while (hours > 0 || minutes > 0 || seconds >= 0) {
    display.clearDisplay();   // clears the screen and buffer
    display.setCursor(xPos1, yPos1);
    (minutes < 10) ?display.print("0"):NULL;
    (seconds < 10) ?display.print("0"):NULL;

void stepDown() {
    if (seconds > 0) {
      seconds -= 1;
    } else {
      if (minutes > 0) {
        seconds = 59;
        minutes -= 1;
      } else {
        if (hours > 0) {
          seconds = 59;
          minutes = 59;
          hours -= 1;
        } else {
          seconds = 5;

void trigger() {
  display.clearDisplay();   // clears the screen and buffer
  display.setCursor(xPos2, yPos2);
  display.setCursor(xPos3, yPos3);



RasPiO duino with ZIF socket.

I backed the RasPiO duino kickstarter, I finally found an opportunity to solder together one of my boards last night.

I used a ZIF socket instead of the standard chip socket so I had to make a few modifications to the layout (most of which could have been avoided by using the optional surface mount components instead of through-hole).

I mounted the ZIF socket upside down so that it remains completely within the footprint of the Raspberry Pi.

R1 would have obstructed the ZIF socket, so I mounted it on the bottom of the board.


C3 was also under the ZIF socket, I left a bit of length on its legs and pushed it flat.
The resonator was very close to the side of the ZIF socket, a jaunty angle saved the day there.
The LED was completely obstructed, two very short links to the handy prototyping area (directly below) solved that issue.

RasPiO ZIF (bottom)


USB to microUSB + powerswitch

I decided to add an external power switch to the T-Rex, to do so I made a custom USB to microUSB extension lead (with an in-line switch).

I cut the insulation halfway along the cable and cut and stripped the brown wire, leaving the blue intact.

The brown was then soldered to the common and one of the switch positions.

I applied hot glue for insulation and mechanical protection.

Next I soldered on the USB and microUSB connections.


And more hot glue applied.