
Motherboard
mikegoelzer/Homebrew-ECP5-SBC
Kicad files for homebrew hobbyist computer with custom RISC-V CPU

USB armory - The open source compact secure computer
Accessory is an open-source printed circuit board by usbarmory, from the usbarmory/usbarmory repository on GitHub. It is a 2-layer board of 45.7 × 25.9 mm with 50 parts on 68 nets, routed with 609 tracks and 80 vias.
It is built around the FT4232HL-REEL. Its parts include 17 capacitors, 9 resistors, 3 ICs, 3 inductors and 2 connectors.
The USB armory is an open source hardware design, implementing a flash drive sized computer.
The USB armory Mk II exposes a USB Type-C receptacle, which allows through the so called USB-C 'debug accessory mode' to route analog/debug signals over its connector, the USB armory Mk II design leverages on this to break out UART, SPI, I²C, CAN (pre-transceiver), GPIOs connections to/from its application processor.
The debug accessory board allows to access UART and GPIO signals through USB, without requiring probes, through an FTDI FT4232H. This allows, for example, access to the USB armory Mk II serial console without wires or probes, natively using only USB cables. All other interfaces can be accessed through dedicated breakout through holes.
This repository is aimed towards developers, if you wish to purchase a USB armory board please see the USB armory documentation.

