open source hardware and software for a 30-channel 16-bit analog teensy 4.1 eurorack shield
some peripherals to extend your teensy 4.1 to interface with analog audio and eurorack control voltages (-10 to +10 volts)
For stable, tested version please see
- specifications
- open source software-stack
- support
- social media
- printed circuit boards
- panel design
- assembly technical drawings
- videos
- versions
- todo
- microcontrollers:
- 600 Mhz ARM cortex m7 ( teensy 4.1 board )
- audio: multi-channel audio codec ( 6-in / 8-out 24-bit sound card - CS42448 )
- the audio codec circuit originally started as a discussion on quad audio channel outputs and a pcb design integrating teensy and cs42448 from Paul Stoffregen on pjrc forum
- analog control voltage ins/outs: -10V to 10V 16bit/sample, 8 x inputs and 8 x outputs ( ad7606, 2x ad5754 )
- display: ST7735 128x128 16bit-color tft display
- breakouts:
- microSD card socket,
- USB host/device,
- midi in/out,
- knobs (4 x pots, 3 x encoders w/switch)
- panel: 24HP aluminium panel mounted for eurorack case
- programability:
- write arduino compatible c/c++ firmware & program using arduino/teensyduino
- arm gnu toolchain downloads
- teensy audio library
- MIT license unless otherwise specified on a per file basis.
- All schematics and boards are created using Kicad
- All mechanical designs are created using FreeCAD
- Some images have been rendered using Blender 2.81
This project is a work-in-progress! The functionality has been tested and are working at a basic level.
There are some improvements I'd like to make later
- improve noise to signal ratio on pots on breakout board.
- add 4x jack sockets for analog output of knobs on breakout board.
- use 3.5mm jack sockets (as well as standard midi din connectors) for midi in and out.
- switch to active audio input and output circuitry, allow switchable 0dB / 12dB gain, for guitar signals.
- let me know if you're think there something else that can be improved, added, removed.
There is a journal of my progress, journal.md
What you can do if you like to see progress with this project?
- sponsor via paypal.me: paypal.me/nicnewdigate - please leave a message :)
- star this repository (means you need a github account - go for it!!)
- subscribe Nic N on youtube
- download kicad and freecad, clone this repo, make improvements, commit & send pull-requests, and raise issues...
- youtube:
- standard double layer printed circuit board
- thinkness: 1.6mm
- minimum trace: 6 mil
- minimum clearance: 6 mil
- dimension: 118mm*102mm
- socket to connect teensy 4.0 board
- cs42448 audio codec
- 3 x stereo 6.35mm TRS jack inputs
- 4 x stereo 6.35mm TRS jack outputs
- pin sockets to connect breakout board
- 2 layer printed circuit board
- thinkness: 1.6mm
- minimum trace: 6 mil
- minimum clearance: 6 mil
- dimension: 110mm*111mm
- 8 x 3.5mm jack socket for analog control voltage inputs
- 8 x 3.5mm jack socket for analog control voltage outputs
- midi in/out DIN sockets
- usb device/host
- USB-B: USB device mode
- USB-A: USB host mode
- micro-SD card socket
- 4 x linear pots
- 3 x rotary encoders with switches
- youtube: Teensy 4.0 eurorack shield design intro
- youtube: 0v to 10v control voltage input, output and display using teensy 4.0
- DIY assembly build - teensy 4.0 eurorack audio module
- youtube: assembly teensy eurorack shield
- youtube: assembly timelapse
- youtube: Eurorack digital audio modules powered by teensy micro-controller
- side-channel stereo audio separation with teensy 4.0
- Mainboard: spaced out traces as there appeared to be some interference under certain circumstances.
- Mainboard: add daisy chain TX/RX connector on back side to communicate between multiple boards
- Breakout board: changed back to double layer board.
- Breakout board: Corrected polarity of +-12V pin headers on breakout board (ouch!!!)
- SPI: separated ADC, DAC from display:
- st7735 display has its own dedicated SPI - (SPI0, stays the same)
- ADC / DAC are now sharing SPI1
- integrated ADC and DAC into teensy audio library.
- added one more ad5754 DAC for total of 8 control voltage analog output channels
- mainboard: correction: reconnected LRCLK to codec.
- connected DAC_SCK output (pin 19) to pin 31
- allow cable select to be asserted on minor spi data cycle after every 24 or 48 spi clock cycles, using interrupt on pin 31.
- hopefully this will allow DMA spi transfers to AD5754 and which will make integration with teensy audio library much easier
- allow cable select to be asserted on minor spi data cycle after every 24 or 48 spi clock cycles, using interrupt on pin 31.
updated to teesy 4.1 and improvements to make easier to build
- updated from teensy 4.0 to teensy 4.1
- schematic, footprint and pcb clean-up
- replaced footprints imported from eagle with native kicad footprints
- removed atmel samd21 and gpio ICs
- replaced gpio with AD5754 (extra 4 DAC channels)
- replaced RGB encoders with regular encoders
- replaced analog-GND-to-digital-GND footprint with a 0805 zero ohm resistor footprint. (DRC checks can pass now...)
- (temporarily) removed serial TX/RX to unused eurorack power pins
status:
25/07/2020:
* received pcbs, stencil and components
- General
- cleanup / refactor footprints, replace footprints and symbols imported from eagle with kicad equivalents
- Breakout board for rotary encoders and pots
-
order - assemble
- verify
- firmware
- document
- certify
-
-
panel-
measurements -
design
-
- finalize circuits / boards
- testing
- CS42448 audio codec
- Audio input
- Audio output
- control voltage input
- control voltage output
- gpio (input & output)
- usb host
- usb device
- midi in/out
-
st7735 display -
sd card extension & adapter
- CS42448 audio codec
- Document
- order & build process
- software process
- Firmware
- Sliced audio loops
- Midi looping
- testing automated build and packaging
- github.com/pwuertz/kicad_picknplace_assistant
- github.com/productize/kicad-automation-scripts
- InteractiveHtmlBom by openscopeproject
- potentiometer: https://grabcad.com/library/potentiometer-30