Skip to content

Hardware Design: Eurorack shield for teensy 4.1 with 14 in / 16 out analog channels

License

Notifications You must be signed in to change notification settings

newdigate/teensy-eurorack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

teensy eurorack audio shield

Version 2.1 Teensy 4.1 success Join the chat at https://gitter.im/newdigate/teensy-eurorack kicad pcb ops CI teensy40 built with kicad MIT license

Sponsored by:

open source hardware and software for a 30-channel (14 in / 16 out) 16-bit analog teensy 4.1 eurorack shield

  • add peripherals to extend your teensy 4.1 to interface with
    • analog line audio (6 in / 8 out)
    • analog control voltages (8 in / 8 out: -10 to 10 volts)
    • midi in/out
    • microSD socket breakout
    • USB-A host and USB-B devices
    • 4 potentiometers, 3 encoders w/switch
  • online designer teensy eurorack audio gui ^

updates

contents

sponsor

specifications

  • microcontrollers:
  • 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

license

  • All artifacts are MIT license unless otherwise specified on a per file basis.

open source software stack

build

order pcbs

sourcing parts

Most parts are available from mouser.com - you can use the mouser BOMs below as a template to create an order.

mouser boms

parts not on mouser boms

  • panel:
  • mainboard:
    • 2.54mm pitch pin headers and sockets
      • J28: Eurorack power header: either male or female (2 x 8), I use female as my eurorack power (tip top) has male connectors.
  • breakout:
    • uSD card socket: pjs008u-3000-0 yamaichi

    • display: ST7735 (1.44 inch TFT LCD ST7735 SPI display module 128*128 8pin 65K color)

    • 16 x thonkiconns: PJ398SM

    • 4 x 9mm snap-in pots: alpha-9mm-pots - You want linear (B-series) not audio (A-series) B5K or B10K should be ideal.

    • 3 x rotary encoders w/switches: Half axis (D-shaft) rotary encoder, handle/axis length: 20mm, EC11/EC12 digital potentiometer with switch - 5Pin

Update: USB-A-S-X-X-VT is no longer available. Amphenol Commercial Products GSB11111ALF looks like it may be a good replacement.

interactive html boms online

source code

improvements

At this point Im just focusing on finalising/polishing the current version, but there are some improvements I'd like to make at some point.

  • 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 (its a bit out of date, sorry) - journal.md

What you can do if you like to see progress with this project?

  • #sponsor...
  • 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...

printed circuit boards

  • 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

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

schematics

assembly technical drawings

youtube videos

versions

v2.1 (Saturday 3 April 2021)

  • Improvement: Mainboard: Tie LRCLK pin 20 to pin40 to sync DAC/ADC sampling w/ audio sampling
  • FIXED: breakout: add 1k pull-up resistor to MIDI rx pin
  • mainboard: silkscreen: add Kicad OpenSourceHardware logo
  • breakout: silkscreen: add Kicad OpenSourceHardware logo

v2.0.3 (Saturday 13/02/2021)

  • breakout: st7735 display changed vcc, reset, backlight from 5v to 3v3.

v2.0.2 (31/01/2021)

  • Mainboard: spaced out traces as there appeared to be some interference under certain circumstances.

v2.0.1 (27/01/2021)

  • Mainboard: add daisy chain TX/RX connector on back side to communicate between multiple boards
  • Breakout board: changed back to double layer board.

v2.0.0(b)

  • Breakout board: Corrected polarity of -12V pin headers on breakout board (ouch!!!)
  • change ADC to use external 2.5v voltage reference, same as DAC voltage reference now

v2.0.0

  • 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

v1.9.1b

  • mainboard: correction: reconnected LRCLK to codec.

v1.9.1

  • 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

v1.9

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

todo

  • finalize design / circuits / boards
  • order (v.2.1)
  • assemble
  • testing
    • CS42448 audio codec
      • Audio input
      • Audio output
    • control voltage input
    • control voltage output
    • usb host
    • usb device
    • midi in
    • midi out
    • st7735 display
    • sd card extension & adapter
  • Document
    • order & build process
    • software process
  • Firmware

continuous-integration

credits

sponsored by

Massive thanks to these generous people who have provided support!

  • Hannes Schnaitter
  • Daniel Hengeveld thedaniel on github
  • Derek Brost
  • Martin Eigel
  • Morgan Massens