The story behind it all
First off this all started on a dark night around midnight, I was walking to get to my friends house and what did I see, a big NES DELUXE BOX!!. It Had what i wanted and that was R.O.B. so I got working and popped R.O.B. open to have a look at his guts!!! and i found this
( You will notice the RFC-CPUIO has been removed Prior to picture)
The reason is the NINTENDO CPU Would always perform a POST and position itself by making R.O.B go up and then left as much as possible thill the clickers (positioning switches) stopped sending signal for more then X seconds, this works great thanks to the slip clutches in the motors nothing gets damaged. This was at first a great thing And i did want to keep it, but problems arised when I noticed that rob still was reading from his EYES!. So I decided to disconnect R.O.B.'s optical sensors....the Nintendo chip did not like this at all and would out of nowhere reposition rob make him literaly twitch. So i decided to remove the chip to not complicate things.
So i started looking at the PCB's IC's you will notice the IR2C25 Servo Motor controllers (H-bridge drivers) this is what they seem to be, googled for it found nothing much in terms of official data sheet. Next step was to do a little diagram to get what ir2c25 controls what. Once that was achieved a complete mapping of the servo motors and what function they controlled i could start writing some code to get things going...mind you i'm no programmer so code is pretty ugly!!!. The following is info on what did what on the pcb and where to tap with my lpt1 cable
So next step is to take out the soldering iron or power up your pace station what ever suits you!! Now to explain lpt1 pinouts:

- Not a data pin!
- Down
- Close
- Up
- Open
- Right
- Left
- Led
If you are wondering why the data pins and operation are not following the chip layout picture i gave above, I basicly did a conductivity test on all data pins needed and what wires they were on the other end and cut off all wires I didn't need and then soldered every data pin wire to a function and then determined what pin did what once program was written. Yes that was lazy of me but it's only a little project to have fun, also you need to ground lpt1 pins from 18 to 25 to pcb ground. I also recommend using 5.1v zener diodes on every data pin to prevent lpt1 damage.
Now for the code there is rob.c that was written from scratch with some help from Phaid and a curses.h modification to allow some extra keys for rob's code. And under you will see pictures of rob with the added lpt1 cable.
F.A.Q. Frequently Asked Questions
- Yes soldering is involved! Quote from the site "soldered every data pin wire to a function"
- Not everyone has an available microcontroller,programming skills or the programmer to do so. I wanted the mod to be available to everybody. Also that would require me to purchase a VendorID and ProductID if I wanted to make sure R.O.B. wouldn't be in contention with other USB devices one may have on a specific system.
- The answer to that one is simple R.O.B. can run on anything that has linux. No need for X so it can run on embedded systems and many other small devices
- Simply read the web page and if you disagree then do your own modification and keep it in! Why do you do the things you do?
- Why would I? I wanted a reliable method of sending commands, not having rob in front of a crt or any infrared emitter that would simulate commands. Also note I mentioned I wanted to keep it simple for everybody!
- No, if you can find any usb to parallel adapter that has low level implementation like a real parallel port then yes, but I doubt one could find or make such a thing!


