PIPS
PIPS
A Digital die
When pressing the push-button the fast scrolling of 1 to 6 — just like a regular D6 die — stops to give a 'random' number. It's not based on randomness in the circuit, but on the random timing of the press by the human.
This project is based on "Dicing with LEDs" by Elektor, which appeared on December 2006's issue. They have kindly allowed us to use it for this project.
PIPS was project #23 of the Boldport Club.
What’s included
1x 14-bit ripple counter IC, TI CD4060BE
1x IC DIP socket, TruConnect 22-0109
7x Red 5mm LEDs, CREE C503B-RBS-CW0Z0AA1
5x 1N4148 diode, Diotec 1N4148
1x PNP transistor, Diotec BC557B
1x 100nF ceramic capacitor, Suntan TS170R1H104MSBFB0R
5x 15KΩ resistors, Multicomp MCF 0.25W 15K
4x 470KΩ resistors, Multicomp MCF 0.25W 470K
1x SPST-NO tactile switch, TE Connectivity FSM4JRT
1x Battery contact positive, 9V-3 positive
1x Battery contact negative, 9V-3 negative
1x Lovely PCB!
Assembly
Please follow the guidelines in the infographic. Please heed to the note about not connecting the battery while the contacts are hot from soldering. Also pay attention to not connect the battery contacts and the battery itself the wrong way. If you touch the contacts with the battery and the LEDs don't turn on, something wrong. With any trouble recruit the cavalry on Discord.
BRIEF THEORY OF OPERATION
The heard of the circuit is the CD4060B, which is a 14-bit 'ripple-counter' integrated circuit with a built-in oscillator. This is convenient since we won't be needing to have a separate clock source.
The clock needs to be fast enough so our eyes cannot distinguish the die's state since then we could cheat by pressing the button just at the right time. The components connected to φI, φO and φO-bar (pins 11, 9, 10): RS, CX, and RX control the frequency of the counter. According to the datasheet, this is governed by the following two formulas:
f = 1 / (2.2 x RX x CX)
(2 x RX) < RS < (10 x RX)
In our case we'll have
RX = 470KΩ || 470KΩ = 235KΩ // recall that R = [R1*R2]/[R1+R2] CX = 220pF RS = 470KΩ f = 1 / (2.2 x 235000 x 220E-12) = 8.8KHz
That's fast enough! If you actually measure the frequency it might be different than the ideal calculation above due to tolerances of the components, and manufacturing variability.
You'll notice a switch to ground. The switch that we supplied is a single-pole-single-throw normally-open kind, abbreviated as SPST-NO. This means that it is normally an open circuit and closes the circuit when the button is pressed. In our case shorting the φI input to ground. This halts the counting as long as the button is pressed. That's how we get our 'roll'.
A 'normally connected' switch, SPST-NC, would operate the circuit the other way round. That is, run only when the button is pressed. SPST-NC push-buttons are uncommon, and when we do find them, they are a bit pricey. If you'd like to fit an SPST-NC we designed the footprint to accept one! Get the KSR223GNCLFG from C&K Components.
Now we have a clock running. We need to scroll through the six states of a normal D6 die. We'll use the counter to go through the states and control the LEDs. The clever people at Elektor figured out that the best way to do that is to use the first six states of the counter for the six states of the die and a seventh state for reset. Their cleverness is in that they scrambled the states to make the circuit more efficient. See the table in the infographic.
We'll leave figuring out how the control circuitry works to you ;)
Additional information
Community contributions for this project
Open source circuit board design files