Skip to the content
PCBKitNew board
2 layers39.8 × 16.4 mmOpenUsbSerialAdapter, the printed circuit board in 3D

Open Hardware USB to Serial converter

Size
39.8 × 16.4 mm
Copper layers
2
Thickness
1.6 mm
Parts
21
Nets
21
Pads
76
Tracks, vias
233, 33
Pours
2
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
12 Jan 2020
Updated
24 Feb 2021

Overview

OpenUsbSerialAdapter is an open-source printed circuit board by SukkoPera, from the SukkoPera/OpenUsbSerialAdapter repository on GitHub. It is a 2-layer board of 39.8 × 16.4 mm with 21 parts on 21 nets, routed with 233 tracks and 33 vias.

It is built around the AMS1117-3.3. Its parts include 7 resistors, 6 capacitors, 2 ICs, 2 connectors and 1 switch. It belongs with the interfaces and adapters boards and the AVR (ATmega, ATtiny) boards of this library.

Main components

1

README

README.md

OpenUsbSerialAdapter

OpenUsbSerialAdapter is an Open Hardware USB to TTL-level Serial converter.

Board

Summary

An infinite number of different models of USB to TTL-level serial converters can be found on every online shop, many of which even cost less than 1€ shipped from China, so why make one more? There are a few reasons:

  • Many of them are missing the DTR and RTS signals (or at least do not break them out so that they can be used). At least one of these signals is necessary for programming Arduino boards through the serial port and, since this makes up for 90% of my use of USB to serial converters, I find this pretty annoying.
  • Most of these cheap converters claim to be both 5V and 3.3V serial level compatible, but all most of them actually do is just use 3.3V signalling, which usually also works fine with boards that work at 5V, but still it is a bit of a hack.
  • None of these converters has a decent 3.3V regulator onboard, usually being able to provide only a few tens of milliamperes on the 3.3V power pin (and not even all of them have one). This is too little for some uses, like powering an ESP8266 module for instance, and is the source of maaany of the problems users report with that chip.
  • Finding Windows and OSX drivers for some of these modules is a nightmare.
  • Not to mention the infamous FTDI-gate...

So, when I came across a USB to Serial chip (Microchip MCP2200) that had RTS/CTS signals and claimed not to need any particular drivers, I decided to have a go at designing the one converter to rule them all. I tried to consider every possible feature during the design, but in any case I am releasing this as Open Hardware, so everybody can customize it so that it fully suits their needs.

Features

  • Real support for both 3.3V and 5V signalling and power output levels
  • RX/TX leds
  • Protection resistors for RX/TX inversion
  • RX/TX pull-up resistors (optional)
  • Can provide up to 1A current on the 3.3V power output pin (This will actually be less as it will be limited by USB)
  • Hardware Flow Control pins (RTS/CTS, RTS can be used for the initial reset for Arduino programming)
  • Speed up to 1000 kBaud/s
  • Uses USB HID capabilities, which means it needs no drivers on Windows/OSX (This has to confirmed, as I only run Linux)
  • Configurable product/manufacturer strings and PID/VID
  • Ability to invert the polarity of the RX/TX signals
  • Compact form factor (about the size of a standard thumb drive)
  • Cheap (total BOM cost is less than 3€) and easy to DIY-build (about 20 common components, SMD soldering ability is required, but all components are 0805 or larger)

Assembly and Configuration

Solder all components to the board in the order you prefer. You have some options:

  • R3 and R4 are the RX/TX inversion protection resistors. I used 100 ohm for these, which works fine in my tests, but this value was improvised rather than calculated. You might want to increase them up to 1k for additional safety. In rare cases, you might want to replace them with 0 ohm/solder blobs, but this might be harmful for the main chip or for the device it is connected to. Do this at your risk.
  • R5 and R6 are the RX/TX pull-up resistors. Usually these are not necessary, so you might want to skip them. Note that R7 is mandatory instead.

The adapter is somewhat configurable. On Windows you can use the official Microchip Configuration Utility. On Linux (and OSX?) you can use a quick replacement I put together, or this other one. The latter is also capable of changing the USB product/manufacturer strings and PID/VID.

Note that the factory settings of the chip will NOT make the RX/TX leds blink on traffic, you will have to enable that through the configuration utility. Another apparent oddity is that you need to turn Hardware Flow Control OFF in order to use the adapter for Arduino programming.

Signal polarity inversion can also be enabled through the Configuration Utility.

Usage

Just plug the converter into a free USB port of your computer. On Linux a /dev/ttyACMx device should pop up within seconds. On other Operating Systems... You are on your own :). In theory, it should not need any dedicated drivers, but I saw there are some on the MCP2200 product page, so you can get them from there, in case.

Releases

If you want to get this board produced, you are recommended to get the latest release rather than the current git version, as the latter might be under development and is not guaranteed to be working.

Every release is accompanied by its Bill Of Materials (BOM) file and any relevant notes about it, which you are recommended to read carefully.

License

The OpenUsbSerialAdapter documentation, including the design itself, is copyright © SukkoPera 2020.

