Shared projects

DMX Signal Transmitter

2 layer board of 1.05 x 1.03 inches (26.7 x 26.1 mm).
Shared on December 19th, 2017 09:30

Sending Serial Data Long Distance Under Harsh Conditions

When you need to send a digital signal over a long distance in a noisy environment, this little DMX Signal Transmitter board is meant to be a “quick fix”. Terminal block connections allow it to be quick added to an existing project, when sending an ordinary signal just won’t work. On the other end, the DMX Signal Receiver Board is meant to receive the signal and turn it back into normal 5V signal.

Almost any type of serial signal may be used. WS2812B / NeoPixel data was the initial motivation for this board. Here are the first 2 boards being tested.

The transmitter is compatible with 3.3V signals, so this pair of boards also functions as a 3.3V to 5V level shifter.

Parts Placement Diagram

Bill Of Materials

All of the parts are available at Digikey.

1  MAX485                           MAX485EPA+-ND
1  DIP8 Socket                      AE9988-ND 
1  Terminal Block, 5.08mm, 5 pin    ED2583-ND, 609-3939-ND
1  Resistor, 150, 0805              311-150CRCT-ND, YAG3694CT-ND, P150CCT-ND
1  Resistor, 47K, 0805              311-47.0KCRCT-ND, YAG3363CT-ND, P47.0KCCT-ND
1  Resistor, 100K, 0805             311-100KCRCT-ND, YAG3359CT-ND, P100KCCT-ND
2  Capacitor, 22nF, 0805            490-1644-1-ND, 399-14577-1-ND, 445-6949-1-ND
1  Capacitor, 4.7uF, 0805           490-5422-1-ND, 1276-1065-1-ND, 490-3335-1-ND

How to use Digikey’s website to find alternate parts when any of these aren’t in stock.

Very inexpensive terminal blocks can also be found at Aliexpress or Ebay vendors, if you have time to wait for postal mail from China.

For DMX protocol and Serial data at 250 kbps/sec or slower, the MAX487 chip can be used. It has slew rate limiting, which improves the signal when used over low quality cables. But for WS2812 LEDs and fast serial (over 250,000 baud) the MAX485 or similar chips must be used.

First Actual Use

This is the Three Wishes Art Installation, featuring flame effects and WS2812 LEDs. More details can be found on this flame sensor page.

In this first photos, we tested in Martin’s driveway. The WS2812 data signals were generated by a Teensy 3.2 and OctoWS2811 board in the first of three units. Signals were sent down 25 foot cables to the other two. Amazingly, this worked great when testing in the driveway.

When the project was installed on the Playa at Burning Man, many challenges came up. The LEDs in the other two units went crazy. It turned out we had never tested in the driveway with the battery charger connected. When they removed the charger, the LEDs worked great, but running only from batteries and regularly connecting and removing the charger added yet another task to any already quite challenging project.

After the burn, we added two of these transmitter near the OctoWS2811 board, and receivers inside the other 2 units. Now all the LEDs work great, even while the charger is connected and recharging the batteries.


DMX Signal Transmitter

2 layer board of 1.05 x 1.03 inches (26.7 x 26.1 mm).
Shared on December 19th, 2017 09:30

Sending Serial Data Long Distance Under Harsh Conditions

When you need to send a digital signal over a long distance in a noisy environment, this little DMX Signal Transmitter board is meant to be a “quick fix”. Terminal block connections allow it to be quick added to an existing project, when sending an ordinary signal just won’t work. On the other end, the DMX Signal Receiver Board is meant to receive the signal and turn it back into normal 5V signal.

Almost any type of serial signal may be used. WS2812B / NeoPixel data was the initial motivation for this board. Here are the first 2 boards being tested.

The transmitter is compatible with 3.3V signals, so this pair of boards also functions as a 3.3V to 5V level shifter.

Parts Placement Diagram

Bill Of Materials

All of the parts are available at Digikey.

