Skip to content

MIDI synthesizer built around an STM32 - Proof of Concept #1 (counting from 0)

License

Notifications You must be signed in to change notification settings

LispEngineer/stm-midi-poc1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MIDI Synthesizer Proof of Concept 1

Feedback is very welcome!

Overviews:

Design documents:

Software:

Discussions:

Production Runs

Run 1

  • Submitted: 2024-10-27
  • Git Commit: 6f9e281abe9c22ef3b995376c3df42217fc04524
  • Producer: JLCPCB
    • Order #W202410271206812
  • Boards: 5
  • Assemblies: 2
  • BOM
  • CPL
  • Gerbers
  • JLCPCB Corrected Part Placement JLCPCB Corrected Part Placement
  • JLCPCB Submission
  • Status: Production complete; in DHL's hands for delivery Nov 8
  • Cost:
    • PCB: $28.02
    • Assembly: $79.66
    • Shipping: $32.60
    • Sales tax: $11.22
    • Total: $151.50

Miscellaneous Notes

KiCAD Configuration Notes

Using EasyEDA2KiCAD:

  • Create a Path Substitution
    • Use main KiCAD window: Prefernces -> Configure Paths...
    • EASYEDA2KICAD
    • Git Repository
  • Create a Footprint Library
    • easyeda2kicad Nickname
    • ${EASYEDA2KICAD}/easyeda2kicad.pretty
  • Create a Symbol Library
    • easyeda2kicad Nickname
    • ${EASYEDA2KICAD}/easyeda2kicad.kicad_sym Library Path

Status

  • Schematic: Done
  • LCSC part IDs: Almost Done
    • Need non-Red LEDs
  • Schematic symbols: Done
  • Footprints: Done
  • 3D models: Done
  • PCB Layout: Done
  • Production 1 run: Done - in shipping

TODOs

  • Find a much smaller Opto-isolator for MIDI than the one chosen here
    • TLP2362 is used by Ksoloti 0.6. Tested to work with 1.8kΩ pull-up resistor instead of the schematic's 2.7kΩ. (Also worked with no pull-up resistor!)
  • Use a 4-pin 32kHz clock?
  • RN1 footprint and 3D model look a little bit off - footprint is a bit too small?
  • Test points/pins
  • MCU Pin 24 is not used - it is I2S1_MCK

Board Layout Notes

4-layer design with Signal/GND/GND/Signal for EVT board.

Will do most important routing first on the top copper layer:

  • Decoupling/bypass capacitors
  • Clock signals
  • High speed signals
    • USB
    • DAC
    • SWD

Remaining signals will be routed using "Manhattan routing." That is, one signal layer will run up/down, the other will run left/right, mostly.

  • Top layer: up/down
  • Bottom layer: left/right

After that, do these routings:

  • Audio signals
  • MIDI signals
  • SPI
  • I²C
  • UI (Buttons, LEDs)
  • GPIO
  • Power

Fill in some positive power areas with fill.

Finally, the signal layers will be filled with GND at the end, and the ground planes should be stitched together with lots of vias.

After Layout Is Done

  • DRC check
  • Cleanup Tracks & Vias

BOM Notes

  • Docs say you need a 4.7 uF ceramic capacitor with low ESR DS11853 Rev 9 page 105

    • Samsung CL10A475KO8NNNC works but Datasheet doesn't say what the ESR is, just "low ESR"
    • Notes on the Cap
  • ISOM8710 is a drop-in replacement for the TLP2362

    • Same form factor
    • Same functionality (tested on a breadboard)
    • Same circuit
    • Does not seem to be carried at JLCPCB

Notes for future

  • Use fewer header types, they're all extended parts
  • Don't use the Resistor Network - due to the Extended parts fee from JLC
    • OTOH there are no 56Ω resistors in the Basic parts library
    • C25127 is an extended part 0402
    • C17714 is an 0805 47Ω
  • Add I/O activity LEDs for MIDI & serial?
  • Add a pin for VBUS (5V from USB) and USB GND
  • Add pins for the TRS jacks
  • Get a 4-way switch for gain?
  • Rewrire the headphone amp like Pimoroni?
  • Move console from UART3 to UART2
    • Move console pins next to SWD pins for easy use with STLink

About

MIDI synthesizer built around an STM32 - Proof of Concept #1 (counting from 0)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages