Skip to the content
2 layers210 × 120 mmRelay24 ESP32, the printed circuit board in 3D

Relay24 ESP32

renatorgr/Boards2

Hardware and firmware for the AgOpenGPS AiO v4.5 autosteer boards: Teensy 4.1 firmware with its own web page (GPS, IMU, autosteer), a XIAO ESP32 Wi-Fi status page, XIAO adapter boards, and an Arduino Nano sprayer section controller. Works with AgOpenWeb and AgOpenGPS.

Size
210 × 120 mm
Copper layers
2
Thickness
1.6 mm
Parts
164
Nets
165
Pads
675
Tracks, vias
1,240, 190
Pours
6
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
8 Apr 2026
Updated
8 Nov 2026

Overview

Relay24 ESP32 is an open-source printed circuit board by renatorgr, from the renatorgr/Boards repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 210 × 120 mm with 164 parts on 165 nets, routed with 1,240 tracks and 190 vias.

It is built around the LM2596S-5.0, 74HC595 and ULN2803A, with the AMS1117-3.3, HF115F/012-2ZS4 and SS54 among its other parts. Its parts include 41 resistors, 34 connectors, 31 diodes, 24 switches and 17 capacitors. It belongs with the radio and wireless and interfaces and adapters boards and the ESP32 boards of this library.

Main components

9

README

AiO_Micro45_XIAO_C3/README.md

XIAO ESP32C3 adapter for the AiO v4.5 Micro (GPS2 socket → Serial2)

A small board (27.3 × 24.4 mm, 2 layers) that plugs into the second GPS socket ("Dual-Left", U11) of the AiO v4.5 Micro, in place of a simpleRTK2B Micro, and connects a Seeed XIAO ESP32C3 (or ESP32S3) to the Teensy's Serial2 (pins 7 and 8). The XIAO plugs into two female headers on the adapter.

Connections

Socket pinOn the AiO v4.5 MicroOn the adapter
13.3 V (1 A K7803M regulator)C1 22 µF, then U2 (LM66100 ideal diode) → XIAO 3V3 + C2 22 µF
2Teensy pin 7 (RX2)R1 1 kΩ → D6 (TX, GPIO21)
3Teensy pin 8 (TX2)R2 1 kΩ → D7 (RX, GPIO20)
10, 11GNDGND
6, 7, 8F9P micro-USBnot connected
16pin 12 of the GPS1 socket (dual F9P only)not connected
18LED RTK_STAT_1not connected
others—not connected

The plug is two 1x10 male headers: J1 = socket pins 1–10, J2 = socket pins 11–20 (J2 pin 1 = socket pin 11). The XIAO plugs into two 1x7 female headers: J3 = XIAO pins 1–7 (D0–D6), J4 = XIAO pins 8–14 (D7–5V).

The positions of the 20 pins were copied from the official AiO v4.5 Micro PCB file (EasyEDA, 2024-02-05) and checked against the schematic: 0.00 mm difference. The outline stays inside the drawing of the original module on the Micro's silkscreen, with the same cut corner (on the side of LED1 and the RJ45 jack).

Why the ideal diode (U2)

  • On the Micro the GPS2 socket only has 3.3 V, so the XIAO is fed through its 3V3 pin. An ordinary diode would drop it to about 3.0 V, too low for the ESP32 WiFi.
  • U2 (TI LM66100) is an "ideal diode": current flows only from the AiO to the XIAO, with a drop of a few tens of mV. Its CE pin is tied to its output, which turns it off as soon as the XIAO side is higher than the AiO side.
  • So the XIAO's USB-C can now be plugged in with the adapter on the board: the XIAO powers itself from USB and U2 stops that power from going back into the AiO's 3.3 V (GPS1 F9P, LEDs, radio, K7803M).
  • R1 and R2 are 1 kΩ (100 Ω in v1.1). If the XIAO is on USB with the AiO switched off, its TX pin feeds the unpowered Teensy through R1; 1 kΩ keeps that current to about 3 mA. At 460800 baud, 1 kΩ makes no difference.