1  MAX485                           MAX485EPA+-ND
1  DIP8 Socket                      AE9988-ND 
1  Terminal Block, 5.08mm, 5 pin    ED2583-ND, 609-3939-ND
1  Resistor, 150, 0805              311-150CRCT-ND, YAG3694CT-ND, P150CCT-ND
1  Resistor, 47K, 0805              311-47.0KCRCT-ND, YAG3363CT-ND, P47.0KCCT-ND
1  Resistor, 100K, 0805             311-100KCRCT-ND, YAG3359CT-ND, P100KCCT-ND
2  Capacitor, 22nF, 0805            490-1644-1-ND, 399-14577-1-ND, 445-6949-1-ND
1  Capacitor, 4.7uF, 0805           490-5422-1-ND, 1276-1065-1-ND, 490-3335-1-ND

How to use Digikey’s website to find alternate parts when any of these aren’t in stock.

Very inexpensive terminal blocks can also be found at Aliexpress or Ebay vendors, if you have time to wait for postal mail from China.

For DMX protocol and Serial data at 250 kbps/sec or slower, the MAX487 chip can be used. It has slew rate limiting, which improves the signal when used over low quality cables. But for WS2812 LEDs and fast serial (over 250,000 baud) the MAX485 or similar chips must be used.

First Actual Use

This is the Three Wishes Art Installation, featuring flame effects and WS2812 LEDs. More details can be found on this flame sensor page.

In this first photos, we tested in Martin’s driveway. The WS2812 data signals were generated by a Teensy 3.2 and OctoWS2811 board in the first of three units. Signals were sent down 25 foot cables to the other two. Amazingly, this worked great when testing in the driveway.

When the project was installed on the Playa at Burning Man, many challenges came up. The LEDs in the other two units went crazy. It turned out we had never tested in the driveway with the battery charger connected. When they removed the charger, the LEDs worked great, but running only from batteries and regularly connecting and removing the charger added yet another task to any already quite challenging project.

After the burn, we added two of these transmitter near the OctoWS2811 board, and receivers inside the other 2 units. Now all the LEDs work great, even while the charger is connected and recharging the batteries.



DMX Signal Receiver

2 layer board of 1.05 x 1.03 inches (26.7 x 26.1 mm).
Shared on December 19th, 2017 09:30

Receiving Serial Over Long Distance Under Harsh Conditions

When you need to send a digital signal over a long distance in a noisy environment, this little DMX Signal Receiver board is meant to be a “quick fix”. At the other end, the DMX Signal Transmitter Board is meant to send the signal.

Almost any type of serial signal may be used. WS2812B / NeoPixel data was the initial motivation for this board. Here are the first 2 boards being tested.

Parts Placement Diagram

Bill Of Materials

All of the parts are available at Digikey.

1  MAX485                           MAX485EPA+-ND
1  DIP8 Socket                      AE9988-ND 
1  Terminal Block, 5.08mm, 5 pin    ED2583-ND, 609-3939-ND
1  Resistor, 150, 0805              311-150CRCT-ND, YAG3694CT-ND, P150CCT-ND
1  Resistor, 47K, 0805              311-47.0KCRCT-ND, YAG3363CT-ND, P47.0KCCT-ND
2  Resistor, 100K, 0805             311-100KCRCT-ND, YAG3359CT-ND, P100KCCT-ND
2  Capacitor, 22nF, 0805            490-1644-1-ND, 399-14577-1-ND, 445-6949-1-ND
1  Capacitor, 4.7uF, 0805           490-5422-1-ND, 1276-1065-1-ND, 490-3335-1-ND

How to use Digikey’s website to find alternate parts when any of these aren’t in stock.

Very inexpensive terminal blocks can also be found at Aliexpress or Ebay vendors, if you have time to wait for postal mail from China.

First Actual Use

This is the Three Wishes Art Installation, featuring flame effects and WS2812 LEDs. More details can be found on this flame sensor page.

In this first photos, we tested in Martin’s driveway. The WS2812 data signals were generated by a Teensy 3.2 and OctoWS2811 board in the first of three units. Signals were sent down 25 foot cables to the other two. Amazingly, this worked great when testing in the driveway.

