Skip to the content
2 layers16.9 × 14.4 mmRs485-ch340e, the printed circuit board in 3D

A small CH340E based configurable RS485 or TTL 2/3-wire USB dongle

Size
16.9 × 14.4 mm
Copper layers
2
Thickness
1 mm
Parts
17
Nets
15
Pads
65
Tracks, vias
154, 19
Pours
1
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
5 Nov 2019
Updated
22 May 2022

Overview

Rs485-ch340e is an open-source printed circuit board by TG9541, from the TG9541/rs485-ch340e repository on GitHub, published under the MIT licence. It is a 2-layer board of 16.9 × 14.4 mm with 17 parts on 15 nets, routed with 154 tracks and 19 vias.

It is built around the CH340E, SP3485CN-L and XC6206P332MR. Its parts include 3 capacitors, 3 ICs, 3 diodes, 2 resistors and 2 connectors. It belongs with the interfaces and adapters boards of this library.

Main components

3

README

README.md

RS485-CH340E

Order from OSH Park

I needed a USB-RS485 dongle with reliable automatic direction control but it was impossible to find anything that's both reliable and cheap (not to speak of small). The "budget" cmmercial USB-RS485 dongles "try" to implement direction controll with the host's Tx signal. The timing of such a solution is tricky (and potentially unreliable). A "popular" work-around is using a questionable "dominant-recessive" approach to RX-TX switching with a "CAN network style" recessive default state. Such a hack is certainly not RS485 compliant and may randomly fail if multiple nodes are connected, the bus cable is long, at higher bit-rates, if the weather changes, or in any combination of that.

Fortunately, the very cheap CH340E provides a true RX/TX direction signal that can be used for controlling an RS485 transceiver with perfect timing. I was surprised that there are still no cheap CH340E based RS485 dongles on the market - so I decided to make one. This repository provides a small CH340E based configurable RS485 or TTL 2/3-wire USB dongle.

If you're "shopping" for ideas how to use this solution down for a mass-market product: it's certainly possible to make solution with a minimal BOM, or one with additional robustness. Feel free to writen me an issue if you want to learn how.

front

back

PCB

PCB

Schematic

schematic

The BOM is in the doc folder.

Note: the supply voltage of U1 can be selected with J3. It is either 5V (default) or 3.3V (1-2 open, 2-3 closed). This configuration option has not been tested.

RS485 configuration:

The built-in CH340E 3.3V LDO can provide a 3.3V supply for the RS485 transceiver which makes populating the linear voltage regulator U3 (XC6206P332MR) optional. For most applications it's better to populate U3 since the maximum number of RS485 nodes that can be connected to the bus might be limited by the current that the internal LDO can provide.

Note: SW1 controlls "TX-RX echo" (pin1-1 closed) or "no echo" (pin2-3 closed, this is standard RS485 functionality). If switching isn't required the pads can be bridged with a bit of solder. Most people won't need switching and in a re-design I would certainly replace SW1 with a jumper.

Core RS485 configuration (limited fan-out):

Populate the following:

  • front side: U1, U2, C2, C4, J2
  • back side: SW1

Standar RS485 configuration (standard fan-out):

Populate the following:

  • front side: U1, U2, U3, C1, C2, C4, J2
  • back side: SW1, R1, R2, D2, D3

RS232-TTL configuration:

The dongle can be configured for 3-wire (full duplex) or 2-wire (half duplex) communication. The 2-wire option can be used for command-response console protocols, e.g., the half-duplex STM8 eForth configuration.

3-wire configuration:

Populate the following:

  • front side: U1, C2, C4, J2
  • back side: (optional) R1, R2, D2, D3

Close jumpers J1 (RX, J2.3) and J2 (TX, J2.2) on the back side.

2-wire configuration:

Populate the following:

  • front side: U1, C2, C4, J2
  • back side: D1, (optional) R1, R2, D2, D3

Close jumpers J1 (RX/TX, J2.3) on the back side.

Parts

17
QtyValueFootprintReferences
21uFCapacitor_SMD:C_0603_1608MetricC1, C2
24k7Resistor_SMD:R_0603_1608MetricR1, R2
1100nFCapacitor_SMD:C_0603_1608MetricC4
1CH340EPackage_SO:TSSOP-10_3x3mm_P0.5mmU1
1Conn_01x04_MaleConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_HorizontalJ2
1DIODEDiode_SMD:D_MiniMELFD1
1LED greenLED_SMD:LED_0603_1608MetricD3
1LED redLED_SMD:LED_0603_1608MetricD2
1RXJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP1
1SP3485CNPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU2
1SW_SPDTButton_Switch_SMD:SW_SPDT_PCM12SW1
1SolderJumper_3_Bridged12Jumper:SolderJumper-3_P1.3mm_Bridged12_RoundedPad1.0x1.5mmJP3
1TXJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP2
1USB_AConnector_USB:USB_A_CNCTech_1001-011-01101_HorizontalJ1
1XC6206P332MRPackage_TO_SOT_SMD:SOT-23U3

Similar boards

  • 2 layers87 × 72 mmEkdome, the printed circuit board in 3D

    Ekdome

    KrogeChen/EASYLINK

    easy link protocol by homebus

    118 parts
  • 2 layers33.3 × 6.3 mmStm8s001rs485, the printed circuit board in 3D

    Stm8s001rs485

    TG9541/stm8s001rs485

    A narrow KiCad made PCB with STM8S001J3, RS485 driver and DS1621S Thermometer, e.g., for STM8EF-MODBUS

    21 parts20MIT
  • 4 layers55.8 × 20 mmWmbus, the printed circuit board in 3D

    Wmbus

    nobodyguy/wmbus_hardware

    WM-bus to USB

    27 parts7MIT
  • 2 layers33 × 34 mmTempsensor esp01, the printed circuit board in 3D

    Tempsensor esp01

    anna328p/tempsensor_esp01

    tempsensor_esp01

    29 parts
  • 4 layers9.7 × 17.9 mmBeagleBark, the printed circuit board in 3D

    BeagleBark

    Grippy98/Beagle-Serial-Adapter

    A CH340E Based Minimalist USB-Serial Adapter for BeaglePlay, AI64 and More

    19 partsGPL-3.0
  • 4 layers46.9 × 68.1 mmA133CoreDK, the printed circuit board in 3D

    A133CoreDK

    kitspace-test-repos/kicad6-file-collection

    102 partsMIT
  • 4 layers40 × 40 mmEnc encoder, the printed circuit board in 3D

    Enc encoder

    ROAR-QUTRC/perseus-v3

    The code base for the QUT Robotics Club ROAR teams rover Perseus starting 2026

    87 parts10
  • 2 layers94 × 94 mm3axis magnitometer, the printed circuit board in 3D

    3axis magnitometer

    NarodniySputnik/Gladiolus-1

    Gladiolus-1 - автономный модуль для приема и передачи изображений в формате SSTV (Slow Scan TeleVision) на малом космическом аппарате (МКА) формата CubeSat

    96 parts9GPL-3.0

Questions

How big is the Rs485-ch340e PCB?

It measures 16.9 × 14.4 mm and has 2 copper layers, 1 mm thick.

What parts does the Rs485-ch340e use?

17 parts, built around the CH340E, SP3485CN-L and XC6206P332MR. 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 Rs485-ch340e KiCad files?

From the TG9541/rs485-ch340e repository on GitHub, at the commit this page was made from: the board is RS485-CH340E.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Rs485-ch340e 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).