Skip to the content
2 layers59.1 × 31.6 mmSerial remote access esp32 c6, the printed circuit board in 3D

Serial remote access esp32 c6

jalbrethsen/serial-router

That download will give you a binary file that you can install to the chip using esptool. Then to push the firmware you would run the following: Where FIRMWARE.bin is the binary MicroPython firmware you downloaded or…

Size
59.1 × 31.6 mm
Copper layers
2
Thickness
1.6 mm
Parts
19
Nets
84
Pads
231
Tracks, vias
292, 50
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
14 May 2025
Updated
14 May 2025

Overview

Serial remote access esp32 c6 is an open-source printed circuit board by jalbrethsen, from the jalbrethsen/serial-router repository on GitHub, published under the MIT licence. It is a 2-layer board of 59.1 × 31.6 mm with 19 parts on 84 nets, routed with 292 tracks and 50 vias.

It is built around the CH340C, ESP32-C6-MINI-1U-H4 and JW5211. Its parts include 6 ICs, 5 connectors, 3 capacitors, 3 resistors and 1 switch. It belongs with the interfaces and adapters boards and the ESP32 and RISC-V boards of this library.

Main components

3

README

README.md

What it does

This project is to enable remote administration of machines through a USB serial port. You can have several machines connected to the serial router and as long as one of them is accessible over the network, you can use it to reach the other machines. This was motivated by the fact that I work remotely and also do a lot of SDN experiments that cause me to lose connectivity if something is misconfigured.

How to build

I designed the PCB itself in KiCAD based around an Espressif Esp32-c6 chip with several CH340 USB-to-serial convertors. Everything is big enough to be hand solderable if needed, I used JLC PCB to build the PCB and assemble everything except the esp32 chip.

Firmware Install

I use MicroPython for my firmware, it is easy to install, easy to use, and is well supported for Espressif devices. You can build from source or download the latest release from Here.

That download will give you a binary file that you can install to the chip using esptool.

text
pip install esptool

Then to push the firmware you would run the following:

text
esptool.py --port PORTNAME erase_flash
esptool.py --port PORTNAME --baud 460800 write_flash 0 FIRMWARE.bin

Where FIRMWARE.bin is the binary MicroPython firmware you downloaded or compiled and PORTNAME is the port when you plug the left most usb port into your computer. In my case it was /dev/ttyACM0, but it maybe /dev/ttyUSB0 or something else.

Software Install

Now that you have the board running MicroPython, you can push the boot.py file to the board to run our serial router program. I use ampy to push files to esp chips, you can install it:

text
pip install adafruit-ampy

Now you can push the program which will run on boot in MicroPython

text
ampy --port /dev/ttyACM0 put boot.py /boot.py

Now the serial router should be running UART on the four right most usb ports and able to link between them.

Create login shell

Now on all your machines that you want to remotely access (assuming they are running Linux):

text
sudo systemctl enable serial-getty@ttyUSB0.service

Replace ttyUSB0 with whatever the USB serial port shows up as.

Access a machine

If this is running on 4 machines, you can use any 1 to access the other 3. Simple disable the login shell that is bound to the serial port:

text
sudo systemctl stop serial-getty@ttyUSB0.service

Next use a tool like tmux or screen to connect to the serial port

text
sudo screen /dev/ttyUSB0 9600

You may or may not need to specify the baud rate, I am using the default 9600 but you can also change this by modifying the boot.py and modifying the serial-getty@ttyUSB0.service. Now that you have a screen session you can hold down the 0,1,2,3 key to connect to the login shell running bound to that specific USB port. When you are finished press ctl+d to tell the router to disconnect the ports, then close your screen session and start up your login shell again.

text
sudo systemctl start serial-getty@ttyUSB0.service

That's all there is to it.

Parts

19
QtyValueFootprintReferences
5USB_B_MicroConnector_USB:USB_Micro-B_Amphenol_10118194_HorizontalJ1, J2, J3, J4, J5
4CH340CPackage_SO:SOIC-16_3.9x9.9mm_P1.27mmU2, U3, U4, U5
22.2uFCapacitor_SMD:C_0402_1005MetricC1, C2
249K9Resistor_SMD:R_0402_1005MetricR2, R3
111KResistor_SMD:R_0603_1608MetricR1
12.2uHInductor_SMD:L_0805_2012MetricL1
122uFCapacitor_SMD:C_0603_1608MetricC3
1ESP32-C6-MINI-1/UPCM_Espressif:ESP32-C6-MINI-1U1
1JW5211Package_TO_SOT_SMD:SOT-23-5U6
1SW_PushButton_Switch_SMD:SW_SPST_CK_RS282G05A3SW1

Similar boards

  • 4 layers75.5 × 79.3 mmKaage Pi, the printed circuit board in 3D

    Kaage Pi

    abhilashsagar/Kaage-Pi

    Open Source Linux SBC

    117 parts17
  • 4 layers54.6 × 89.5 mmHdmi2rgb adapter, the printed circuit board in 3D

    Hdmi2rgb adapter

    embeddedboys/hdmi2rgb_adapter

    hdmi2rgb_adapter is a simple HDMI to RGB deserializer based on TFP401 (TI)

    55 parts4MIT
  • 2 layers89 × 51 mmBusinessCard, the printed circuit board in 3D

    BusinessCard

    JubilantMarmot/pcc5

    This is my first PCB project. It took me around 20 hours. It is a small Linux computer that is the size of a business card. Based off of Allwinner F1C200s.

    39 parts
  • 2 layers90 × 54.5 mmBusiness card, the printed circuit board in 3D

    Business card

    whateverany-org/business-card

    48 partsUnlicense
  • 2 layers150 × 100 mmNew year card for fhd, the printed circuit board in 3D

    New year card for fhd

    xiaoyaowudi-extreme/new-year-card-for-fhd

    This repository contains the design of the pcb which will be sent to fhd on the Valentine's Day.

    43 parts
  • 2 layers61 × 61 mmCo2-sensor, the printed circuit board in 3D

    Co2-sensor

    blinry/co2-canary

    An open-hardware, ultra-low power CO2 sensor

    57 parts78
  • 4 layers79 × 79 mmMinuet, the printed circuit board in 3D

    Minuet

    brown-studios/minuet

    Minuet upgrades your MAXXAIR Maxxfan with a brushless DC motor, home automation features, and accessories.

    103 parts67MIT
  • 4 layers36.5 × 69 mmStorm tracker, the printed circuit board in 3D

    Storm tracker

    solderable/storm-tracker-hardware

    Open-source-ready Storm Tracker hardware design, documentation, BOM, and manufacturing package

    102 parts58

Questions

How big is the Serial remote access esp32 c6 PCB?

It measures 59.1 × 31.6 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Serial remote access esp32 c6 use?

19 parts, built around the CH340C, ESP32-C6-MINI-1U-H4 and JW5211. 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 Serial remote access esp32 c6 KiCad files?

From the jalbrethsen/serial-router repository on GitHub, at the commit this page was made from: the board is kicad_files/serial_remote_access_esp32_c6.kicad_pcb and its schematic kicad_files/serial_remote_access_esp32_c6.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Serial remote access esp32 c6 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).