When the project was installed on the Playa at Burning Man, many challenges came up. The LEDs in the other two units went crazy. It turned out we had never tested in the driveway with the battery charger connected. When they removed the charger, the LEDs worked great, but running only from batteries and regularly connecting and removing the charger added yet another task to any already quite challenging project.

After the burn, we added two of these transmitter near the OctoWS2811 board, and receivers inside the other 2 units. Now all the LEDs work great, even while the charger is connected and recharging the batteries.


DMX Signal Receiver

2 layer board of 1.05 x 1.03 inches (26.7 x 26.1 mm).
Shared on December 19th, 2017 09:30

Receiving Serial Over Long Distance Under Harsh Conditions

When you need to send a digital signal over a long distance in a noisy environment, this little DMX Signal Receiver board is meant to be a “quick fix”. At the other end, the DMX Signal Transmitter Board is meant to send the signal.

Almost any type of serial signal may be used. WS2812B / NeoPixel data was the initial motivation for this board. Here are the first 2 boards being tested.

Parts Placement Diagram

Bill Of Materials

All of the parts are available at Digikey.

1  MAX485                           MAX485EPA+-ND
1  DIP8 Socket                      AE9988-ND 
1  Terminal Block, 5.08mm, 5 pin    ED2583-ND, 609-3939-ND
1  Resistor, 150, 0805              311-150CRCT-ND, YAG3694CT-ND, P150CCT-ND
1  Resistor, 47K, 0805              311-47.0KCRCT-ND, YAG3363CT-ND, P47.0KCCT-ND
2  Resistor, 100K, 0805             311-100KCRCT-ND, YAG3359CT-ND, P100KCCT-ND
2  Capacitor, 22nF, 0805            490-1644-1-ND, 399-14577-1-ND, 445-6949-1-ND
1  Capacitor, 4.7uF, 0805           490-5422-1-ND, 1276-1065-1-ND, 490-3335-1-ND

How to use Digikey’s website to find alternate parts when any of these aren’t in stock.

Very inexpensive terminal blocks can also be found at Aliexpress or Ebay vendors, if you have time to wait for postal mail from China.

First Actual Use

This is the Three Wishes Art Installation, featuring flame effects and WS2812 LEDs. More details can be found on this flame sensor page.

In this first photos, we tested in Martin’s driveway. The WS2812 data signals were generated by a Teensy 3.2 and OctoWS2811 board in the first of three units. Signals were sent down 25 foot cables to the other two. Amazingly, this worked great when testing in the driveway.

When the project was installed on the Playa at Burning Man, many challenges came up. The LEDs in the other two units went crazy. It turned out we had never tested in the driveway with the battery charger connected. When they removed the charger, the LEDs worked great, but running only from batteries and regularly connecting and removing the charger added yet another task to any already quite challenging project.

After the burn, we added two of these transmitter near the OctoWS2811 board, and receivers inside the other 2 units. Now all the LEDs work great, even while the charger is connected and recharging the batteries.



Pilot Light Flame Sensor for Burning Man Art

2 layer board of 3.75 x 1.80 inches (95.3 x 45.8 mm).
Shared on August 16th, 2017 12:48

Full Details here: https://www.pjrc.com/pilot-light-flame-sensor-for-burning-man-art/

Please read all the info carefully, especially the disclaimer, before using this board.

Parts Placement

