

SPIDER Gateway
BLE MIDI Gateway / Professional Wireless MIDI Hub & Bridge System
- Size
- 50 × 35 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 19
- Nets
- 44
- Pads
- 89
- Tracks, vias
- 207, 26
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 14 Apr 2026
- Updated
- 1 May 2026
Overview
SPIDER Gateway is an open-source printed circuit board by nunosmash, from the nunosmash/SPIDER repository on GitHub, published under the Apache-2.0 licence. It is a 2-layer board of 50 × 35 mm with 19 parts on 44 nets, routed with 207 tracks and 26 vias.
Its parts include 9 resistors, 3 ICs, 3 connectors, 1 capacitor and 1 switch. It belongs with the audio and music boards of this library.
README
README.mdSPIDER
BLE MIDI gateway — bridge Bluetooth LE MIDI controllers to USB MIDI and DIN MIDI, with up to three simultaneous BLE devices, fixed slot routing, and HOST / CLIENT roles for stage and DAWless setups.
Part of the Ash Sound Works custom tools for live and studio — by sound artist and producer Ash (Ahn Sunghoon) · GitHub / Manual
Why SPIDER?
Running cables across a crowded pedalboard or needing remote control for other players is awkward. SPIDER was built around BLE MIDI on a dedicated nRF52840 radio (e.g. nice!nano class hardware): low power, battery-friendly, and focused on wireless MIDI rather than sharing the stack with a desktop OS BLE stack.
Key features
- Up to 3 BLE MIDI controllers connected at once
- USB MIDI via TinyUSB — 3 independent virtual MIDI ports (one per slot)
- DIN MIDI — Slot 0 routes to DIN when appropriate (see routing below)
- 7.5 ms BLE connection interval class; low-latency slot timing (~5 ms average response in typical use)
- TX power auto-adjust 0 ~ +8 dBm from RSSI
- Battery monitoring for the unit and connected gear (where supported)
- OLED UI with power-save brightness (USB vs battery profiles)
- HOST and CLIENT modes
Routing architecture
| Role | Behavior (summary) |
|---|---|
| Slot 0 (master) | USB ↔ BLE ↔ DIN MIDI |
| Slots 1–2 | USB ↔ BLE |
| Port pinning | Each slot stores MAC + name so devices always map to the same slot regardless of power-on order |
HOST mode
- USB data connected: BLE → USB MIDI (DIN blocked for that path per firmware logic)
- No USB data: Slot 0 → DIN MIDI output
- Slot management: RESCAN, CLEAR SLOT, auto-reconnect
CLIENT mode
- Uses one slot to join a host
- Remembers first trusted host MAC (save window ~30 s on first connect); optional block for unwanted devices
OLED / status (summary)
- Top line: LOW BAT, WEAK SIG, M (DIN active), TX power hints
- Per slot: EMPTY / OFFLINE / CONNECTED
- MIDI traffic: ▽ in / △ out
- Battery: % or N/A if unknown
Antenna bars (signal guide)
- 6–4 bars — best; within ~10 m reliable
- 3 bars — stable for normal use
- ≤2 bars — TX power ramps up; maintain connection
- 0 bars — unreliable; move closer
Tip: Keep 3+ bars within ~10 m for dependable live use.
Ableton Live (quick setup)
Preferences → Link / Tempo / MIDI
- Input: SPIDER MIDI Port 1, 2, 3 → Track ON, Remote ON as needed
- Output: enable if you send MIDI back to wireless gear
| Slot | USB MIDI port |
|---|---|
| SLOT 1 | Port 1 |
| SLOT 2 | Port 2 |
| SLOT 3 | Port 3 |
Sync calibration
BLE adds variable delay; align with audio using Track Delay like any MIDI path. Many setups start around −10 ms ~ −20 ms (often −18 ms) and refine by recording MIDI out + external audio and matching to the grid.
Firmware update
- Connect SPIDER over USB.
- Hold the encoder button for 5+ seconds to enter firmware update mode (USB mass storage / removable drive).
- Copy the released firmware file to the mounted drive; device updates and reboots.
(Exact filename and format follow your published release notes.)
Use cases
- Band live — multiple wireless controllers into one DAW reliably
- DAWless — Slot 0 → hardware synths via DIN
- Multi-computer — advanced MIDI routing between several hosts (see full manual)
Repository contents
Depending on branch or release:
- Firmware (Zephyr / Arduino / etc. — match your repo)
- Schematics / PCB / case files
- Build and flash instructions
Full wiring, menus, and edge cases: spider-manual.html in the Ash Sound Works bundle.
Hardware Specifications (BOM)
| Category | Component Description | Qty |
|---|---|---|
| MCU | nRF52840 (nice!nano v2.0 SuperMini) | 1 |
| Display | 0.91" OLED Module (128x64) | 1 |
| Optocoupler | 6N138 High-Speed Optocoupler | 1 |
| Diode | 1N4001 Rectifier Diode | 1 |
| Capacitor | 100μF Electrolytic Capacitor | 1 |
| Input | EC11 Rotary Encoder w/ Push Switch | 1 |
| Connectors | PJ-320A 3.5mm Stereo Jack | 2 |
| Power | SS-12F23 Slide Switch | 1 |
| Resistors | 220Ω (x2), 330Ω (x2), 150Ω, 1kΩ, 4.7kΩ, 10Ω, 30Ω | 9 |
Documentation
- Full manual:
spider-manual.html - Other projects: github.com/nunosmash
Disclaimer
- BLE performance depends on environment, antennas, and interference — always test before a show.
- Verify DIN polarity (Type A/B) when connecting legacy MIDI gear.
- DIY: observe battery and USB power safety.
License
See the LICENSE file in the repository root.
Parts
19| Qty | Value | Footprint | References |
|---|---|---|---|
| 2 | 220 | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | R4, R8 |
| 2 | 330 | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | R13, R14 |
| 1 | 10 | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | R19 |
| 1 | 100uF | Capacitor_THT:CP_Radial_D6.3mm_P2.50mm | C1 |
| 1 | 150 | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | R5 |
| 1 | 1k | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | R9 |
| 1 | 1n4001 | Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal | 1n4001 |
| 1 | 30 | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | R20 |
| 1 | 4.7k | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | R10 |
| 1 | 6N138 | Package_DIP:DIP-8_W7.62mm | U2 |
| 1 | BATTERY | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J1 |
| 1 | EC11 | Rotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm | Enc5 |
| 1 | MIDI IN ◁ | [Libraries]:PJ-320A | J2 |
| 1 | MIDI OUT | [Libraries]:PJ-320A | J3 |
| 1 | OLED-I2C | [Libraries]:128x64OLED | U3 |
| 1 | SW_SPDT | KiCadCustomLibs-master:SS-12F23 | SW1 |
| 1 | nFR52840 nice! nano v2 | SuperMini NRF52840:SuperMini NRF52840 | U1 |
Questions
How big is the SPIDER Gateway PCB?
It measures 50 × 35 mm and has 2 copper layers, 1.6 mm thick.
What parts does the SPIDER Gateway use?
19 parts. 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 SPIDER Gateway KiCad files?
From the nunosmash/SPIDER repository on GitHub, at the commit this page was made from: the board is Kicad/SPIDER Gateway.kicad_pcb and its schematic Kicad/SPIDER Gateway.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the SPIDER Gateway design in my own project?
Its repository publishes it under the Apache-2.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).
Similar boards
- 2 layers43.9 × 27.7 mm

- 2 layers50 × 60 mm

Debate Device
hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!
19 parts915 - 2 layers102.9 × 96.7 mm

ISA adapter
polpo/picogus
Emulation of ISA sound cards and CD-ROM on Raspberry Pi Pico (GUS, SB/Adlib, MPU-401, Tandy, CMS, Panasonic CD-ROM) with USB mouse/joystick support
19 parts805 - 2 layers60 × 39 mm

- 2 layers70.1 × 43.2 mm

Iaq device
nkitanov/iaq_board
IAQ Board is a DIY (Do-It-Yourself) device for measuring internal air quality
19 parts396 - 2 layers80 × 80 mm

- 2 layers25.4 × 25.4 mm

Ina169
Ardumower/ardumower
Develop an open source robotic lawn mower (HW+SW reference platform)
19 parts282 - 2 layers58.4 × 28.6 mm

New rele
zmaker/arduino_cookbook
gli sketch del nuovo progetto Arduino Cookbook e dei video di YouTube
19 parts269
