

Jjy sim r3
JJY Simulator for ESP32-C3 / ESP8684
- Size
- 65 × 100 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 93
- Nets
- 59
- Pads
- 245
- Tracks, vias
- 430, 66
- Pours
- 3
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 14 Apr 2026
- Updated
- 27 Oct 2026
Overview
Jjy sim r3 is an open-source printed circuit board by shachi-lab, from the shachi-lab/jjy_sim repository on GitHub, published under the MIT licence. It is a 2-layer board of 65 × 100 mm with 93 parts on 59 nets, routed with 430 tracks and 66 vias.
It is built around the ESP32-C3-WROOM-02-H4, CH340K and RT9193-33GB, with the HN1C01FU-GR,LF, MF-FSMF020X-2 and WS2812B-2020 among its other parts. Its parts include 20 resistors, 19 capacitors, 5 ICs, 4 diodes and 3 switches. It belongs with the lEDs and displays boards and the ESP32 and RISC-V boards of this library.
Main components
6ESP32-C3-WROOM-02-H4
SMD,20x18mm-105dBm -40℃~+105℃ 2.4GHz 20.5dBm 345mA 3V~3.6V 82mA Bluetooth5.0 ESP32-C3 On-board PCB Antenna UART、SPI、I2C、I2S、USB SMD,20x18mm WiFi Modules ROHSEspressif SystemsWiFi ModulesCH340K
ESSOP-10-150mil-1mm-20℃~+70℃ 2Mbps 3.3V、5V USB 2.0 USB to serial ESSOP-10-150mil-1mm USB Converters ROHSWCH (Nanjing Qinheng Microelectronics)USB ConvertersRT9193-33GB
SOT-23-5-40℃~+125℃@(Tj) -50dB@(10kHz) 1 100uVrms 220mV@(300mA) 3.3V 300mA 5.5V 90uA Fixed Over Current Protection、Over Temperature Protection、Enable Positive SOT-23-5 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSRICHTEKVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsHN1C01FU-GR,LF
TSSOP-6(SC-88)SOT-363-55℃~+125℃ 100nA 120 150mA 2 NPN 200mW 250mV 50V 5V 80MHz NPN TSSOP-6(SC-88)SOT-363 Bipolar (BJT) ROHSToshibaBipolar (BJT)MF-FSMF020X-2
0603-40℃~+85℃ 0.65mm 1.05mm 1.85mm 200mA 40A 500mA 500mW 600ms 900mΩ 9V 0603 Resettable Fuses ROHSBournsResettable FusesWS2812B-2020
SMD,2.2x2mm0.6mA 0.84mm 120us 160mcd 200mcd 2kHz 2mm 2mm 300ns 470.4nm 515.6nm 520mcd 5V 622.5nm 800Kbit/s Built-in power-on reset circuit、Built-in power-on reset circuit、Integrated intelligent reverse connection protection function Top-mount SMD,2.2x2mm RGB LEDs(Built-in IC) ROHSWorldsemiRGB LEDs(Built-In IC)
README
README.md📡 JJY-SIM R4 (with R3 design references)
Build your own JJY time-signal simulator with an ESP32-C3 or ESP8684!
This compact simulator reproduces the 40 kHz / 60 kHz JJY radio time signal using PWM output,
based on accurate time obtained from NTP.
R2, R3 and R4 share an ESP-IDF firmware codebase.
R4 is the latest model. The older R3 design files are retained for reference.
The firmware version is 1.2.0.
R4 / R3 / R2 layout
| Item | R4 (latest model) | R3 (older model, for reference) | R2 (older model) |
|---|---|---|---|
| Exterior | Antenna inside the case | Antenna outside the case | Similar to R3 |
| MCU | ESP32-C3 | ESP8684 (ESP32-C2) | ESP32-C3 |
| Resonance selection | Automatic switching via GPIO3 | On-board switch | Solder jumpers |
| Firmware | Shared source, esp32c3 build | Shared source, esp32c2 build | Shared source, esp32c3 build |
| Hardware design files | Included (r4 / r4.1, r4_ant) | Included for reference (r3) | Not included |
R3 and R4 use PCB antennas. R4 stacks a main PCB and three antenna PCBs inside the case. R3 integrates the main circuitry and antenna on one PCB, with the antenna extending outside the case.
R2 has an exterior similar to R3, but uses an ESP32-C3 and solder jumpers for resonance selection. It can use the C3 build of the shared firmware. R2 hardware design files are not included in this repository.
The shared R2/R3/R4 firmware sources are in firmware/idf/jjy-sim.
R4 is identified by the eFuse field USER_DATA_JJYSIM_HW_GENERATION set to 4. An unconfigured ESP32-C3 runs as R2. A self-built R4 requires this identification field to be programmed. eFuse writes are irreversible; verify the board and main/esp_efuse_custom_table.csv before programming.
See the USB flashing instructions (Japanese).
Board designs are in hardware/KiCad/r3, r4, r4.1 and r4_ant, with shared libraries in hardware/KiCad/lib. Each board has its own PLOT directory. Case models are in hardware/case_3d/r3 and r4.
hardware/KiCad/r4.1 contains an alternative component layout for the R4 PCB. The order of the L/C/R components in the resonant circuit has also been changed to accommodate the new layout.
🪛 Features
- Generates JJY 40 kHz / 60 kHz signals from time obtained via NTP
- Equipped with a PCB antenna (inside the case on R4)
- Shows the time and operating status on an OLED display
- Configures Wi-Fi and operating settings through a web browser
- Supports Hourly Mode, Night Mode and a screen saver
- Distributes time to devices on the LAN as an NTP server
- Supports firmware updates over Wi-Fi via OTA updates
R4 exterior

