Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
960fb37
Update teensy core
MartijnBraam Nov 15, 2025
fea95c8
Update audio library
MartijnBraam Nov 15, 2025
63ef549
New DSP config
MartijnBraam Nov 15, 2025
db177d6
Add TAA3040 driver
MartijnBraam Nov 15, 2025
016bd1b
lower TDM drive strength
MartijnBraam Nov 15, 2025
0a3cd1c
Implement taa3040
MartijnBraam Nov 15, 2025
f16691b
Changes after the hackathon
MartijnBraam Nov 19, 2025
809fc86
Change inputs and outputs to the ones on the rev. E board
MartijnBraam Dec 3, 2025
051e915
Merge branch 'master' into audiov2-reve
dexterlb Jan 28, 2026
33c5ec8
Check result of slip.read()
MartijnBraam Jan 30, 2026
c7e6ae4
Merge branch 'master' into audiov2-reve
dexterlb Feb 1, 2026
60383a0
lower gain
dexterlb Feb 1, 2026
d90c61c
Use ADC gain for the input multiplier
MartijnBraam Feb 20, 2026
144ba7e
add initial version of cli
dexterlb Mar 20, 2026
90f6038
return levels
dexterlb Mar 20, 2026
556754c
gains and outs
dexterlb Mar 20, 2026
22beeab
floats
dexterlb Mar 20, 2026
be65d67
properly apply gains when reading from eeprom
dexterlb Mar 20, 2026
6a18119
rename some stuff and remove osc shit
dexterlb Mar 20, 2026
8f8f051
more renames, proper gains
dexterlb Mar 20, 2026
93d3869
dummy phantom
dexterlb Mar 20, 2026
f347dd5
digitalWrite
dexterlb Mar 21, 2026
9593218
arduino is hell
dexterlb Mar 21, 2026
fe946fb
fix gpios
dexterlb Mar 21, 2026
6838e42
port the cli to fancy c++ stuff
dexterlb Mar 21, 2026
98deae9
proper debug logging
dexterlb Mar 21, 2026
fb60fd6
more cli improvements
dexterlb Mar 21, 2026
365001e
slugs!
dexterlb Mar 21, 2026
c634b51
debug print infra
dexterlb Mar 21, 2026
964bdb7
retrieve channels
dexterlb Mar 21, 2026
a75b7ae
nuke the OSC stuff
dexterlb Mar 21, 2026
718d111
format code
dexterlb Mar 21, 2026
b2e5fe6
line length optimisation
dexterlb Mar 21, 2026
93f662f
disable second serial
dexterlb Mar 21, 2026
326bae4
config file parsing
dexterlb Mar 21, 2026
548a98e
open serial port
dexterlb Mar 21, 2026
c38ad4d
fix deadlocks
dexterlb Mar 21, 2026
eb15335
proper failure handling
dexterlb Mar 21, 2026
79f36e1
state polling
dexterlb Mar 21, 2026
f0f38fb
poll state and levels
dexterlb Mar 21, 2026
41947c9
set-send
dexterlb Mar 21, 2026
c2fa138
setters for matrix
dexterlb Mar 21, 2026
9207cc8
moar setters
dexterlb Mar 21, 2026
538705a
factory reset
dexterlb Mar 22, 2026
747df2a
websocket support
dexterlb Mar 22, 2026
be8fce3
remove replace line
dexterlb Mar 22, 2026
b56ff9b
add web ui
dexterlb Mar 22, 2026
e15e45d
fix bugs
dexterlb Mar 22, 2026
919420a
Add digital gain control for the TAA3040
MartijnBraam Mar 22, 2026
531c346
update go.mod
dexterlb Mar 22, 2026
a801938
implement sending of full state
dexterlb Mar 22, 2026
4129430
split off serial ctl in preparation of fake ctl
dexterlb Mar 22, 2026
dbe7cbb
implement fake audio ctl
dexterlb Mar 22, 2026
9280888
rename all db-related functions and clear up dbu/dbv etc
dexterlb Mar 28, 2026
a2ca750
convert everything to decibels
dexterlb Mar 28, 2026
c75395d
format
dexterlb Mar 28, 2026
2c50605
fix segfault
dexterlb Mar 30, 2026
cea0b69
properly handle dbs in fakectl
dexterlb Apr 4, 2026
e82ca59
some comments
dexterlb Apr 4, 2026
603d4d1
successfully perform a request
dexterlb Apr 13, 2026
3335fa5
update deps
dexterlb Apr 13, 2026
fa91366
initial working version of mixer frontend/backend connection
dexterlb Apr 13, 2026
68b78ae
ui works!
dexterlb Apr 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
*.bak
*.mp4
*.ts
xml
3 changes: 0 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,6 @@
[submodule "hardware/firmware/audio_board/vendor/SPI"]
path = hardware/firmware/audio_board/vendor/SPI
url = https://github.com/PaulStoffregen/SPI.git
[submodule "hardware/firmware/audio_board/vendor/OSC"]
path = hardware/firmware/audio_board/vendor/OSC
url = https://github.com/CNMAT/OSC
[submodule "hardware/firmware/audio_board/vendor/ST7735_t3"]
path = hardware/firmware/audio_board/vendor/ST7735_t3
url = https://github.com/PaulStoffregen/ST7735_t3
Expand Down
34 changes: 30 additions & 4 deletions hardware/firmware/audio_board/.clang-format
Original file line number Diff line number Diff line change
@@ -1,8 +1,34 @@
---
BasedOnStyle: LLVM
IndentWidth: 4
ColumnLimit: 80
---
Language: Cpp
TabWidth: 4
UseTab: AlignWithSpaces
BreakBeforeBraces: Attach

