Skip to the content
PCBKitNew board
2 layers140 × 50 mmYarrow counter basic, the printed circuit board in 3D

Yarrow counter basic

alplix/yarrow

Open firmware for the FNIRSI GC-03 radiation detector

Size
140 × 50 mm
Copper layers
2
Thickness
1.6 mm
Parts
62
Nets
37
Pads
212
Tracks, vias
0, 0
Pours
1
Routed
Not yet
KiCad
KiCad 9.0 (file 20241229)
Created
18 Oct 2026
Updated
4 Nov 2026

Overview

Yarrow counter basic is an open-source printed circuit board by alplix, from the alplix/yarrow repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 140 × 50 mm with 62 parts on 37 nets.

It is built around the CH32F203C8T6, 74AHCT1G04GV and AP2112K-3.3, with the USBLC6-2SC6, M2.5 and BAV99 among its other parts. Its parts include 20 resistors, 17 capacitors, 5 ICs, 5 connectors and 3 diodes. It belongs with the sensors and measurement boards of this library.

Main components

7

README

README.md

Yarrow

Open software for Geiger counters: firmware for the FNIRSI GC-03, a BOINC monitor that reads several kinds of counters, and a desktop app. Together they feed a live, open map of the natural background dose rate, city by city.

Yarrow screens

Website: yarrow.athena.org.tr · Live map: bitboinc.athena.org.tr/yarrow.php · Data by city: bitboinc.athena.org.tr/yarrow_history.php · Releases: firmware per language and Yarrow Hub

3D Printed Dock: https://www.crealitycloud.com/tr/model-detail/6adf8eee3737a58cb2d2e141?profileId=6adf8eee3737a58cb2d2e147

The parts

Firmware (src/)Open firmware for the FNIRSI GC-03: readable at a glance, measures honestly, logs for years.
BOINC monitor (monitor/)A small program that reads a counter, cuts its pulses into exact 10-minute bins and sends them to the project as BOINC trickles.
Yarrow Hub (hub/)A desktop app that works without BOINC: live dose rate, history, statistics, alarms, CSV export.
Website (site/)The project page, in English and Turkish.

Supported counters

CounterConnectionMonitorHub
FNIRSI GC-03 with the Yarrow firmwareUSB serialyesyes
Radioactive@Home USB counters (boards 2.01 to 2.60, the kit, and 3.01)USB HID, nothing to flashyesyes
GQ GMC-300 / 320 / 500 / 600USB serialyesyes (live, recorded while connected; no stored history)

Only raw pulse counts from the tube are accepted, never a rate the counter has smoothed itself. A new counter is one small driver in monitor/yarrow_src_*.c; see docs/boinc-monitor.md.

Join the map

  1. Join bitboinc and attach your computer in the BOINC Manager.
  2. In your project preferences select the Yarrow monitor and enter your country, city and (if you like) your detector.
  3. Plug in the counter and leave the computer on. Only the city is shared, never a more exact place.

Yarrow Hub

Download yarrow-hub-windows-x64-setup.exe. It shows the live dose rate, keeps the history on your computer, draws statistics, shows nSv/h, µSv/h or µrem/h, rings alarms at levels you choose and exports CSV. With a GC-03 it also sets the clock, calibrates the tube and installs firmware. Built with Tauri (Rust and TypeScript); to build it: cd hub/app && cargo tauri build.

What the firmware does

Radiation

  • Dose rate, counts per minute, dose today, this week and in total
  • An averaging window that follows the rate: long and quiet at background, quick when the rate really changes, without leaning high or low
  • Tube dead-time correction
  • Three alarm levels with fixed thresholds you set yourself, hysteresis, an event log and an alarm that never fires from a handful of counts
  • Dose budget, sample test (background against sample), sessions for trips, walks and surveys, a calibration wizard and a two-source dead-time wizard

Fields

  • Electric and magnetic field readings with trends
  • A finder that follows wires and field sources by sound and bars

Device

  • Battery health, remaining run time, charge cycles, a charging screen
  • A log designed for years in the mountains: lossless range-coded samples, power-fail safe, within a few percent of the theoretical minimum size
  • Offline emergency guide
  • 21 colour themes, pixel-art decoration, a self test
  • USB serial protocol for the host tools

Install the firmware

Download the file for your language from Releases and copy it to the device in update mode. The stock bootloader is never touched, so the stock firmware can always be put back the same way. Step by step: docs/install.md.

Build the firmware

Needs arm-none-eabi-gcc, GNU make and Python 3 for the build helpers.

text
make                 # Turkish, build/yarrow-gc03.bin
make YLANG=en        # English, build/en/yarrow-gc03.bin
make release YLANG=en  # copies it to dist/yarrow-gc03-en.bin
make check           # host tests
make test            # runs the image in an ARM emulator
make sim             # renders every screen to build/sim

Details in docs/building.md.

Languages

Every language is its own firmware file, because the fonts take most of the room.

tr Türkçeen Englishde Deutschfr Français
es Españolpt Português (Brasil)it Italianonl Nederlands
pl Polskiru Русскийuk Українськаvi Tiếng Việt
id Bahasa Indonesiazh 简体中文ja 日本語ko 한국어

Adding one means copying src/lang/en.h, translating it and running tools/langcheck.py; a local model can do the first pass: docs/translating.md.

Documentation