Files

  • AiO_Micro45_XIAO_C3.kicad_pro / .kicad_sch / .kicad_pcb: KiCad 7 project (schematic + PCB), with its own libraries (AiO_XIAO_Adapter.pretty, AiO_XIAO_Adapter.kicad_sym).
  • fabrication_JLCPCB/Gerber_AiO_Micro45_XIAO_C3.zip: Gerbers + drill file, ready for JLCPCB.
  • fabrication_JLCPCB/BOM_…csv and CPL_…csv: for JLCPCB's assembly (R1, R2, C1, C2, U2 and the XIAO sockets J3, J4 on the top side, the two pin headers J1 and J2 on the bottom side).
  • fabrication_JLCPCB/BOM_…_top_only.csv and CPL_…_top_only.csv: the same without J1 and J2, for an assembly on the top side only.
  • In this folder: the schematic as a PDF (adapter_schematic.pdf), views of the board (adapter_PCB.png) and its position on the Micro (GPS2_socket_view.png).

Opening it in EasyEDA

EasyEDA Pro: File → Import → KiCad, then choose the project folder (or the .zip). It imports the schematic and the PCB. EasyEDA is not needed to order the board: the Gerber zip goes straight to JLCPCB.

Ordering (JLCPCB)

  • Gerber: Gerber_AiO_Micro45_XIAO_C3.zip. 2 layers, 1.6 mm, any colour. The default settings are fine (minimum track 0.25 mm, minimum hole 0.3 mm).
  • Assembly: BOM + CPL. JLCPCB solders everything except the XIAO:
    • R1, R2, C1, C2 and U2: SMD parts on the top side;
    • the pin headers J1 and J2: through-hole parts on the bottom side, with the long pins pointing down (away from the board). The CPL already gives them on the bottom layer, at the centre of each header;
    • the two female headers J3 and J4 for the XIAO: through-hole parts on the top side.
  • Through-hole assembly costs a little more than SMD only.
  • There are parts on both sides, so choose Standard PCBA with assembly on both sides. With Economic PCBA or top side only, JLCPCB leaves out J1 and J2 (they are on the bottom) and stops with "Coordinate file missing data for: J1, J2".
  • Cheaper alternative: Economic PCBA, top side only, with BOM_…_top_only.csv and CPL_…_top_only.csv (the same files without J1 and J2), and solder J1 and J2 by hand.
  • In JLCPCB's placement preview, check that J1 and J2 are on the bottom side, over the two rows of 10 holes, and J3 and J4 on the top side, over the two rows of 7 holes.
  • Also check U2's pin 1 in the preview: pin 1 (VIN, marked with a small triangle on the silkscreen) must be at the corner of U2 nearest to the J4 row and the USB-C side. Chip rotations in the CPL are sometimes off by 90° or 180° at JLCPCB; if the dot of the chip is elsewhere, rotate it in the preview.
Ref.PartLCSC
R1, R21 kΩ 1 % 0805C17513
C1, C222 µF 0805 X5RC45783
U2TI LM66100DCKR ideal diode, SC-70-6C2869734 (or C2832141, LM66100DCKT)
J1, J21x10 male header, 2.00 mm pitch, HCTL PZ200-1-10-ZC2905956
J3, J41x07 female header, 2.54 mm, 8.5 mm high, HCTL PM254-1-07-Z-8.5C2897370
U1Seeed XIAO ESP32C3 or ESP32S3, plugged into J3 / J4(not assembled)

The 2.00 mm headers have 4 mm mating pins and a 2 mm insulator.

Assembly

  1. Only if the board did not come assembled: U2, R1, R2, C1 and C2, then the headers. U2 is very small (SC-70-6): pin 1 goes at the triangle mark.
  2. The 2.00 mm male headers go underneath, with the pins pointing down. When soldering them by hand, to get them well aligned: push them into the Micro's GPS2 socket, lay the adapter on top and solder them from above.
  3. XIAO: solder the two 1x7 male headers that come with it underneath the XIAO, long pins pointing down. To keep them straight, push them into J3 and J4 first, lay the XIAO on top and solder from above.
  4. Plug the XIAO into J3 and J4 with its USB-C at the "USB-C" mark. The two rows have 7 pins each, so the XIAO also goes in turned 180°: that way the 3.3 V goes into D4 instead of 3V3 and the XIAO can be damaged. Check the USB-C mark before powering the AiO.
  5. Under J3 (the D0–D6 row), on the Micro, there is resistor R31: check that the solder joints of J3 underneath the adapter do not touch it.
  6. Orientation on the Micro: the cut corner of the adapter matches the cut corner drawn on the silkscreen of the GPS2 socket, and pin 1 (square pad, dot on the silkscreen) sits next to pin 1 of the socket.

