1. Prototypes
Current status as of June 25, 2022
Geiger counter LCD/Buzzer version (note: video has English subtitles).
Status as of May 1, 2022
Geiger counter LED/Speaker version (note: video has English subtitles).
2. G-M Tubes
For registering pulses by the counting system proper working conditions have to be established. That means in practical terms generating a tube voltage within the Plateau area.
Beyond the "Knee" all pulses should be counted. Below the starting voltage, no pulses should be counted at all.

SBM-20 (or STS-5)
As far as I know old USSR stock. Can detect only Beta and Gamma radiation (note: for Alpha you need special design tubes). Technical data:
SBM-20_GER1.pdf (mikrocontroller.net)
I paid around 30€ including shipment from a seller in Bulgaria (tubes from Ukraine or Russia are not easy to get at the moment, you guess why).
Z1A
Far less sensitive than SBM-20 (or any other tube available), but okay for first tests and easily available in Germany. Can detect only Beta and Gamma radiation.
Below copy&paste some of the tube's technical data (according to the distributor www.pollin.de; as of March 2022, the price was 15€):
- starting voltage 280…320 V
- working voltage 390 +/-10 V
- dimensions (length*diameter): ca. 65*7.5 mm
3. Emitters
To test the viability of the assembly I use small pieces of Uranium glass that can be bought in online shops (for obvious reasons this matter doesn't radiate intensely).
Natural radiation is detected about 20 CPM with the most recent prototype and STS-5 tube (in 49°46' N, 11°12' E).
4. Program development
A MicroPython program is quite short if it's just about the PWM- and HV-generation, respectively:
from machine import Pin, PWM pwm = PWM(Pin(13)) # pick your GPIO pwm.freq(1250) # PWM-frequency in Hz (empirical) pwm.duty_u16(55000) # duty cycle (empirical), 16bit (0-65535)
It is slightly more difficult to implement with C, but by and large not really a problem.
As to first prototypes, a radiation source nearby is either displayed visually in a simple manner (5mm LED) and/or via clicks (speaker), realised thru an "outer electronic path" (see paragraph "Schematic").
But as we have a µC connected there exist more clever ways to handle measurement data. Triggering an IRQ for that matter is probably the most pragmatic way for a pulse (gas discharge, i.e. counting event) has a duration of about 0.3 ms (in my github repository you'll find complete working examples).
Conveniently, the Pico SDK makes common types of displays (OLED, LCD) fairly easy to use.
5. Schematic
VBUS = +5V (Pico Pin 40). Using the 3.3V from Pin 36 would be the 2nd option here.
Diode prevents immediate discharge of the capacitor and tube voltage is building up quickly. The coil voltage peaks into the double, then triple digits every time the transistor cuts off (see paragraph 6, "Simulation").
This minimalist design lacks a control loop for the tube voltage what may be a problem if you stress with a very high counting rate.
An LED is good for a first test. I suggest putting in a 10 kOhm resistor in the "outer path" when you want to do something more fancy (but consider supplying this path with 3.3V then, especially when you use a GP port as input).
Upper limit of the PWM frequency is a few kHz: around 2 kHz the HV is starting to drop considerably (I got the hint that the diode is to blame for this).
(note: MPSA42 changed to MPSA44, see comment section)

6. Simulation
Analog circuitry is easy to simulate (you see a screenshot of the SW "MapleSim" below). The simulation gave me more insights about the principle of the voltage generation (self-induction) and will be used for ensuing designs.
7. EMC
Air wirings behave like an antenna and should be avoided for future prototypes. A ground plane for a PCB design is mandatory.
The counter on some of your photos is not SBM-20, but STS-5, an older version with similar specifications.