From e-ink headaches to high voltage unknowns
It's been a few weeks since the last update and a lot has happened, so this is going to be a longer one covering multiple milestones. I'll try to keep it moving.
The display swap
While waiting for the HV boost modules I started working on the e-ink display. I'd originally planned to use a Waveshare 3.97" (800×480, 4-level grayscale) but switched to a Good Display 5.79" wide-format panel (792×272, monochrome) because it had a much faster full refresh on paper (3.5s v 0.7s). Trade-off is losing grayscale, but for a clock and oracle readout, monochrome with good typography is plenty.
What I didn't expect was spending a full week debugging this thing. I've realized it doesn't do partial updates without RAM buffering, I just assumed it had partial updates, and my little ESP32 is just barely enough, so to avoid this again, I just went and ordered an e-reader HD display and we are going to call it a luxury experience. I'll go more into it later, I've put the display on the back burner now that the HV boosters have arrived.
Laser-cut tube scaffold
I had an acrylic scaffold laser-cut to hold four J305 tubes for testing. The design puts each of the six possible tube pairs at a different angle with a different geometric aperture, so I can eventually compare coincidence rates across different alignments. The tubes are wrapped in black heat shrink for light shielding (J305s are photosensitive and will false-trigger from ambient light), then taped securely into the cradles.
Single tube bring-up
The HV boost modules finally arrived and I spent a full day getting a single tube working. It did not go smoothly.
First problem: one of the HV boosters was dead on arrival. No output at all, trimpot did nothing. Swapped it for the second module and got a clean ~410V output. Good reminder to always order spares — I have more on the way.
Second problem, and the one that ate most of the day: with a working HV module and a tube connected, I was getting zero signal. The tube was powered, presumably counting background radiation, but nothing was making it through to the ESP32. I went through the chain methodically — checked voltages, checked connections, then checked the 74HC14 inputs — and eventually traced it to the pulse stretcher. The BAT54/RC network that worked perfectly with clean synthetic pulses from the ESP32 wasn't behaving the same way with the real analog signal from the cathode. I rebuilt the stretcher section and it started working. I probably had a jumper out of place.
That moment when the serial monitor starts printing counts at roughly the right background rate (~25–40 CPM for a J305) is genuinely satisfying. Finally one tube, clicking away, counting background radiation on my desk in Hanoi.
Two tube rebuild
With one tube proven, I broke down the single-tube setup and rebuilt for two channels. This is where it got messy.
The second channel needed its own pulse conditioning chain — coupling cap, bias network, 74HC14 shaping, stretcher, re-squaring — a copy of the first one. And the coincidence gate needed both stretched outputs feeding the 74HC08 AND gate cleanly. In theory I'd already validated all of this with synthetic pulses. In practice, with real analog signals and two HV modules running simultaneously, new problems appeared.
The coincidence timing was off. I was either getting zero coincidences (window too narrow or pulses not overlapping) or suspiciously high counts that were clearly noise rather than real events. First I was getting 1000+ hits a second — clearly noise. I wrapped the cathode lines with grounded cables, that brought it down to 200-ish.
Then I threw capacitors on the HV boosters' inputs (which felt so wrong). That brought it down to around 30. I tried to solder up a tiny 100pF ceramic cap and it was a joke, didn't do anything. Interestingly enough, Claude recommended ferrite beads on the input...