docs/install.mdputting Yarrow on the device and going back
docs/usage.mdkeys, screens, alarms, sessions
docs/boinc-monitor.mdthe BOINC monitor, supported counters, server checks, credit
docs/radioactive-at-home.mdthe Radioactive@Home counters: boards, V2.60 schematic, report format
docs/data.mdwhat is sent, how it is checked, where to read the data
docs/calibration.mdmatching the readings to a reference
docs/hardware.mdpins and memory map of the GC-03
docs/serial-protocol.mdthe USB command protocol
docs/log-format.mdhow the log is stored and compressed
docs/building.mdtoolchain, tests, simulator
docs/translating.mdadding a language
docs/bringup.mdtest images for a new board

Licence

GPL-3.0, see LICENSE. The Inter font in third_party/inter is under the SIL Open Font License.

Parts

62
QtyValueFootprintReferences
9100nFC_0402_1005MetricC8, C9, C10, C11, C12, C13, C14, C15, C16
410kR_0402_1005MetricR14, R15, R17, R19
45.1MR_1206_3216MetricR5, R6, R7, R8
3M2.5MountingHole_2.7mm_M2.5H1, H2, H3
210uFC_0805_2012MetricC5, C6
218pFC_0402_1005MetricC3, C4
24.7MR_1206_3216MetricR10, R11
25.1kR_0402_1005MetricR1, R2
10R (22R if D+ rings)R_0402_1005MetricDNP2
10R (22R if D- rings)R_0402_1005MetricDNP1
1100RR_0402_1005MetricR20
110RR_0603_1608MetricR4
110nF 630VC_1812_4532MetricC2
11MR_0402_1005MetricR3
11kR_0402_1005MetricR18
11mHL_7.3x7.3_H4.5L1
1220kR_0402_1005MetricR12
122pF 1kVC_1812_4532MetricC1
122uFC_0805_2012MetricC7
12N7002SOT-23Q2
1330kR_0402_1005MetricR13
14.3kR_0402_1005MetricR16
14.7nFC_0402_1005MetricC17
1500 mAFuse_1206_3216MetricF1
1600V N-MOSFETTO-252-3_TabPin2Q1
162kR_0402_1005MetricR9
174AHCT1G04SOT-23-5U5
18MHzCrystal_SMD_3225-4Pin_3.2x2.5mmY1
1AP2112K-3.3SOT-23-5U2
1BAV99SOT-23D2
1BOOT0PinHeader_1x02_P2.54mm_VerticalJ3
1CH32F203C8T6LQFP-48_7x7mm_P0.5mmU1
1ES1JD_SMAD1
1NRSTSW_SPST_B3S-1000SW1
1SWDPinHeader_1x04_P2.54mm_VerticalJ2
1TLV3201SOT-23-5U4
1USB-CUSB_C_Receptacle_G-Switch_GT-USB-7010ASVJ1
1USBLC6-2SC6SOT-23-6U3
1greenLED_0805_2012MetricD3
1piezoBuzzer_12x9.5RM7.6BZ1
1tube clip, anodeTestPoint_THTPad_D3.0mm_Drill1.5mmJ4
1tube clip, cathodeTestPoint_THTPad_D3.0mm_Drill1.5mmJ5

Questions

How big is the Yarrow counter basic PCB?

It measures 140 × 50 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Yarrow counter basic use?

62 parts, built around the CH32F203C8T6, 74AHCT1G04GV, AP2112K-3.3 and USBLC6-2SC6. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Yarrow counter basic KiCad files?

From the alplix/yarrow repository on GitHub, at the commit this page was made from: the board is hardware/basic/kicad/yarrow_counter_basic.kicad_pcb and its schematic hardware/basic/kicad/yarrow_counter_basic.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Yarrow counter basic design in my own project?

Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 2 layers100.4 × 45.7 mmKiss sdr r2, the printed circuit board in 3D

    Kiss sdr r2

    jerryok826/Simple-SDR

    Simple SDR Is a basic Software defined receiver.

    88 partsMIT
  • 4 layers101.6 × 101.6 mmSbc, the printed circuit board in 3D

    Sbc

    dpicken/atari-hw

    Hardware for Atari 8-bit projects

    118 parts6MIT
  • 2 layers70 × 54.5 mmReckoner, the printed circuit board in 3D

    Reckoner

    blind-reckoning/Reckoner

    Turns press-and-hold motorised blinds into Home Assistant covers. One Reckoner per blind, hidden in the wall box behind the buttons you already have.

    92 partsCERN-OHL-S-2.0
  • 4 layers90 × 70 mmBypass clean before shorter-22, the printed circuit board in 3D

    Bypass clean before shorter-22

    JesseLevine727/AirNote

    A touchless musical instrument built around a fully integrated RP2040, VL53L1X distance sensor and MAX98357A speaker amplifier. One hand selects eleven pentatonic notes over two octaves.

    73 parts
  • 2 layers150 × 300 mmRegisters, the printed circuit board in 3D

    Registers

    pottsali/cpu-pub

    Homebrew CPU project

    553 parts3
  • 2 layers127 × 90 mmRadio usb, the printed circuit board in 3D

    Radio usb

    SP8EBC/radio-usb-interface

    USB <--> Land Mobile Radio interace with full ground isolation on 2way audio and PTT control

    225 parts3
  • 4 layers253 × 169.1 mmDragon32, the printed circuit board in 3D

    Dragon32

    jimbro1000/Dragon32Rev3Proto

    SMD Prototype of Dragon32 Rev3

    199 parts2MIT
  • 2 layers81.9 × 99.4 mmZ80badgev2 BACKUP, the printed circuit board in 3D

    Z80badgev2 BACKUP

    12zcab/Z80BadgeV2

    Z80 Badge V2 for GadgetMarket@ HackClub!

    29 parts1