Daniel Spilker


November 17th, 2012

USB Status LEDs for Media Center PC

Several months ago I replaced my broken digital video recorder with a home theater PC running Windows Media Center. Overall I was quite satisfied with the outcome, but it had two shortcomings. One was that visitors sleeping in our living room were complaining about the bright HDD LED flashing at night when the PC was recording. The other one was that we were frequently asking us if the PC was running because we forgot to turn it off or because it was recording something. The first problem can be solved with a simple resistor. The second problem was not so easy to solve since the case which I bought for the PC has no fancy display but only two status LEDs on the front, one HDD LED and one power LED.

Searching for a solution on the internet, I found the LEDSdriver tool distributed by Slick Solutions. It hooks into Windows Media Center and controls up to three LEDs connected to a serial (COM) port. Sounds great. Since I don’t care for the HDD activity, I can use that LED to indicate the recording status. But I chose an (almost) legacy free motherboard for the HTPC, so the system has no serial port. Luckily I had a FTDI USB to serial converter cable lying around which I used to build a small circuit with one LED to test the LEDSdriver tool. It worked great, but the final solution should be integrated into the HTPC case and should leverage the HDD LED of the case. So I designed a circuit which uses a USB to serial converter IC and which can be plugged onto one of the motherboards internal USB connectors. For prototyping I bought SparkFun’s SSOP to DIP Adapter 28-Pin because the FTDI FT232R USB UART IC is not available in a handy DIP package.

The final design can drive up to three LEDs and I also added potentiometers to be able to dim the LEDs.

You can find the Eagle CAD design files and a part list on GitHub. I used the OSH Park PCB service to make the boards and bought all other components at Digi-Key.

Soldering an SSOP-28 IC is not so easy, but doable. I have been using the board for several weeks now and it didn’t fail once.


June 1st, 2012

USB Micro Connector Breakout Board

Nowadays a lot of devices have a USB micro power plug which means that USB wall charger and cables are everywhere. So why not adding a USB power supply to a DIY project? The 5V and 500mA delivered by USB are sufficient for most projects. To ease prototyping I created a breakout board which carries a USB micro receptacle and a breadboard compatible 2.54mm header.

The following table shows the pinout of the breakout board, which resembles the standard USB pinout. I also added the data pins so that the board can also be used for data connections and not only for power supply. Pin 1 is labeled VBUS on the board and on the right in the picture above.

Pin Name Description
1 VBUS +5V
2 D- Data –
3 D+ Data +
4 ID
5 GND Signal ground

The part list for this project is short. It requires the FCI 10103594-0001LF micro USB receptacle (Digi-Key 609-4050-1-ND) and a standard 5-pin header (Digi-Key 3M9450-ND). The Eagle design files for the PCB can be downloaded from GitHub. Since I could not find an Eagle part for the FCI 10103594-0001LF, I had to make one myself. You can find it in my Eagle library. I used the OSH Park PCB service for manufacturing the boards.

Soldering the USB receptacle with a soldering iron is a little bit difficult, but doable. I used a 0.8mm soldering tip, but a smaller one (<0.5mm) would have done better.


April 25th, 2011

ISPtouch for AVR Microcontrollers

When I started designing PCBs which should fit under Märklin C-Track, I soon realized that a standard 6-pin ISP header for AVR microcontrollers exceeds the height limitation of 4.5mm. My first idea was to press a 6-pin SMD header on the PCB pads for programming. But this method does not ensure sufficient contact for all pins. After searching the internet and browsing serveral print catalogs, I found the AVX 9188 Staggered SOLO Stacker in DigiKey’s print catalog. Its spring-loaded contacts provide a good connection for all pins. The idea for the ISPtouch was born.

Unfortunately I could not find the AVX connector in any Eagle CAD library, so I had to create my own Eagle parts for the AVX connector first. I then designed a small adapter board with a SMD 6-pin header for a standard AVR programmer on one side and the AVX connector on the other side. I added two single pin headers for guidance when pressing the adapter on a PCB for programming. Soldering the adapter, especially the AVX connector is a bit tricky, but doable. I had to cut off a bit of the guiding pins so that they do not collide with the programmer’s connector. To use the adapter in a PCB design I created an Eagle part which features the pads for the connector and two holes for the guiding pins. Pin 1 is marked on both the adapter and the ISPtouch library part with a small “1”. You can find the ISPtouch part along with the AVX Stagged SOLO Stacker parts for the solder and the mating sides in my Eagle library.

Up to now I have used ISPtouch in two designs and flashed many boards. It works flawlessly. Due to the staggered design of the AVX connector, it can only be used in one orientation and will not cause any harm when connected in the wrong way. To flash a board, you need two hands. One hand to press the ISPtouch adapter to the target PCB and one hand to start the programming.

As a nice by-product of the ISPtouch design the target PCB does not require any part to be soldered for the ISP. This safes time and money.

To build an ISPtouch adapter you need the AVX 9188 Staggered SOLO Stacker (e.g. DigiKey 478-5491-1-ND), a 6-pin SMD header (e.g. DigiKey WM17449-ND or DigiKey WM17455-ND) and two single pin headers (e.g. DigiKey 609-3368-ND). You can download the Eagle project for the ISPtouch adapter and the Eagle library for the ISPtouch header on GitHub.