
Panelized
kholia/ConsensusBasedTimeSync
A portable, efficient, passive, consensus based (relative) time synchronization mechanism over radio waves. Cost-effective radio receivers too!

A portable, efficient, passive, consensus based (relative) time synchronization mechanism over radio waves. Cost-effective radio receivers too!
Panelized is an open-source printed circuit board by kholia, from the kholia/ConsensusBasedTimeSync repository on GitHub. It is a 2-layer board of 95.4 × 92.4 mm with 326 parts on 228 nets, routed with 660 tracks and 1,356 vias.
It is built around the SI4732-A10-GS. Its parts include 72 capacitors, 24 ICs and 24 diodes. It belongs with the radio and wireless boards of this library.
We present a portable, efficient, passive, consensus based (relative) time synchronization mechanism over radio waves.
We demonstrate the portability of this mechanism on a bunch of common computing platforms:
AMD64 PCs
Raspberry Pi(s)
Android phones
Raspberry Pi Pico (Yep!)
FT8, WSPR, and other digital modes need the receivers and the transmitters to be synchronized in time.
What if there is no external and reliable reference available for time synchronization?
RTC clocks can drift over time.
GPS system can be jammed.
In comparison, a passive receiver system (i.e. our system) operating over a wide range of amateur radio frequencies may be a bit harder to jam.
Internet may NOT be available in remote areas.
Sundials can be cumbersome to deploy, calibrate, and perhaps not accurate enough ;)
Problem Statement: How do we ensure that we are still able to communicate over amateur bands using time-synchronized digital modes in absence of external and reliable references of time?
Initially, we don't know the (relative) time. We try to decode FT8 traffic with
a timing fudge factor of 0. If we don't succeed to decode any traffic, this
fudge factor is incremented. This process is repeated until we are able to
decode FT8 traffic successfully. The final value of the fudge factor gives
us the (relative) time offset we need.
We use Si4732-A10 IC for HF SSB reception. The Si5351 module provides a clock output to this Si4732-A10 IC. The other outputs of the Si5351 module can be used to implement a transmitter.
Thus the whole system is actually a low cost, portable, and efficient digital transceiver!
The whole system is beginner friendly, and can be built easily on a breadboard in under an hour or so.
The Si4732-A10 IC is fairly easy to solder on a SMD-To-DIP adapter PCB - no need to worry about it ;)
For a low-cost alternate option to Si4732-A10, checkout the CD2003 option
included in this repository.
Tip: Use KiCad 7.x for handling these designs.
Update (September 2023): After on-air testing, we recommend building the
CD2003-BoB-v2 design included in this repository over other designs for HF!
The CD2003-S-BoB design works too but BFO frequency tuning seems like a hard,
finicky process.
Update 2 (November 2023): Please use the CD2003-BoB-Final version. It has
some minor correctness fixes in it.
Update 3 (March 2024): Please use the CD2003-BoB-Final-v2 version. It can be
automatically assembled by JLCPCB!
ATTENTION: The Si4732 IC uses 3.3v signaling! Don't attach it to a 5v MCU without a bi-directional level shifter.
For sample programs, see https://github.com/pu2clr/SI4735/tree/master/examples.
We include a fully-functional FT8 receiver firmware (for Raspberry Pi Pico) in
this repository. It works on 20m (14.074 MHz) by default. To use this firmware,
write firmware/run_ft8.uf2 to a Raspberry Pi Pico board.
#define CAL 15 // Automatic calibration entry
#define SDA_PIN 12 // GP12 on Pico
#define SCL_PIN 13 // GP13 on Pico
#define RESET_PIN 10 // GP10, Si4732 stuffSi5351 module's CLK 0 goes to RX_OSC of Si4732. This has the 32.768 kHz clock
on it.
Si5351 module's CLK 2 goes to GP15 (CAL) of Pico. This is used for automatic calibration of Si5351 module.
Audio output comes from L and R pins of the Si4732 BoB.


