Skip to the content
PCBKitNew board
2 layers150.5 × 127 mmEurorack engine, the printed circuit board in 3D

Eurorack engine

sinneb/esp32-hvcc29

Heavy compiler (hvcc) sources running on ESP32-DevKitC powered eurorack module

Size
150.5 × 127 mm
Copper layers
2
Thickness
1.6 mm
Parts
81
Nets
65
Pads
294
Tracks, vias
505, 1
Pours
2
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
8 Feb 2020
Updated
15 Nov 2020

Overview

Eurorack engine is an open-source printed circuit board by sinneb, from the sinneb/esp32-hvcc repository on GitHub. It is a 2-layer board of 150.5 × 127 mm with 81 parts on 65 nets, routed with 505 tracks and 1 via.

It is built around the MCP3208-BI/P, MCP6004-E/P and PCM5102PW, with the LM1117-3.3 among its other parts. Its parts include 38 resistors, 7 capacitors, 4 diodes, 4 switches and 1 IC. It belongs with the audio and music boards and the ESP32 boards of this library.

Main components

4

README

README.md

ESP32-DevKitC & hvcc

This repo demonstrates a single file solution for running hvcc sources on the ESP32-devkitc, inspired by the Faust ESP32 architecture example. The hvcc compiler leverages the use of (a subset of) puredata operators on the cheap and fast esp32 uprocessor. The ESP32-devkitc combined with one PCM5102 CODEC, one WM8731 CODEC and an 8 port MCP3208 ADC provides a complete and available audio development platform with a very reasonable pricetag. UI provided via 4 buttons, 4 potentiometers and 4 leds.

Goal

The goal of this development is to realise a generic eurorack module that is based on the ESP32 and programmable via puredata. Each cheap module consists of four control voltage inputs and four audio / cv outputs (all io -5v -> +5v and fully eurorack compatible). All parts are easily obtainable and all software and hardware is open source, so ordering your own set of PCB's is also possible

Status

15-nov-2020: Replaced one of the PCM5102 with a WM8731 to have audio stereo line in over i2s

25-oct-2020: PCB design ready, gerbers generated and boards ordered.

18-oct-2020: Code cleanup and PCB design ongoing. Current schematic tested and working!

Installation

  • Install Espressif IoT Development Framework 4.1, the official development framework for ESP32.
  • Install the hvcc compiler
  • Clone this repo

Hardware setup

Check the Kicad schematics in the schematics folder

Usage

  • Create your puredata patch, using the supported objects only. Use tabread with a $0-array instead of the table object, seems to work better.
  • Issue a Issue a python2.7 hvcc.py input.pd -o ./heavy/ to generate the source files, where input.pd is your puredata patch
  • MAC: compile using hvcc and libs and copy to project subdir: python2.7 hvcc.py esp32_2.pd -p ./Hoclib/ ./Josephlarralde/ ./ParkinsonHashizume/ ./MikeMorenoAudio/ ./Heavylib -o ./heavy/ ; cp ./heavy/c/Heavy_heavy.* ~/Documents/GitHub/esp32-hvcc/main/heavy/
  • WIN: compile and copy: c:\Python27\python.exe rest as above, then a copy /Y heavy\c\Heavy_* c:\Users\Arthur\Github\esp32-hvcc\main\heavy
  • Add all heavy c and cpp sources to /main/CMakeLists.txt (only when adding new objects)
  • Run idf.py -p /dev/tty.SLAB_USBtoUART flash monitor to compile, upload and monitor the esp32 binary
  • MAC: idf.py -p /dev/cu.usbserial-1A14301 -b 921600 flash monitor
  • WIN: idf.py -p COM4 -b 921600 flash monitor
  • Enjoy your pd patch!

Performance

A large and nice sounding puredata patch from "manwithfeathers" on rebeltech.org named "Fascination IV" yields about 60% performance of the ESP32 which looks like a very nice performance / cost ratio!

Parts

