Shared Projects by PaulStoffregen
Shared Projects by PaulStoffregen
CS42448 Audio, 6 Inputs, 8 Outputs
2 layer board of 2.50 x 2.55 inches (63.6 x 64.8 mm)
Uploaded:
April 02, 2017
Shared:
April 17, 2017
Total Price:
$31.90

CS42448 Audio
Some projects need a lot of audio I/O. Maybe you're doing positional audio sound effects (using the 8-tap delay effect) where ordinary stereo or even 5 channel "surround" isn't enough? Maybe you're making the ultimate …

CS42448 Audio
Some projects need a lot of audio I/O. Maybe you’re doing positional audio sound effects (using the 8-tap delay effect) where ordinary stereo or even 5 channel “surround” isn’t enough? Maybe you’re making the ultimate Eurorack synthesizer module? Or you just want a lot of signals, because you can!
Here’s a board for the Cirrus Logic CS42448 chip, which provides 6 inputs and 8 outputs. All are high quality audio, and all work simultaneously.
TDM Data Interface
Normally digital audio is communicated between chips using I2S protocol (which is different than I2C, despite the similar acronym). Two I2S streams can be used for quad channel, but to really step up to more channels, you need TDM protocol.
TDM communicates a frame of 256 data bits. For 44.1 kHz, this means the bit clock must be 11.3 MHz. Only 4 signals are used, one to transmit all 256 bits and another to receive all 256, a frame sync signal the marks where each 256 bit frame begins, and of course the 11.3 MHz clock.
Here is the TDM waveform documented by Cirrus Logic for the CS42448 chip.

Actual TDM Signals
When viewed on an oscilloscope, here is how the TDM signal actually appears:

During this test, the code below was running. The output from Teensy is the blue trace. It sends a 16 bit guitar synthesis to CS42448 AOUT1 & AOUT2. Because the CS42448 outputs are 32 bits, but the audio is only 16 bits you can see the lower 16 bits are always zero. Most of the rest of the output is zeros, except this example also brings in AIN1 and sends its top 16 bits to AOUT5 and its lower 16 bits to AOUT6.
Of course, the green trace is the data being received from the CS42448. All 6 inputs were left unconnected. Even through the channel slots of 32 bits, the CS42448 only produces 24 bits of data, and its lower 8-9 bits are mostly random noise. This PCB uses only the simplest single-ended input circuit. The better opamp-based differential circuit documented in the CS42448 could be expected to improve performance.
Software Support
TDM support has recently been added to the Teensy Audio Library. It’s accessed by creating AudioInputTDM and AudioOutputTDM objects.

Each AudioInputTDM creates 16 simultaneous inputs. Like all communication in the Teensy Audio Library, the data is 16 bits wide. 16 of these channels gives access to all 256 incoming TDM bits. For CS42448, only channels 0, 2, 4, 6, 8 & 10 would be really useful.
Likewise, each AudioOutputTDM object can accept 16 simultaneous 16 bit audio streams, to fully control all 256 bits of the TDM output frame. For CS42448, only the 8 even numbered channels are useful.
Development of the audio software support is being discussed on this forum thread. If you make one of these boards, please join the conversation!
Parts Placement Diagram

Bill Of Materials
1 CS42448, Codec Chip 598-1033-ND
1 CAT811T, Reset Chip CAT811TTBI-GT3OSCT-ND
7 Connector, audio CP1-3525N-ND
7 Resistor, 150 ohm, 603 311-150HRCT-ND
8 Resistor, 560 ohm, 603 RMCF0603FT560RCT-ND
2 Resistor, 2.2K ohm, 603 311-2.20KHRCT-ND
8 Resistor, 10K ohm, 603 311-10.0KHRCT-ND
7 Resistor, 100K ohm, 603 311-100KHRCT-ND
14 Capacitor, 2.7nF, NP0, 805 445-7508-1-ND
4 Capacitor, 10nF, X7R, 603 490-1512-1-ND
7 Capacitor, 0.1uF, X7R, 603 490-1524-1-ND
14 Capacitor, 4.7uF, X5R, 805 1276-6463-1-ND
7 Capacitor, 10uF, X5R, 805 399-4925-1-ND
1 Capacitor, 22uF, X5R, 805 490-1719-1-ND
1 Capacitor, 100uF, X6T, 1206 490-10525-1-ND
1 Inductor, Ferrite Bead, 805 490-1054-1-ND
1 Teensy 3.2, 3.5 or 3.6 www.pjrc.com/store/teensy32.html
2 Socket, 14x1 www.pjrc.com/store/socket_14x1.html
2 Header, 14x1 www.pjrc.com/store/header_14x1.html
1 Heatsink (optional: CS42448 runs hot)
How to use Digikey’s website to find alternate parts when any of these aren’t in stock.

