

WARBL2 5.1
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
10ATMEGA32U4-MU
VQFN-44-EP(7x7)-40℃~+85℃ 10bit 16MHz 1KB 2.5KB 2.7V~5.5V 26 32KB 8 Bit AVR Built-in FLASH VQFN-44-EP(7x7) Microcontrollers (MCU/MPU/SOC) ROHSMicrochip TechnologyMicrocontrollers (MCU/MPU/SOC)ISP1807-LR-RS
SMD,8x8mmMesh networking、Low-power secure connection SMD,8x8mm Bluetooth Modules ROHSInsight SiPBluetooth ModulesQRD1113
DIP-4-40℃~+85℃ Light Intensity Spectral correction/filtering DIP-4 Ambient Light Sensors ROHSonsemiAmbient Light Sensors74AUP1G32GM
XSON-6(1x1.5)-40℃~+125℃ 1 1.6V~2V 2 2.3V、2.72V 310mV、500mV 4mA 4mA 500nA 6.4ns@3.3V,30pF 700mV~900mV 74AUP Series 800mV~3.6V OR Gate XSON-6(1x1.5) Logic Gates ROHSNexperiaLogic GatesECMF02-2AMX6
UFQFN-6(1.5x1.7)-40℃~+85℃ 2 2.5Ω 200mA UFQFN-6(1.5x1.7) Common Mode Filters ROHSSTMicroelectronicsCommon Mode FiltersTPS7A2030PDBVR-TP
SOT-23-5-40℃~+85℃ 1 200uV@(300mA) 2uA 300mA 3V 5.5V 75dB@(1kHz) Fixed Over Current Protection、Enable、Thermal Shutdown Positive SOT-23-5 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSTECH PUBLICUncategorisedRU1J002YNTCL
SOT-3231 N-channel 150mW 2.2Ω@4.5V 200mA 26pF 3pF 50V 800mV N-Channel SOT-323 MOSFETs ROHSROHM SemiconductorMOSFETsBAT54C
SOT-231 Pair Common Cathode 200mA 2uA@25V 30V 600mA 800mV@100mA SOT-23 Schottky Diodes ROHSNexperiaSchottky DiodesESDA7P60-1U1M
DFN1610-2ESD And Surge Protection (TVS/ESD)TECH PUBLICNCU18XH103F60RB
0603-40℃~+125℃ 0.8mm 1.6mm 100mW 100uA 10kΩ 1mW/℃ 3380K 3434K 3455K ±1% ±1% 0603 NTC Thermistors ROHSMurataNTC Thermistors
README
README.mdWARBL2 is an open-source USB MIDI and BLE MIDI wind controller.
Please see the web site for more info:
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
-
Install / run the latest version of the Arduino IDE. You can download the latest version of the Arduino IDE here.
-
In Linux, the Arduino IDE requires that you be part of the
dialoutgroup to successfully detect and write to hardware (see here). If runningidin a terminal does not listdialoutas one of the groups your user belongs to, runsudo usermod -a -G dialout $USER, then log out and back in. Runningidshould now include thedialoutgroup.
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| Qty | Value | Footprint | References |
|---|---|---|---|
| 8 | 0.1 uF | Capacitor_SMD:C_0603_1608Metric | C2, C3, C8, C12, C13, C14, C15, C18 |
| 8 | 2k | Resistor_SMD:R_0603_1608Metric | R15, R16, R17, R18, R19, R20, R21, R22 |
| 8 | QRD1113 | WARBL_footprints:Reflective_Sensor_QRD1114 | U10, U11, U12, U13, U14, U15, U16, U17 |
| 6 | 84, 84, 84, 84, 84, 84 | ||
| 4 | 4.7 uF | Capacitor_SMD:C_0603_1608Metric | C1, C4, C9, C10 |
| 4 | 5.1K | Resistor_SMD:R_0603_1608Metric | R1, R2, R3, R4 |
| 3 | 100k | Resistor_SMD:R_0603_1608Metric | R6, R12, R13 |
| 3 | 1uF | Capacitor_SMD:C_0603_1608Metric | C11, C19, C20 |
| 3 | MountingHole_Pad | WARBL_footprints:MountingHole__2_56_Pad_small | MH1, MH2, MH3 |
| 3 | Tact switch | WARBL_footprints:TL3305BF160QG | SW1, SW2, SW3 |
| 2 | 0.01 uF | Capacitor_SMD:C_0603_1608Metric | C16, C17 |
| 2 | 100 | Resistor_SMD:R_0603_1608Metric | R9, R14 |
| 2 | 10k | Resistor_SMD:R_0603_1608Metric | R5, R23 |
| 2 | 22 uF | Capacitor_SMD:C_0603_1608Metric | C6, C7 |
| 2 | 470 | Resistor_SMD:R_0603_1608Metric | R10, R11 |
| 2 | RU1J002YNTCL | WARBL_footprints:SOT-323_SC-70 | Q1, Q2 |
| 1 | 1 uH | Inductor_SMD:L_0603_1608Metric | L2 |
| 1 | 1286AS-H-2R2M 2.2uH | WARBL_footprints:INDC2016X120N | L1 |
| 1 | 1N4148 | Diode_SMD:D_SOD-323 | D3 |
| 1 | 2.74k 1% | Resistor_SMD:R_0603_1608Metric | R25 |
| 1 | 36k 1% | Resistor_SMD:R_0603_1608Metric | R7 |
| 1 | 470K | Resistor_SMD:R_0603_1608Metric | R8 |
| 1 | 47k 1% | Resistor_SMD:R_0603_1608Metric | R26 |
| 1 | 74AUP1G32 | WARBL_footprints:DSF6 | U8 |
| 1 | 8 Mhz CSTNE8M00GH5L000R0 | WARBL_footprints:CSTNE8M00GH5L000R0_MUR | Y1 |
| 1 | ATmega32U4-MU | Package_DFN_QFN:QFN-44-1EP_7x7mm_P0.5mm_EP5.2x5.2mm | U18 |
| 1 | BAT54C | Package_TO_SOT_SMD:SOT-23 | D2 |
| 1 | BQ25172DSGR | WARBL_footprints:WSON8_DSG008A_BQ_TEX | U5 |
| 1 | Batt+ | Connector_PinHeader_1.00mm:PinHeader_1x01_P1.00mm_Vertical | J6 |
| 1 | ECMF02-2AMX6 | WARBL_footprints:QFN-6L_STM | IC1 |
| 1 | ESDA7P60-1U1M | WARBL_footprints:ESDA7P601U1M | D1 |
| 1 | ICSP Connector | WARBL_footprints:SMD_ICSPHeader_Pitch2.54mm | J3 |
| 1 | ISP1807-LR-RS | WARBL_footprints:ISP1807-LR-RS | U7 |
| 1 | LED_RGB | LED_SMD:LED_LiteOn_LTST-C19HE1WT | D4 |
| 1 | LSM6DSOXTR IMU | WARBL_footprints:LGA-14L_2P5X3X0P83_STM | U2 |
| 1 | M24128-BFMH6TG EEPROM | WARBL_footprints:UFDFPN5_1P7X1P4_STM | U1 |
| 1 | MMC5603NJ Magnetometer | Package_BGA:WLP-4_0.86x0.86mm_P0.4mm | U19 |
| 1 | NCU18XH103F60RB | Resistor_SMD:R_0603_1608Metric | TH1 |
| 1 | Pressure sensor subassembly | WARBL_footprints:ABPLLND060MGAA3_largepads | J4 |
| 1 | RESET | WARBL_footprints:SW_KMR221GLFS | SW4 |
| 1 | Ribbon cable connector (to end cap subassembly) | Connector_PinHeader_2.00mm:PinHeader_1x04_P2.00mm_Vertical | J5 |
| 1 | SLG59M1551V Load switch | Package_LGA:VLGA-4_2x2.5mm_P1.65mm | U3 |
| 1 | SWD Header | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical_SMD_Pin1Left | J2 |
| 1 | TPS613221ADBV 3.3V boost | WARBL_footprints:DBV0005A_L | U4 |
| 1 | TPS62237DRYR | WARBL_footprints:DRY0006A | U9 |
| 1 | TPS7A2030PDBVR | WARBL_footprints:DBV0005A_L | U6 |
| 1 | TestPoint | TestPoint:TestPoint_Pad_D1.0mm | TP3 |
| 1 | USB-C subassembly | Connector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_Vertical | J1 |
More from amowry/WARBL2
4- 2 layers9.9 × 12 mm

- 2 layers11 × 9.8 mm

- 2 layers8.8 × 10.7 mm

WARBL BL pressure sensor subassembly2.kicad pro
amowry/WARBL2
WARBL2 Code and design files
2 parts33GPL-3.0 - 2 layers11 × 10 mm

Similar boards
- 6 layers85 × 54 mm

- 2 layers98.6 × 39 mm

GWR pcb
juicykinklabs/TongueTyper
A talking-gag that acts as a game controller, posture trainer, speaker, and more.
68 parts1GPL-3.0 - 4 layers60 × 150 mm

PUTM EV BMS HV MASTER 2023
PUT-Motorsport/PUTM_EV_AMS_MASTER
High Voltage Battery Management System
253 parts - 2 layers15.2 × 50.8 mm

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 mm

- 4 layers75 × 50 mm

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 mm

Nvme Carrier all M2
El-Luhb/nvme-Carrier-for-LattePanda-Mu
nvme Carrier PCB for the LattePanda Mu compute module
400 parts12MIT - 2 layers

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