jkominek / piano-conversion

Hardware, and some firmware, for acoustic piano to MIDI controller conversion.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Networking board Rev 0

jkominek opened this issue · comments

Putting ethernet on the main board is an unnecessary complication, which increases the board size/BOM/cost/etc. Many users probably won't even want it. It's certainly non-existent on every other digital piano, so it shouldn't have such a prominent place.

I decided I2C was a nice idea after I'd already started putting the ethernet onto the main board, and didn't reevaluate its suitability. Doing full TCP/IP over I2C would probably be a pain, but the main board doesn't need to. It can mostly just worry about MIDI and its own configuration.

So we'll move all networking off to another board, and pick up WiFi at the same time. The networking board will feature an ESP32 module, acting as an I2C slave to the main board. The ESP32 will bring along WiFi, and we'll add a SPI-based Microchip ENC28J60 to get 10Mbps ethernet. The only thing that will need to move across I2C is MIDI messages (and maybe some sysex for configuration/control, but that's minor). All of the TCP/IP and RTP MIDI stack stuff can be handled on the ESP32, where it won't bother the realtime stuff happening on the main board.

Concept Verification Tasks

  • Check ENC28J60 board with a Bus Pirate
  • Check ENC28J60 board with an ESP32 module
  • Reverse engineer the now-known working ENC28J60 board.

Circuit/Layout Tasks

  • +5V power input circuitry. The ESP32 draw is expected to exceed what we'll want to provide over the I2C cabling
  • Get an ESP32 on a board, as an I2C slave.
  • Qwiic header(s). ESP32 as slave, and ESP32 as master, so it can have some devices of its own. (Or be attached to one of the buses that the main board is also mastering, for a multimaster type thing.)
  • Add ENC28J60 as SPI slave to the ESP32

Looks like Espressif's ESP32-ETHERNET-KIT-VE‎ might be sufficient with just some extra wiring.

I'll need to read the specs fully, but if it'll work, this board might be dropped or lowered in priority.

Haven't gotten around to playing with the Espressif board, but I did pick one up. Going to consider this dead, at this point I'd sooner find something that worked for the job than design an ethernet circuit myself.