InsertBraces: true

SpacesInParentheses: false

AlignConsecutiveMacros: AcrossEmptyLinesAndComments
AlignConsecutiveAssignments:
Enabled: true
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
PadOperators: false
AlignConsecutiveDeclarations: Consecutive
AlignTrailingComments: true
AlignAfterOpenBracket: BlockIndent
IndentAccessModifiers: true

DerivePointerAlignment: false
PointerAlignment: Right
PointerAlignment: Left

PackConstructorInitializers: BinPack
BreakConstructorInitializers: AfterColon

ColumnLimit: 0

SortIncludes: false

LineEnding: LF
12 changes: 8 additions & 4 deletions hardware/firmware/audio_board/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ set(TEENSY_DEFINITIONS USB_MIDI_AUDIO_SERIAL
LAYOUT_US_ENGLISH
F_CPU=${CPU_CORE_SPEED}
${CPU_DEFINE}
ARDUINO_TEENSY40)
ARDUINO_TEENSY41)
set(MCPU cortex-m7)
add_compile_options(-mcpu=${MCPU} -mthumb -mthumb-interwork -mfloat-abi=hard -mfpu=fpv5-d16 -D${CPU_DEFINE} -DTEENSYDUINO=159 -DARDUINO=10607 -nostdlib)
set(c_flags -MMD -fno-exceptions)
Expand Down Expand Up @@ -91,7 +91,6 @@ set_property(SOURCE ${VENDOR_ROOT}/Audio/memcpy_audio.S PROPERTY LANGUAGE C)
#import_arduino_library(${VENDOR_ROOT} Adafruit_BusIO)
#import_arduino_library(${VENDOR_ROOT} Adafruit_SSD1306)
import_arduino_library(${VENDOR_ROOT} ST7735_t3/src)
import_arduino_library(${VENDOR_ROOT} OSC)
import_arduino_library(${VENDOR_ROOT} SD/src)
import_arduino_library(${VENDOR_ROOT} SdFat/src)
import_arduino_library(${VENDOR_ROOT} SdFat/src/ExFatLib)
Expand All @@ -107,13 +106,18 @@ set(FEATURES
USE_DISPLAY
)

set(SOURCES
set(SOURCES
teensy4_usb_descriptor.c
src/main.cpp
src/storage.cpp
src/display.cpp
src/helpers.cpp
src/db_conversion.cpp
src/teensyaudio.cpp
src/taa3040.cpp
src/cli/cli.cpp
src/cli/commands.cpp
src/debug.cpp
src/channels.cpp
)

# Build this project
Expand Down
25 changes: 25 additions & 0 deletions hardware/firmware/audio_board/format.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#!/bin/bash

set -euo pipefail

cdir="$(dirname "$(readlink -f "${0}")")"

if [[ $# -eq 1 ]]; then
dirs=( "$(readlink -f "${1}")" )
elif [[ $# -eq 0 ]]; then
dirs=( "${cdir}"/src )
else
echo 'what?' >&2
exit 1
fi

cd "${cdir}"

for dir in "${dirs[@]}"; do
echo "formatting in ${dir}" >&2
find "${dir}" -type f -regextype egrep -iregex '.*\.[ch]|.*\.cpp' \
-not -path '*/sys/*' \
-not -path '*/build/*' \
-not -path '*/vendor/*' \
-exec clang-format -i -style=file '{}' \+
done
21 changes: 21 additions & 0 deletions hardware/firmware/audio_board/src/channels.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#include "channels.h"

static constexpr ChanInfo the_channel_info[] = {
{CHAN_WHITE, "1", "IN1", 0},
{CHAN_WHITE, "2", "IN2", 0},
{CHAN_WHITE, "3", "IN3", 0},
{CHAN_YELLOW, "P", "PC", 0},
{CHAN_MAGENTA, "USB", "USB1", 1},
{CHAN_MAGENTA, "USB", "USB2", 2},

{CHAN_WHITE, "1", "OUT1", 0},
{CHAN_WHITE, "2", "OUT2", 0},
{CHAN_GREEN, "AFL", "HP1", 1},
{CHAN_GREEN, "AFL", "HP2", 2},
{CHAN_MAGENTA, "USB", "USB1", 1},
{CHAN_MAGENTA, "USB", "USB2", 2},
};

const ChanInfo& channel_info(uint8_t chan_id) {
return the_channel_info[chan_id];
}
24 changes: 13 additions & 11 deletions hardware/firmware/audio_board/src/channels.h
Original file line number Diff line number Diff line change
@@ -1,20 +1,22 @@
#ifndef _CHANNELS_H_
#define _CHANNELS_H_
#pragma once

#include <stdint.h>

#define CHANNELS 6
#define BUSES 6

typedef struct ChanInfo {
uint16_t color;
char label[4];
char desc[16];
uint8_t link;
uint16_t color;
char label[4];
char desc[16];
uint8_t link;
} ChanInfo;

const ChanInfo& channel_info(uint8_t chan_id);

#define RGB(r, g, b) (((r & 0xF8) << 8) | ((g & 0xFC) << 3) | (b >> 3))

#define CHAN_WHITE RGB(255, 255, 255)
#define CHAN_YELLOW RGB(255, 255, 80)
#define CHAN_WHITE RGB(255, 255, 255)
#define CHAN_YELLOW RGB(255, 255, 80)
#define CHAN_MAGENTA RGB(255, 140, 255)
#define CHAN_GREEN RGB(100, 255, 100)

#endif
#define CHAN_GREEN RGB(100, 255, 100)
Loading