Skip to the content
4 layers80 × 50 mmUsb isolated, the printed circuit board in 3D

an RP2040-based Harp hardware/firmware project template

Size
80 × 50 mm
Copper layers
4
Thickness
1.57 mm
Parts
76
Nets
80
Pads
298
Tracks, vias
460, 86
Pours
6
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
11 Dec 2023
Updated
8 Oct 2026

Overview

Usb isolated is an open-source printed circuit board by AllenNeuralDynamics, from the AllenNeuralDynamics/harp.device.pico-template repository on GitHub. It is a 4-layer board of 80 × 50 mm with 76 parts on 80 nets, routed with 460 tracks and 86 vias.

It is built around the RP2040, W25Q16JVUXIQ and 74LVCH2T45DC, with the ADUM4160BRW and TPD2EUSB30DRT among its other parts. Its parts include 29 capacitors, 20 resistors, 6 ICs, 5 connectors and 4 diodes. It belongs with the RP2040 boards of this library.

Main components

5

README

README.md

harp.device.pico-template

An RP2040-based Harp hardware/firmware project template.

Features

  • predefined .gitignore file to remove extraneous KiCAD (hardware) files.

Hardware

  • Schematic template for a generic Harp Device including:
    • ground-isolated Full Speed USB communication
    • 3.5mm audio jack for Harp-protocol time synchronization
    • RP2040 MCU and required "jellybean" components including:
      • 2MB external flash (Winbond MPN: W25Q16JVUXIQ TR).
    • 2 power supply chain options for power derived from either USB directly or from a DC barrel jack.
  • Basic PCBA Layout with size hints for various existing enclosures
    • DC Barrel Jack (2.1 x 5.5mm, positive center)
    • USBC
    • 3.5mm audio jack for Harp synchronization signal
    • Ground lug

Firmware

  • basic "hello-world" project with corresponding file structure
  • populated CMakeLists.txt for compliation
  • placeholder USB descriptors for Manufacturer and Description fields (in the CMakeLists.txt)
  • compilation instructions
  • harp protocol core library included as a submodule harp.core.pico

Using this template

Start by clicking the "Use this Template" button in the upper right corner, or click here.

Repository Setup

  • If the project has a corresponding Allen Institute SIPE project number, prepend the repository description with: {SIPE Project Number}:.
  • add the tag Harp
  • Long-term: remove these instructions!

Hardware

  • Remove all unused hardware folder starter projects.
  • 🔧 Design your hardware.
  • In the PCBA silkscreen, add:
    • SIPE part number with full hardware semantic version appended in the format: {SIPE Project Number}-E-{hw major}-{hw minor}-{hw patch}. Version number fields range from 1-999 and include leading zeros.
    • QR code linking to the Github repository.

Firmware

  • Update the Manufacturer and Description USB descriptors in the CMakeLists.txt
  • 📝 Write your firmware.

Github Release Conventions

Releases specify any vetted changes to the hardware or firmware.

Each release specifies:

  • semantic versions of changed elements: hardware or firmware.
  • SIPE part number (or part numbers if multiple are compatible)

Each hardware release includes:

  • STEP file of the PCB (or link to corresponding CAD files) named with the SIPE part number
  • schematic (PDF)
  • Gerber files (with logos removed) of the PCBA
  • Position files for component placement
  • Bill-of-Materials for the PCBA

Each hardware release specifies:

  • compatible SIPE part number(s)

[!NOTE] SIPE part numbers only encode hardware semantic version major number, so multiple minor/patch hardware releases may point to the same SIPE part number.

[!NOTE] It is possible for a project to have PCBA variants--possibly with very different functionality. In this case, reserve a hardware major version range (>100 suggested) for this variant and treat it as a distinct hardware release (i.e: with all corresponding included hardware files).

Each firmware release specifies:

  • firmware semantic version
  • compatible hardware (SIPE part number or part number range).

Each firmware release includes:

  • compiled binary file (*.uf2) of the firmware.

Release Title

The release title is specified as follows:

hw{hw major}.{hw minor}.{hw patch}-fw{fw major}.{fw minor}.{fw patch}

If the release has firmware-only changes, you can drop the hw* section, and vice versa.

[!NOTE] After Oct 2024, hardware major fields on all future releases will be equivalent to the major version number of the SIPE part number. See the SIPE PCBA part numbering standard for more details.

The above field spec enables automation utilities to find the latest firmware version and automatically update compatible hardware. Since releases can include changes to some, but not other fields, unchanged fields are omitted. (i.e: firmware-only changes would be titled fw{fw major}.{fw minor}.{fw patch}.)

Creating a New Release

  1. Make a git tag based on the commit in the main branch that you'd like to create the release from. Use the naming convention specified in the Release Title section.
  2. Push the tag to Github.
  3. From the repository's corresponding Release page, create a new release from the tag you just added. Give it the same title as the tag.
  4. If the release includes new firmware, compile it locally, and upload a copy of the .uf2 file as an attachment.
  5. If the release includes new hardware, upload:
    1. the gerber files (zipped)
    2. the position files
    3. any manufacturing notes (component orientations)
    4. the bill-of-materials
    5. a PDF of the schematic.

Parts

