Skip to the content
PCBKitNew board
2 layers45.7 × 25.9 mmAccessory, the printed circuit board in 3D

USB armory - The open source compact secure computer

Size
45.7 × 25.9 mm
Copper layers
2
Thickness
1.6 mm
Parts
50
Nets
68
Pads
232
Tracks, vias
609, 80
Pours
2
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
3 Oct 2014
Updated
28 Aug 2026

Overview

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.

Main components

1

README

hardware/mark-two-debug-accessory/README.md

USB armory Mk II debug accessory

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.

Mk II debug accessory

PCB Information

Mk II debug accessory

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

Bill of materials

DRC information

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

Errata

The silkscreen labels for 3.3V and 5V are inverted on all rev v1 PCBs, see this issue.

USB armory Mk II debug I/Os

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 pinMUX mode ALT0MUX mode ALT8MUX mode ALT2MUX mode ALT5
SSTXp1 (A2)UART2_TXECSPI3_SSO¹I2C4_SCL¹GPIO1_IO20
SSTXn1 (A3)UART2_RXECSPI3_SCLK¹I2C4_SDA¹GPIO1_IO21
SSRXp1 (B11)UART2_RTS_BECSPI3_MISO¹FLEXCAN2_RX¹GPIO1_IO23
SSRXn1 (B10)UART2_CTS_BECSPI3_MOSI¹FLEXCAN2_TX¹GPIO1_IO22
SSRXp2 (A11)UART4_TXECSPI2_SCLKI2C1_SCLGPIO1_IO28
SSTXn2 (B3)UART4_RXECSPI2_SSOI2C1_SDAGPIO1_IO29
SSRXn2 (A10)UART5_TX~ECSPI2_MOSII2C2_SCLGPIO1_IO30
SSTXp2 (B2)UART5_RX~ECSPI2_MISOI2C2_SDAGPIO1_IO31

¹ Only on USB armory Mk II boards mounting i.MX6UL SoC, not available on versions mounting the i.MX6ULZ.

Serial console

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):

text
picocom -b 115200 -eb /dev/ttyUSB2 --imap lfcrlf

Debug accessory jumper settings

Power source

The 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."

I/O mode

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.

ModeGPIO¹Interface
GPIOGPIOFTDI MPSSE mode on [A,B]DBUS[4-7]
UART2!GPIOFTDI RS232 mode on CDBUS[0-3]
UART4!GPIOFTDI RS232 mode on BDBUS[0-1]
UART5!GPIOFTDI RS232 mode on ADBUS[0-1]
SPI2N/A²through holes: A11, B3, A10, B2
SPI3N/A²through holes: A2, A3, B11, B10
I2C1N/A²through holes: A11, B3
I2C2N/A²through holes: A10, B2
I2C4N/A²through holes: A2, A3
CAN2N/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.

Pin assignment: GPIO

USB-C pini.MX6UL pinFTDI pinFTDI MPSSE
SSTXp1 (A2)GPIO1_IO20BDBUS6#B GPIOL2
SSTXn1 (A3)GPIO1_IO21BDBUS7#B GPIOL3
SSRXp1 (B11)GPIO1_IO23BDBUS5#B GPIOL1
SSRXn1 (B10)GPIO1_IO22BDBUS4#B GPIOL0
SSRXp2 (A11)GPIO1_IO28ADBUS4#A GPIOL0
SSTXn2 (B3)GPIO1_IO29ADBUS7#A GPIOL3
SSRXn2 (A10)GPIO1_IO30ADBUS5#A GPIOL1
SSTXp2 (B2)GPIO1_IO31ADBUS6#A GPIOL2

Pin assignment: UART2

USB-C pini.MX6UL pinFTDI pinFTDI MPSSE
SSTXp1 (A2)UART2_TXCDBUS1#C RXD
SSTXn1 (A3)UART2_RXCDBUS0#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.

Pin assignment: UART4