81
QtyValueFootprintReferences
1210kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR7, R8, R11, R12, R23, R24, R27, R28, R35, R36, R37, R38
81kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR5, R6, R17, R18, R19, R20, R31, R32
6MountingHoleMountingHole:MountingHole_3.2mm_M3H1, H2, H3, H4, H5, H6
5100nCapacitor_THT:C_Disc_D4.3mm_W1.9mm_P5.00mmC3, C4, C5, C6, C7
4100kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR13, R14, R25, R26
4200kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR9, R10, R21, R22
4220rResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR1, R2, R3, R4
433kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR15, R16, R29, R30
4LEDLED_THT:LED_D5.0mmD1, D2, D3, D4
4R_POTPotentiometer_THT:Potentiometer_Alps_RK09K_Single_VerticalRV1, RV2, RV3, RV4
4SW_PushButton_Switch_THT:SW_PUSH-12mmSW1, SW2, SW3, SW4
247ufCapacitor_THT:C_Radial_D6.3mm_H5.0mm_P2.50mmC1, C2
2PCM5102footprints:PCM5102PCM5102, PCM5102
12k2Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR34
14r7Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR33
1Conn_01x02Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalPWR_SEL1
1ESP32-DEVKITC-32DESP32-DEVKITC-32D:MODULE_ESP32-DEVKITC-32DU1
1EURO_PWR_2x5Connector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_VerticalJ9
1LM1117-3.3Package_TO_SOT_THT:TO-220-3_VerticalLM1117
1LM4040LP-10Package_TO_SOT_THT:TO-92_InlineLM4040
1MCP3208Package_DIP:DIP-16_W7.62mmMCP3208
1MCP6004Package_DIP:DIP-14_W7.62mm_SocketMCP6004
1TL074Package_DIP:DIP-14_W7.62mm_SocketTL074
1codec out 1Eurocad:PJ301M-12out 1
1codec out 2Eurocad:PJ301M-12out 2
1codec out 3Eurocad:PJ301M-12out 3
1codec out 4Eurocad:PJ301M-12out 4
1cv in 1Eurocad:PJ301M-12in 1
1cv in 2Eurocad:PJ301M-12in 2
1cv in 3Eurocad:PJ301M-12in 3
1cv in 4Eurocad:PJ301M-12in 4

Questions

How big is the Eurorack engine PCB?

It measures 150.5 × 127 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Eurorack engine use?

81 parts, built around the MCP3208-BI/P, MCP6004-E/P, PCM5102PW and LM1117-3.3. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Eurorack engine KiCad files?

From the sinneb/esp32-hvcc repository on GitHub, at the commit this page was made from: the board is kicad/eurorack_engine/eurorack_engine.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Eurorack engine design in my own project?

Its repository states no licence, so its author keeps all rights: ask sinneb before reusing the design.

Similar boards

  • 4 layers100 × 100 mmESP32-Eurorack Audio, the printed circuit board in 3D

    ESP32-Eurorack Audio

    ctag-fh-kiel/esp32-eurorack-audio

    Open source eurorack audio module based on ESP32

    173 parts71
  • 2 layers183 × 128.7 mmTT, the printed circuit board in 3D

    TT

    seismicindustries/TT

    Terminal Tedium alternative HW

    210 parts7
  • 2 layers177.5 × 82.5 mmMain controller, the printed circuit board in 3D

    Main controller

    enemonsieur/TIMS_analyses

    Analyses of TIMS stimulation + EEG for Characterization.

    127 parts
  • 4 layers95 × 95 mmAPEX v0, the printed circuit board in 3D

    APEX v0

    NANDHA0804/Apex-Diagnostic-Tool-V1

    Hardware design and manufacturing files for Project Apex V1.0: a multi-functional diagnostic tool. Features a custom 4-layer PCB architecture driven by an ESP32 master and ATmega328P co-processor for high-performance…

    146 parts
  • 2 layers91.3 × 108 mmStrampler redesign v2 2, the printed circuit board in 3D

    Strampler redesign v2 2

    tungusk/strampler-build-pack

    Build pack for the CTAG Strämpler (Antumbra 18HP redesign): Eagle + KiCad board files, BOMs with 2026 EOL fixes, fab/assembly package, DIY kit guide. CC BY-NC-SA.

    174 parts
  • 4 layers65 × 56.5 mmRPi Hat, the printed circuit board in 3D

    RPi Hat

    paulh002/rpi-audio-hat

    Raspberry Pi PCM1808 and 5102 audio hat for SDR tranceiver

    64 parts4MIT
  • 4 layers90.2 × 95.9 mmPiridium bus, the printed circuit board in 3D

    Piridium bus

    Alan-JH/piridium-bus

    Flight Computer Board for TJ Cubesat Bus design

    162 parts
  • 2 layers97.8 × 102.9 mmEdges v20, the printed circuit board in 3D

    Edges v20

    jonstapleton/mutable_eurorack

    Eurorack modules

    179 parts