The bus uses a simple TTL-level serial signal in half-duplex mode. A MAX232 on the distribution board adjusts the RS-232 input from the PC to microcontroller-compatible levels. A diode and pull-up resistor are used to convert the full-duplex UARTs (and MAX232) into half-duplex. The diode is responsible for pulling the line low when the Tx pin drives low. This allows a large number of devices to be plugged in at the same time without any damage to the serial hardware. With a properly formed protocol there are no collisions or communication problems.
Every device has a pre-programmed/reprogrammable address stored and loaded from EEPROM that it uses to identify itself.
The devices I built are more RGB fan controllers which are modified from the original design (eliminate the MAX232 and compact the board a bit to save space). They have the same functionality (4 RGB LED's with 256-level PWM, 256-level hardware high-speed PWM with drive transistors for the fan, RPM counting and readout from the fan's sensor wire). Like the original, the new design is also based around the Atmel ATMega168 AVR microcontroller and the board has a programming header for in system programming.
Remove these ads by
Signing UpStep 1Gathering the Parts
For the 5-port FanBus to Serial board:
1x MAX232 (I recommend a socket too)
1x Diode
1x 1K Ohm Resistor
4x 1uF Capacitor
6x 4-pin header (1 for power, up to 5 for FanBus devices)
1x 3-pin header
For one FanBus RGB Fan Controller:
1x ATMega168 (I recommend a socket on this as well)
1x 4-pin header
2x 3-pin header (or one 2x3 header, for ISP connector)
12x 300 Ohm Resistor
1x Diode
1x 1uF Capacitor
2x 10K Ohm Resistor
3x 1K Ohm Resistor
1x 1116 Transistor (or equivalent)
1x 1616 Transistor (or equivalent)
2x Jumper (I just used clipped resistor leads)
For one RGB Fan:
1x 4-LED PC fan with sensor (yellow or white) wire
4x 4-pin common-cathode RGB LED (diffused)
4x Length of 4-conductor ribbon cable
1x Roll of transparent tape to hold it together
A 6x6 inch, single sided copper clad board should be plenty. I used one 6x6 board to make 3 FanBus controllers, one FanBus adapter, my original RGB Fan Controller, and a LocoNet to Serial adapter for a train set. One piece of PCB goes a long way!
You will also need a laser printer to do toner transfer (I used my HP LaserJet 5M, got it for $10 at a university garage sale and it's perfect!). I recommend glossy or semi-glossy paper. I used the back of some newspaper ads, save the ones that are already 8.5x11" size paper as you don't even have to cut them to size, just feed it into the printer and go. You will also need a clothes iron (preferably one you don't use for clothes anymore) and a bottle of etchant (I used ferric chloride, $10 at RadioShack for a pretty large bottle that will last you a while). To cut the boards down to size I used a Dremel with cut-off wheel.
| « Previous Step | Download PDFView All Steps | Next Step » |




















































I'm loving the new Visual Basic control program, and the new microcontroller code- and I'd be really interested in downloading both for my own exploration (I'm very much new to microcontrollers).
I'd really appreciate it if you could upload the new microprocessor code and the new Visual basic control program (and source). I'd stand to learn a lot from both!
Kari
My question was how complicated is it to use the code you provided on the Atmega processor. Sorry for the confusion xD