2 layers, 0.80mm thickness, top only components
Outer layers 0.5 oz base copper foil
Inner layers 1 oz base copper foil
width (X) 45.65 mm, height (Y) 25.90 mm
Red soldermask, white component legend
Minimum track width: 0.127 mm
Minimum via diameter: 0.450 mm
Outer layer track width: 0.127 mm
Outer layer isolation distance: 0.127 mm
Outer layer annular ring: 0.100 mm
Smallest final hole (plated): 0.150 mm
The silkscreen labels for 3.3V and 5V are inverted on all rev v1 PCBs, see
this issue.
NOTE: the connection between the debug accessory and the target is supported only with the same orientation for both top layers (side with components for the accessory, side with LEDs for the USB armory).
The following table summarizes the available configurations on the USB armory Mk II through debug accessory mode, which are exposed on its Type-C receptacle port.
| USB-C pin | MUX mode ALT0 | MUX mode ALT8 | MUX mode ALT2 | MUX mode ALT5 |
|---|---|---|---|---|
| SSTXp1 (A2) | UART2_TX | ECSPI3_SSO¹ | I2C4_SCL¹ | GPIO1_IO20 |
| SSTXn1 (A3) | UART2_RX | ECSPI3_SCLK¹ | I2C4_SDA¹ | GPIO1_IO21 |
| SSRXp1 (B11) | UART2_RTS_B | ECSPI3_MISO¹ | FLEXCAN2_RX¹ | GPIO1_IO23 |
| SSRXn1 (B10) | UART2_CTS_B | ECSPI3_MOSI¹ | FLEXCAN2_TX¹ | GPIO1_IO22 |
| SSRXp2 (A11) | UART4_TX | ECSPI2_SCLK | I2C1_SCL | GPIO1_IO28 |
| SSTXn2 (B3) | UART4_RX | ECSPI2_SSO | I2C1_SDA | GPIO1_IO29 |
| SSRXn2 (A10) | UART5_TX~ | ECSPI2_MOSI | I2C2_SCL | GPIO1_IO30 |
| SSTXp2 (B2) | UART5_RX~ | ECSPI2_MISO | I2C2_SDA | GPIO1_IO31 |
¹ Only on USB armory Mk II boards mounting i.MX6UL SoC, not available on versions mounting the i.MX6ULZ.
When running the USB armory Debian base image the serial console (UART2) can be accessed, with the debug accessory jumper set to UART position, as follows (example on Linux host with picocom):
picocom -b 115200 -eb /dev/ttyUSB2 --imap lfcrlfThe debug accessory always acts as a power source and is meant to be connected exclusively to the USB armory Mk II Type-C receptacle port. The USB armory Mk II Type-C can be safely plugged on a different receptacle as the board can handle two power sources simultaneously.
It is not recommended to connect the debug accessory to anything other than the USB armory Mk II, however in case this happens compliant Type-C receptacles should handle the situation gracefully¹ without concerns.
¹ USB Type-C Cable and Connector Specification (1.3, 2017-07-14): "Legacy hosts/chargers that by default source VBUS when connected using any legacy USB connector (Standard-A, Micro-B, etc.) to USB Type-C cable or adapter are exempted from these two requirements."
The GPIO and UART functions can be used directly using the FTDI FT4232H USB interface accessible on the Micro USB Type-B connector, all other modes can be accessed using the exposed breakout through holes.
The following table illustrates the required jumper positions and interfaces for each available I/O mode.
| Mode | GPIO¹ | Interface |
|---|---|---|
| GPIO | GPIO | FTDI MPSSE mode on [A,B]DBUS[4-7] |
| UART2 | !GPIO | FTDI RS232 mode on CDBUS[0-3] |
| UART4 | !GPIO | FTDI RS232 mode on BDBUS[0-1] |
| UART5 | !GPIO | FTDI RS232 mode on ADBUS[0-1] |
| SPI2 | N/A² | through holes: A11, B3, A10, B2 |
| SPI3 | N/A² | through holes: A2, A3, B11, B10 |
| I2C1 | N/A² | through holes: A11, B3 |
| I2C2 | N/A² | through holes: A10, B2 |
| I2C4 | N/A² | through holes: A2, A3 |
| CAN2 | N/A² | through holes: B11, B10 |
¹ The GPIO header position refers to termination either of the two pins facing the "GPIO" label (GPIO position, pins towards positions 3 and 2) or the opposite position (!GPIO position, pins towards positions 2 and 1).
² Any position can be used as the FTDI is not used in such mode.
| USB-C pin | i.MX6UL pin | FTDI pin | FTDI MPSSE |
|---|---|---|---|
| SSTXp1 (A2) | GPIO1_IO20 | BDBUS6 | #B GPIOL2 |
| SSTXn1 (A3) | GPIO1_IO21 | BDBUS7 | #B GPIOL3 |
| SSRXp1 (B11) | GPIO1_IO23 | BDBUS5 | #B GPIOL1 |
| SSRXn1 (B10) | GPIO1_IO22 | BDBUS4 | #B GPIOL0 |
| SSRXp2 (A11) | GPIO1_IO28 | ADBUS4 | #A GPIOL0 |
| SSTXn2 (B3) | GPIO1_IO29 | ADBUS7 | #A GPIOL3 |
| SSRXn2 (A10) | GPIO1_IO30 | ADBUS5 | #A GPIOL1 |
| SSTXp2 (B2) | GPIO1_IO31 | ADBUS6 | #A GPIOL2 |
| USB-C pin | i.MX6UL pin | FTDI pin | FTDI MPSSE |
|---|---|---|---|
| SSTXp1 (A2) | UART2_TX | CDBUS1 | #C RXD |
| SSTXn1 (A3) | UART2_RX | CDBUS0 | #C TXD |
| SSRXp1 (B11) | UART2_RTS_B¹ | CDBUS3 | #C CTS |
| SSRXn1 (B10) | UART2_CTS_B¹ | CDBUS2 | #C RTS |
¹ On USB armory Mk II rev. β see the related errata.
| USB-C pin | i.MX6UL pin | FTDI pin | FTDI MPSSE |
|---|---|---|---|
| SSRXp2 (A11) | UART4_TX | BDBUS1 | #B RXD |
| SSTXn2 (B3) | UART4_RX | BDBUS0 | #B TXD |
| USB-C pin | i.MX6UL pin | FTDI pin | FTDI MPSSE |
|---|---|---|---|
| SSRXn2 (A10) | UART5_TX | ADBUS1 | #A RXD |
| SSTXp2 (B2) | UART5_RX | ADBUS0 | #A TXD |
When no debug accessory is available, the serial console (UART2) can be also accessed with a USB-C plug breakout and a USB to 3.3 TTL serial cable with the following configuration.
| PIN | Config |
|---|---|
| A4, A5 | 56 kOhm |
| B4, B5 | 56 kOhm |
| A2, A3 | 3.3V UART TX/RX |
| A4 | 5V |
| A1 | GND |
USB armory | https://github.com/usbarmory/usbarmory
Copyright (c) The USB armory authors
This is an open hardware design licensed under the terms of the CERN Open Hardware Licence (OHL) v1.2.
You may redistribute and modify this documentation under the terms of the CERN OHL v.1.2 (http://ohwr.org/cernohl). This documentation is distributed WITHOUT ANY EXPRESS OR IMPLIED WARRANTY, INCLUDING OF MERCHANTABILITY, SATISFACTORY QUALITY AND FITNESS FOR A PARTICULAR PURPOSE. Please see the CERN OHL v.1.2 for applicable conditions.
The following exceptions apply:
../lib.snapeda: all files in this directory are imported or modified
from SnapEDA symbols and footprints, therefore the license at
https://www.snapeda.com/about/FAQ/#license applies.| Qty | Value | Footprint | References |
|---|---|---|---|
| 11 | TestPoint | armory-kicad:CONN_1 | TP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP9, TP10, TP11 |
| 10 | 0.1 uF | armory-kicad:SM0603 | C5, C6, C7, C9, C11, C12, C13, C14, C15, C17 |
| 4 | 10k | armory-kicad:SM0603 | R7, R8, R9, R11 |
| 3 | 600ohm 500mA | armory-kicad:SM0603 | L1, L2, L3 |
| 2 | 27pF | armory-kicad:SM0603 | C4, C8 |
| 2 | 4.7 uF | armory-kicad:SM0603 | C10, C16 |
| 2 | 56k | armory-kicad:SM0603 | R1, R4 |
| 1 | 0475890001 | snapeda:MOLEX_0475890001 | J2 |
| 1 | 10uF | armory-kicad:SM0603 | C1 |
| 1 | 12MHz | armory-kicad:TXC-3.2x2.5 | Y1 |
| 1 | 12k | armory-kicad:SM0603 | R6 |
| 1 | 1k | armory-kicad:SM0603 | R5 |
| 1 | 2.2k | armory-kicad:SM0603 | R10 |
| 1 | 22uF | armory-kicad:SM0603 | C2 |
| 1 | 3.3 uF | armory-kicad:SM0603 | C3 |
| 1 | 93LCxxC | armory-kicad:8L_SOIC_Narrow_3_90_SN_C04-057C | U3 |
| 1 | FT4232HL-REEL | snapeda:QFP50P1200X1200X160-64N | U1 |
| 1 | G*** | FSC_LOGO_NO_TEXT_SMALL | FSC_LOGO_NO_TEXT_SMALL |
| 1 | Jumper_NC_Dual | armory-kicad:SIL-3 | JP3 |
| 1 | NCP1117-3.3_SOT223 | armory-kicad:SOT-223 | U2 |
| 1 | TS3L501E | snapeda:R-PWQFN-N42 | SW1 |
| 1 | USBC-PLUG | armory-kicad:WURTH_632712000011 | J1 |
| 1 | Val** | IP_LOGO_NO_TEXT_SMALL | Ref** |
It measures 45.7 × 25.9 mm and has 2 copper layers, 1.6 mm thick.
50 parts, built around the FT4232HL-REEL. 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.
From the usbarmory/usbarmory repository on GitHub, at the commit this page was made from: the board is hardware/mark-two-debug-accessory/accessory.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask usbarmory before reusing the design.

mikegoelzer/Homebrew-ECP5-SBC
Kicad files for homebrew hobbyist computer with custom RISC-V CPU

mmantawy-sees-ai/FTDI-FT4232H-PCB
New PCB that has the FTDI FT4232H Chip



hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

dmcke5/NucDeck
The Open Source DIY Handheld Gaming PC!

