Posted on 22 Comments

GY561 Frequency & Power Meter

The latest addition to my radio shack is the GY561 frequency & power meter, which has already come in useful for measuring the output power of all my radios.


It’s a small device, roughly the same size & weight as a stock UV-5R. Power is provided by 3 AAA cells.


The display is a standard HD44780 8×2 module. The display on this unit isn’t backlit, so no operating in the dark.

Cover Removed
Cover Removed

The cover pops off easily to allow access to the internals, without having to remove any screws!
The 4 screws on the back of the unit hold the heatsink plate for the 50W 50Ω dummy load resistor.
Removing the cover reveals a couple of adjustments, for frequency & RF power calibration.

There are also 3 tactile switches that aren’t on the front panel. According to the manual (which in itself is a masterpiece of Chinglish), they are used to software calibrate the unit if an accurate RF power source is available. I will attempt to do a reasonable translation when time allows.

Disassembly further than this involves some desoldering in awkward places, so a search of the internet revealed an image of the rest of the internal components. In the case of my meter, all the part numbers have been scrubbed off the ICs in an attempt to hide their purpose. While it’s possible to cross-reference IC databooks & find the part numbers manually, this process is a time consuming one. Luckily the image I managed to locate doesn’t have the numbers scrubbed.

Total Disassembly
Total Disassembly

Under the LCD is some 74HC series logic, and a prescaler IC as seen in the previous frequency counter post. However in this unit the prescaler is a MB506 microwave band version to handle the higher frequencies specified.
In this case however the main microcontroller is an ATMEGA8L.
This is complemented by a SN54HC393 4-bit binary counter for the frequency side of things. This seems to make it much more usable down to lower frequencies, although the manual is very generous in this regard, stating that it’s capable of reading down to 1kHz. In practice I’ve found the lowest it reliably reads the frequency input is 10MHz, using my AD9850 DDS VFO Module as a signal source.
It did however read slightly high on all readings with the DDS, but this could have been due to the low power output of the frequency source.
Just like the other frequency counter module, this also uses a trimmer capacitor to adjust the microcontroller’s clock frequency to adjust the calibration.

The power supply circuitry is in the bottom left corner of the board, in this case a small switching supply. The switching regulator is needed to boost the +4.5v of the batteries to +5v for the logic.
Also, as the batteries discharge & their terminal voltage drops, the switching regulator will allow the circuit to carry on functioning. At present I am unsure of the lower battery voltage limit on the meter, but AAA cells are usually considered dead at 0.8v terminal voltage. (2.4v total for the 3 cells).
When turned on this meter draws 52mA from the battery, and assuming 1200mAh capacity for a decent brand-name AAA cell, this should give a battery life of 23 hours continuous use.

On the back of the main PCB is a 5v relay, which seems to be switching an input attenuator for higher power levels, although I only managed to trigger it on the 2m band.

Finally, right at the back attached to an aluminium plate, is the 50Ω dummy load resistor. This component will make up most of the cost of building these, at roughly £15.

On my DVM, this termination reads at about 46Ω, because of the other components on the board are skewing the reading. There are a pair of SMT resistors, at 200Ω & 390Ω in series, and these are connected across the 50Ω RF resistor, giving a total resistance of 46.094Ω.
This isn’t ideal, and the impedance mismatch will probably affect the calibration of the unit somewhat.

The heatsinking provided by the aluminium plate is minimal, and the unit gets noticeably warm within a couple of minutes measuring higher power levels.
High power readings should definitely be limited to very short periods, to prevent overheating.
The RF is sampled from the dummy load with a short piece of Teflon coax.

There’s a rubber duck antenna included, but this is pretty useless unless it’s almost in contact with the transmitting antenna, as there’s no input amplification. It might be handy for detecting RF emissions from power supplies, etc.

For the total cost involved I’m not expecting miracles as far as accuracy is concerned, (the manual states +/-10% on power readings).
The frequency readout does seem to be pretty much spot on though, and the ability to calibrate against a known source is handy if I need some more accuracy in the future.

I’ve also done an SWR test on the dummy load, and the results aren’t good.