USB-C pini.MX6UL pinFTDI pinFTDI MPSSE
SSRXp2 (A11)UART4_TXBDBUS1#B RXD
SSTXn2 (B3)UART4_RXBDBUS0#B TXD

Pin assignment: UART5

USB-C pini.MX6UL pinFTDI pinFTDI MPSSE
SSRXn2 (A10)UART5_TXADBUS1#A RXD
SSTXp2 (B2)UART5_RXADBUS0#A TXD

Physical access: UART2

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.

PINConfig
A4, A556 kOhm
B4, B556 kOhm
A2, A33.3V UART TX/RX
A45V
A1GND

License

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:

Parts

50
QtyValueFootprintReferences
11TestPointarmory-kicad:CONN_1TP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP9, TP10, TP11
100.1 uFarmory-kicad:SM0603C5, C6, C7, C9, C11, C12, C13, C14, C15, C17
410karmory-kicad:SM0603R7, R8, R9, R11
3600ohm 500mAarmory-kicad:SM0603L1, L2, L3
227pFarmory-kicad:SM0603C4, C8
24.7 uFarmory-kicad:SM0603C10, C16
256karmory-kicad:SM0603R1, R4
10475890001snapeda:MOLEX_0475890001J2
110uFarmory-kicad:SM0603C1
112MHzarmory-kicad:TXC-3.2x2.5Y1
112karmory-kicad:SM0603R6
11karmory-kicad:SM0603R5
12.2karmory-kicad:SM0603R10
122uFarmory-kicad:SM0603C2
13.3 uFarmory-kicad:SM0603C3
193LCxxCarmory-kicad:8L_SOIC_Narrow_3_90_SN_C04-057CU3
1FT4232HL-REELsnapeda:QFP50P1200X1200X160-64NU1
1G***FSC_LOGO_NO_TEXT_SMALLFSC_LOGO_NO_TEXT_SMALL
1Jumper_NC_Dualarmory-kicad:SIL-3JP3
1NCP1117-3.3_SOT223armory-kicad:SOT-223U2
1TS3L501Esnapeda:R-PWQFN-N42SW1
1USBC-PLUGarmory-kicad:WURTH_632712000011J1
1Val**IP_LOGO_NO_TEXT_SMALLRef**

Questions

How big is the Accessory PCB?

It measures 45.7 × 25.9 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Accessory use?

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.

Where can I download the Accessory KiCad files?

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.

Can I use the Accessory design in my own project?

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

Similar boards

  • 4 layers152.4 × 76.2 mmMotherboard, the printed circuit board in 3D

    Motherboard

    mikegoelzer/Homebrew-ECP5-SBC

    Kicad files for homebrew hobbyist computer with custom RISC-V CPU

    160 parts
  • 2 layers120 × 120 mmUSB FTDI FT4232H Chip, the printed circuit board in 3D

    USB FTDI FT4232H Chip

    mmantawy-sees-ai/FTDI-FT4232H-PCB

    New PCB that has the FTDI FT4232H Chip

    74 parts
  • 2 layers187.2 × 26.6 mmBlade12, the printed circuit board in 3D

    Blade12

    opulo-inc/lumenpnp

    The LumenPnP is an open source pick and place machine.

    50 parts3.7k
  • 2 layers21 × 31.5 mmK1-aioc, the printed circuit board in 3D

    K1-aioc

    skuep/AIOC

    Ham Radio All-in-one-Cable

    50 parts1.4kMIT
  • 2 layers42 × 32.5 mmLipoboard, the printed circuit board in 3D

    Lipoboard

    hackclub/OnBoard

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

    50 parts915
  • 2 layers101 × 31.5 mmManagement, the printed circuit board in 3D

    Management

    dennisss/dacha

    Monorepo for awesome tools/projects/libraries

    50 parts397Apache-2.0
  • 2 layers123.9 × 94.4 mmRoba R, the printed circuit board in 3D

    Roba R

    kumamuk-git/roBa

    50 parts363GPL-3.0