openQCM SpaceBug · Miniature QCM for CubeSatsSeven grams, one mission.
openQCM SpaceBug is a QCM for places with no bench. A 37 × 30 mm board, 7 grams with its microcontroller, counts the crystal's frequency, stamps it with time and temperature, writes it to a micro-SD card and goes back to sleep at 28.5 µA until its clock wakes it again.
QCM IN · QCM OUTThe crystal head plugs onto four pads: two for the crystal, two for its temperature sensor.
- weight
- 7g
- deep sleep, power LED removed
- 28.5µA
- footprint
- 37 × 30mm
- components rated
- −40…+80°C

Designed for small satellites.
SpaceBug is a core module: you bring the crystal head, the temperature probe and any I²C sensor, it does the rest. Castellated pads let it sit flat on your own board, or in a stack, without connectors. The design target is CubeSat-class payloads and battery-powered nodes, where every cubic centimetre and every milliwatt-hour is counted.
A Pierce oscillator and a 32 kHz clock.
A Pierce oscillator on an SN74LVC1GX04 inverter drives the crystal (1–10 MHz; tested with 5 and 10 MHz, 14 mm wrapped crystals). A Seeeduino XIAO (SAMD21, Arm Cortex-M0+ at 48 MHz) counts its cycles in hardware over a one-second gate timed by an external 32.768 kHz crystal. A measurement takes about a second.
- Sleep28.5 µA, only the clock ticks
- AlarmRV-3028 wakes the microcontroller
- Powerregulators switched on by one pin
- Gate1 s count on the 32.768 kHz clock
- Temperaturethermistor or RTD, 5 samples
- Logone line on the micro-SD card
Sleep is the main state.
Two regulators are switched by the microcontroller, so the oscillator and the temperature divider are powered only when needed. Measuring draws at most 50 mA at 10 MHz and 40 mA at 5 MHz, with a 75 mA peak at start-up; in deep sleep the board draws 28.5 µA once the power LED is removed. An RV-3028 real-time clock, which keeps time on 45 nA, wakes it on an alarm.
Estimate from the manual's maximum currents (50 or 40 mA awake, 28.5 µA asleep), ignoring battery self-discharge and your own peripherals. The time awake per cycle is an assumption: one second of gate plus start-up, temperature and logging.
If the link drops, the card remembers.
Each cycle writes one line to the micro-SD card: timestamp, temperature, frequency. The same data can leave on the UART pins as telemetry, so a lost link does not mean lost data.
Your sensors on its bus.
The temperature input reads a 10 kΩ NTC thermistor or a PT100/PT1000 RTD, with the matching resistor in the divider; the I²C pads take humidity, pressure or gas sensors. Program it in Arduino C++ or MicroPython: the sample firmware is printed in full in the manual.
Qualify it for your mission.
SpaceBug is a research and development module. Its manual gives no vacuum, radiation, vibration or outgassing qualification and no frequency stability figure: qualify the module and your crystal head for your own mission profile.
The data sheet.
From the official manual. Where two documents disagree, the figure is left out until it is confirmed.
Sensor
- Crystal
- Single, 1–10 MHz; tested with 5 and 10 MHz, 14 mm, wrapped
- Driver
- Pierce oscillator (SN74LVC1GX04)
- Quantity
- Frequency, at the fundamental
- Sampling
- ~1 s
- Temperature input
- 10 kΩ NTC, PT100 or PT1000 (voltage divider)
Electronics
- Microcontroller
- Seeeduino XIAO SAMD21, Cortex-M0+ 48 MHz, 256 KB flash, 32 KB SRAM
- Clock
- RV-3028 RTC, 45 nA backup
- Storage
- micro-SD (SPI)
- Interfaces
- I²C, UART, QCM in/out, temperature, VIN
- Programming
- Arduino C++, MicroPython
Power
- Supply
- 3.3–5 V
- Measuring
- Max 50 mA (10 MHz), 40 mA (5 MHz)
- Start-up peak
- 75 mA
- Deep sleep
- 28.5 µA, power LED removed
Mechanics
- Size
- 37 × 30 mm, height < 8.5 mm
- Weight
- 7 g
- Mounting
- Castellated pads, Ø 2.2 mm holes
- Components rated
- −40 to +80 °C
- In the box
- SpaceBug, 3 V coin cell for the clock, 10 MHz Ti/Au test crystal, USB cable
Put a QCM anywhere.
Tell us about your payload or field station: we will help you with crystal heads, sensors and firmware.