At 145.500 MHz, the SWR is 3:1, while at 433.500 it’s closer to 4:1. This is probably due to the lower than 50Ω I measured at the meter’s connector.
These SWR readings also wander around somewhat as the load resistor warms up under power.

I’ll probably also replace the AAA cells with a LiPo cell & associated charge/protection circuitry, to make the unit chargeable via USB. Avoiding disposable batteries is the goal.

Posted on 1 Comment

SainSmart Frequency Meter

Thanks to Lewis, M3HHY for lending me this one 🙂

Here’s a quick look at a Sainsmart frequency counter module. These are useful little gadgets, showing the locked frequency on a small LCD display.

It’s built around an ATMega328 microcontroller (µC), and an MB501L Prescaler IC. The circuit for this is very simple, and is easily traced out from the board.

Frequency Counter
Frequency Counter

Here’s the back of the board, with the µC on the left & the prescaler IC on the right. This uses a rather novel method for calibration, which is the trimmer capacitor next to the crystal. This trimmer varies the frequency of the µC’s oscillator, affecting the calibration.

Input protection is provided by a pair of 1N4148 diodes in inverse parallel. These will clamp the input to +/-1v.
The prescaler IC is set to 1/64 divide ratio. This means that for an input frequency of 433MHz, it will output a frequency of 6.765625MHz to the µC.

The software in the µC will then calculate the input frequency from this intermediate frequency. This is done because the ATMega controllers aren’t very cabable of measuring such high frequencies.

The calculated frequency is then displayed on the LCD. This is a standard HD44780 display module.


Power is provided by a 9v PP3 battery, which is then regulated down by a standard LM7805 linear regulator.


I’ve found it’s not very accurate at all at the lower frequencies, when I fed it 40MHz from a signal generator it displayed a frequency of around 74MHz. This is probably due to the prescaler & the software not being configured for such a low input. In the case for 40MHz input the scaled frequency would have been 625kHz.


Posted on Leave a comment

Raspberry Pi Geiger Counter

Geiger Counter Setup
Geiger Counter Setup

Here’s my latest project with the Pi: interfacing it with the Sparkfun Geiger counter & outputting the resulting data to a character LCD.

The geiger counter is interfaced with it’s USB port, with the random number generator firmware. A Python script reads from the serial port & every minute outputs CPM & µSv/h data to the display.

The Python code is a mash of a few different projects I found online, for different geiger counters & some of my own customisations & code to write the info to the display & convert CPM into µSv/h.

This also writes all the data into a file at /var/log/radlog.txt

The code for this is below:

import time
import sys
import serial
import os
import RPIO
from RPLCD import CharLCD
from subprocess import * 
from datetime import datetime

# configuration settings

logfile = "/var/log/radlog" # location to save log data
serial_port = "/dev/ttyUSB0"
lcd = CharLCD(pin_rs=15, pin_rw=18, pin_e=16, pins_data=[21, 22, 23, 24], numbering_mode=RPIO.BOARD, cols=16, rows=4, dotsize=10) #Init LCD with physical parameters

f = open(logfile,"a")

ser = serial.Serial(serial_port,9600,timeout=1)

one = 0

#Init LCD with initial values.
lcd.cursor_pos = (0, 1)
lcd.write_string("Geiger Counter")
lcd.cursor_pos = (1, 2)
lcd.cursor_pos = (2,-3)
lcd.write_string("Please Wait...")
lcd.cursor_pos = (3, 0)
lcd.write_string(str(0) +" uSv/h")
f.write("Geiger Counter Initialized\n")
while 1==1:
  stamp = int(time.time())
  stamp == round(stamp,0)
  stamp = stamp + 60
  count = 0  
  while 1==1:
      ct = int(time.time())
      ct == round(ct,0)
      if ct > stamp:  break
      #Read from serial port
      bit =
      if bit != "":
          count = count + 1
          #Conversion of counts per minute to uSv/hr
          usvh = count * 0.01
  at = str(time.asctime())
  t = str(time.time())
  #Write line to log file & print info to console
  f.write("["+at+"."+t+"] "+str(count) + " CPM " +str(usvh) + " uSv/h\n")
  print "["+at+"."+t+"] Count "+str(count) + " " + str(usvh) +" uSv/hr"
  #Send measurement info to LCD
  lcd.cursor_pos = (0, 0)
  lcd.write_string('%b %d  %H:%M:%S\n'))
  lcd.cursor_pos = (1, 0)
  lcd.write_string("Radiation Level:")
  lcd.cursor_pos = (2, 1)
  lcd.write_string(str(count) +" CPM")
  lcd.cursor_pos = (3, -1)
  lcd.write_string(str(usvh) +" uSv/h")
