Skip to the content
4 layers49 × 40 mmBlackmagic, the printed circuit board in 3D

Firmware (Zephyr RTOS / nRF Connect SDK, with Pigweed libraries), custom boards and KiCad hardware projects for a few small nRF52-based devices.

Size
49 × 40 mm
Copper layers
4
Thickness
1.6 mm
Parts
63
Nets
84
Pads
251
Tracks, vias
439, 83
Pours
1
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
14 Feb 2020
Updated
29 Oct 2026

Overview

Blackmagic is an open-source printed circuit board by aeremin, from the aeremin/firefly_zephyr repository on GitHub. It is a 4-layer board of 49 × 40 mm with 63 parts on 84 nets, routed with 439 tracks and 83 vias.

It is built around the AP2112K-3.3TRG1, TXS0108ERGYR and USBLC6-2P6, with the TS-1187A-B-A-B, KH-1.27PH180-2X5P-L7.2-SMT and AO3401A among its other parts. Its parts include 21 capacitors, 13 resistors, 6 diodes, 4 ICs and 3 switches. It belongs with the STM32 boards of this library.

Main components

7

README

README.md

Firefly

CI

Firmware (Zephyr RTOS / nRF Connect SDK, with Pigweed libraries), custom boards and KiCad hardware projects for a few small nRF52-based devices.

Products

ProductPCB (hardware/)Board (boards/arm/)Firmware (firmware/)
Firefly—firefly_v1firefly, activator, smoke_test
Locklock (EasyEDA)lock_v01lock, lock_test
Power meterusb_power_meterpower_meterpower_meter
Cordycepscordycepscordycepsrothult_cordyceps

Other hardware projects without firmware in this repository: blackmagic, esphome-nfc, hitl_rack, rothult. Shared KiCad libraries are in hardware/libs.

Repository layout

  • firmware/ — one folder per firmware image, plus shared code in firmware/common and firmware/testing.
  • boards/ — custom Zephyr board definitions.
  • manifest/ — west manifest (nRF Connect SDK and Pigweed revisions). The repository is also a Zephyr module (manifest/zephyr/module.yml), which makes the boards and shared code available to every build.
  • hardware/ — KiCad projects, with fabrication outputs in each project's production/.
  • docs/ — development setup and notes.

Building and flashing

See docs/Developing.md for the one-time setup (west workspace, Pigweed environment, Python dependencies).

Then, from the repository root:

bash
west build firmware/<image> --board <board> --pristine

(--pristine means "clean, non-incremental build" and can be omitted when rebuilding the same image).

To flash it, use

bash
west flash

Flashing with a Black Magic Probe is described in docs/Developing.md.

CI builds all images on every push and runs hardware-in-the-loop tests on a test rack: the smoke_test and lock_test images, and the real firefly image. See docs/INTEGRATION_TESTING.md.

Firmware images

Firefly (firefly, board firefly_v1)

This is the "main" image. Behaviours:

  • Radio: will continously listen for the radio packets (see packet structure here). This is compatible with Locket firmware from this branch and with the Activator firmware described below. LED color will change according to packets received.

  • Bluetooth: presents itself as connectable BLE device. Provides 2 BLE services:

    • Standard battery service, containing battery level (0-100) characteristic.
    • Custom service (UUID 8ec87060-8865-4eca-82e0-2ea8e45e8221) exposing following characteristics:
      • "Beep" (UUID 8ec87062-8865-4eca-82e0-2ea8e45e8221). Write-only characteristic, writing a byte to it will trigger short beep, byte written controls the volume.
      • "Blink" (UUID 8ec87063-8865-4eca-82e0-2ea8e45e8221). Write-only characteristic, writing anything will trigger short series of blinks.

    Both of the services can be used by the Ostranna configurator Android app.

  • Battery measurement. Will continously monitor battery voltage and

    • Report it via bluetooth - see above.
    • Will disable radio and LED (will keep Bluetooth enabled) if battery level is low.

Activator (activator, board firefly_v1)

This image can be used to trigger Firefly one or to provide some settings for it. Behaviours:

  • Radio: will continously transmit radio packets (see packet structure here).

  • LED: will have a color corresponding to foreground color of packet being transmitted.

  • Bluetooth: presents itself as connectable BLE device. Provides 2 BLE services:

    • Standard battery service, containing battery level (0-100) characteristic.
    • Custom service (UUID 8ec87060-8865-4eca-82e0-2ea8e45e8221) exposing readable and writable characteristics corresponding to the fields of radio packet being transmitted. This allows to control the packet from e.g. phone.

    Both of the services can be used by the Ostranna configurator Android app.