OpenUsbSerialAdapter is Open Hardware licensed under the CERN OHL v. 1.2.

You may redistribute and modify this documentation under the terms of the CERN OHL v.1.2. This documentation is distributed as is and WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES whatsoever with respect to its functionality, operability or use, including, without limitation, any implied warranties OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A PARTICULAR PURPOSE or infringement. We expressly disclaim any liability whatsoever for any direct, indirect, consequential, incidental or special damages, including, without limitation, lost revenues, lost profits, losses resulting from business interruption or loss of data, regardless of the form of action or legal theory under which the liability may be asserted, even if advised of the possibility or likelihood of such damages.

A copy of the full license is included in file LICENSE.pdf, please refer to it for applicable conditions. In order to properly deal with its terms, please see file LICENSE_HOWTO.pdf.

The contact points for information about manufactured Products (see section 4.2) are listed in file PRODUCT.md.

Any modifications made by Licensees (see section 3.4.b) shall be recorded in file CHANGES.md.

The Documentation Location of the original project is https://github.com/SukkoPera/OpenUsbSerialAdapter/.

Support the Project

If you want to support the project, you can order the boards from PCBWay through this link:

PCB from PCBWay

You get my gratitude and cheap, good quality PCBs, professionally-made. I get some credit that will help with this and other projects. You won't even have to worry about the various PCB options, it's all pre-configured for you!

If you still have to register to that site, you can use this link to get some bonus initial credit (and yield me some more).

You can also buy me a coffee if you want:

Buy Me a Coffee at ko-fi.com

Parts

21
QtyValueFootprintReferences
310kResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR5, R6, R7
2100Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR3, R4
210uCapacitor_Tantalum_SMD:CP_EIA-3216-18_Kemet-A_Pad1.58x1.35mm_HandSolderC5, C6
2220Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR1, R2
222pCapacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolderC1, C2
1100nCapacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolderC4
112MCrystal:Crystal_HC49-U_VerticalY1
1330nCapacitor_SMD:C_1206_3216Metric_Pad1.42x1.75mm_HandSolderC3
1AMS1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U2
1FTDIOpenUsbSerialAdapter:PinHeader_1x06_P2.54mm_VerticalJ2
1LED_RXLED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolderLD2
1LED_TXLED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolderLD1
1MCP2200-I-SOPackage_SO:SOIC-20W_7.5x12.8mm_P1.27mmU1
1SW_DPDT_x2OpenUsbSerialAdapter:SW_DPDTSW1
1USB_AOpenUsbSerialAdapter:USB_A_Molex_48037J1

Questions

How big is the OpenUsbSerialAdapter PCB?

It measures 39.8 × 16.4 mm and has 2 copper layers, 1.6 mm thick.

What parts does the OpenUsbSerialAdapter use?

21 parts, built around the 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 OpenUsbSerialAdapter KiCad files?

From the SukkoPera/OpenUsbSerialAdapter repository on GitHub, at the commit this page was made from: the board is OpenUsbSerialAdapter.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the OpenUsbSerialAdapter design in my own project?

Its repository states no licence, so its author keeps all rights: ask SukkoPera before reusing the design.

Similar boards

  • 2 layers290.1 × 130 mmPro V2, the printed circuit board in 3D

    Pro V2

    kata0510/Lily58

    6×4+4keys column-staggered split keyboard.

    312 parts2.3k
  • 2 layers26.2 × 45.5 mmPL18 multiprotocol, the printed circuit board in 3D

    PL18 multiprotocol

    pascallanger/DIY-Multiprotocol-TX-Module

    Multiprotocol TX Module (or MULTI-Module) is a 2.4GHz transmitter module which controls many different receivers and models.

    24 parts1.9kGPL-3.0
  • 4 layers99 × 53.3 mmPSLab, the printed circuit board in 3D

    PSLab

    fossasia/pslab-hardware

    PSLab Hardware Design and Schematics https://pslab.io

    199 parts1.7kApache-2.0
  • 4 layers85 × 56 mmPslab mini, the printed circuit board in 3D

    Pslab mini

    fossasia/pslab-mini-hardware

    PSLab Mini Hardware https://pslab.io

    182 parts1.2kApache-2.0
  • 4 layers100 × 54 mm32Bit shift register, the printed circuit board in 3D

    32Bit shift register

    MaltWhiskey/Mega-Cube

    16x16x16 PL9823 Cube with Teensy 4.0 and FlexIO driver

    64 parts766
  • 2 layers44.2 × 29.3 mmI2c tiny usb, the printed circuit board in 3D

    I2c tiny usb

    harbaum/I2C-Tiny-USB

    Cheap and simple I²C to USB interface

    27 parts454
  • 2 layers78 × 60 mmIce viz, the printed circuit board in 3D

    Ice viz

    muni-works/vcad

    BRep CAD kernel in Rust/WASM

    44 parts442Apache-2.0
  • 2 layers59.1 × 99.9 mmCheap FOCer 2 60mm, the printed circuit board in 3D

    Cheap FOCer 2 60mm

    shamansystems/Cheap-FOCer-2

    Low-Cost Motor Controller based on the VESC 6

    193 parts407