Skip to the content
4 layers190.8 × 12.1 mmWARBL2 5.1, the printed circuit board in 3D

WARBL2 5.1

amowry/WARBL233

WARBL2 Code and design files

Size
190.8 × 12.1 mm
Copper layers
4
Thickness
1.96 mm
Parts
94
Nets
105
Pads
407
Tracks, vias
2,658, 203
Pours
16
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
29 Jun 2023
Updated
29 Oct 2026

Overview

WARBL2 5.1 is an open-source printed circuit board by amowry, from the amowry/WARBL2 repository on GitHub, published under the GPL-3.0 licence. It is a 4-layer board of 190.8 × 12.1 mm with 94 parts on 105 nets, routed with 2,658 tracks and 203 vias.

It is built around the ATMEGA32U4-MU, ISP1807-LR-RS and QRD1113, with the 74AUP1G32GM, ECMF02-2AMX6 and TPS7A2030PDBVR-TP among its other parts. Its parts include 25 resistors, 20 ICs, 19 capacitors, 6 connectors and 4 diodes. It belongs with the AVR (ATmega, ATtiny) boards of this library.

Main components

10

README

README.md

WARBL2 is an open-source USB MIDI and BLE MIDI wind controller.

Please see the web site for more info:

https://warbl.xyz

To power the WARBL on, plug into USB or click button 3 (lowest button).

To manually power off the WARBL while under battery power, you can click the reset button (or use a button action assigned in the Configuration Tool, which by default is a long-press of button 3).

For updating the firmware, typical users would just hold down button 1 while plugging the WARBL in to USB and then drag/drop the supplied .uf2 file to the drive named WARBLBOOT. If the WARBL is already plugged in, you can also double-click the reset button to enter the bootloader mode. The most recent flash.uf2 file is located in the build/adafruit.nrf52.warbl2 directory.

Advanced users can use the Arduino IDE to modify and upload the code. Modify the code at your own risk and note that while modifying the battery management code won't have dangerous results it could result in reducing the lifespan of the battery.

How to use WARBL2 with the Arduino IDE:

Install Arduino IDE
Editing and uploading the WARBL firmware
  • I used the Adafruit ItsyBitsy NRF52840 Express for prototyping WARBL, so the easiest way to set up the IDE is to install the Adafruit boards package, following the instructions here.

  • Download the WARBL2 code from this repository (I recommend using the most recent release code, NOT the current main branch), and move the boards.local.txt file from the "firmware" directory into the directory on your machine that contains the boards.txt file for the Adafruit NR52 boards, typically found here:

    • Windows: C:\Users\(username)\AppData\Local\Arduino15\packages\adafruit\hardware\nrf52\1.6.0

    • Linux: /home/(username)/.arduino15/packages/adafruit/hardware/nrf52/1.6.0

    • Mac: ~/LibraryArduino15/packages/adafruit/hardware/nrf52/1.5.0/

  • Now open the warbl2_firmware.ino sketch that you saved in your sketchbook folder.

  • In the Tools menu select: Board: > Adafruit nRF52 > WARBL2

  • Next, you’ll need to install libraries included in the sketch that aren’t installed by default. To install them, go to Sketch > Include Library > Manage Libraries, then search for the name of each, one at a time. Then it will give you an option to install each one.

  • Then turn on “show verbose ouput" for both "compile" and "upload" under File > Preferences. Now, click the upload button and check that it compiles without errors.

  • Then, when it tries to upload, you should see this message at the bottom of the screen:

Waiting for upload port...

  • IF the WARBL currently has a "Release" version of the firmware (see below), you'll then have to use a toothpick to double-click the reset button to enter programming mode. The LED pulse in blue and the code should upload, which will take several seconds. If the LED doesn’t light or blinks rapidly, try again. If the IDE stops trying to upload, click “Upload” again, and try double-clicking again. It can take a few tries to get the timing right. If you've loaded a non-release version then the serial CDC port will be active and the firmware upload should proceed without having to first double-click the reset button.

A few additional notes:

The serial CDC class on WARBL needs to be turned off to make it a USB MIDI class-compliant device. This also means that you won't be able to use the serial monitor in Arduino IDE, and you'll have to double-click the programming button to install firmware (as described above). To turn serial back on, you can comment out the following line in the sketch:

#define RELEASE //Uncomment for release version (turns off CDC)

Turning on CDC makes it easier to debug and makes it so uploads should proceed automatically.

Have fun!

Parts