https://en.wikipedia.org/wiki/Standing_on_the_shoulders_of_giants
https://github.com/kgoba/ft8_lib - We use this for FT8 decoding
https://github.com/aa1gd/pico_ft8_xcvr - Godwin demonstrated ft8_lib powered FT8 decoding on Pico first!
Bradshaw Lupton - For suggesting the original idea and pushing me to do it!
JTSync and JS8Call are capable of doing time synchronization but they are NOT portable enough and can't run on microcontrollers!
We are also interested in automatic, microcontroller based (full) time synchronization systems powered by WWV and other time sources.
And of course, we will be using DT values from the decoded FT8 traffic to derive a more accurate fudge factor soon!
| Qty | Value | Footprint | References |
|---|---|---|---|
| 24 | 100nF | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C3, C3, C3, C3, C13, C13, C13, C13, C13, C13, C13, C13, C13, C13, C13, C13 +8 |
| 24 | 10uF | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C4, C4, C4, C4, C4, C4, C4, C4, C4, C4, C4, C4, C5, C5, C5, C5 +8 |
| 24 | 1N4148 | Diode_THT:D_DO-35_SOD27_P2.54mm_Vertical_KathodeUp | D1, D1, D1, D1, D1, D1, D1, D1, D1, D1, D1, D1, D2, D2, D2, D2 +8 |
| 24 | 4.7uF | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C2, C2, C2, C2 +8 |
| 24 | MountingHole_Pad | MountingHole:MountingHole_2.2mm_M2_Pad_Via | H1, H1, H1, H1, H1, H1, H1, H1, H1, H1, H1, H1, H2, H2, H2, H2 +8 |
| 12 | HT7833 SOT89 3.3V 500mA LDO | Package_TO_SOT_SMD:SOT-89-3 | U2, U2, U2, U2, U2, U2, U2, U2, U2, U2, U2, U2 |
| 12 | Pin Header | footprints:PinSocket_1x09_P2.54mm_Vertical_Custom | JP1, JP1, JP1, JP1, JP1, JP1, JP1, JP1, JP1, JP1, JP1, JP1 |
| 12 | SI4732-A10-GS | Package_SO:SOIC-16_3.9x9.9mm_P1.27mm | U1, U1, U1, U1, U1, U1, U1, U1, U1, U1, U1, U1 |
The 156 most common of 326 parts.
It measures 95.4 × 92.4 mm and has 2 copper layers, 1.6 mm thick.
326 parts, built around the SI4732-A10-GS. 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.
From the kholia/ConsensusBasedTimeSync repository on GitHub, at the commit this page was made from: the board is Si4732-BoB/panelized.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask kholia before reusing the design.

kholia/ConsensusBasedTimeSync
A portable, efficient, passive, consensus based (relative) time synchronization mechanism over radio waves. Cost-effective radio receivers too!

kholia/ConsensusBasedTimeSync
A portable, efficient, passive, consensus based (relative) time synchronization mechanism over radio waves. Cost-effective radio receivers too!

kholia/ConsensusBasedTimeSync
A portable, efficient, passive, consensus based (relative) time synchronization mechanism over radio waves. Cost-effective radio receivers too!

kholia/ConsensusBasedTimeSync
A portable, efficient, passive, consensus based (relative) time synchronization mechanism over radio waves. Cost-effective radio receivers too!

kholia/ConsensusBasedTimeSync
A portable, efficient, passive, consensus based (relative) time synchronization mechanism over radio waves. Cost-effective radio receivers too!

kholia/ConsensusBasedTimeSync
A portable, efficient, passive, consensus based (relative) time synchronization mechanism over radio waves. Cost-effective radio receivers too!

kholia/ConsensusBasedTimeSync
A portable, efficient, passive, consensus based (relative) time synchronization mechanism over radio waves. Cost-effective radio receivers too!

kholia/ConsensusBasedTimeSync
A portable, efficient, passive, consensus based (relative) time synchronization mechanism over radio waves. Cost-effective radio receivers too!

kholia/ConsensusBasedTimeSync
A portable, efficient, passive, consensus based (relative) time synchronization mechanism over radio waves. Cost-effective radio receivers too!

kholia/ConsensusBasedTimeSync
A portable, efficient, passive, consensus based (relative) time synchronization mechanism over radio waves. Cost-effective radio receivers too!

kholia/ConsensusBasedTimeSync
A portable, efficient, passive, consensus based (relative) time synchronization mechanism over radio waves. Cost-effective radio receivers too!

kholia/ConsensusBasedTimeSync
A portable, efficient, passive, consensus based (relative) time synchronization mechanism over radio waves. Cost-effective radio receivers too!

RADARC/Scout-Radio
Si4732 and Raspberry Pi Pico Radio device for Scouts to build and use to gain badges

SREERAJSVT/SiSeriesRadio
This project details the design and development of a Si4732/Si4735 based radio receiver utilizing a Raspberry Pi Pico for control and a custom-designed PCB

Beacroxx/STM-SDR
A portable FM radio receiver with OLED display, built on STM32F411CEU6 microcontroller with SI4732-A10 software-defined radio chip.

bt-soft/pico-radio-5
A Pico-Radio-5 egy fejlett, több sávos rádióvevő, amely a Raspberry Pi Pico (RP2040) mikrokontroller köré épül. A főbb hardverelemek:


LadyRoninEngineer/Si473x
Data Supporting development of Si473x series radios


flummer/dmm-sao
A small digital multimeter specifically for measuring SAO related stuff