76
QtyValueFootprintReferences
16100nFCapacitor_SMD:C_0402_1005MetricC1, C2, C3, C5, C6, C7, C12, C13, C14, C15, C17, C18, C19, C37, C54, C55
51uFCapacitor_SMD:C_0402_1005MetricC8, C9, C10, C53, C56
424Resistor_SMD:R_0402_1005MetricR4, R5, R6, R7
310nFCapacitor_SMD:C_0402_1005MetricC4, C46, C47
3FiducialFiducial:Fiducial_0.5mm_Mask1mmFID1, FID2, FID3
2100Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR30, R31
2100KResistor_SMD:R_0402_1005MetricR40, R41
210uFCapacitor_SMD:C_0805_2012MetricC39, C48
21MResistor_SMD:R_0402_1005MetricR36, R37
227Resistor_SMD:R_0402_1005MetricR10, R11
23.3uFCapacitor_SMD:C_0805_2012MetricC45, C67
25K1Resistor_SMD:R_0402_1005MetricR2, R3
2680Resistor_SMD:R_0402_1005MetricR12, R13
2D_TVSDiode_SMD:D_0402_1005MetricD3, D4
2LEDLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD1, D2
110KResistor_SMD:R_0402_1005MetricR9
1172KResistor_SMD:R_0402_1005MetricR39
11KResistor_SMD:R_0402_1005MetricR1
122uFCapacitor_SMD:C_0805_2012MetricC49
1309KResistor_SMD:R_0402_1005MetricR38
174LVCH2T45DCPackage_SO:VSSOP-8_2.3x2mm_P0.5mmU1
1ADUM4160Package_SO:SOIC-16W_7.5x10.3mm_P1.27mmU3
1AudioJack3Connector_Audio:Jack_3.5mm_CUI_SJ-3524-SMT_HorizontalJ4
1Barrel_Jack_SwitchConnector_BarrelJack:BarrelJack_CUI_PJ-102AH_HorizontalJ6
1Conn_01x03_MaleConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ2
1Conn_Coaxialkicad_component_library:SMA_TE_Connectivity_CONSMA002-SMD-G-T_HorizontalJ7
1ECS-TXO-2016Crystal:Crystal_SMD_2016-4Pin_2.0x1.6mmX1
1LOGOLOGOG3
1LT3030Package_SO:ETSSOP-20-1EP_4.4x6.5mm_P0.65mm_EP3x4.2mmU12
1L_Coupled_1423kicad_component_library:L_CommonModeChoke_TDKCorporation_1210L1
1OSHW-Logo2_7.3x6mm_SilkScreenSymbol:OSHW-Logo2_7.3x6mm_SilkScreenREF1
1RP2040kicad_component_library:RP2040-QFN-56U4
1TPD2EUSB30Package_TO_SOT_SMD:Texas_DRT-3U2
1USB_C_Receptacle_USB2.0Connector_USB:USB_C_Receptacle_JAE_DX07S016JA1R1500J5
1W25Q16JVUXIQkicad_component_library:Winbond-8USON-2x3mmU5
1~kicad_component_library:SW_Push_1P1T-SH_NO_Vertical_Wuerth_WS-TASVSW1

The 72 most common of 76 parts.

More from AllenNeuralDynamics/harp.device.pico-template

1
  • 4 layers36 × 28 mmUsb powered small, the printed circuit board in 3D

    Usb powered small

    AllenNeuralDynamics/harp.device.pico-template

    an RP2040-based Harp hardware/firmware project template

    47 parts

Similar boards

  • 4 layers80 × 50 mmHarp.device.lickety split, the printed circuit board in 3D

    Harp.device.lickety split

    AllenNeuralDynamics/harp.device.lickety-split

    0360: an ephys-compliant capacitive lick detector

    193 parts5MIT
  • 4 layers80 × 100 mmHarp treadmill, the printed circuit board in 3D

    Harp treadmill

    AllenNeuralDynamics/harp.device.treadmill-driver

    0326: a Harp-compatible device for controlling an instrumented mouse treadmill

    173 parts4
  • 4 layers80 × 50 mmSniff detector, the printed circuit board in 3D

    Sniff detector

    AllenNeuralDynamics/harp.device.sniff-detector

    0382: Signal conditioning board for an implanted thermistor

    114 parts3MIT
  • 4 layers120 × 75 mmCuttlefish, the printed circuit board in 3D

    Cuttlefish

    AllenNeuralDynamics/harp.device.cuttlefish

    0414: an octal, TTL input/output device with programmable square wave output.

    195 parts
  • 4 layers70 × 168 mmValve controller, the printed circuit board in 3D

    Valve controller

    AllenNeuralDynamics/harp.device.valve-controller

    0368: a 16-channel valve controller

    224 parts
  • 4 layers90 × 100 mmHarp.device.quad.dac, the printed circuit board in 3D

    Harp.device.quad.dac

    AllenNeuralDynamics/harp.device.quac

    0364: This repository contains the hardware, firmware, and software related to the Harp quad DAC

    291 partsMIT
  • 4 layers60 × 107 mmClock sync 16, the printed circuit board in 3D

    Clock sync 16

    AllenNeuralDynamics/harp.device.white-rabbit

    0361: A 16-output Harp clock synchronizer

    172 parts1
  • 4 layers39.9 × 28 mmEnvironment sensor, the printed circuit board in 3D

    Environment sensor

    AllenNeuralDynamics/harp.device.environment-sensor

    0357: harp-compliant humidity, pressure, and temperature sensor

    56 partsMIT

Questions

How big is the Usb isolated PCB?

It measures 80 × 50 mm and has 4 copper layers, 1.57 mm thick.

What parts does the Usb isolated use?

76 parts, built around the RP2040, W25Q16JVUXIQ, 74LVCH2T45DC and ADUM4160BRW. 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 Usb isolated KiCad files?

From the AllenNeuralDynamics/harp.device.pico-template repository on GitHub, at the commit this page was made from: the board is hardware/board/usb_isolated/usb_isolated.kicad_pcb and its schematic hardware/board/usb_isolated/board_power.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Usb isolated design in my own project?

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