Cautions

  • The XIAO is powered through its 3V3 pin, from the board's 3.3 V through U2. From v1.2 the XIAO's USB-C can be plugged in with the adapter on the Micro (on v1.1 boards it must not be: unplug the XIAO to program it by USB, or use WiFi OTA).
  • The USB-C plug goes in from the right edge of the adapter (towards LED3 and the mini-USB connector of the Micro): check that the cable fits in your box.
  • On the sockets the XIAO sits about 11 mm higher than soldered flat (8.5 mm socket + 2.5 mm of the male header). Check that the box lid closes.
  • Tractor vibration: hold the XIAO in its sockets, for example with a cable tie around the XIAO and the adapter, or a dot of neutral-cure silicone at the corners (not on the U.FL connector or the buttons).
  • Hammond 1455 boxes are aluminium: use an external WiFi antenna on the XIAO's U.FL connector, taken out through the lid.
  • With the adapter in place the GPS2 socket cannot hold a second F9P (dual F9P).

Firmware

  • Teensy: firmware v4.5_AiO_WEB, Serial2 (pins 7 RX2 and 8 TX2) at 460800. On its web page, Settings → "GPS2 port" must be on automatic (the default): the Teensy finds the XIAO by its hello.
  • XIAO: the program v4.5_XIAO_ESP32 that comes in the firmware zip (already compiled in v4.5_XIAO_ESP32_bin). It uses UART1 on D7 (RX, GPIO20) and D6 (TX, GPIO21) at 460800 and empties the receive FIFO at 64 bytes (setRxFIFOFull(64)).
  • The XIAO ESP32S3 fits too: same size and pins (D6 = GPIO43 TX, D7 = GPIO44 RX).
  • When it starts, the ESP32-C3 writes a few boot lines at 115200 on GPIO21: the Teensy receives garbage for half a second, and the firmware ignores it.
  • The official firmware v26 (Firmware_Teensy_AiO-New-Dawn) uses this same link (Serial2) for its ESP32, also at 460800. See docs/ESP32_BRIDGE_INTERFACE.md in that repository.

Checks done

  • The schematic and the PCB have the same connections (netlist exported from the schematic = PCB connections).
  • KiCad 7 DRC: 0 errors, 0 unconnected items (v1.2).
  • Pins and connections checked against the official AiO v4.5 Micro schematic and PCB (AgOpenGPS-Official/Boards).
  • The XIAO sockets J3 and J4 are on the XIAO pin positions of Seeed's official KiCad library (XIAO-ESP32-C3-DIP-SMD): 2 × 7 pins, 2.54 mm, rows 15.24 mm apart.
  • J1 and J2 are on the bottom side and J3, J4 on the top side, in the PCB and in the CPL; the drill file has the same 44 holes as version 1.0, plus 2 vias for U2 in v1.2.
  • U2 pins used: 1 VIN, 2 GND, 3 CE, 6 VOUT (pins 4 and 5 are left unconnected). Check against the TI datasheet before the first order.
  • Not yet made or tested on a real board.

Versions

  • 1.2 (20 Oct 2026): U2 (LM66100 ideal diode) between the AiO 3.3 V and the XIAO 3V3 pin, with C2 22 µF on the XIAO side, so the XIAO's USB-C can be used with the adapter on the board. R1 and R2 changed from 100 Ω to 1 kΩ. Same outline, same header holes, same XIAO position.
  • 1.1 (19 Oct 2026): the plug is now two 1x10 2.00 mm headers (J1, J2) with LCSC codes in the BOM and the CPL (bottom side), so JLCPCB solders them too. The XIAO plugs into two 1x7 female headers (J3, J4, top side, also soldered by JLCPCB) instead of being soldered to the board. Same holes and tracks as 1.0.
  • 1.0 (14 Oct 2026): first version.

