Roombaduino – part 8 – Connectors

The idea I had in my head of how to put the modules together was that any module could be daisy-chained from a previous one.  Possibly, stacked modules is an alternative but, if you have the joystick module with LEDs and an input/ouput board stacked on top of each other, one of them is going to be obscured.

A simple daisy chain would mean you get a long line of interconnected modules but that doesn’t work so well if you’re building a case for it.

So, due to poor planning on my part, I’ve ended up with a T shaped set of modules. That’s not the end of the world and each module is interchangeable to a certain extent. The video below demonstrates what I have:


Roombaduino part 7 – Working joystick input module

I took a couple of attempts to get a working joystick input module and failed miserably as I was trying to be too clever and my soldering wasn’t as good as it should have been

So, I scrapped it all and started again. This time, I made sure that applied some logic to which connections to solder first.

I decided to build a module that had just 1 shift register which handled both the LED output and the joystick button press input. That gave me some more space on the small perfboard to be able to place the PNP transistors for the joystick buttons and also the LEDs.

The video shows it all working.

Roombaduino part 6 – Inputs and Joysticks

I spent a good few days trying to work out how to get the joystick switch working with my shift register design. I can’t believe I’m the only person to have encountered this problem or maybe I’m using the wrong Google search. Anyway, the problem with the joystick switch is that the pin used to detect the button press goes LOW when the switch is pressed. In traditional switches, the output is HIGH and a HIGH data pin is what is used to trigger the interrupt in the Nerduino to tell it to go and detect which inputs are pressed. So I needed to find a way to turn the LOW into a HIGH. For some reason, the inverter circuits I’ve seen didn’t do what I expected ( not to say they are wrong but my understanding of electron flow is limited ).

What I found was that I could use a PNP transistor. A PNP transistor will only allow current to flow from emitter to collector if the base is LOW. So, I was able to connect the shift register pin to the emitter, the data line to the collector and the switch line to the base. Voila! It works !

Roombaduino – part 5 – Soldered Shift Registers

Once I’d verified that I understood the concept of using the shift register for both input and output, I designed a board to have 8 LED outputs and 8 button inputs. Again, I made this modular so that I can plug and unplug it into the Nerduino.



The image above shows the board with 1 shift register installed. This is for the output, the second one will be for the input and that’s still to be soldered.

The wiring leaves a lot to be desired. I’ll think about v2.0 at a later time, I’d just like to get it working first.


Here’s a video of it working:

Roombaduino part 4 – Shift Registers

Because the number of inputs I want to put on the remote control exceeds the number of pins on the micro controller, there needs to be some creative electronics. I claim no ownership of this idea but I picked up some very useful information from Kevin Darrah’s YouTube video ( ).

Here’s the video of me reproducing the circuit to make sure I understand how it all works ( I do 🙂 )


Roombaduino part 3 – Soldering the Nerduino

Once again, I’m soldering Nerduinos to act as the micro controller for the remote control.

This time, I’ve added generic connector so that I can reuse this when I need to. It has 15 pins plus GND and VCC which should be just enough to have 2 joysticks, the wireless transceiver and a shift register-based button panel (see the next video for the first step of that ). To prove that I soldered it all correctly, here’s the obligatory video:

Roombaduino – Part 1 – 7-pin DIN

Like I don’t have other pointless projects, I decided to get the Roomba up and running again with remote control in mind. The Roomba has a serial port and there are a number of projects that control them with Arduinos.

So, here’s the Roombaduino. First step is to wire up a serial cable to allow the Roomba to power a Nerduino. The video shows the cable working in that it provides power and the Nerduino can run the LED blink sketch.

Next step is to build a remote control to send instructions to the Nerduino.