Lock (lock, board lock_v01)

  • Bluetooth: same custom service as Firefly, with "Beep" and "Blink" characteristics.
  • Reads NFC tag UIDs with an MFRC522 reader and logs them.
  • Handles a matrix keyboard, a reed switch and two buttons.

Power meter (power_meter, board power_meter)

  • Measures voltage, current and power with an INA226 and logs them.
  • Bluetooth: custom service (UUID a0c272ef-1280-4a64-8c5b-2833b948fc96) with a readable and writable "Power On" characteristic that switches the output.

Cordyceps (rothult_cordyceps, board cordyceps)

  • Bluetooth: custom service (UUID ab12c725-0a0e-4c06-9968-2b9fff64b504) with
    • "Power On" characteristic (readable and writable) that switches the power output.
    • "Lock is closed" characteristic (readable and writable). Writing it sends a close/open command to the lock over UART.

Tests (smoke_test, lock_test)

On-target test images (Pigweed pw_unit_test), run by CI on real hardware (tests/hil). They print the test log to the UART/RTT and end with "All tests passed!" on success.

  • smoke_test (board firefly_v1): CC1101 radio, RGB LED, timers.
  • lock_test (board lock_v01): RGB LED, timers, EEPROM, expansion headers, threads, Pigweed RPC.

Parts

63
QtyValueFootprintReferences
12100 nFCapacitor_SMD:C_0402_1005MetricC3, C6, C8, C9, C10, C11, C12, C13, C14, C19, C20, C21
510kResistor_SMD:R_0402_1005MetricR3, R7, R10, R11, R12
5330RResistor_SMD:R_0603_1608MetricR4, R5, R6, R8, R9
412 pFCapacitor_SMD:C_0402_1005MetricC15, C16, C17, C18
4MountingHoleMountingHole:MountingHole_2.2mm_M2H1, H2, H3, H4
4SolderJumper_2_OpenJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP1, JP2, JP3, JP4
31.0 uFCapacitor_SMD:C_0603_1608MetricC1, C2, C7
3TS-1187A-B-A-Beasyeda2kicad:SW-SMD_4P-L5.1-W5.1-P3.70-LS6.5-TL-2SW1, SW2, SW3
24.7 uFCapacitor_SMD:C_0603_1608MetricC4, C5
25.1KResistor_SMD:R_0402_1005MetricR1, R2
2Greeneasyeda2kicad:LED0805-R-RDLED1, LED5
2KH-1.27PH180-2X5P-L7.2-SMTeasyeda2kicad:HDR-SMD_10P-P1.27-V-M-R2-C5-LS5.5BLACK_MAGIC_IN1, BLACK_MAGIC_OUT1
125Mhz crystalCrystal:Crystal_SMD_2016-4Pin_2.0x1.6mmX2
12KResistor_SMD:R_0402_1005MetricR13
12N7002Package_TO_SOT_SMD:SOT-23Q1
132.768kHz crystalCrystal:Crystal_SMD_3215-2Pin_3.2x1.5mmX1
1AO3401APackage_TO_SOT_SMD:SOT-23Q2
1AP2112K-3.3TRG1easyeda2kicad:SOT-25-5_L2.9-W1.6-P0.95-LS2.8-BLU3
1Conn_01x08_FemaleConnector_PinSocket_2.54mm:PinSocket_2x04_P2.54mm_VerticalSWD_OUT1
1KH-TYPE-C-16Peasyeda2kicad:USB-C-SMD_KH-TYPE-C-16PUSB1
1Redeasyeda2kicad:LED0603-RDLED4
1STM32F411CEUxeasyeda2kicad:UFQFPN-48_L7.0-W7.0-P0.50-BL-EPU1
1Schottky 1A 40Veasyeda2kicad:SOD-323_L1.8-W1.3-LS2.5-RDD1
1TXS0108ERGYReasyeda2kicad:VQFN-20_L4.6-W3.6-P0.50-BL-EPU4
1USBLC6-2P6easyeda2kicad:SOT-666-6_L1.6-W1.2-P0.50-LS1.6-BRU2
1Whiteeasyeda2kicad:LED0603-R-RD_WHITELED3
1Yelloweasyeda2kicad:LED0805-R-RDLED2