Credits

  • Design: renatorgr, with Claude (Anthropic), 2026.
  • Pin positions: official AiO v4.5 Micro board files (EasyEDA PCB 2024-02-05 and schematic), AgOpenGPS-Official/Boards.
  • XIAO pin positions: Seeed Studio OPL KiCad library (XIAO-ESP32-C3-DIP-SMD). 0805 and SOT-363 (SC-70-6) footprints: KiCad standard library.

Parts

164
QtyValueFootprintReferences
25greenLED_0603_1608MetricD1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +9
242.2kR_0603_1608MetricR1, R2, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, R22, R23 +8
24HF115F/012-2ZS4Relay_DPDT_Omron_G2RL-2K1, K2, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23 +8
8100nFC_0603_1608MetricC1, C2, C3, C30, C31, C32, C33, C36
64.7kR_0603_1608MetricR32, R35, R36, R44, R45, R46
6M3MountingHole_3.2mm_M3H1, H2, H3, H4, H5, H6
510uFC_0805_2012MetricC27, C28, C29, C37, C38
449.9 1%R_0603_1608MetricR38, R39, R40, R41
374HC595SOIC-16_3.9x9.9mm_P1.27mmU1, U2, U3
3ULN2803ASOIC-18W_7.5x11.6mm_P1.27mmU4, U5, U6
2330R_0603_1608MetricR42, R43
233pFC_0603_1608MetricC34, C35
2SS54D_SMAD25, D27
11.5kR_0603_1608MetricR34
1100uF 50VCP_Elec_8x10C25
110kR_0603_1608MetricR33
112V ACT A (left)TerminalBlock_bornier-2_P5.08mmJ26
112V ACT A (right)TerminalBlock_bornier-2_P5.08mmJ27
112V ACT B (left)TerminalBlock_bornier-2_P5.08mmJ28
112V ACT B (right)TerminalBlock_bornier-2_P5.08mmJ29
112V INTerminalBlock_bornier-2_P5.08mmJ25
11kR_0603_1608MetricR29
12.49k 1%R_0603_1608MetricR31
1220uF 25VCP_Elec_8x10C26
125MHzCrystal_SMD_5032-2Pin_5.0x3.2mmY1
133R_0603_1608MetricR30
133uH 3AL_12x12mm_H8mmL1
1AMS1117-3.3SOT-223-3_TabPin2U8
1AnalogPinHeader_1x04_P2.54mm_VerticalJ34
1DevKitC J2 (3V3..5V)PinSocket_1x19_P2.54mm_VerticalJ30
1DevKitC J3 (GND..CLK)PinSocket_1x19_P2.54mm_VerticalJ31
1HR911105ARJ45_Hanrun_HR911105A_HorizontalJ32
1I2CPinHeader_1x04_P2.54mm_VerticalJ33
1LM2596S-5.0TO-263-5_TabPin3U7
1RTL8201FQFN-32-1EP_5x5mm_P0.5mm_EP3.45x3.45mm_ThermalViasU9
1SMBJ18AD_SMBD26
1SS34D_SMAD28
1Section 1TerminalBlock_bornier-2_P5.08mmJ1
1Section 10TerminalBlock_bornier-2_P5.08mmJ10
1Section 11TerminalBlock_bornier-2_P5.08mmJ11
1Section 12TerminalBlock_bornier-2_P5.08mmJ12
1Section 13TerminalBlock_bornier-2_P5.08mmJ13
1Section 14TerminalBlock_bornier-2_P5.08mmJ14
1Section 15TerminalBlock_bornier-2_P5.08mmJ15
1Section 16TerminalBlock_bornier-2_P5.08mmJ16
1Section 17TerminalBlock_bornier-2_P5.08mmJ17
1Section 18TerminalBlock_bornier-2_P5.08mmJ18
1Section 19TerminalBlock_bornier-2_P5.08mmJ19
1Section 2TerminalBlock_bornier-2_P5.08mmJ2
1Section 20TerminalBlock_bornier-2_P5.08mmJ20
1Section 21TerminalBlock_bornier-2_P5.08mmJ21
1Section 22TerminalBlock_bornier-2_P5.08mmJ22
1Section 23TerminalBlock_bornier-2_P5.08mmJ23
1Section 24TerminalBlock_bornier-2_P5.08mmJ24
1Section 3TerminalBlock_bornier-2_P5.08mmJ3
1Section 4TerminalBlock_bornier-2_P5.08mmJ4
1Section 5TerminalBlock_bornier-2_P5.08mmJ5
1Section 6TerminalBlock_bornier-2_P5.08mmJ6
1Section 7TerminalBlock_bornier-2_P5.08mmJ7
1Section 8TerminalBlock_bornier-2_P5.08mmJ8
1Section 9TerminalBlock_bornier-2_P5.08mmJ9
1redLED_0603_1608MetricD29
1yellowLED_0603_1608MetricD30

