Here are the build notes for my MiniDexed Raspberry Pi IO Board V2 Design. The previous version can be found here:
Warning! I strongly recommend using old or second hand equipment for your experiments. I am not responsible for any damage to expensive instruments!
If you are new to electronics and microcontrollers, see the Getting Started pages.
Bill of Materials
- MiniDexed SSD1306 IO Board V2 PCB (GitHub link below)
- 1x SSD1306 OLED 132x64 display, pin order SDA, SCL, VCC, GND
- 1x GY-PCM5102 module
- 1x H11L1 optoisolator
- 1x 1N4148 or 1N914 signal diode
- Resistors: 1x 220Ω, 1x 470Ω
- Capacitors: 3x 100nF, 5x 10nF
- EITHER: 2x 3.5mm stereo TRS sockets (see PCB and photos for footprints)
- OR:1x 3.5mm stereo TRS socket and 1 5-pin DIN socket (see PCB and photos for footprints)
- 2x tactile buttons: 6x6x12 mm (suggested, see notes)
- 1x switched rotary encoder (see PCB and photos for footprint)
- 1x 2x20 GPIO extended header socket
- Pin headers
- Optional: 1x 6 pin DIP socket
Build Steps
Taking a typical "low to high" soldering approach, this is the suggested order of assembly:
- Diode and resistors.
- DIP socket (if used) or optoisolator (if not).
- TRS socket(s).
- Disc capacitors.
- GY-PCM5102.
- 2x20 way extended GPIO header.
- OLED display (maybe - see notes).
- Tactile buttons.
- Rotary encoder.
- DIN socket (if used).
Here are some build photos and additional notes.
Normally I would recommend the use of a DIP socket to protect the chips used, but in this instance, if this board is to be used with a case it may be that a DIP socket raises the optoisolator too high.
For once, I opted to skip the use of the DIP socket and soldered the optoisolator directly to the PCB. But the photo below shows a build in progress using the socket.
The MIDI IN socket is a dual footprint TRS or DIN mount. I'm using TRS here, so that is soldered on at the same time as the other TRS socket. If using DIN, then that should probably be the last thing to be soldered.
Unlike the previous board, this one uses the audio output pins of the GY-PCM5102 module. The simplest way to mount the module is the fix the pins as shown below and then fit the module over the top.
Not all the pins need to be connected, but the photo shows the minimum number required and their position.
I'm suggesting 12mm high 6x6mm tactile buttons (that is 12mm total height, so around 8mm button height) but the exact height will depend on the encoder used and where any case would sit height wise with the encoder, display and buttons accessible.
Although I'm not using the extended pins of an extended GPIO header, they are slightly taller than a non-extended header which is useful here. I've just cut off the excess pin lengths once fixed on. Being able to cut off the outer row of pins also makes soldering the inner row a bit easier.
I've used longer pins for the display which allows me to set the height to a suitable level to fit with the height of the encoder and buttons. I've soldered them to the PCB and will add the display and trim the pins down to size once I know how tall I want to make it.
Here is a side-on view. As just mentioned, I've soldered the long pins in place for the display but won't solder the display itself in place until I know the exact height I'll need. As can be seen below it is unlikely to need the full height of the longer pins.
The completed board looks something like this. There are optional pin headers for the two buttons either in addition or instead of the buttons themselves, but I'm not using them here.
Testing
I recommend performing the general tests described here: PCBs.
PCB Errata
There are no known issues with this PCB at this time.
Enhancements:
Find it on GitHub here.
MiniDexed Configuration
The MiniDexed configuration is unchanged from the first version of the board. Details can be found here: MiniDexed Raspberry Pi IO Board – Part 2.
Closing Thoughts
I'm really pleased with this update. It already feels a lot slicker than the first version.
It remains to be seen if this is easier to design a case for, but at the very least, not having a large gap for a MIDI DIN socket I'm sure will be an improvement1
Kevin
No comments:
Post a Comment