-
Notifications
You must be signed in to change notification settings - Fork 84
Hardware
STL file for Raspberry Pi 2/3/4 with LCD and rotary encoder
Please note: MiniDexed can be used without any hardware attached to the Raspberry Pi GPIOs. All hardware is optional.
Schematic:
Wiring diagram:
Thanks @diyelectromusic (Details)
LCD1602 display or similar. Midas MCOB21605C1V-EWP OLED is also known to work. Both "raw" displays and displays with an i2c "backpack" are supported by the software. So you can get a display with or without an i2c "backpack" board. An an i2c "backpack" board greatly simplifies the setup because fewer physical connections need to be made.
An an i2c "backpack" board comes with a built-in potentiometer to adjust contrast. If you are not using An an i2c "backpack" board, you can use a 10k potentiometer between the contrast pin (V0) and GND. The contrast varies with a changing environment temperature. If you don't have a 10k potentiometer at hand, a 2.2k resistor may also do the job, but you may have to experiment with the exact value. If you have a display with an i2c "backpack" PCB, there is already a contrast potentiometer installed.
Pinout with backpack (thanks @Banana71):
Alternatively, there is (preliminary) support for SSD1306 128x32 and 128x64 i2c OLEDs. These displays can be used via i2c. Currently there is only text mode supported, but any work that would allow us to show graphical representations of the algorithms would be highly welcome!
KY-040 rotary encoder or similar.
To improve precision, solder in 2 10nf capacitors: CLK to ground and DT to ground. Some breakout boards may even have empty pads for 0603 size capacitors to be soldered in.
The headphone jack on the Raspberry Pi is known to produce very low quality, noisy sound. Hence it is suitable for functional testing at best. For everything else, you need to either use an i2c DAC or HDMI audio.
PCM5102A and PCM5122 based DACs are supported.
The GY PCM5102 DAC module (schematic) (also its variant HW-823) and the CJMCU 5102 DAC module seem to be reasonably priced i2c DAC modules.
HifiBerry DACs seem to use the same chips but are much higher priced.
The ES9023 based TeraDak.com board has been reported to work.
UDA1334A based DACs also work.
MAX98357 based Mono DACs with built-in amplifiers also work (but according to this volume is a bit low).
User reported working and non-working hardware is being discussed here.
Please note: We don't know whether MiniDexed can work with other DACs. DACs that only use i2s are more likely to work than DACs that use i2s and i2c, which may require an i2c initialization sequence that is different for each DAC model. If you have your i2s+i2c DAC working in Linux, you can make a dump of its registers as a starting point... and then get it ported to the (Circle)[https://github.com/rsta2/circle/] environment which MiniDexed is based on.
As an inexpensive, solder-free alternative you can use a HDMI to VGA adapter with audio out.
For it to work, you need to simulate a VGA screen being attached by using a resistor, because otherwise the sound will be silent.
Tested on a Raspberry Pi 2 and on a Raspberry Pi Zero.
MiniDexed will happily accept (Audio/MIDIStreaming) class compliant USB MIDI devices connected to it (e.g., MIDI controllers such as keyboards). If your device isn't recognised, then there are some additional USB options that can be specified in the cmdline.txt file that might help compatibility.
MiniDexed itself can currently not be used as a USB MIDI device (e.g., to play sound for MIDI coming from a DAW on another computer).
However, one can build an adapter using a Raspberry Pi Pico and the firmware from https://github.com/rsta2/pico/tree/main/midi_adapter, midi_adapter.uf2.zip. This adapter acts as a USB-MIDI device on the computer, and feeds the MIDI data into the serial input (RXD) on the MiniDexed device.
It might also be possible to use something like this CircuitPython based solution (to be verified).
As a result, one can e.g., send MIDI from another computer to MiniDexed.
Thanks to Raspberry Pi builtin serial port, MiniDexed will happily accept Classic MIDI messages.
You will need to assemble a very simple hardware circuit, consisting of an Optocoupler, a diode and a couple of resistors.
This circuit was successfully tested on a Raspberry Pi 1B+ .
Please note: There are reports that the circuit above is not optimal. Please see this discussion. Improvements of this wiki welcome!