top of page
Mini HV High Voltage Power Supply Module for 400V Geiger Tube with Pulse Output

Mini HV High Voltage Power Supply Module for 400V Geiger Tube with Pulse Output


Unique Mini High Voltage Module for 400V Geiger Tube with Pulse processing circuit for laboratory usage, portable DIY Geiger Counters or building an external Geiger probe with long cable.

This is miniature specially designed power supply for Geiger tube with pulse processing circuit. The hardware will allow you to power 400V Geiger Tube and get ready digitized logic level pulses from the output. These ~10uS pulses can be counted by Arduino INT counter or by any other microcontroller or ditigal counters. The module can be used for building portable DIY Geiger Counter, Dosimeter or Geiger probe where you need to drive a signal cable. The module is ready-to-use unit to power Geiger tube. 


The module has installed 10 Mega ohm load resistor that fit many 400V Geiger tubes. Tube cathode is connected to ground GND. The circuit uses anode signal capture method with grounded cathode that's better for less noise. Keep HV wire short length as possible to reduce parasitic capacitance on tube anode.

High voltage step-up converter has excellent regulation to keep HV voltage within recommended plateau limits for correct operation of GM tube! Every module is professionally assembled and tested. Originally it was designed and used for industrial grade devices. Build with only high quality materials and certified components.

Every sample covered with varnish insulation for environmental protection.


Module Size: 22mm x 35mm
Input Voltage: 5.0V - 5.5V
Output Voltage: 390V - 450V
Maximum output current: 50uA
Installed load resistor: 10 Mega Ohm
Quiescent Current on Background: <1.5mA (may vary, depend on charge pump state)
GM Pulse Duration: ~10uS, 5V VDD logic level



HV: tube anode(+) (400V)

GND: tube cathode(-)


VDD: 5.0V

GND: power supply ground

SIG: signal output, pulses ~10us


The module is compatible with following GM tubes: SBM-20, SBM-21, SBM-10, SI-8B, PM-1208, SI-29BG and more 400V models.

The circuit DO NOT HAVE reverse polarity protection, be careful to connect VDD and GND in correct way, see the diagram! Do not short-cut High Voltage output! Use heat shrink tube to protect the module from short-cut if your enclosure is metallic!

  • Code example for Arduino:

    simple code example you can use on Arduino UNO to count GM pulses that are coming from the module.

    // Arduino UNO Example code to count GM pulses during one minute from the detector
    // if the INT is floating you may need to add 1K resistor to pull down to GND the INT port

    #include <SPI.h>
    unsigned long counts;            //variable for GM Tube events
    unsigned long cpm;               //variable for CPM
    unsigned long previousMillis;    //variable for time measurement
    void tube_impulse(){             //procedure for capturing events from Geiger Kit
    void setup(){                                //setup procedure
      counts = 0;
      cpm = 0;
      Serial.begin(9600);                        // start serial monitor
      pinMode(2, INPUT);                         // set pin INT0 input for capturing GM Tube events
      digitalWrite(2, LOW);                      // turn off internal pullup resistors, you may need to add 1K resistor to pull down to GND the INT port (if INT pin is floating)

    //---------------------Allow external interrupts on INT0-----------------------------//
      attachInterrupt(0, tube_impulse, RISING);  //define external interrupts low-high-low

    void loop(){                                    //main cycle
      unsigned long currentMillis = millis();
      if(currentMillis - previousMillis > 60000){   // if 60 seconds are passed
        previousMillis = currentMillis;
        cpm = counts;

            Serial.print(cpm);     // send cpm data to Radiation Logger
            Serial.write(' ');     // send null character for "Radiation Logger" to separate next data, check your hardware for actual UART separate sing

        counts = 0;

bottom of page