94
QtyValueFootprintReferences
80.1 uFCapacitor_SMD:C_0603_1608MetricC2, C3, C8, C12, C13, C14, C15, C18
82kResistor_SMD:R_0603_1608MetricR15, R16, R17, R18, R19, R20, R21, R22
8QRD1113WARBL_footprints:Reflective_Sensor_QRD1114U10, U11, U12, U13, U14, U15, U16, U17
684, 84, 84, 84, 84, 84
44.7 uFCapacitor_SMD:C_0603_1608MetricC1, C4, C9, C10
45.1KResistor_SMD:R_0603_1608MetricR1, R2, R3, R4
3100kResistor_SMD:R_0603_1608MetricR6, R12, R13
31uFCapacitor_SMD:C_0603_1608MetricC11, C19, C20
3MountingHole_PadWARBL_footprints:MountingHole__2_56_Pad_smallMH1, MH2, MH3
3Tact switchWARBL_footprints:TL3305BF160QGSW1, SW2, SW3
20.01 uFCapacitor_SMD:C_0603_1608MetricC16, C17
2100Resistor_SMD:R_0603_1608MetricR9, R14
210kResistor_SMD:R_0603_1608MetricR5, R23
222 uFCapacitor_SMD:C_0603_1608MetricC6, C7
2470Resistor_SMD:R_0603_1608MetricR10, R11
2RU1J002YNTCLWARBL_footprints:SOT-323_SC-70Q1, Q2
11 uHInductor_SMD:L_0603_1608MetricL2
11286AS-H-2R2M 2.2uHWARBL_footprints:INDC2016X120NL1
11N4148Diode_SMD:D_SOD-323D3
12.74k 1%Resistor_SMD:R_0603_1608MetricR25
136k 1%Resistor_SMD:R_0603_1608MetricR7
1470KResistor_SMD:R_0603_1608MetricR8
147k 1%Resistor_SMD:R_0603_1608MetricR26
174AUP1G32WARBL_footprints:DSF6U8
18 Mhz CSTNE8M00GH5L000R0WARBL_footprints:CSTNE8M00GH5L000R0_MURY1
1ATmega32U4-MUPackage_DFN_QFN:QFN-44-1EP_7x7mm_P0.5mm_EP5.2x5.2mmU18
1BAT54CPackage_TO_SOT_SMD:SOT-23D2
1BQ25172DSGRWARBL_footprints:WSON8_DSG008A_BQ_TEXU5
1Batt+Connector_PinHeader_1.00mm:PinHeader_1x01_P1.00mm_VerticalJ6
1ECMF02-2AMX6WARBL_footprints:QFN-6L_STMIC1
1ESDA7P60-1U1MWARBL_footprints:ESDA7P601U1MD1
1ICSP ConnectorWARBL_footprints:SMD_ICSPHeader_Pitch2.54mmJ3
1ISP1807-LR-RSWARBL_footprints:ISP1807-LR-RSU7
1LED_RGBLED_SMD:LED_LiteOn_LTST-C19HE1WTD4
1LSM6DSOXTR IMUWARBL_footprints:LGA-14L_2P5X3X0P83_STMU2
1M24128-BFMH6TG EEPROMWARBL_footprints:UFDFPN5_1P7X1P4_STMU1
1MMC5603NJ MagnetometerPackage_BGA:WLP-4_0.86x0.86mm_P0.4mmU19
1NCU18XH103F60RBResistor_SMD:R_0603_1608MetricTH1
1Pressure sensor subassemblyWARBL_footprints:ABPLLND060MGAA3_largepadsJ4
1RESETWARBL_footprints:SW_KMR221GLFSSW4
1Ribbon cable connector (to end cap subassembly)Connector_PinHeader_2.00mm:PinHeader_1x04_P2.00mm_VerticalJ5
1SLG59M1551V Load switchPackage_LGA:VLGA-4_2x2.5mm_P1.65mmU3
1SWD HeaderConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical_SMD_Pin1LeftJ2
1TPS613221ADBV 3.3V boostWARBL_footprints:DBV0005A_LU4
1TPS62237DRYRWARBL_footprints:DRY0006AU9
1TPS7A2030PDBVRWARBL_footprints:DBV0005A_LU6
1TestPointTestPoint:TestPoint_Pad_D1.0mmTP3
1USB-C subassemblyConnector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_VerticalJ1

More from amowry/WARBL2

4

Similar boards

  • 6 layers85 × 54 mmSBC, the printed circuit board in 3D

    SBC

    ndarash93/SBC

    First attempt at a simple SBC

    329 parts
  • 2 layers98.6 × 39 mmGWR pcb, the printed circuit board in 3D

    GWR pcb

    juicykinklabs/TongueTyper

    A talking-gag that acts as a game controller, posture trainer, speaker, and more.

    68 parts1GPL-3.0
  • 2 layers15.2 × 50.8 mmPico dirty blaster ls, the printed circuit board in 3D

    Pico dirty blaster ls

    steieio/pico-dirty-blaster

    Collection of Raspberry Pi Pico board adapters for use with Pico-DirtyJTAG

    14 parts15CC0-1.0
  • 2 layers46.5 × 39.5 mmRpi gpio board, the printed circuit board in 3D

    Rpi gpio board

    klystrom/Portable-Ingest-Station

    Backup and sync your photos on the go!!!

    23 parts7
  • 4 layers75 × 50 mmEOPRA interface, the printed circuit board in 3D

    EOPRA interface

    seanboe/eOPRA_suite

    Contains the board files (KiCAD + gerbers) and CLI for the eOPRA device control suite used in research on transfemoral and transtibial prosthetics at the MIT Biomechatronics Lab.

    256 parts
  • 4 layers170.2 × 170.2 mmNvme Carrier all M2, the printed circuit board in 3D

    Nvme Carrier all M2

    El-Luhb/nvme-Carrier-for-LattePanda-Mu

    nvme Carrier PCB for the LattePanda Mu compute module

    400 parts12MIT
  • 2 layersDevice, the printed circuit board in 3D

    Device

    MalekItani/WirelessHardware

    PCB design files for the hardware used in Wireless earbuds for low-cost hearing screening

    55 parts11MIT

Questions

How big is the WARBL2 5.1 PCB?

It measures 190.8 × 12.1 mm and has 4 copper layers, 1.96 mm thick.

What parts does the WARBL2 5.1 use?

94 parts, built around the ATMEGA32U4-MU, ISP1807-LR-RS, QRD1113 and 74AUP1G32GM. 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 WARBL2 5.1 KiCad files?

From the amowry/WARBL2 repository on GitHub, at the commit this page was made from: the board is design/WARBL2_5.1/WARBL2_5.1/WARBL2_5.1.kicad_pcb and its schematic design/WARBL2_5.1/Endcap_subassembly/WARBL_BL_endcap_subassembly.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the WARBL2 5.1 design in my own project?

Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).