So, I have just cleaned up, documented a little better, and zipped up the firmware and host side driver for the case LEDs. The file does not contain the hardware schematic because it has some parts in it that I created myself and I don’t feel like moving all the symbols around from my gEDA directory and getting all the paths to work correctly.
The host side driver only works on linux at the moment due to the usage of /proc/stat to get CPU usage, but eventually I plan on upgrading it to use SIGAR or something like that to support more platforms once I get a good environment for developing on Windows going. If you can’t wait for me to do it, you could always do it yourself as well.
After much pain and work…(ok, I had a great time; let’s be honest now)…I have finished the case LEDs!
Pursuant to the V-USB licence, I am releasing my hardware schematics and the software (which can be found here). However, it isn’t because of the licence that I feel like releasing them…it is because it was quite fun to build and I would recommend it to anyone with a lot of time on their hands. So, to start off let us list the parts:
1 10 Position 2×5, 0.1″ pitch connector housing (Digi-key: WM2522-ND)
10 Female terminals for said housing (Digi-key: WM2510CT-ND)
1 4-pin male header, 0.1″ pitch for the diskette connector from your power supply (You can find these on digikey pretty easily as well..there are a lot)
2 RGB LEDs (Digi-key: CLVBA-FKA-CAEDH8BBB7A363CT-ND, but you can you whatever you may find)
4 White LEDs like in my last case mod
1 Prototyping board, 24×17 holes
The schematic is as follows:
Schematic (click to open full size)
The parts designations are as follows:
R1: 15Ω
R2: 39Ω for the Red channel
R3: 47Ω for the Green channel
R4: 47Ω for the Blue channel
LED1-4: White LEDs of your choosing. Make sure to re-calculate the correct value for R1, taking into account that there are 4 LEDs
LED5-6: The RGB LEDs. The resistor values here are based on the part I listed above, so if you decide to change it, re-calculate these values.
Q1-Q3: The P-Channel MOSFETs
Q4-Q6: The N-Channel MOSFETs
Z1-Z2: The zener diodes
U1: 16Mhz Crystal
C1-2: Capacitors to match the crystal. In my circuit, I think they were 33pF or something
CONN-PWR: The 4-pin connector for the diskette
CONN-USB: The USB connector. You will have to figure out the wiring for this for your own computer. I used this site for mine. Don’t forget to twist the DATA+ and DATA- wires if you aren’t using a real USB cable (like me).
C3: Very important decoupling capacitor. Place this close to the microcontroller.
As I was building this I did run into a few issues which are easy to solve, but took me some time:
If the USB doesn’t connect, check the connections, check to make sure the pullups are in the right spot, and check to make sure the DECOUPLING CAPACITOR is there. I got stuck on the decoupling capacitor part, added it, and voila! It connected.
If the LEDs don’t light up, check the connections, then make sure you have it connected to the right power rails. My schematic is a low-side switch since the LEDs I got were common anode. I connected both ends to negative when I first assembled the board and it caused me quite a headache before I realized what I had done
Double and triple check all the wiring when soldering. It is pain to re-route connections (trust me…I know). Measure twice, cut once.
Although I already have a link above, the software can be found here: Case LEDs Software
As I was working to get my led case lights ready to install (tutorial and videos coming soon!) I was trying to make the device interchangeable between windows and linux since I run both on my computer. So, I followed some …great… online instructions which directed me to install something called ReadyDriver Plus. Basically, what it does is disable device driver signing so that you can install unsigned drivers such as libusb. Well, the first time I restarted, it did something weird. You see, I have a setup where my computer first loads GRUB and then from GRUB it will load the windows bootloader. I think that was the main problem with getting ReadyDriver Plus to work since all it is is a program that loads on boot to disable device signing in the startup menu for windows. However, because it didn’t work properly it had the added effect of disabling ALL of my device drivers, including my wired keyboard and bluetooth dongle for the mouse. Great. So, I then manually told it to disable device driver signing (F8 when selecting Windows 7 from the windows bootloader, scroll down to “Disable driver signing”) and it loaded again just fine. Then, I said to myself, “Oh, I can just do it that way when I want to use the lights in my computer on windows” and so I decided to un-install ReadyDriver Plus. Bad idea. Now, it doesn’t show the bootloader screen for the windows bootloader and I discovered that the keyboard driver is no longer working again. So, I can’t tell it to turn off device signing and I can’t use the computer in windows mode. Great. Now, it seems the easiest thing to do is re-install windows. Hopefully it doesn’t mind since it is on the same computer (read: motherboard) due to their crazy DRM stuff they put in windows 7.
In short, I don’t think windows will be supported for my case lights just yet.
EDIT: Yay for system restore! Apparently when I installed Assassins Creed it created a nice system restore point. Now everything works great again. However, I still won’t be messing with the drivers again for a while. I have to make sure I have plenty of time on my hands before I do that again just in case system restore isn’t as awesome.