So, I got a chance to get started on the body PCB. Here is the current schematic:
It re-arranges a number of the signals compared to how they are currently hooked up in the prototype, but since the goal is a PCB anyhow, I'm being liberal with the changes. At the moment it is simply the Teensy 3.6 broken out with some simple signal conditioning.
The Audio library for the Teensy is far too cool to exclude from this project, and there are still resources available for audio processing. USB audio was my initial choice for this, especially because it completely avoids the complexities/pitfalls of mixed signal circuitry, but it turns out using more than one USB audio interface on a PC is a world of frustration. So, I decided to go ahead and try getting analog audio in/out via a codec (Likely a Teensy Audio Board) and I2S.
I made an executive decision to abandon my dreams of using an Ethernet link for OSC messages, in favor of WiFi and/or Bluetooth via an ESP32. This decision was mainly driven by the I2S support. I2S requires a significant number of the signals broken out on the Teensy, The WIZ850io module (There is no native UDP/IP stack for the Teensy) is connected via SPI - optimally one with a FIFO, which would require two more unfortunately placed signals than an ESP32 connected via UART.
My experience with ESP32s has showed me that they cause a lot of noise on any shared power rails. It may be prudent to verify this, and how it affects the rest of the components, especially the analog signals.
SSD1306 - I2C vs SPI
I2S is also forcing me to evaluate my decision to use SPI for the little OLED display, and to try I2C instead. With SPI, the display refresh routine introduces very little latency to the main loop. It would be a pity if a switch to I2C introduced noticeable latency. I'll evaluate this soon.
PCB Design - TODOs
There are a couple of things I need to verify before I continue to the PCB layout.
- Form Factor - Determine the size and shape constraints for this board
- IO - Determine what type of connectors are best for this board
- Audio - Determine if a PCB layout would be better including space for a Teensy Audio Board, or if it should just piggyback on the Teensy 3.6
- ESP32 - Determine if a PCB layout would be better including space for an ESP32 module or even a dev board
- Power - Determine what power supply, and conditioning measures will be necessary, especially if the ESP32 is on board
I'm sure there will be more points to address as I progress with the concept development.