Show full description

CS42448 Audio
Some projects need a lot of audio I/O. Maybe you're doing positional audio sound effects (using the 8-tap delay effect) where ordinary stereo or even 5 channel "surround" isn't enough? Maybe you're making the ultimate …

CS42448 Audio
Some projects need a lot of audio I/O. Maybe you’re doing positional audio sound effects (using the 8-tap delay effect) where ordinary stereo or even 5 channel “surround” isn’t enough? Maybe you’re making the ultimate Eurorack synthesizer module? Or you just want a lot of signals, because you can!
Here’s a board for the Cirrus Logic CS42448 chip, which provides 6 inputs and 8 outputs. All are high quality audio, and all work simultaneously.
TDM Data Interface
Normally digital audio is communicated between chips using I2S protocol (which is different than I2C, despite the similar acronym). Two I2S streams can be used for quad channel, but to really step up to more channels, you need TDM protocol.
TDM communicates a frame of 256 data bits. For 44.1 kHz, this means the bit clock must be 11.3 MHz. Only 4 signals are used, one to transmit all 256 bits and another to receive all 256, a frame sync signal the marks where each 256 bit frame begins, and of course the 11.3 MHz clock.
Here is the TDM waveform documented by Cirrus Logic for the CS42448 chip.

Actual TDM Signals
When viewed on an oscilloscope, here is how the TDM signal actually appears:

During this test, the code below was running. The output from Teensy is the blue trace. It sends a 16 bit guitar synthesis to CS42448 AOUT1 & AOUT2. Because the CS42448 outputs are 32 bits, but the audio is only 16 bits you can see the lower 16 bits are always zero. Most of the rest of the output is zeros, except this example also brings in AIN1 and sends its top 16 bits to AOUT5 and its lower 16 bits to AOUT6.
Of course, the green trace is the data being received from the CS42448. All 6 inputs were left unconnected. Even through the channel slots of 32 bits, the CS42448 only produces 24 bits of data, and its lower 8-9 bits are mostly random noise. This PCB uses only the simplest single-ended input circuit. The better opamp-based differential circuit documented in the CS42448 could be expected to improve performance.
Software Support
TDM support has recently been added to the Teensy Audio Library. It’s accessed by creating AudioInputTDM and AudioOutputTDM objects.

Each AudioInputTDM creates 16 simultaneous inputs. Like all communication in the Teensy Audio Library, the data is 16 bits wide. 16 of these channels gives access to all 256 incoming TDM bits. For CS42448, only channels 0, 2, 4, 6, 8 & 10 would be really useful.
Likewise, each AudioOutputTDM object can accept 16 simultaneous 16 bit audio streams, to fully control all 256 bits of the TDM output frame. For CS42448, only the 8 even numbered channels are useful.
Development of the audio software support is being discussed on this forum thread. If you make one of these boards, please join the conversation!
Parts Placement Diagram

