Manually control a single Neopixel with a toggle switch. 555 clock and data output, 555 shift register... 555 delay line memory??
To make the experience fit your profile, pick a username and tell us what interests you.
We found and based on your interests.
Good news! I got an oscilloscope! The core problem? The "750 KHz" clock was going at 230 KHz. Nice to finally know. No wonder nothing was going right.
Well, I missed the 555 contest cutoff. Darn. But here's my project anyway: A 555-based NeoPixel controller.
I wanted to create something marginally useful: a manual way to set the color for a single RGB NeoPixel. Maybe you could use it to test LEDs for duds. Maybe you could just use it. But I also decided that the 555 would be the only IC in the project. No logic gates, no crystals, no microcontroller.
You see, the meme here is that you could use a 555 in place of a microcontroller in many projects. So how can I create the most idiotic and complicated 555 device to do what any micro could do trivially?
This project rapidly exploded in size and complexity once I actually started to implement it. But I learned a lot about the 555 on the way.
My controller needed three parts besides the NeoPixel itself, and I wanted to add a fourth. They are:
Like many, I was inspired by Peter Monta's Digital logic using 555 chips. I had recently played with assembling complex logic from NAND gates and thought I could build up with the 555 similarly. And in theory, sure! But in my naivete, I thought this could be done fairly trivially.
Let's go down the rabbit hole.
Early in the project, I knew I would be making use of KiCAD 6's nested schematics to simplify laying this out into something manageable. It makes it easy to wrangle clusters of 555s.
With hierarchical sheets, I could arrange and copy abstract blocks extremely easily in the schematic stage, speeding up the whole thing quite a bit.
For example, this whole block (which doesn't even need the resistors, really) can be turned into this:
So I just implemented pmonta's D flip flop once... (I do not win the schematic artistry award)
And then duplicated it 24 times.
This is already very silly. You see the problem already, of course. That's 11 555s per flip flop, times 24 flip flops. That's 264 555s.
The PCB for this would be the size of an ATX motherboard if I actually laid it out.
And the memory density! DRAM has a component density of 1 transistor and 1 capacitor per bit. This is 11 555 timers per bit. Awful. I love it. But I can't build it out of 555s - it would cost hundreds of dollars. Maybe during my mid-life crisis, but not now.
--
One thing I did throughout this project was simulate the logic at the falstad.com Circuit Simulator Applet. This was critical, because pmonta's 555 digital logic writeup glossed over some details that I missed because I don't have his expertise. Specifically, I didn't understand 1) that there was 2-phase clocking and 2) why it was needed until I simulated the circuit and it behaved like a transparent latch.
My solution was (over)simple: I inserted a 555 NOT gate to invert the clock signal, giving a quasi-two-phase clocking to the two latches that made up the flip-flop.
One thing I did throughout this project was simulate the logic at the falstad.com Circuit Simulator Applet.
This felt easy: I would do a slight variation on Ben Eater's clock module for his 8-bit breadboard CPU. This uses the 555 in its three basic modes - monostable, bistable, and astable - to select between a once-per-button-press clock pulse and a repeating clock source.
I implemented this basically as is, with a handful of changes:
NeoPixels are surprisingly...
Read more »
Create an account to leave a comment. Already have an account? Log In.
Become a member to follow this project and never miss any updates