Bill Of Materials

  1  Teensy LC
  3  LED, Green
  1  LED, Red
  1  Relay, RT424012, Mouser 655-RT424012
  1  Terminal Block Header, 4 pin, Phoenix 1755752, 277-1152-ND
  1  Terminal Block Header, 6 pin, Phoenix 1755778, 277-1154-ND
  1  Connector, 2 pin right angle header, Molex 22-05-3021
  1  LMC6482A Opamp, LMC6482AIMX
  1  74VHC123 Dual One-shot, 74VHC123AMXCT-ND
  1  LM2940IMPX-5.0 Voltage Regulator, LM2940IMPX-5.0/NOPBCT-ND
  1  Transformer, Audio 1K:8ohm, Mouser/Xicon TU003, Mouser 42TU003-RC
  2  IRFR5305 Mosfet, P-channel, IRFR5305PBFCT-ND
  2  PNP Transistor, 2N5087, TO-92, 2N5087-ND, 2N5087CS-ND
  2  Resistor, 10 ohm, 1%, 0805
  3  Resistor, 220 ohm, 1%, 0603
  2  Resistor, 470 ohm, 1%, 0603
  6  Resistor, 1K, 1%, 0603
  1  Resistor, 4.7K, 1%, 0805
  8  Resistor, 10K, 1%, 0603
  1  Resistor, 22K, 1%, 0603
  2  Resistor, 47K, 1%, 0603
  1  Resistor, 100K, 1%, 0603
  2  Resistor, 220K, 1%, 0805
  1  Resistor, 470K, 1%, 0805
  5  Resistor, 1M, 1%, 0805
  3  Capacitor, 4.7nF, C0G, 0805, 1276-6729-1-ND
  1  Capacitor, 1nF, 100V, Polyester Film, 493-3476-ND
  1  Capacitor, 10nF, 50V, Polyester Film, 493-3455-ND
  2  Capacitor, 0.1uF, 50V, X7R, 0603
  7  Capacitor, 1uF, 35V, X7R, 0805
  1  Capacitor, 100uF, radial, 6.3mm diameter, 493-13394-ND
  1  Capacitor, 100uF, 6.3V Tantalum
  1  Capacitor, 470uF, axial, 4053PHCT-ND or 4054PHBK-ND
  3  Diode, Dual Common Cathode, MMBD4148, MMBD4148CCCT-ND, MMBD4148CC-TPMSCT-ND
  1  Diode, Dual Schottky Common Cathode, BAT54C, BAT54C-FDICT-ND
  1  Diode, Schottky, 1A, 30V, B130, B130-FDICT-ND
  1  Diode, Zener, 12V, 1SMB5927, 1SMB5927BT3GOSCT-ND
  4  NPN Transistor, MMBT3904, MMBT3904FSCT-ND
  1  PNP Transistor, MMBT3906, MMBT3906FSCT-ND
  1  Pushbutton, 401-1426-1-ND (optional)
  2  header, 14 pins
  1  header, 4 pins (ok to cut from longer header)
  2  socket, 14 pins
  1  socket, 4 pins (ok to cut from longer socket, may need to shave side to fit)
  0  Connector, 3 pin right angle header, Molex 22-05-3031 --- not used
  0  MAX3483 RS485 Transceiver --- not used

How to use Digikey’s website to find alternate parts when any of these aren’t in stock.

Final Build With Enclosure

Detailed Info

https://www.pjrc.com/pilot-light-flame-sensor-for-burning-man-art/

Please read this article carefully to understand how this board works.


Pilot Light Flame Sensor for Burning Man Art

2 layer board of 3.75 x 1.80 inches (95.3 x 45.8 mm).
Shared on August 16th, 2017 12:48

Full Details here: https://www.pjrc.com/pilot-light-flame-sensor-for-burning-man-art/

Please read all the info carefully, especially the disclaimer, before using this board.

Parts Placement