Bill Of Materials
1 CS42448, Codec Chip 598-1033-ND
1 CAT811T, Reset Chip CAT811TTBI-GT3OSCT-ND
7 Connector, audio CP1-3525N-ND
7 Resistor, 150 ohm, 603 311-150HRCT-ND
8 Resistor, 560 ohm, 603 RMCF0603FT560RCT-ND
2 Resistor, 2.2K ohm, 603 311-2.20KHRCT-ND
8 Resistor, 10K ohm, 603 311-10.0KHRCT-ND
7 Resistor, 100K ohm, 603 311-100KHRCT-ND
14 Capacitor, 2.7nF, NP0, 805 445-7508-1-ND
4 Capacitor, 10nF, X7R, 603 490-1512-1-ND
7 Capacitor, 0.1uF, X7R, 603 490-1524-1-ND
14 Capacitor, 4.7uF, X5R, 805 1276-6463-1-ND
7 Capacitor, 10uF, X5R, 805 399-4925-1-ND
1 Capacitor, 22uF, X5R, 805 490-1719-1-ND
1 Capacitor, 100uF, X6T, 1206 490-10525-1-ND
1 Inductor, Ferrite Bead, 805 490-1054-1-ND
1 Teensy 3.2, 3.5 or 3.6 www.pjrc.com/store/teensy32.html
2 Socket, 14x1 www.pjrc.com/store/socket_14x1.html
2 Header, 14x1 www.pjrc.com/store/header_14x1.html
1 Heatsink (optional: CS42448 runs hot)
How to use Digikey’s website to find alternate parts when any of these aren’t in stock.

Show full description
-
Actions
- Order Board
- Download
- Permalink
- Embed link
Ordering shared project
Hey there! Before ordering, make sure you have all the info you need to complete and use this design. This usually means a component list, and sometimes additional information such as assembly notes, source code, or usage guides.Since this is a project designed by a community member, it may contain design errors that prevent it from working as intended. OSH Park cannot place any guarantees about the functionality or correctness of the design.
PT8211 Audio Shield
2 layer board of 1.10 x 0.70 inches (28.0 x 17.8 mm)
Uploaded:
February 25, 2017
Shared:
April 05, 2017
Total Price:
$3.85
PT8211 Audio Shield