Info Display
Info Display
Posted on Leave a comment

New Feature – Geiger Counter

Here’s something new, an internet connected Geiger counter! The graph in the sidebar is updated once every 60 seconds, and can be clicked on for a larger version. Measurements are in Counts Per Minute, the graph logs 1 hour of data.


The counter itself is a Sparkfun Geiger counter, with the end cap removed from the tube so it can also detect alpha radiation.

Connected through USB, a Perl script queries the emulated serial port for the random 1 or 0 outputted by the counter when it detects a particle. The graph is pretty basic, but it gets the point across. Anybody who wishes to contribute to improve the graphing is welcome to comment!

Geiger Counter
Geiger Counter
Posted on Leave a comment

Sanyo Talkbook VAS


Here is a Sanyo tape recorder, with built in voice activation. Takes standard audio cassettes.
Here visible is the speaker on the left, microphone is on the right of the tape window. The tape counter is at the top.

Back Removed
Back Removed

Back cover removed from the unit, showing the PCB & the connections. The IC is the controller/amplifier.


Top of the PCB, control switches, volume potentiometer & microphone/headphone sockets on the right. DC power jack top left. Switch bottom centre senses what mode the tape drive is in.

Tape Deck
Tape Deck

Rear of the tape deck, main drive motor is bottom right, driving the capstan through a drive belt. This drives the tape spools through a series of gears & clutches. Belt going to top left drives the tape counter.


Front of the tape drive. Read/write head is top centre. Blue head is bulk erase head used during recording.


Main speaker. 8Ω 0.25W.


Simple mechanical tape counter.

Posted on 2 Comments

Current Cost ‘Envi’ CC128 Power Meter

Display Unit
Display Unit

This is the Current Cost CC128 Real Time Power Meter. Shown here is the display unit, British Gas issued these free to some customers.
This unit measures current power draw in Watts, cost of power currently being used (requires unit price to be set), overall kWh usage over the past 1, 7 or 30 days & power trends during the day, night & evening. Also displays current time & current room temperature.

Display PCB
Display PCB

Here the front panel of the display has been un-clipped. At the bottom are the RJ-45 serial port & power connections.
This unit uses a PIC micro-controller as it’s CPU (PIC18F85J90) Just above & left of the CPU is the 433MHz SPD radio receiver module. The chips on the right of the CPU are a 25LC128 SPI serial EEPROM for data storage & a 74HC4060 14 stage binary counter, to which is connected the 32kHz clock crystal. The red wire around the top of the display is the antenna for the radio receiver.

For more info on the CC128 in general, the serial port & software for computer data logging, see this link
See this link for Current Cost’s list of software

Processor & Radio
Processor & Radio

Closeup of the ICs on the mainboard.

Transmitter Unit
Transmitter Unit

Here we have the transmitter unit, with Current Transformer (CT). The red clamp fits around one of the electric meter tails & read the current going to the various circuits. This unit is powered by 2x D cells, rated at a life of 7 years.

Transmitter PCB
Transmitter PCB

The PCB inside the transmitter. Again very minimal design, unknown controller IC, 433MHz radio transmitter on right hand side with wire antenna. Two barrel connectors on left hand side of board allow connection of up to two more CT clamps for measurement of 3-phase power. Centre of board is unmarked header. (ICSP?)

Current Transformer
Current Transformer

CT unit. Inside is a coil of wire & an iron core which surrounds the cable to be measured.