For reference: the older R3 model below

🛠 Build and Flash (ESP-IDF / CLI)
Use ESP-IDF v5.5.4 and run these commands from firmware/idf/jjy-sim. Arduino builds are not supported.
R3 (ESP8684 / ESP32-C2):
idf.py -B build-c2 -D IDF_TARGET=esp32c2 -D SDKCONFIG=sdkconfig.c2 build
idf.py -B build-c2 -D IDF_TARGET=esp32c2 -D SDKCONFIG=sdkconfig.c2 -p COMx flash monitorR4 (ESP32-C3):
idf.py -B build -D IDF_TARGET=esp32c3 -D SDKCONFIG=sdkconfig.c3 build
idf.py -B build -D IDF_TARGET=esp32c3 -D SDKCONFIG=sdkconfig.c3 -p COMx flash monitorReplace COMx with your serial port. partitions.csv defines the OTA partition layout. Migration from the old layout requires USB flashing including the partition table, not just the application image.
Program the R4 identification eFuse
The ESP32-C3 on a self-built R4 needs the identification value 4. Do not run this procedure on R3. eFuse programming is irreversible.
In an ESP-IDF environment, change to firmware/idf/jjy-sim and replace COMx with the port of the target R4. These commands use a USB connection.
First, check the current value:
espefuse --chip esp32c3 -p COMx --before usb_reset --extend-efuse-table main/esp_efuse_custom_table.csv summaryConfirm that USER_DATA_JJYSIM_HW_GENERATION is 0 (unprogrammed) before writing 4 with the command below. If it is already 4, no write is needed. For any other value, do not attempt to overwrite it using this procedure.
espefuse --chip esp32c3 -p COMx --before usb_reset --extend-efuse-table main/esp_efuse_custom_table.csv burn_efuse USER_DATA_JJYSIM_HW_GENERATION 4Review the target and changes shown by the tool, then follow its confirmation prompt. After programming, run the summary command again and confirm that the value is 4. Restart the board so that the firmware identifies it as R4.
🛠 Build and Flash (VSCode / GUI)
You can also develop this project using VSCode + the ESP-IDF Extension.
■ Recommended Extension
- ESP-IDF Extension (Espressif)
By installing the extension in VSCode, you can perform the following from the GUI:
- Build
- Flash
- Serial monitor
■ Setup
Set up your environment according to the ESP-IDF Extension instructions.
Once the extension is installed, you can run actions such as:
BuildFlashMonitor
with a single click.
■ Workspace
When opening the project in VSCode,
open JJY-SIM.code-workspace in the source-code folder
then select your local ESP-IDF 5.5.4 installation and either C3 (R2 / R4) or C2 (R3) configuration.
⚙️ Usage
Refer to the model-specific manuals on the JJY-SIM support page for settings, screens and controls. R4 switches its resonance circuit automatically with the BAND setting. On R3, also set the on-board switch to match the selected BAND.
🔌 Pin Assignment (Main Signals)
| Function | GPIO | Notes |
|---|---|---|
| JJY PWM output | 10,4 | Modulated output signals, inverted A/B pair for the H-bridge |
| R4 BAND selection | 3 | R4 only; resonance circuit switching |
| CONFIG switch | 9 | Used for Wi-Fi setup (shared with BOOT pin) |
| ACT LED | 5 | Activity LED |
| IND LED | 0 | Status indicator LED (can be shared) |
| OLED Reset | 2 | OLED module reset |
| OLED SDA | 7 | OLED I2C data |
| OLED SCL | 6 | OLED I2C clock |
🧾 File Structure
💻 Firmware
- The firmware source code is located in the
firmware/idffolder. - This firmware uses a rebuilt library, ported as an IDF component, based on the Arduino OLED driver library used in R2.
This component is publicly available on GitHub.
👉 SSD1306 OLED display driver storage_key.hcontains placeholder values and can be used as-is.
For better security, you may want to replace them with your own values before building.
🧰 Hardware
-
The hardware design files are located in the
hardwarefolder. -
The schematic and PCB design data are in
hardware/KiCad.- Saved with KiCad 10 (R4 design files require KiCad 10 or later)
- Gerber data is included in
hardware/KiCad/<revision>/PLOT, so the board can be fabricated as-is
-
The 3D case data is in
hardware/case_3d.
🔧 DIY Assembly
R4 antenna
Building an R4 requires stacking three antenna PCBs. The antenna stack and main PCB fit inside the case.
PCB thickness: 1.6 mm for the main PCB and 0.8 mm for each antenna PCB.
OLED supports (R3 / R4)
Both R3 and R4 PCBs include tab-shaped sections for the OLED supports. Break these sections off during assembly and use them as supports for the OLED.
Case screws
Use hex M2 × 5 mm self-tapping screws to fasten the case.
📸 Appearance / Assembly Examples
The photos below show the R4 board and case.
The design uses a black PCB and a black case so that only the display appears to float visually.