PT8211 is an inexpensive 16 bit stereo DAC.
This small breakout board connects the PT8211 to Teensy 3.2, Teensy 3.5 or [Teensy 3….
PT8211 Audio Shield

PT8211 is an inexpensive 16 bit stereo DAC.
This small breakout board connects the PT8211 to Teensy 3.2, Teensy 3.5 or Teensy 3.6.

Detailed soldering steps are shown on the PJRC product page, where this PCB is sold as part of a DIY soldering kit. Of course, you can also get the bare PCB here on OSH Park if you like.
Here is the assembly with the PT8211 on a purple OSH Park Edition Teensy 3.2.

Bill Of Materials
1 PT8211 chip Ebay merchants
1 Audio connector, 3.5mm CP1-3525N-ND
1 10 ohm resistor 10EBK-ND
3 47 uF capacitor 493-15997-ND
1 0.1 uF capacitor BC1084CT-ND
How to use Digikey’s website to find alternate parts when any of these aren’t in stock.
Almost any 5mm diameter aluminum electrolytic capacitor with 2mm lead spacing can work. While 47uF is recommended, you can see in the photos I built the first prototype using only 10uF (because they were in my spare parts drawer). Either works fine.
The PT8211 chip is very inexpensive, sold by many shady Ebay merchants from Hong Kong at very low prices. There doesn’t seem to be any sure way to buy this part, but just searching for “PT8211” on Ebay brings up many sellers.
Software Support
PT8211 is supported by the Teensy Audio Library.
You can simply drag the PT8211 onto the Design Tool canvas and connect it into your audio system, and of course click “Export” to generate the Arduino code.

It’s also possible to edit any of the audio library examples, which are designed for the Teensy Audio Shield. With Teensy selected in Tools > Boards, just click Arduino’s File > Examples > Audio menu to find dozens of examples. To convert these, just find AudioOutputI2S in the code and change it to AudioOutputPT8211.

Also delete any AudioControlSGTL5000 objects and code using them. The PT8211 is a very simple chip without any configurable parameters. You just send it digital audio and it turns the data into analog signals. Simple!
PT8211 Signals
Signal Teensy Pin PT8211 Pin
------ ---------- ----------
BCK 9 1
DIN 22 3
WS 23 2
+3.3V 3.3V 5
GND GND 4


Show full description
PT8211 Audio Shield

PT8211 is an inexpensive 16 bit stereo DAC.
This small breakout board connects the PT8211 to Teensy 3.2, Teensy 3.5 or [Teensy 3….
PT8211 Audio Shield

PT8211 is an inexpensive 16 bit stereo DAC.
This small breakout board connects the PT8211 to Teensy 3.2, Teensy 3.5 or Teensy 3.6.

Detailed soldering steps are shown on the PJRC product page, where this PCB is sold as part of a DIY soldering kit. Of course, you can also get the bare PCB here on OSH Park if you like.
Here is the assembly with the PT8211 on a purple OSH Park Edition Teensy 3.2.

Bill Of Materials
1 PT8211 chip Ebay merchants
1 Audio connector, 3.5mm CP1-3525N-ND
1 10 ohm resistor 10EBK-ND
3 47 uF capacitor 493-15997-ND
1 0.1 uF capacitor BC1084CT-ND
How to use Digikey’s website to find alternate parts when any of these aren’t in stock.
Almost any 5mm diameter aluminum electrolytic capacitor with 2mm lead spacing can work. While 47uF is recommended, you can see in the photos I built the first prototype using only 10uF (because they were in my spare parts drawer). Either works fine.
The PT8211 chip is very inexpensive, sold by many shady Ebay merchants from Hong Kong at very low prices. There doesn’t seem to be any sure way to buy this part, but just searching for “PT8211” on Ebay brings up many sellers.
Software Support
PT8211 is supported by the Teensy Audio Library.
You can simply drag the PT8211 onto the Design Tool canvas and connect it into your audio system, and of course click “Export” to generate the Arduino code.

It’s also possible to edit any of the audio library examples, which are designed for the Teensy Audio Shield. With Teensy selected in Tools > Boards, just click Arduino’s File > Examples > Audio menu to find dozens of examples. To convert these, just find AudioOutputI2S in the code and change it to AudioOutputPT8211.

Also delete any AudioControlSGTL5000 objects and code using them. The PT8211 is a very simple chip without any configurable parameters. You just send it digital audio and it turns the data into analog signals. Simple!
PT8211 Signals
Signal Teensy Pin PT8211 Pin
------ ---------- ----------
BCK 9 1
DIN 22 3
WS 23 2
+3.3V 3.3V 5
GND GND 4


Show full description
-
Actions
- Order Board
- Download
- Permalink
- Embed link
Ordering shared project
Hey there! Before ordering, make sure you have all the info you need to complete and use this design. This usually means a component list, and sometimes additional information such as assembly notes, source code, or usage guides.Since this is a project designed by a community member, it may contain design errors that prevent it from working as intended. OSH Park cannot place any guarantees about the functionality or correctness of the design.
Teensy 3.6 DIY Reference Board
2 layer board of 3.00 x 2.50 inches (76.3 x 63.6 mm)
Uploaded:
February 24, 2017
Shared:
March 10, 2017
Total Price:
$37.55

A known good reference board for testing the MKL04 chip when building a DIY Teensy 3.6. Refer to this [table for the differences between Teensy 3.6 and …

A known good reference board for testing the MKL04 chip when building a DIY Teensy 3.6. Refer to this table for the differences between Teensy 3.6 and other models. The soldering friendly LQFP package (at least more friendly than BGA) is used on this board.
Parts Placement Diagram

Bill Of Materials
1 MK66FX1M0VLQ18
1 IC_MKL04Z32_TQFP32
1 USB A Connector
1 USB Mini B Connector
1 Micro SD Socket
1 MCP1825S Voltage Regulator
1 TPD3S014 USB Power Switch
1 Crystal, 16 MHz
1 Crystal, 32.768 kHz
3 Diode, Schottky, B120
1 Capacitor, 100uF, 6.3V
4 Capacitor, 4.7uF
10 Capacitor, 0.1uF
1 Resistor, 100K
2 Resistor, 470
2 Resistor, 220
2 Resistor, 33
1 Pushbutton
2 Test Point, Black
Bootloader Chip
Show full description

A known good reference board for testing the MKL04 chip when building a DIY Teensy 3.6. Refer to this [table for the differences between Teensy 3.6 and …

A known good reference board for testing the MKL04 chip when building a DIY Teensy 3.6. Refer to this table for the differences between Teensy 3.6 and other models. The soldering friendly LQFP package (at least more friendly than BGA) is used on this board.
Parts Placement Diagram

Bill Of Materials
1 MK66FX1M0VLQ18
1 IC_MKL04Z32_TQFP32
1 USB A Connector
1 USB Mini B Connector
1 Micro SD Socket
1 MCP1825S Voltage Regulator
1 TPD3S014 USB Power Switch
1 Crystal, 16 MHz
1 Crystal, 32.768 kHz
3 Diode, Schottky, B120
1 Capacitor, 100uF, 6.3V
4 Capacitor, 4.7uF
10 Capacitor, 0.1uF
1 Resistor, 100K
2 Resistor, 470
2 Resistor, 220
2 Resistor, 33
1 Pushbutton
2 Test Point, Black
Bootloader Chip
Show full description
-
Actions
- Order Board
- Download
- Permalink
- Embed link
Ordering shared project
Hey there! Before ordering, make sure you have all the info you need to complete and use this design. This usually means a component list, and sometimes additional information such as assembly notes, source code, or usage guides.Since this is a project designed by a community member, it may contain design errors that prevent it from working as intended. OSH Park cannot place any guarantees about the functionality or correctness of the design.
USB Interruptor
2 layer board of 1.70 x 0.70 inches (43.2 x 17.8 mm)
Uploaded:
February 17, 2017
Shared:
February 25, 2017
Total Price:
$5.95
USB Interruptor

This simple board plugs inline with a USB cable. It always passes the 5V power and normally passes the USB data signals. But when you press the button, the signals are momentarily disconnected.
Why would anyone …
USB Interruptor

This simple board plugs inline with a USB cable. It always passes the 5V power and normally passes the USB data signals. But when you press the button, the signals are momentarily disconnected.
Why would anyone want or need such a things? Well, for the last few months I’ve been developing a USB Host Library for powerful but complex EHCI USB port in Teensy 3.6. After several false starts and re-reading the USB 2.0 and EHCI 1.0 specs and datasheet over and over (did I mention this 480 Mbit/sec USB host port is powerful but really complex), it’s finally starting to come together.
Now I’m at the stage where it’s time to begin work on code to handle USB disconnect events. When you unplug the cable, the ECHI work queues need to be removed, periodic schedule bandwidth allocation/planning needs to be undone, memory needs to be freed (hopefully it’s all findable from linked lists), hub/port status needs to be updated, and probably a ton of other stuff needs to happen that I haven’t even considered yet…
Reaching over to physically unplug the USB cable gets old quickly! Really, really old, both hands off my keyboard… right when trying to focus. With 12 Mbit/sec USB ordinary switches can usually work, but this is 480 Mbit/sec and I’m already running it through a USB protocol analyzer and a few cables plugged in tandem, leaving not much signal quality margin left. So I made this handy little board with a proper USB 2.0 high speed mux chip. The control signal is just 3.3V logic, so I might even wire it up to something to automate the process.

Admittedly, not many people develop USB host drivers and software stacks (it’s turning out to be probably the toughest coding I’ve ever done), so this little board might not have really wide applications. But here’s all the details anyway. ;-)
Update: check out this similar board, using slightly different parts.
Parts Placement

Bill Of Materials
1 Resistor, 10K, 805 RHM10.0KCHCT-ND
1 Capacitor, 0.1uF, 805 478-1395-1-ND
3 Capacitor, 1uF, 805 587-1281-1-ND
1 Diode, Schottky, B120 B120-E3/5ATGICT-ND
1 MCP1700 3.3V regulator MCP1700T3302ETTCT-ND
1 FSUSB30 USB Mux Switch FSUSB30MUXCT-ND
1 USB Connector, Mini-B 609-4701-1-ND
1 USB Connector, Std A ED90065-ND
1 Pushbutton P8016S-ND
How to use Digikey’s website to find alternate parts when any of these aren’t in stock.
Show full description
USB Interruptor

This simple board plugs inline with a USB cable. It always passes the 5V power and normally passes the USB data signals. But when you press the button, the signals are momentarily disconnected.
Why would anyone …
USB Interruptor

This simple board plugs inline with a USB cable. It always passes the 5V power and normally passes the USB data signals. But when you press the button, the signals are momentarily disconnected.
Why would anyone want or need such a things? Well, for the last few months I’ve been developing a USB Host Library for powerful but complex EHCI USB port in Teensy 3.6. After several false starts and re-reading the USB 2.0 and EHCI 1.0 specs and datasheet over and over (did I mention this 480 Mbit/sec USB host port is powerful but really complex), it’s finally starting to come together.
Now I’m at the stage where it’s time to begin work on code to handle USB disconnect events. When you unplug the cable, the ECHI work queues need to be removed, periodic schedule bandwidth allocation/planning needs to be undone, memory needs to be freed (hopefully it’s all findable from linked lists), hub/port status needs to be updated, and probably a ton of other stuff needs to happen that I haven’t even considered yet…
Reaching over to physically unplug the USB cable gets old quickly! Really, really old, both hands off my keyboard… right when trying to focus. With 12 Mbit/sec USB ordinary switches can usually work, but this is 480 Mbit/sec and I’m already running it through a USB protocol analyzer and a few cables plugged in tandem, leaving not much signal quality margin left. So I made this handy little board with a proper USB 2.0 high speed mux chip. The control signal is just 3.3V logic, so I might even wire it up to something to automate the process.

Admittedly, not many people develop USB host drivers and software stacks (it’s turning out to be probably the toughest coding I’ve ever done), so this little board might not have really wide applications. But here’s all the details anyway. ;-)
Update: check out this similar board, using slightly different parts.
Parts Placement

Bill Of Materials
1 Resistor, 10K, 805 RHM10.0KCHCT-ND
1 Capacitor, 0.1uF, 805 478-1395-1-ND
3 Capacitor, 1uF, 805 587-1281-1-ND
1 Diode, Schottky, B120 B120-E3/5ATGICT-ND
1 MCP1700 3.3V regulator MCP1700T3302ETTCT-ND
1 FSUSB30 USB Mux Switch FSUSB30MUXCT-ND
1 USB Connector, Mini-B 609-4701-1-ND
1 USB Connector, Std A ED90065-ND
1 Pushbutton P8016S-ND
How to use Digikey’s website to find alternate parts when any of these aren’t in stock.
Show full description
-
Actions
- Order Board
- Download
- Permalink
- Embed link
Ordering shared project
Hey there! Before ordering, make sure you have all the info you need to complete and use this design. This usually means a component list, and sometimes additional information such as assembly notes, source code, or usage guides.Since this is a project designed by a community member, it may contain design errors that prevent it from working as intended. OSH Park cannot place any guarantees about the functionality or correctness of the design.
Full size SD card to Micro SD
2 layer board of 1.80 x 1.24 inches (45.8 x 31.5 mm)
Uploaded:
November 21, 2016
Shared:
November 22, 2016
Total Price:
$11.15

Why bother using huge standard size SD cards with a small Micro SD socket? Mostly for [testing the SD library compatibility](https://forum.pjrc.com/threads/39813-Migrating-SD-Card-project-from-regular-Arduino-to-Teensy?p=123843&viewful…

Why bother using huge standard size SD cards with a small Micro SD socket? Mostly for testing the SD library compatibility ancient SD cards (which are mostly the large size) on Teensy 3.5 & 3.6.
Who knows, maybe someone else will find this useful for some off-beat application?
The SD socket is Digikey part number HR845CT-ND.
Show full description

Why bother using huge standard size SD cards with a small Micro SD socket? Mostly for [testing the SD library compatibility](https://forum.pjrc.com/threads/39813-Migrating-SD-Card-project-from-regular-Arduino-to-Teensy?p=123843&viewful…

Why bother using huge standard size SD cards with a small Micro SD socket? Mostly for testing the SD library compatibility ancient SD cards (which are mostly the large size) on Teensy 3.5 & 3.6.
Who knows, maybe someone else will find this useful for some off-beat application?
The SD socket is Digikey part number HR845CT-ND.
Show full description
-
Actions
- Order Board
- Download
- Permalink
- Embed link
Ordering shared project
Hey there! Before ordering, make sure you have all the info you need to complete and use this design. This usually means a component list, and sometimes additional information such as assembly notes, source code, or usage guides.Since this is a project designed by a community member, it may contain design errors that prevent it from working as intended. OSH Park cannot place any guarantees about the functionality or correctness of the design.
- SERVICES
- Upload Your File
- Prototypes
- HELP
- Support
- If you can't find what you're looking for, please contact us at [email protected]
- CONNECT
- Shared Projects
- Log in / Sign up
