Week 10: Output Devices

Assignment: Create an output device

This weeks homework was the most relevant to my final project since I’ll be hoping to use a bunch of lighting to light up the city boxes I will be making. With this in mind, I decided to play around with ways in which I could light up some WS2812 LED strips I had laying around from ages ago.

I tracked down the data sheet for the LED strips from an old Amazon order here. I found some recommendations online before designing my circuit. Documentation suggested the following:

  • Add a large capacitor across + and – terminals before connecting to power source
  • Place a 300-500 ohm resistor between data output pin and input to the first NeoPixel

I designed the circuit accordingly in Eagle. Final traces file is shown on the right. The actual milling went pretty smoothly. I was surprised how little time the pipeline of designing in Eagle to milling takes me now given how long it used to take a few weeks ago. I stuffed the board and realized I had forgotten a trace from the reset pin. So I decided to use some wire to connect the two. I used the multimeter to check all the connections and they seemed to be working well. I had added a 5V regulator for use with a 9V battery. I was a bit worried about drop off voltage if I connected to a 5V power source using the FTDI. After checking, I noticed the voltage did drop off a fair amount so I decided to take it off for the time being while I debugged on the computer and put it back on when I was connecting to a power source.

I burned the bootloader and programmed the board with some sample code from the Adafruit Neopixel library which works on LED strips. The board programmed the first time around (shocking! Since it normally takes me a bunch of debugging. Unfortunately, that was the only smooth part of the process 🙁 Lots of Googling revealed that the WS2812 strips can be a bit tricky to get working because of the timing of the signals required as data input. I tried a bunch of things but they just refused to turn on.

I bugged a few students in the lab as well as some of the TAs and couldn’t find any answers as to why my board wasn’t working. After a long time of debugging and playing around with the code, I managed to get SOME results and see a few LEDs turn on. A bit anticlimactic but it was something. I think part of the problem may be the fact that I am using an Attiny44 which I read can have issues with these strips due to not having enough RAM. I figured I could try redesigning the board with an Attiny85 in the coming weeks for the final project since the Adafruit Neopixel library supports Attiny85s quite well and there is a fair bit of documentation.

As a last step (though this probably should have been my first step in retrospect), I also tried prototyping my circuit on Arduino to make sure the LED strips were actually working ok. I spent a couple hours and I couldn’t even get them to work with Arduino so looks like I may need to get some new strips or LEDs to try this with.




  • output devices electronics struggle

    output devices electronics struggle

  • traces file

    traces file

  • milled board

    milled board

  • programming the board

    programming the board