R3 (for reference)
The photos below show the R3 board and case.

⚠️ Caution
The R4 antenna section becomes slightly warm during operation.
This device may radiate farther than expected.
Please make sure to comply with applicable radio regulations when experimenting with it.
🔗 Support / Documentation
For the latest information, setup guide, and detailed usage notes, please see the support page.
👉 JJY-SIM Support Page
Note: The support page is currently available in Japanese only.
📝 Attribution
JJY-SIM is released under the MIT License.
You are free to use, modify, and build upon this project.
When selling, distributing, or publicly releasing something based on JJY-SIM, please include attribution to Shachi-lab / JJY-SIM somewhere visible, such as the product page, documentation, README, package, or other accompanying materials.
Example:
- Designed by Shachi-lab
- Based on JJY-SIM by Shachi-lab
- Inspired by JJY-SIM by Shachi-lab
Parts
93| Qty | Value | Footprint | References |
|---|---|---|---|
| 8 | 1, 2, 3, 4, 5, 6, 7, 8 | ||
| 7 | 1u | Capacitor_SMD:C_0603_1608Metric | C10, C12, C13, C14, C15, C16, C17 |
| 6 | 0 | Resistor_SMD:R_0603_1608Metric | R6, R10, R11, R12, R13, R14 |
| 6 | 0.1u | Capacitor_SMD:C_0603_1608Metric | C2, C3, C5, C6, C8, C9 |
| 6 | 10k | Resistor_SMD:R_0603_1608Metric | R1, R4, R5, R15, R16, R18 |
| 3 | TP | TestPoint:TestPoint_THTPad_D1.5mm_Drill0.7mm | TP1, TP2, TP3 |
| 2 | 10u | Capacitor_SMD:C_0805_2012Metric | C1, C7 |
| 2 | 4.7 | Resistor_SMD:R_0603_1608Metric | R2, R3 |
| 2 | 4.7u | Capacitor_SMD:C_0603_1608Metric | C18, C19 |
| 2 | 5.1k | Resistor_SMD:R_0603_1608Metric | R19, R20 |
| 2 | G*** | kibuzzard-68D2B4BB | kibuzzard-1, kibuzzard-28 |
| 2 | LOGO | JJY-SIM:Shachi-lab_LOGO_15mm | G***, G***1 |
| 1 | 0.022u | Capacitor_SMD:C_0603_1608Metric | C4 |
| 1 | 0.22u | Capacitor_SMD:C_0603_1608Metric | C11 |
| 1 | 1k | Resistor_SMD:R_0603_1608Metric | R8 |
| 1 | 2.2k | Resistor_SMD:R_0603_1608Metric | R9 |
| 1 | 390k | Resistor_SMD:R_0603_1608Metric | R17 |
| 1 | 5.6k | Resistor_SMD:R_0603_1608Metric | R7 |
| 1 | AM1025EA | JJY-SIM:eSOP-8_3.9x5.05mm_EP_3.1x2.2mm_P1.27mm | U1 |
| 1 | ANT-A | JJY-SIM:Jumper-2_TH_3.81mm | JP1 |
| 1 | BAND | JJY-SIM:MSK-12C02 | SW1 |
| 1 | BLUE | LED_SMD:LED_0603_1608Metric | D3 |
| 1 | CH340K | JJY-SIM:SSOP-10-1EP_3.9x4.9mm_P1mm_EP2.1x3.3mm | U2 |
| 1 | CONFIG | JJY-SIM:SKRPACE010 | SW3 |
| 1 | ESP32-C3-WROOM-02 | JJY-SIM:ESP32-C3-WROOM-02,ESP8684-WROOM-2C | U3 |
| 1 | FB | Inductor_SMD:L_0603_1608Metric | L1 |
| 1 | G*** | kibuzzard-69816480 | kibuzzard-8 |
| 1 | G*** | kibuzzard-69820ADF | kibuzzard-4 |
| 1 | G*** | kibuzzard-69820977 | kibuzzard-3 |
| 1 | G*** | kibuzzard-6A179A92 | kibuzzard-6A179A92 |
| 1 | G*** | kibuzzard-69867CAB | kibuzzard-9 |
| 1 | G*** | kibuzzard-665B3587 | kibuzzard-15 |
| 1 | G*** | kibuzzard-665A8DD6 | kibuzzard-18 |
| 1 | G*** | kibuzzard-665B357F | kibuzzard-16 |
| 1 | G*** | kibuzzard-6646C6AC | kibuzzard-6 |
| 1 | G*** | kibuzzard-669B6DC4 | kibuzzard-12 |
| 1 | G*** | kibuzzard-68E061D7 | kibuzzard-13 |
| 1 | G*** | kibuzzard-665B35AE | kibuzzard-20 |
| 1 | G*** | kibuzzard-669B4532 | kibuzzard-19 |
| 1 | G*** | kibuzzard-68D3A9C1 | kibuzzard-5 |
| 1 | G*** | kibuzzard-698209E3 | kibuzzard-10 |
| 1 | G*** | kibuzzard-68D3A910 | kibuzzard-7 |
| 1 | G*** | kibuzzard-669B16B9 | kibuzzard-17 |
| 1 | G*** | kibuzzard-6982098F | kibuzzard-2 |
| 1 | G*** | kibuzzard-69965DBC | kibuzzard-14 |
| 1 | G*** | kibuzzard-669B6BC9 | kibuzzard-11 |
| 1 | GND | JJY-SIM:Jumper-2_TH_3.81mm | JP2 |
| 1 | HN1C01FU-GR | JJY-SIM:2-2J1A | Q1 |
| 1 | MF-FSMF020X-2 | Fuse:Fuse_1206_3216Metric_Pad1.42x1.75mm_HandSolder | F1 |
| 1 | RED | LED_SMD:LED_0603_1608Metric | D1 |
| 1 | RESET | JJY-SIM:SKRPACE010 | SW2 |
| 1 | RT9193-33GB | Package_TO_SOT_SMD:SOT-23-5 | U4 |
| 1 | UG-2864HL | JJY-SIM:UG-2864-FPC (Reverse) | U5 |
| 1 | USB_C_Plug_USB2.0 | JJY-SIM:5077CR-16SMC2-BK-TR_Ext | P1 |
| 1 | WS2812B-2020 | LED_SMD:LED_WS2812B-2020_PLCC4_2.0x2.0mm | D4 |
| 1 | YG | LED_SMD:LED_0603_1608Metric | D2 |
The 92 most common of 93 parts.
More from shachi-lab/jjy_sim
2- 2 layers50 × 67.5 mm

- 2 layers100 × 100 mm

Similar boards
- 2 layers200 × 130.3 mm

- 2 layers92.5 × 98.4 mm

- 2 layers17.5 × 40.3 mm

- 4 layers59 × 33.8 mm

- 4 layers124.6 × 68.7 mm

- 2 layers103.9 × 43.5 mm

- 4 layers79 × 39.1 mm

Connector pcb
festlv/mso5000-logic-probe
Cheap logic probe for Rigol MSO5000-series oscilloscopes
39 parts37MIT - 2 layers212.5 × 99.5 mm

Questions
How big is the Jjy sim r3 PCB?
It measures 65 × 100 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Jjy sim r3 use?
93 parts, built around the ESP32-C3-WROOM-02-H4, CH340K, RT9193-33GB and HN1C01FU-GR,LF. 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 Jjy sim r3 KiCad files?
From the shachi-lab/jjy_sim repository on GitHub, at the commit this page was made from: the board is hardware/KiCad/r3/jjy_sim_r3.kicad_pcb and its schematic hardware/KiCad/r3/jjy_sim_r3.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Jjy sim r3 design in my own project?
Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).