External Links Bar:
Home
Helix Light Controller

Standalone, Wireless, Networkable Light Controller



Left Hand Side Navigation and Information Bar:
Helix PCBs
Helix PCBs are now available. Please send an email to Orders to request information.
What's New
The New Helix Main Board v2 is available. This site will be updated soon!


Main page content starts here

True Multitasking


I spent the next couple of months reading everything I could find on the Propeller chip, eagerly awaiting its release. The power and flexibility of the chip amazed me. The Propeller chip has eight 32-bit processors and 32 general purpose I/O pins in a single chip. Each processor can operate independently at 80MHz. It was hard for me to get my mind wrapped around all of the possibilities. In college I had programmed microcontrollers such as the Intel 8085 and Motorola MC68HC11, these are 8-bit processors running at 1Mhz. If you wanted to do time critical routines you had to use interrupts and very tight code. I was discovering that the Propeller doesn't even have interrupts. If you have a time sensitive task that needs to be performed with the Propeller you just run that task in its own processor (Parallax calls these processors cogs). This allows true multitasking.

Blazingly Fast


Since the Propeller is a 32-bit chip and each cog operates at 80Mhz the shear amount of data and instructions that can be manipulated per second is incredible. Parallax provides a free IDE that allows you to create programs in the native Propeller assembly language or in a higher level object oriented language called Spin. In assembly the Propeller chip can approach 20 Million Instructions Per Second (MIPS) in each cog, for a total of 160 MIPS on the chip. In order to run the Spin programs a cog has to run an interpreter program. This substantially reduces the number of instructions per second to around 80K Instructions Per Second (KIPS). However, I was discovering that writing Propeller assembly programs didn't seem to be that difficult. Parallax created a very feature rich assembly language for the Propeller.

Virtual Peripherals


Another thing about the Propeller that took some rethinking was it didn't have any of the traditional peripherals you would expect to find on a microcontroller. It didn't have a UART, I2C controller, SPI controller or anything else. It has 32 general purpose I/O pins that any one of the 8 cogs can have full control over. Parallax's philosophy is if you need a specialized peripheral then create it virtually, i.e. in software and run it in its own cog. This allows an incredible amount of flexibility and since it is an object oriented architecture there were several of the common peripherals available to download as objects from the beginning. Looking at these objects it became apparent that they could easily be modified/tweaked to operate exactly as I desired.

Propeller Chip


I finally got my hands on a Propeller chip around August 2006. I quickly hooked it up on a breadboard and started playing. I was determined to have a blinking, flashing display by Christmas. Unfortunately, my programming skills and circuit design skills were a little rusty. I had the basic firmware and design worked out by November. I had decided to use a distributed architecture with 32 light channels serviced off a main board and three daughter boards each with an additional 32 light channels. The Propeller chip and XBee radio would be located on the main board along with four Serial In Parallel Out (SIPO) shift registers (74HC4094). The power supply and AC zero crossing circuit would be on a separate board. The three daughter boards, with only the four SIPO chips, would be connected to and powered by the main board via Cat 5e patch cords. Unfortunately I was nowhere near ready to design the PCB as I was still working on the software I would need to be able to create the sequences and I hadn't settled on a Solid State Relay (SSR) design either. I decided to put the project aside until after the holidays.

Vixen


I picked up the development again in early 2007. I was still having some problems creating the sequencing software. Then in the spring of 2007 I attended a local Mini-PLUS. I was discussing my controller with some of the people there and one of them asked if I was going to use Vixen for the sequencing. I had never heard of Vixen so I originally said no. After I started researching Vixen I determined that it did exactly what I wanted to do and it was FREE! All I had to do was code a plug-in for Vixen and I was off to the races.

SSR Boards


About this same time I discovered the Do It Yourself Christmas forum. I found the four channel SSR boards I wanted to use via a Coop that was being run on the forum. Now that I had my sequencing software and SSR boards I was able to finalize the initial design and firmware. This design only used six of the eight cogs and 20 of the 32 I/O pins. I still had a lot of processing power and I/O pins available, so for future expansion I brought 10 of the 12 unused I/O pins out to headers. I decided to call the controller the Prop 128.

Final Design


The PCB house I chose had an online special for five PCBs for a fairly low price. I designed the main boards so they could also be used as the daughter boards. Around July 2007 I ordered the PCBs and they arrived about 2 weeks later. I quickly assembled the boards and started playing. After some more tweaking of the firmware I was happy with the overall design. I spent the next several months building enclosures, designing a Mega-Tree and creating sequences.

The Display


Everything was finally coming together. Then in late November 2007 my wife was diagnosed with breast cancer. This obviously put a big damper on everything. However, with all of the time, effort and money I had put into this my wonderful wife wanted me to go ahead with the display. I had to scale back my efforts because of time and weather but I had a 48 channel 20 foot Mega-Tree in the front yard and three channels of lights around each of the windows along the front of the house all being controlled by my custom Prop 128. I couldn't have been more proud.

What Next?


I posted the pictures and a description of the Prop 128 to the DoItYourselfChristmas (DIYC) forum. It created a little bit of a stir. I had a couple of people show interest in getting a board for themselves but I wasn't ready to release it into the wild yet. Since I had designed it for my personal needs I felt it wasn't polished enough or user friendly enough yet. I was also dealing with my wife's recent breast cancer diagnosis. So the controller sat idle for a while. Eventually I went back to it and decided to create the Prop 128 v2.