Later that year, my friend found a Pentium 4 PC hanging out of a dumpster. The machine was in relatively good shape, and was likely ditched because of a perceived obsolescence on the part of the owner. I suppose one man’s trash, is another man’s treasure, right? Well to make this poor PCs fate worse, the same day, my friends demonic cat was walking on the counter and knocked a pot of dirt right onto the open motherboard. We quickly cleaned off the board, and it was decided I would take this cursed machine. As I had a machine that had gone through hell, I chose to do what is often done to old machines, I made a Linux Server out of it.
As of that time, I had played with Linux, but never actually took the time to learn it. At the behest of my Linux loving coworker, Grace, I decided to give it a go. I made it a point that the server was going to be a hacker’s delight and made out of components thrown away, or hanging out of trash bins. Shortly after, my company threw out a logitech webcam..
I played around, and ultimately decided to run Zoneminder off of it. As I wanted the camera to be able to move, I started looking around for cheap ways of moving it, and found a blog from the user “zoomkat” that showcased a cheap way of driving servos with the “ezservo1″ chip from Kronos Robotics.
I ordered the then renamed “zpservo1″ chip, and an “EZ” Rs-232 module. I received the chip, wired everything up, and found that I couldn’t drive a servo. I emailed Kronos, and they ended up mailing a new chip. I came to learn later that the chip was based on a PIC16f627, and was the original was mistakenly not programmed. This peaked my interest, and I decided it was about time I started learning about microcontrollers.
I received the new chip, learned the protocol it used, and coded a routine for moving the servos in python. I mounted them, and liked the idea of controlling hardware from an I/O port, so I went back to the LPT LEDs I had breadboarded. I connected it to the server, and found a program called “lptest” I could use to drive individual pins, and hence drive individual lights.
I had bought some opto-isolated solid state relays and connected one to an IO pin. I measured 13mA draw from a multimeter, which was on the edge of the Printer Port spec, but I felt was safe enough. I connected a string of Christmas lights to the SSR, and was excited by the fact I had command line control over an AC socket.
I knew I wanted to do more automation, but wanted a better way to drive hardware. Enter Microcontrollers…