Skip to the content
PCBKitNew board
4 layers65 × 30 mmAntidote audio board, the printed circuit board in 3D

Antidote audio board

aliadnani/antidote12

Budget neural amp modelling on a Radxa Cubie A7Z.

Size
65 × 30 mm
Copper layers
4
Thickness
1.6 mm
Parts
62
Nets
67
Pads
209
Tracks, vias
448, 154
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
12 Sep 2026
Updated
30 Sep 2026

Overview

Antidote audio board is an open-source printed circuit board by aliadnani, from the aliadnani/antidote repository on GitHub, published under the Apache-2.0 licence. It is a 4-layer board of 65 × 30 mm with 62 parts on 67 nets, routed with 448 tracks and 154 vias.

It is built around the ADS1115IDGS and LP5907MFX-3.3. Its parts include 21 capacitors, 16 resistors, 6 connectors, 4 ICs and 2 diodes. It belongs with the audio and music boards of this library.

Main components

2

README

readme.md
antidote logo

Budget neural amp modelling on a Radxa Cubie A7Z.


enclosure

(sloppy demo video)

What this project does

Neural Amp Modeler (NAM) uses neural networks to model guitar amplifiers from recorded input/output pairs, then reproduces their response on live guitar audio. I want to make a standalone guitar pedal for it.

Rust firmware runs on a Radxa Cubie A7Z Linux SBC. It manages real-time audio capture and playback, including the hot loop that processes each buffer, wraps NAM A2’s C++ DSP library via FFI, and coordinates model loading and the pedal’s peripherals. A custom audio board provides instrument-level input and output.

The end goal is a budget, performant, standalone NAM pedal targetting buffers processed in under 10 ms (ideally under 5 ms) - essentially the threshold for human auditory latency perception.

This repo

  • src/: Rust firmware for audio processing, NAM A2 FFI, model loading, and pedal controls.
  • hardware/: Schematics and PCB design files for the audio board + associated Linux device tree overlays

Please see this repository as more of a reference design for what's possible and how such a pedal could be built, rather than a polished product.

Hardware setup

  1. Source a Radxa Cubie A7Z
    • Note: other similar SBCs (like the Pi Zero/OrangePis/etc.) likely will not work due to different GPIO header pinouts
  2. Have the audio board fabricated with all components populated.
  3. Connect the audio board to the SBC via the 40-pin GPIO header.
  4. Connect other peripherals to the audio board. In my case, I connected (and built my firmware around):
    • 3.5mm headphone jack for phones
    • 6.35mm TS input for guitar
    • 6.35mm TS output for amp
    • A single footswitch
    • An I2C OLED display (SH1106)
    • A WS2812B LED strip
hardware setup

Firmware setup

  1. Flash the SBC with Linux. Official Radxa images or community Armbian images should work fine.

  2. Compile and load the driver for the audio board's codec (TAC5112).

    • See the TI git repository for the source. Check out a branch or tag compatible with your kernel version.
    • Run make, then load the kernel module with insmod or modprobe.
  3. Compile and load the device tree overlay for the audio board.

    • The source is ./hardware/tac5112_i2c_i2s_overlay.dts. Compile it with dtc into a .dtbo file, then load it via rsetup.
  4. Configure the codec's ADC, DAC, and capture/playback paths if needed. These commands may be needed:

    sh
    sudo amixer -c 0 cset name='ASI_RX_CH1_EN Switch' on
    sudo amixer -c 0 cset name='OUT1x Source' 'DAC Input'
    sudo amixer -c 0 cset name='OUT1x Config' 'Pseudo differential with OUTxM as VCOM'
    sudo amixer -c 0 cset name='OUT1x Driver' 'Headphone'
    
    sudo amixer -c 0 cset name='ASI_RX_CH2_EN Switch' on
    sudo amixer -c 0 cset name='OUT2x Source' 'DAC Input'
    sudo amixer -c 0 cset name='OUT2x Config' 'Mono Single-ended at OUTxP only'
    sudo amixer -c 0 cset name='OUT2x Driver' 'Line-out'
    
    sudo amixer -c 0 cset name='ADC1 Config' 'Single-ended'
    sudo amixer -c 0 cset name='ADC1 Common-mode Tolerance' 'AC Coupled with 100mVpp'
    sudo amixer -c 0 cset name='ADC1 Full-Scale' '2/10-VRMS'
    sudo amixer -c 0 cset name='ASI_TX_CH1 Slot' 'Slot0'
    sudo amixer -c 0 cset name='ASI_TX_CH1_EN Capture Switch' on
    sudo amixer -c 0 cset name='ADC1 Digital Capture Volume' 161
    
    sudo amixer -c 0 cset name='IN1 Source Mux' 'Analog'
    sudo amixer -c 0 cset name='IN2 Source Mux' 'Analog'
  5. Pull in the dependencies, then build the firmware in release mode on the SBC or cross-compile it on a host:

    sh
    git submodule update --init --recursive
    cargo build --release
  6. Run the firmware in release mode, passing the directory containing your .nam models. If omitted, it uses resources/:

    sh
    ./target/release/antidote /path/to/nam/files
    # Or:
    cargo run --release -- /path/to/nam/files
    text
    2026-09-25T16:57:33.860341Z  INFO antidote: Starting Antidote.
    2026-09-25T16:57:33.880659Z  INFO antidote::modeller: Loaded NAM A2 model. model_path=resources/fender_brown.nam
    2026-09-25T16:57:33.880875Z  INFO antidote: Starting CPAL.
    2026-09-25T16:57:33.989547Z  INFO antidote: Playing back audio for 500 seconds.
    2026-09-25T16:57:34.898597Z  INFO antidote::audio: Audio errors input_drops=0 output_drops=0 output_underruns=320
    2026-09-25T16:57:35.898842Z  INFO antidote::audio: Audio errors input_drops=0 output_drops=0 output_underruns=320
    2026-09-25T16:57:36.899102Z  INFO antidote::audio: Audio errors input_drops=0 output_drops=0 output_underruns=320
    ...