More from aeremin/firefly_zephyr

4
  • 4 layers68.3 × 41 mmEsphome nfc, the printed circuit board in 3D

    Esphome nfc

    aeremin/firefly_zephyr

    Firmware (Zephyr RTOS / nRF Connect SDK, with Pigweed libraries), custom boards and KiCad hardware projects for a few small nRF52-based devices.

    51 parts
  • 4 layers37 × 44 mmUsb power meter, the printed circuit board in 3D

    Usb power meter

    aeremin/firefly_zephyr

    Firmware (Zephyr RTOS / nRF Connect SDK, with Pigweed libraries), custom boards and KiCad hardware projects for a few small nRF52-based devices.

    43 parts
  • 4 layers22.1 × 29.9 mmCordyceps, the printed circuit board in 3D

    Cordyceps

    aeremin/firefly_zephyr

    Firmware (Zephyr RTOS / nRF Connect SDK, with Pigweed libraries), custom boards and KiCad hardware projects for a few small nRF52-based devices.

    32 parts
  • 2 layers51 × 65 mmHitl rack, the printed circuit board in 3D

    Hitl rack

    aeremin/firefly_zephyr

    Firmware (Zephyr RTOS / nRF Connect SDK, with Pigweed libraries), custom boards and KiCad hardware projects for a few small nRF52-based devices.

    14 parts

Similar boards

  • 4 layers53.9 × 29.1 mmBLE board, the printed circuit board in 3D

    BLE board

    rcardenes/sensor_board_with_ble

    47 parts
  • 4 layers50 × 50 mmMCU Board 0.1, the printed circuit board in 3D

    MCU Board 0.1

    thejamesrhodes/Hyades-Flight-Computer

    Full Hardware and Electronics design, Bare-metal GNC flight software for an actively attitude-controlled high-power rocket

    80 parts1Apache-2.0
  • 6 layers84 × 98 mmFujiNet-5200-Rev0, the printed circuit board in 3D

    FujiNet-5200-Rev0

    FujiNetWIFI/fujinet-hardware

    Schematics and design files for FujiNet hardware

    145 parts142
  • 4 layers65 × 56 mmSensor HAT, the printed circuit board in 3D

    Sensor HAT

    Eniemooo/Sensor-HAT

    Open-hardware indoor air sensor (CO2, VOC/NOx, T/RH, light, sound): HAT for Raspberry Pi or standalone with Seeed XIAO + ESPHome. KiCad 10.

    112 parts
  • 2 layers36 × 20.3 mmPmod ft link, the printed circuit board in 3D

    Pmod ft link

    chipsalliance/rocket-pcb

    PCB libraries and templates for rocket-chip based FPGA/ASIC designs

    38 parts21Apache-2.0
  • 2 layers90 × 90 mmPocketPSU elec main, the printed circuit board in 3D

    PocketPSU elec main

    jarrod89/pocketPSU

    Input1: - Output1 can be used to supply pocketPSU via a battery - Optional battery charging capability (addon board with BMS)

    97 parts2
  • 4 layers94.5 × 39.7 mmSTM32L4Q5CGT AudioSpectrumAnalyzer, the printed circuit board in 3D

    STM32L4Q5CGT AudioSpectrumAnalyzer

    OscarBazylewich/STM32_Audio_Spectrum_Analyzer_CustomPCB

    This repository contains a 4-layer KiCad board for the STM32 Audio Spectrum Analyzer. The board has an STM32L4Q5CGT6 MCU and an I2S MEMS microphone (ICS-43434).

    39 partsGPL-3.0

Questions

How big is the Blackmagic PCB?

It measures 49 × 40 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Blackmagic use?

63 parts, built around the AP2112K-3.3TRG1, TXS0108ERGYR, USBLC6-2P6 and TS-1187A-B-A-B. 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 Blackmagic KiCad files?

From the aeremin/firefly_zephyr repository on GitHub, at the commit this page was made from: the board is hardware/blackmagic/blackmagic.kicad_pcb and its schematic hardware/blackmagic/blackmagic.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Blackmagic design in my own project?

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