Bill Of Materials

  1  Teensy LC
  3  LED, Green
  1  LED, Red
  1  Relay, RT424012, Mouser 655-RT424012
  1  Terminal Block Header, 4 pin, Phoenix 1755752, 277-1152-ND
  1  Terminal Block Header, 6 pin, Phoenix 1755778, 277-1154-ND
  1  Connector, 2 pin right angle header, Molex 22-05-3021
  1  LMC6482A Opamp, LMC6482AIMX
  1  74VHC123 Dual One-shot, 74VHC123AMXCT-ND
  1  LM2940IMPX-5.0 Voltage Regulator, LM2940IMPX-5.0/NOPBCT-ND
  1  Transformer, Audio 1K:8ohm, Mouser/Xicon TU003, Mouser 42TU003-RC
  2  IRFR5305 Mosfet, P-channel, IRFR5305PBFCT-ND
  2  PNP Transistor, 2N5087, TO-92, 2N5087-ND, 2N5087CS-ND
  2  Resistor, 10 ohm, 1%, 0805
  3  Resistor, 220 ohm, 1%, 0603
  2  Resistor, 470 ohm, 1%, 0603
  6  Resistor, 1K, 1%, 0603
  1  Resistor, 4.7K, 1%, 0805
  8  Resistor, 10K, 1%, 0603
  1  Resistor, 22K, 1%, 0603
  2  Resistor, 47K, 1%, 0603
  1  Resistor, 100K, 1%, 0603
  2  Resistor, 220K, 1%, 0805
  1  Resistor, 470K, 1%, 0805
  5  Resistor, 1M, 1%, 0805
  3  Capacitor, 4.7nF, C0G, 0805, 1276-6729-1-ND
  1  Capacitor, 1nF, 100V, Polyester Film, 493-3476-ND
  1  Capacitor, 10nF, 50V, Polyester Film, 493-3455-ND
  2  Capacitor, 0.1uF, 50V, X7R, 0603
  7  Capacitor, 1uF, 35V, X7R, 0805
  1  Capacitor, 100uF, radial, 6.3mm diameter, 493-13394-ND
  1  Capacitor, 100uF, 6.3V Tantalum
  1  Capacitor, 470uF, axial, 4053PHCT-ND or 4054PHBK-ND
  3  Diode, Dual Common Cathode, MMBD4148, MMBD4148CCCT-ND, MMBD4148CC-TPMSCT-ND
  1  Diode, Dual Schottky Common Cathode, BAT54C, BAT54C-FDICT-ND
  1  Diode, Schottky, 1A, 30V, B130, B130-FDICT-ND
  1  Diode, Zener, 12V, 1SMB5927, 1SMB5927BT3GOSCT-ND
  4  NPN Transistor, MMBT3904, MMBT3904FSCT-ND
  1  PNP Transistor, MMBT3906, MMBT3906FSCT-ND
  1  Pushbutton, 401-1426-1-ND (optional)
  2  header, 14 pins
  1  header, 4 pins (ok to cut from longer header)
  2  socket, 14 pins
  1  socket, 4 pins (ok to cut from longer socket, may need to shave side to fit)
  0  Connector, 3 pin right angle header, Molex 22-05-3031 --- not used
  0  MAX3483 RS485 Transceiver --- not used

How to use Digikey’s website to find alternate parts when any of these aren’t in stock.

Final Build With Enclosure

Detailed Info

https://www.pjrc.com/pilot-light-flame-sensor-for-burning-man-art/

Please read this article carefully to understand how this board works.



I/O Expander for LED Arcade Buttons

2 layer board of 1.70 x 1.70 inches (43.2 x 43.2 mm).
Shared on May 24th, 2017 18:22

I/O Expander

The Monolith Synth Project needed to use a large number of these LED lit arcade buttons.

Dimming of the LEDs was required. Initially I considered using this Adafruit 16 Channel PWM board. But the LEDs in these buttons have integrated resistors which require 12 volts, so 16 transistor circuits and another board for reading the switches would have also been needed.

Instead I designed this board with everything required on a single small size board.

It uses the same PCA9685 chip for 12 bit PWM control on every LED, with mosfet drivers to handle 12V outputs, and also a MCP23017 chip to read the buttons. Every button has a discrete 1K pullup resistor (rather than using the higher impedance on-chip pullups) to help with use in the same cable bundles cross coupling to 12V PWM signals.

Parts Placement

Bill Of Materials

 1   MCP23017 16 bit GPIO                   MCP23017-E/SS-ND
 1   PCA9685 16 channel PWM                 568-11925-1-ND
 1   LP2950-5V LDO Voltage Regulator        296-20933-1-ND
 1   CAT811T Reset Chip                     CAT811TTBI-GT3OSTR-ND
