Herox
arfanbabaucoder·Herox·PCB/Herox.kicad_pcb
About the Herox PCB
Herox is an open source Nordic nRF PCB design by arfanbabaucoder, published on GitHub. It is a 4-layer board measuring 435.6 × 141.2 mm, with 348 components from 135 distinct parts.
Its main chip is the Seeeduino XIAO nRF52840, from the Nordic nRF family. Other key parts include the TCA9555DW / ROW DRIVE, TCA9555DW / COLUMN SENSE, MAX17048G+T10 FUEL GAUGE, DRV2605L HAPTIC DRIVER and 74LVC1G125GW,125. By type, the board carries 109 LEDs, 104 switches, 104 diodes, 9 resistors, 7 capacitors and 5 ICs.
It belongs with the keyboards and iot & wireless designs in this gallery.
From the project
A fully advanced full size keeb
HeroX is my custom full-size mechanical keyboard project, built around a Seeed Studio XIAO nRF52840.
so basically i wanted a full-size board that could do Bluetooth and normal USB, but i also wanted to go further than just switches on a PCB.. per-key RGB, haptics, a media knob, battery tracking, multiple Bluetooth profiles, a proper 4-layer board and a custom case. i designed the electronics in KiCad, worked on the case in Fusion 360 and put together the firmware side too, which turned into a much bigger rabbit hole than expected lol
Main components on the Herox
Herox bill of materials (BOM)
348 components, 135 distinct parts.
| Qty | Part | Footprint | Refs |
|---|---|---|---|
| 1 | TCA9555DW / ROW DRIVE | SOIC-24W_7.5x15.4mm_P1.27mm | U1 |
| 1 | TCA9555DW / COLUMN SENSE | SOIC-24W_7.5x15.4mm_P1.27mm | U2 |
| 1 | MAX17048G+T10 FUEL GAUGE | TDFN-8-1EP_2x2mm_P0.5mm_EP0.8x1.2mm | U3 |
| 1 | DRV2605L HAPTIC DRIVER | MSOP-10_3x3mm_P0.5mm | U4 |
| 1 | 74LVC1G125GW,125 | SOT-353_SC-70-5 | U5 |
| 1 | Seeeduino XIAO nRF52840 | Xiao_nRF52840_ACH | A1 |
| 1 | PROTECTED Li-Po 3.7V | JST_PH_S2B-PH-K_1x02_P2.00mm_Horizontal | J1 |
| 1 | LRA ACTUATOR | JST_PH_S2B-PH-K_1x02_P2.00mm_Horizontal | J2 |
| 1 | LOW-POWER DISPLAY | PinHeader_1x06_P2.54mm_Vertical | J3 |
| 1 | AMBIENT SENSOR / EXPANSION | PinHeader_1x06_P2.54mm_Vertical | J4 |
| 1 | SWD DEBUG | PinHeader_1x04_P2.54mm_Vertical | J5 |
| 1 | MEDIA ENCODER | RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm | ENC1 |
| 1 | PTC 1.1A | Fuse_1206_3216Metric | F1 |
| 1 | 0ZCJ0050FF2G PTC 0.5A / USB RGB | Fuse_1206_3216Metric | F2 |
| 1 | Esc | SW_MX_1.00u | SW1 |
| 1 | F1 | SW_MX_1.00u | SW2 |
| 1 | F2 | SW_MX_1.00u | SW3 |
| 1 | F3 | SW_MX_1.00u | SW4 |
| 1 | F4 | SW_MX_1.00u | SW5 |
| 1 | F5 | SW_MX_1.00u | SW6 |
Show 115 more
| Qty | Part | Footprint | Refs |
|---|---|---|---|
| 1 | F6 | SW_MX_1.00u | SW7 |
| 1 | F7 | SW_MX_1.00u | SW8 |
| 1 | F8 | SW_MX_1.00u | SW9 |
| 1 | F9 | SW_MX_1.00u | SW10 |
| 1 | F10 | SW_MX_1.00u | SW11 |
| 1 | F11 | SW_MX_1.00u | SW12 |
| 1 | F12 | SW_MX_1.00u | SW13 |
| 1 | PrtSc | SW_MX_1.00u | SW14 |
| 1 | Scroll | SW_MX_1.00u | SW15 |
| 1 | Pause | SW_MX_1.00u | SW16 |
| 1 | `~ | SW_MX_1.00u | SW17 |
| 1 | 1! | SW_MX_1.00u | SW18 |
| 1 | 2@ | SW_MX_1.00u | SW19 |
| 1 | 3# | SW_MX_1.00u | SW20 |
| 1 | 4$ | SW_MX_1.00u | SW21 |
| 1 | 5% | SW_MX_1.00u | SW22 |
| 1 | 6^ | SW_MX_1.00u | SW23 |
| 1 | 7& | SW_MX_1.00u | SW24 |
| 1 | 8* | SW_MX_1.00u | SW25 |
| 1 | 9( | SW_MX_1.00u | SW26 |
| 1 | 0) | SW_MX_1.00u | SW27 |
| 1 | -_ | SW_MX_1.00u | SW28 |
| 1 | =+ | SW_MX_1.00u | SW29 |
| 1 | Backspace | SW_MX_2.00u | SW30 |
| 1 | Insert | SW_MX_1.00u | SW31 |
| 1 | Home | SW_MX_1.00u | SW32 |
| 1 | PgUp | SW_MX_1.00u | SW33 |
| 1 | Num | SW_MX_1.00u | SW34 |
| 1 | / | SW_MX_1.00u | SW35 |
| 1 | * | SW_MX_1.00u | SW36 |
| 1 | - | SW_MX_1.00u | SW37 |
| 1 | Tab | SW_MX_1.50u | SW38 |
| 1 | Q | SW_MX_1.00u | SW39 |
| 1 | W | SW_MX_1.00u | SW40 |
| 1 | E | SW_MX_1.00u | SW41 |
| 1 | R | SW_MX_1.00u | SW42 |
| 1 | T | SW_MX_1.00u | SW43 |
| 1 | Y | SW_MX_1.00u | SW44 |
| 1 | U | SW_MX_1.00u | SW45 |
| 1 | I | SW_MX_1.00u | SW46 |
| 1 | O | SW_MX_1.00u | SW47 |
| 1 | P | SW_MX_1.00u | SW48 |
| 1 | [{ | SW_MX_1.00u | SW49 |
| 1 | ]} | SW_MX_1.00u | SW50 |
| 1 | \| | SW_MX_1.50u | SW51 |
| 1 | Delete | SW_MX_1.00u | SW52 |
| 1 | End | SW_MX_1.00u | SW53 |
| 1 | PgDn | SW_MX_1.00u | SW54 |
| 1 | 7 | SW_MX_1.00u | SW55 |
| 1 | 8 | SW_MX_1.00u | SW56 |
| 1 | 9 | SW_MX_1.00u | SW57 |
| 1 | + | SW_MX_2.00u_Vertical | SW58 |
| 1 | Caps | SW_MX_1.75u | SW59 |
| 1 | A | SW_MX_1.00u | SW60 |
| 1 | S | SW_MX_1.00u | SW61 |
| 1 | D | SW_MX_1.00u | SW62 |
| 1 | F | SW_MX_1.00u | SW63 |
| 1 | G | SW_MX_1.00u | SW64 |
| 1 | H | SW_MX_1.00u | SW65 |
| 1 | J | SW_MX_1.00u | SW66 |
| 1 | K | SW_MX_1.00u | SW67 |
| 1 | L | SW_MX_1.00u | SW68 |
| 1 | ;: | SW_MX_1.00u | SW69 |
| 1 | '" | SW_MX_1.00u | SW70 |
| 1 | Enter | SW_MX_2.25u | SW71 |
| 1 | 4 | SW_MX_1.00u | SW72 |
| 1 | 5 | SW_MX_1.00u | SW73 |
| 1 | 6 | SW_MX_1.00u | SW74 |
| 1 | LShift | SW_MX_2.25u | SW75 |
| 1 | Z | SW_MX_1.00u | SW76 |
| 1 | X | SW_MX_1.00u | SW77 |
| 1 | C | SW_MX_1.00u | SW78 |
| 1 | V | SW_MX_1.00u | SW79 |
| 1 | B | SW_MX_1.00u | SW80 |
| 1 | N | SW_MX_1.00u | SW81 |
| 1 | M | SW_MX_1.00u | SW82 |
| 1 | ,< | SW_MX_1.00u | SW83 |
| 1 | .> | SW_MX_1.00u | SW84 |
| 1 | /? | SW_MX_1.00u | SW85 |
| 1 | RShift | SW_MX_2.75u | SW86 |
| 1 | Up | SW_MX_1.00u | SW87 |
| 1 | 1 | SW_MX_1.00u | SW88 |
| 1 | 2 | SW_MX_1.00u | SW89 |
| 1 | 3 | SW_MX_1.00u | SW90 |
| 1 | NEnter | SW_MX_2.00u_Vertical | SW91 |
| 1 | LCtrl | SW_MX_1.25u | SW92 |
| 1 | LWin | SW_MX_1.25u | SW93 |
| 1 | LAlt | SW_MX_1.25u | SW94 |
| 1 | Space | SW_MX_6.25u | SW95 |
| 1 | RAlt | SW_MX_1.25u | SW96 |
| 1 | RWin | SW_MX_1.25u | SW97 |
| 1 | Menu | SW_MX_1.25u | SW98 |
| 1 | RCtrl | SW_MX_1.25u | SW99 |
| 1 | Left | SW_MX_1.00u | SW100 |
| 1 | Down | SW_MX_1.00u | SW101 |
| 1 | Right | SW_MX_1.00u | SW102 |
| 1 | 0 | SW_MX_2.00u | SW103 |
| 1 | . | SW_MX_1.00u | SW104 |
| 1 | HARD POWER | SW_SPDT_CK_JS102011SAQN | SWP1 |
| 104 | SK6812MINI-E | LED_SK6812MINI-E_3.2x2.8mm_P1.5mm_ReverseMount | LED1, LED2, LED3, LED4, LED5, LED6, LED7, LED8 +96 |
| 2 | XL-1608UGC-04 GREEN | LED_0603_1608Metric | LED105, LED106 |
| 3 | LTST-C193TBKT-5A BLUE | LED_0603_1608Metric | LED107, LED108, LED109 |
| 104 | 1N4148W | D_SOD-123 | D1, D2, D3, D4, D5, D6, D7, D8 +96 |
| 1 | 100n U1 | C_0603_1608Metric | C1 |
| 1 | 100n U2 | C_0603_1608Metric | C2 |
| 1 | 10u BAT | C_0805_2012Metric | C3 |
| 1 | 10u MCU | C_0805_2012Metric | C4 |
| 1 | 47u RGB | C_0805_2012Metric | C5 |
| 1 | 1u DRV REG | C_0603_1608Metric | C6 |
| 1 | 100nF X7R | C_0603_1608Metric | C7 |
| 1 | 4.7k SDA | R_0603_1608Metric | R1 |
| 1 | 4.7k SCL | R_0603_1608Metric | R2 |
| 1 | 10k INT | R_0603_1608Metric | R3 |
| 5 | 1k STATUS | R_0603_1608Metric | R4, R5, R6, R7, R8 |
| 1 | 33R | R_0603_1608Metric | R12 |
Herox design files
The KiCad project lives in the arfanbabaucoder/Herox repository on GitHub; these links point at the commit this page was built from.
- LayoutPCB/Herox.kicad_pcb
- SchematicPCB/Herox.kicad_sch
Herox: common questions
What microcontroller does the Herox use?
The Herox is built around the Seeeduino XIAO nRF52840, from the Nordic nRF family.
How big is the Herox PCB?
The Herox measures 435.6 × 141.2 mm, has 4 copper layers and is 1.6 mm thick.
How many components are on the Herox?
348 components, from 135 distinct parts. The full bill of materials is listed on this page.
Where can I download the Herox design files?
From the arfanbabaucoder/Herox repository on GitHub, which has the KiCad layout and the schematic; the links under Design files point to each one.
Can I use the Herox design in my own project?
The repository has no license, so all rights stay with arfanbabaucoder. Use it as a reference, and ask the author before reusing the design.
Can I test firmware for the Herox without the hardware?
Yes. HardLabs builds a simulation of the board from its netlist and BOM, so you can run and debug Nordic nRF firmware against it before you order a PCB.
Similar boards
Nordic nRF
Keyboard
byrantech
262.5 × 109.6 mm206 parts2LMIT4.3kNordic nRF
TOTEM
GEIGEIGEIST
258.8 × 94.4 mm85 parts2LCERN-OHL-P-2.02.0kNordic nRF
Pixl.js
solosky
40 × 23 mm45 parts4LGPL-2.01.4kNordic nRF
Management
dennisss
101 × 31.5 mm50 parts2LApache-2.0381Nordic nRF
Board
dennisss
363 × 128 mm420 parts4LApache-2.0381Nordic nRF
Board hl15-latest
dennisss
61 × 37 mm14 parts2LApache-2.0381