More from renatorgr/Boards

2
  • 2 layers27.3 × 24.4 mmAiO Micro45 XIAO C3, the printed circuit board in 3D

    AiO Micro45 XIAO C3

    renatorgr/Boards

    Hardware and firmware for the AgOpenGPS AiO v4.5 autosteer boards: Teensy 4.1 firmware with its own web page (GPS, IMU, autosteer), a XIAO ESP32 Wi-Fi status page, XIAO adapter boards, and an Arduino Nano sprayer…

    9 parts2GPL-3.0
  • 2 layers40 × 52.6 mmAiO Std45 XIAO C3, the printed circuit board in 3D

    AiO Std45 XIAO C3

    renatorgr/Boards

    Hardware and firmware for the AgOpenGPS AiO v4.5 autosteer boards: Teensy 4.1 firmware with its own web page (GPS, IMU, autosteer), a XIAO ESP32 Wi-Fi status page, XIAO adapter boards, and an Arduino Nano sprayer…

    9 parts2GPL-3.0

Similar boards

  • 2 layers42.5 × 43.5 mmPCB design, the printed circuit board in 3D

    PCB design

    jad-jkh/Smart-Table-Solutions

    Sample files from Jad Haddad's Smart Table Solutions including: KiCad PCB files (schematic, layout, and 3D view) and screenshots, along with embedded C code for motor control

    42 parts1BSD-2-Clause
  • 2 layers208 × 110 mmButton grid, the printed circuit board in 3D

    Button grid

    paulsonnentag/button-grid

    An ESP32-S3 controller board for an 8×8 button matrix with 64 individually switched 12 V LEDs. It's designed in KiCad 9 and made to be ordered from JLCPCB.

    108 parts
  • 2 layers121 × 75.5 mmJlctest, the printed circuit board in 3D

    Jlctest

    cjheath/jlcbasic

    JLC Basic parts library for Kicad fetched and converted from EasyEDA

    46 parts5
  • 2 layers87 × 47 mmNetclock, the printed circuit board in 3D

    Netclock

    dilshan/ntp-clock

    Ethernet base NTP clock panel driver

    91 parts11MIT
  • 4 layers40 × 40 mmAuv sensor hub, the printed circuit board in 3D

    Auv sensor hub

    ginomcfino/auv-sensor-hub

    STM32-based sensor hub for autonomous underwater vehicles, integrating CAN bus communication, inertial and pressure sensing, and multi-rail power regulation.

    59 parts
  • 2 layers75 × 75 mmMasterBoard, the printed circuit board in 3D

    MasterBoard

    gsm988aa/PCB_Masterboard

    16 parts
  • 2 layers100 × 100 mmCOPIE 0, the printed circuit board in 3D

    COPIE 0

    AssaadMH/shadow-4wd-motor-shield-pcb

    The 24-signal interface board that replaces SHADOW's perfboard wiring — and the two pin conflicts that only appeared on re-checking the spec.

    154 parts2MIT

Questions

How big is the Relay24 ESP32 PCB?

It measures 210 × 120 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Relay24 ESP32 use?

164 parts, built around the LM2596S-5.0, 74HC595, ULN2803A and AMS1117-3.3. 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 Relay24 ESP32 KiCad files?

From the renatorgr/Boards repository on GitHub, at the commit this page was made from: the board is Relay24_ESP32/Relay24_ESP32.kicad_pcb and its schematic AiO_Micro45_XIAO_C3/AiO_Micro45_XIAO_C3.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Relay24 ESP32 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).