Grubworks
An Atari Punk Console and a light-coupled beat into seven octaves of divider, on one board · By Onion Madder · Mess O' Pedals
My Grubworks box on one board. Two voices: chew, an Atari Punk Console, two 555s with a TEMPO and a WIDTH knob, and hum, the Opto Duet, two more 555s talking by light, a slow one with a tempo flashing an LED into a photocell on a fast one. Each voice has its own on switch. Whatever is on goes through a TL072 preamp into the Grub Divider, a CD4024 that divides it into seven octaves down, and seven switches pick which octaves sit in the mix. The Opto Duet alone makes its own beat. Plug anything into EXT IN and it takes over from both voices. A GAIN knob sets how hard the preamp drives the divider, and a TRACK switch makes it follow a note more cleanly.
What you'll need
tap to expand / collapse
Seventy parts on the board, counting twenty-seven wire links, and six chips. The Grub keeps the Grub Divider's reference numbers. The Opto Duet is exactly the Opto Duet's parts, renumbered so nothing clashes (its IC1 is IC3 here, its R1 is R16, its C1 is C8, its J1 is J6, and so on up), and so is the Atari Punk Console (its IC1 is IC5, its R1 is R24, its C1 is C17, its J1 is J16).
The Grub, strips a to i
- 1× CD4024 seven-stage binary counter, 14-pin DIP (IC1) - spot it: CD4024 printed on top, notch marks pin 1
- The weighted ladder, one resistor per octave and every value different (R1 to R7): 1M, 470K, 220K, 100K, 47K, 22K, 10K. They are what make this a mixer instead of a selector - get one wrong and that octave is too loud or inaudible
- 2× 100K resistor (R8, R9) - spot it: bands brown-black-yellow. The clock and reset pull-downs
- 1× 1K on the output (R10), 1× 100nF ceramic (104) across the supply (C1), 1× 10 µF electrolytic to block the DC (C2)
- 2× wire links (J1, J2)
The preamp, strips j to p
- 1× TL072 dual op-amp, 8-pin DIP (IC2) - spot it: TL072 printed on top, a notch or a dot at pin 1. Any dual op-amp with the standard pinout goes in the same holes
- 1× 1M resistor (R11) - spot it: bands brown-black-green. Holds the input at the half rail
- 3× 100K resistor (R12, R14, R15) - spot it: bands brown-black-yellow. R12 is the feedback, the one that sets the most gain; R14 and R15 make the half rail. All three stand on end
- 1× 1K resistor (R13) - spot it: bands brown-black-red. The floor under the GAIN pot
- 1× 100nF film (C3) - spot it: a small box, printed 104. The input cap
- 1× 100nF ceramic (C6) - printed 104. The TL072's supply decoupling
- 1× 2.2nF ceramic (C7) - spot it: printed 222. The tracking cap. It lies along strip l, across a cut
- 2× 10 µF electrolytic (C4, C5) - spot it: a small can, stripe on the minus leg. C5 holds the half rail still; C4 sits in the gain leg so the output idles at the half rail
- 3× wire links (J3 to J5). J3 is the long one down the left, the preamp's ground
The Opto Duet, strips q to y
- 2× NE555 timer, 8-pin DIP (IC3, IC4) - spot it: NE555 printed on top, notch marks pin 1. IC3 is the engine, the slow one with the tempo; IC4 is the voice.
- 2× 1K resistor (R16, R18) - spot it: bands brown-black-red. One per timing chain
- 2× 100R resistor (R17, R19) - spot it: bands brown-black-brown. The Opto Duet's two outputs, where they mix. Both stand on end
- 1× 1N5817 Schottky (D1) - spot it: black body, gray band. Band toward the chips. It protects the Opto Duet only, as on the Opto Duet
- 2× 10nF ceramic (C9, C12) - spot it: printed 103. Pin 5 decoupling, one per 555
- 3× 100nF ceramic (C11, C15, C16) - spot it: printed 104. C11 is the voice's timing cap; C15 and C16 sit across the supply
- 1× 10 µF electrolytic (C8) - the engine's timing cap, the part that turns a scream into a tick. Stripe to ground
- 3× 100 µF electrolytic (C10, C13, C14) - the Opto Duet's two output caps and one across its rails. Stripe to ground
- 10× wire links (J6 to J15) - offcuts of component leg. Three of the Opto Duet's run diagonally over a 555, two across IC3 and one across IC4, so they go in before the chips. J15 is the long link down hole 21 that joins the Opto Duet's ground to the Grub's
The Atari Punk Console, strips z to ai
- 2× NE555 timer, 8-pin DIP (IC5, IC6) - spot it: NE555 printed on top, notch marks pin 1. IC5 runs free and sets the pitch; IC6 fires once on every one of its ticks and sets the width
- 1× 1K resistor (R24) - spot it: bands brown-black-red. Stands on end beside IC5. My tempo stop
- 1× 10nF ceramic (C17) - spot it: printed 103. IC5's timing cap
- 2× 100nF ceramic (C18, C20) - spot it: printed 104. C18 is IC6's timing cap; C20 sits across the APC's supply
- 1× 10 µF electrolytic (C19) - the APC's output cap. Stripe toward R22
- 9× wire links (J16 to J24). J24 runs diagonally under IC5, so it goes in before the chip
The clock, in the holes left of the APC
- 2× 10K resistor (R22, R23) - spot it: bands brown-black-orange. The two that sum the voices, the same two Grubworks had off the board. R23 stands on end; R22 lies flat across three strips
- J25, a link from strip y down to strip ad, carrying the Opto Duet's out to R23
- J26, the long link down hole 2 from strip w to strip ai, the APC's ground
- J27, an insulated wire from strip b down to strip k, joining the preamp's output to the divider's clock. It runs diagonally past other parts, so use hookup wire with its jacket on, not a bare leg offcut
The board
- 1× stripboard, 35 strips × 23 holes or larger - a cheap board is fine, but turn your iron down
Off the board
- 2× 100K pot - hum's TEMPO and PITCH, in place of the Opto Duet's two eyes. Each one wired as a variable resistor: one outer lug and the wiper, the third lug left empty
- 2× 1K resistor - spot it: brown-black-red. One in series with each of those pots, between the pad and the outer lug, so a knob turned to the end never shorts a 555's pin 7 onto its timing cap
- 1× LED, any color, and 1× photocell (LDR) - the vactrol, sealed face to face in heat-shrink. The LED runs bare, no resistor, as on the Opto Duet
- 2× B500K linear pot - chew's TEMPO and WIDTH, wired as on my APC: one outer lug to its _1 pad, the wiper and the other outer lug together to its _W pad
- 2× 1K resistor - spot it: brown-black-red. One in series with each of chew's pots, between the _1 pad and the outer lug, so neither knob turned to the end ties the supply straight onto a 555's pin 7. My Grubworks APC had none; these are the fix
- 1× B100K linear pot - GAIN. Wired as a variable resistor: one outer lug to GAIN_A, the wiper to GAIN_W, the third lug left empty. Its 1K floor is on the board
- 1× B100K linear pot - VOLUME, all three lugs
- 2× SPST toggle - chew on and hum on, one in each voice's supply lead, as in my box
- 1× SPST switch - TRACK, across TRK_A and TRK_B
- 7× SPST switches, one per octave
- 2× 1/4″ jack - the output, and EXT IN, which must be a switched jack: one with a third lug that touches the tip with nothing plugged in
- 1× LED and a 2.2K resistor - the power light, as in my box
- 1× DC jack and a 9 V supply, center negative. The Opto Duet wants 6 V and up, or its LED stops flashing
- 1× momentary switch between MR_PAD and V+ for a retrigger - optional, the same as on the Grub
- An SPST toggle for power, in the positive supply lead between the DC jack and the board's V+ pad. Not in the layout file - it is off the board, and every build on this shelf gets one
The layout file is the guide
Like every layout on this shelf, the build document for this one is the file itself: ↓ Download Grubworks.json - import it into Copper Bottom and the editor gives you the board picture, the placement walkthrough, the electrical checks and a printable build sheet, all from the same file. No coordinates are written out on this page on purpose: the editor is the viewer, and a number typed twice is a number that can drift.
Four boards in one. Strips a to i are the Grub Divider as I built it, strips q to y the Opto Duet as I built it, and strips z to ai my Atari Punk Console as I built it for Grubworks (APC_v1.json), moved eleven holes right in one piece. None of them changed by a hole inside. The preamp on j to p shares only the Grub's ground strip, through J3; J15 and J26 bring the other two grounds up to it. The supplies stay separate on the board: the Grub runs from V+, the preamp from PRE_V, the Opto Duet from OPTO_V through its own D1, and the APC from VIN, which is what lets each voice have its own on switch. Copper Bottom's six warnings on this file are the two boards' own, carried over: C8 standing close by IC3, R17 and R19 standing on end, and pin 5 of each of the APC's 555s left on its own, as on my board.
The netlist
Quoted verbatim from the layout file, and emitted from the copper rather than typed
beside it - so checking the board against it can only pass. What it is for is carrying the
circuit somewhere else, and telling you what each strip is doing while you stare at it.
VREF to GAIN_A is the preamp, OPTO_V to
OPTO_OUT the Opto Duet, and everything named APC_ the Atari Punk
Console. CLOCK is the two voices summed.
The off-board wiring
Forty pads, and thirty-seven of them take a wire: six knobs, the vactrol, two voice switches, the tracking switch, seven octave switches, two jacks and the supply, with MR_PAD only if you want the retrigger. VCC is a test pad that tells the checker that strip is a supply, and LED2_A and LED2_K can stay empty.
| Pad | Goes to |
|---|---|
| V+ / PRE_V / GND | The supply, through the power toggle. DC jack positive to the toggle, and the toggle's common to both V+ and PRE_V - one feeds the Grub, the other the preamp. Negative to GND, which is also both jack sleeves |
| VIN | chew on. One lug of an SPST toggle to VIN, the APC's supply; the other lug to the power toggle's common, beside the V+ wire |
| OPTO_V | hum on. The same again for the Opto Duet: one lug to OPTO_V, its supply ahead of D1, the other to the power toggle's common |
| EXT_IN / CLOCK | The EXT IN jack, a switched one. Tip to EXT_IN, the switch lug to CLOCK, sleeve to GND. With nothing plugged in, the switch lug touches the tip, so the preamp hears both voices; a plug lifts it, and the cable is all the Grub hears |
| GAIN_A / GAIN_W | The GAIN pot, a variable resistor: one outer lug to GAIN_A, the wiper to GAIN_W, which is ground. At zero ohms it is the most gain, about 101, and at the full 100K about 2; which end of the turn that is depends on which outer lug you use |
| TRK_A / TRK_B | The TRACK switch. Closed, it puts C7 across the feedback resistor |
| APC_TEMPO_1 / APC_TEMPO_W | chew's TEMPO pot. APC_TEMPO_1 to a 1K, the 1K to one outer lug; the wiper and the other outer lug together to APC_TEMPO_W |
| APC_WIDTH_1 / APC_WIDTH_W | chew's WIDTH pot, the same way around: APC_WIDTH_1 to a 1K, the 1K to one outer lug, the wiper and the other outer lug to APC_WIDTH_W |
| LDR_T1 / LDR_T2 | hum's TEMPO, a 100K pot, where the tempo eye was: LDR_T1 to a 1K, the 1K to one outer lug, the wiper to LDR_T2, the third lug empty |
| LDR_P1 / LDR_V2 | hum's PITCH, a 100K pot, where the pitch eye was, the same way around: LDR_P1 to a 1K, the 1K to one outer lug, the wiper to LDR_V2 |
| LED_A / LED_K LDR_V1 / LDR_P2 | The vactrol. The LED on LED_A and LED_K, bare, and the photocell on LDR_V1 and LDR_P2, sealed face to face in heat-shrink. LDR_V1 shares a strip with LDR_P1 and LDR_P2 with LDR_V2, so the cell sits in parallel with PITCH |
| SW1_A … SW7_A / BUS | The seven octave switches. Each SW pad is one octave arriving through its own weighted resistor; each switch's other side goes to the BUS pad, which is where they all sum |
| VOL_T / VOL_W / VOL_G | Volume pot, all three lugs |
| OUT_T / OUT_S | Output jack, tip and sleeve |
| The power light | No pad of its own: a 2.2K from the power toggle's common to the LED's long leg, the short leg to GND |
| MR_PAD | The Grub's master reset, held low by R9. A momentary switch between MR_PAD and V+ is a retrigger, or leave it empty |
| LED2_A / LED2_K | Optional. An LED here flashes with hum's voice, as the Opto Duet's box light does. Leave them empty if you like |
Before the chips go in
Five meter checks, and they find most of what this board can get wrong.
- No chips, power off, nothing in EXT IN: the meter beeps from the CLOCK pad to the EXT_IN pad, through the jack's switch. Push a plug in and it stops. If it never beeps, the switch lug is on the wrong pad.
- Before the TL072 goes in, power on: strip j reads about half the supply, near 4.5 V on 9 V. If it does not, R14, R15 or C5 is the place to look.
- Still no chip: pin 8's strip reads the full supply and pin 4's reads 0 V. If pin 8 is dead, the PRE_V wire is the one missing.
- chew on, then off: strip z, the APC's supply, reads the full supply, then nothing. The same for hum at the VCC pad.
- TL072 in, both voices off, nothing plugged in: strip b, the divider's clock, sits near the half rail. If it reads 0 V, J27 is missing.
Built, and heard
Not this board yet. I built Grubworks: the Grub, an APC and an Opto Duet as three boards in one box. The Opto Duet is the one that surprised me. When the Grub spits its signal back out, it makes a beat - three up and one down, that kind of thing - so it sounds rhythmic all by itself, without any other signal. I think that is because the Opto Duet has an actual tempo.
I have not built this preamp, but I have tried the idea: I fed the Hive into a dead-bug Hornet I had already built and wired the Hornet's output straight into the plain Grub's input, and it sounds amazing. That is a pre-gain stage too, just a louder one.
How it works, in one breath
chew is two timers, one chasing the other. IC5 runs free at a pitch TEMPO sets, and every time its output drops it triggers IC6, which puts out one pulse as long as WIDTH says and then waits for the next. When the pulse is shorter than the pitch you hear the pitch; when it is longer, IC6 misses triggers and you hear the divisions and the beating between them. C19 takes the DC off and hands it to R22.
hum's engine, IC3, runs slow: its timing cap is 10 µF, so TEMPO sets a tick rather than a tone. Every tick flashes the LED behind its output cap, and the LED is sealed to a photocell in the voice, IC4's timing spot, in parallel with PITCH. A flash yanks the voice's pitch up and lets it go, so it chirps once per tick. Both 555s mix behind R17 and R19, and J25 carries that down to R23.
R22 and R23 sum the two voices at CLOCK. Each voice's on switch cuts its supply, so CLOCK carries chew, hum, both, or nothing. From there it goes out to the EXT IN jack's switch and, with nothing plugged in, straight back in on the tip, into the preamp.
The CD4024 counts edges. Its first output changes on every second edge, an octave down; each output after it halves that again, seven octaves in all, and the weighted resistors bring them into one bus with the low ones strongest. A chirp is not a steady tone: it is a burst of edges that starts fast and slows, once per tick. My reading of why hum makes a beat, and it is a reading, not a measurement: the counter counts its way through each burst, and how far it gets before the next tick decides which octaves change, so the outputs fall into a pattern that repeats on the engine's tempo.
The counter only moves when its input crosses a trigger point near the middle of the supply, so a weak signal does nothing and a strong square does everything. The preamp is one half of the TL072 as a non-inverting amplifier around a half rail: R14 and R15 make about 4.5 V, R11 holds the input there, and the signal comes in through C3. R12 against R13 plus the GAIN pot sets how much it is multiplied, from about 2 to about 101, and C4 in the gain leg keeps the output sitting at the half rail with nothing playing. Turn it up and the op-amp clips at both ends and the counter sees a clean square. The output goes straight into the counter with no cap, through J27, on purpose: a cap would center the swing on ground and throw half of it away.
A guitar note carries strong harmonics, and some of them cross the trigger point more than once a cycle, which is part of why octave dividers glitch. TRACK puts C7 across R12, which turns the gain down above about 720 Hz and favors the fundamental. The other half of the TL072 is parked as a follower on the half rail, doing nothing.
What is new here, and untested. In my box the two voices went into the Grub straight, through the same two 10Ks. Here they go through the preamp first, so GAIN works on them too. chew and hum are already full-size squares and chirps, so the preamp should only square them up harder, but nobody has heard it. If they come out worse than in Grubworks, turn GAIN all the way down first.
The preamp's numbers are arithmetic. Gain is 1 + 100K over (1K + the pot). The tracking corner is 1 over 2π times 100K times 2.2nF, about 720 Hz, and 2.2nF is a starting value: bigger tracks lower notes more cleanly and dulls the top. A TL072's output gets to within about 1.5 V of each rail; whether that crosses the CD4024's trigger points on 9 V is the first thing to check on the bench.
Three pins on the CD4024 go nowhere and that is correct. Pins 8, 10 and 13 are no-connects, and Copper Bottom's checks leave them alone.
Things to try
None of these have been tried on this board, because this board has not been built.
- hum on its own, and play TEMPO and the switches. That is the beat Grubworks was built around.
- chew and hum both on. The divider counts wherever the sum crosses its trigger point, so it is a third pattern, neither voice alone.
- The eyes back. Photocells on the LDR_T and LDR_P pads instead of the two pots, the Opto Duet's way, and the room light plays the beat.
- Swap the op-amp. Any dual with the standard pinout fits the same holes. An LM358 gets closer to ground at the bottom of its swing; an NE5532 is faster.
- Change C7. 4.7nF for bass, 1nF to keep more top.
- Jumper an SW pad to MR_PAD for odd divisions and looping patterns, the Grub's own trick.
The Opto Duet is mine: the 555 astable core is the same public circuit as my 555 Optical Theremin guides, and the opto-coupled engine and voice is my own, found at the bench in August 2026. chew is Forrest Mims's Stepped Tone Generator, the Atari Punk Console, on my own board after Paul Stevenson's two-555 Atari Punk Console layout on Paul In The Lab. The divider is my Grub Divider, after the classic 4024 octave divider. The preamp is the non-inverting op-amp stage in every op-amp book. The layout and the wiring are mine, drawn in Copper Bottom, and so is anything wrong with them.