Polishing touches

Once everything is working, some things you can do to make the pedal more usable:

  • Add a systemd service to run the firmware on boot

Optimizations

  • Disable all unnecessary kernel modules to reduce boot time
    • Stock boots in around ~20 seconds which is actually pretty good - but you can cut another 5-10
  • If using a 6.12+ kernel, you can use the play with the PREEMPT_RT to reduce latency
  • Play around with mlockall and threadirqs, core pinning/isolation. You can push buffer sizes to around ~24 this way yielding a theorical round-trip latency of ~2ms.

Some design goals/notes:

In principle, this project actually builds an entire hardware platform for any real-time guitar processing application for Linux SBCs. You can just as easily swap out the the firmware for another that runs say LV2/VST plugins. Though the main focus for this project is a standalone NAM pedal.


Built on top of:

Parts

62
QtyValueFootprintReferences
81 uFCapacitor_SMD:C_0603_1608MetricC3, C8, C9, C10, C17, C18, C19, C20
70.1 uFCapacitor_SMD:C_0603_1608MetricC4, C6, C7, C11, C12, C13, C16
64.7 KResistor_SMD:R_0805_2012MetricR1, R4, R8, R9, R12, R13
41 MResistor_SMD:R_0805_2012MetricR2, R3, R6, R7
410 uFCapacitor_SMD:C_0603_1608MetricC1, C2, C15, C21
4MountingHole_PadMountingHole:MountingHole_2.7mm_M2.5_PadH1, H2, H3, H4
4TestPointTestPoint:TestPoint_Pad_1.5x1.5mmTP1, TP2, TP3, TP4
3PotentiometerConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalRV1, RV2, RV3
2200 RResistor_SMD:R_0805_2012MetricR14, R15
2FootswitchConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalSW1, SW2
2LEDLED_SMD:LED_0805_2012MetricD1, D2
11 KResistor_SMD:R_0805_2012MetricR10
11 nF (DNP)Capacitor_SMD:C_0603_1608MetricC14
110 KResistor_SMD:R_0805_2012MetricR16
1100 KResistor_SMD:R_0805_2012MetricR11
1100 RResistor_SMD:R_0805_2012MetricR5
1100 pFCapacitor_SMD:C_0603_1608MetricC5
1ADS1115IDGSPackage_SO:TSSOP-10_3x3mm_P0.5mmU1
1Cubie GPIOConnector_PinHeader_2.54mm:PinHeader_2x20_P2.54mm_VerticalJ1
1I2C HeaderConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ6
1Instrument InConnector_Wire:SolderWire-0.5sqmm_1x02_P4.6mm_D0.9mm_OD2.1mmJ4
1Instrument OutConnector_Wire:SolderWire-0.5sqmm_1x02_P4.6mm_D0.9mm_OD2.1mmJ2
1LED HeaderConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ5
1LP5907MFX-3.3Package_TO_SOT_SMD:SOT-23-5U4
1MCP6002-xSNPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU2
1PhonesConnector_Audio:Jack_3.5mm_PJ320E_HorizontalJ3
1TAC5112IRGEReasyeda2kicad:VQFN-24_L4.0-W4.0-P0.50-BL-EP2.1_1U3

Questions

How big is the Antidote audio board PCB?

It measures 65 × 30 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Antidote audio board use?

62 parts, built around the ADS1115IDGS and LP5907MFX-3.3. 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 Antidote audio board KiCad files?

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

Can I use the Antidote audio board 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

  • 4 layers299 × 127 mmLaunch, the printed circuit board in 3D

    Launch

    system76/launch

    System76 Launch Configurable Keyboard

    385 parts1.4kGPL-3.0
  • 2 layers316 × 119 mmTeensy Grovebox, the printed circuit board in 3D

    Teensy Grovebox

    jerry20091103/Teensy_Grovebox

    A portable synth and music multi-tool made with Teensy 4.1

    142 parts150MIT
  • 4 layers96 × 28 mmThelio io, the printed circuit board in 3D

    Thelio io

    system76/thelio-io-hardware

    KiCad electrical design of Thelio Io board

    78 parts70GPL-3.0
  • 2 layers58 × 38.3 mmEsp32-caliper, the printed circuit board in 3D

    Esp32-caliper

    Mew463/esp32-caliper

    It features a built in 150mAh battery and a USB C interface for charging/uploading code.

    44 parts59
  • 4 layers231 × 67 mmBESC G2, the printed circuit board in 3D

    BESC G2

    galpavlin/BESC-G2

    BESC second generation

    300 parts58
  • 4 layers26.4 × 56 mmRPI5-SDexpress Hat, the printed circuit board in 3D

    RPI5-SDexpress Hat

    will127534/RPI5-SDexpress-Hat

    ctrl-c "RPI5-CFE-Hat" ctrl-v "RPI5-SDexpress-Hat"

    51 parts37MIT
  • 6 layers90.1 × 135 mmHandheld, the printed circuit board in 3D

    Handheld

    gamebub/gamebub-pcb

    PCB design files for the Game Bub project

    386 parts31CERN-OHL-S-2.0
  • 2 layers99 × 69 mmMSI001, the printed circuit board in 3D

    MSI001

    ATmega8/kiterf

    Release KiteRF is a SDR system with K210 & FPGA & ESP32 as its core controller, which make SDR more intelligent, portable and cheap.

    170 parts25MIT