16   FDV303N N-Ch Mosfet                    FDV303NCT-ND
 4   Header, 16x1                           609-3256-ND
 1   Header, 3x2                            67996-206HLF
 2   Connector, Molex 3 pin                 WM4201-ND
 1   Connector, Terminal Block 2 pin        277-1150-ND
 2   Capacitor, 0.1uF, 805                  478-1395-1-ND
 1   Capacitor, 4.7uF, 805                  490-6479-1-ND
 1   Capacitor, 100uF (10-47uF is ok)       399-6648-1-ND
16   Resistor, 1K, 603                      311-1.00KHRCT-ND
 3   Resistor, 10K, 603                     311-10.0KHRCT-ND

Mating Connectors

16   Housing, 4 position                    952-2229-ND
64   Crimp contact                          952-2158-ND
 1   Terminal Block, 2 position             277-1011-ND
 2   Housing, Molex 3 position              WM2001-ND
 6   Cript contact                          WM1114-ND

How to use Digikey’s website to find alternate parts when any of these aren’t in stock.

Monolith Synth

Four of these boards where used in the Monolith Synth project, shown at Tested and Bay Area Maker Faire 2017.


I/O Expander for LED Arcade Buttons

2 layer board of 1.70 x 1.70 inches (43.2 x 43.2 mm).
Shared on May 24th, 2017 18:22

I/O Expander

The Monolith Synth Project needed to use a large number of these LED lit arcade buttons.

Dimming of the LEDs was required. Initially I considered using this Adafruit 16 Channel PWM board. But the LEDs in these buttons have integrated resistors which require 12 volts, so 16 transistor circuits and another board for reading the switches would have also been needed.

Instead I designed this board with everything required on a single small size board.

It uses the same PCA9685 chip for 12 bit PWM control on every LED, with mosfet drivers to handle 12V outputs, and also a MCP23017 chip to read the buttons. Every button has a discrete 1K pullup resistor (rather than using the higher impedance on-chip pullups) to help with use in the same cable bundles cross coupling to 12V PWM signals.

Parts Placement

Bill Of Materials

 1   MCP23017 16 bit GPIO                   MCP23017-E/SS-ND
 1   PCA9685 16 channel PWM                 568-11925-1-ND
 1   LP2950-5V LDO Voltage Regulator        296-20933-1-ND
 1   CAT811T Reset Chip                     CAT811TTBI-GT3OSTR-ND
16   FDV303N N-Ch Mosfet                    FDV303NCT-ND
 4   Header, 16x1                           609-3256-ND
 1   Header, 3x2                            67996-206HLF
 2   Connector, Molex 3 pin                 WM4201-ND
 1   Connector, Terminal Block 2 pin        277-1150-ND
 2   Capacitor, 0.1uF, 805                  478-1395-1-ND
 1   Capacitor, 4.7uF, 805                  490-6479-1-ND
 1   Capacitor, 100uF (10-47uF is ok)       399-6648-1-ND
16   Resistor, 1K, 603                      311-1.00KHRCT-ND
 3   Resistor, 10K, 603                     311-10.0KHRCT-ND

Mating Connectors

16   Housing, 4 position                    952-2229-ND
64   Crimp contact                          952-2158-ND
 1   Terminal Block, 2 position             277-1011-ND
 2   Housing, Molex 3 position              WM2001-ND
 6   Cript contact                          WM1114-ND

How to use Digikey’s website to find alternate parts when any of these aren’t in stock.

Monolith Synth

Four of these boards where used in the Monolith Synth project, shown at Tested and Bay Area Maker Faire 2017.



CS42448 Audio, 6 Inputs, 8 Outputs

2 layer board of 2.50 x 2.55 inches (63.5 x 64.8 mm).
Shared on April 17th, 2017 20:23

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.


CS42448 Audio, 6 Inputs, 8 Outputs

2 layer board of 2.50 x 2.55 inches (63.5 x 64.8 mm).
Shared on April 17th, 2017 20:23

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.