Arduino MIDI VS1003 Shield – Part 2

Having left a good half of a proto shield free in my Arduino MIDI VS1003 Shield I thought it would be useful to add in some potentiometers, a MIDI link and an optional indicator LED.

This documents the build process continuing where the previous project left off.

Warning! I strongly recommend using an old or second hand keyboard for your MIDI experiments.  I am not responsible for any damage to expensive instruments!

These are the key Arduino tutorials for the main concepts used in this project:

If you are new to Arduino, see the Getting Started pages.

Parts list

  • Arduino Uno
  • Proto shield
  • 2x 10k “thumb” or “trim” potentiometers
  • switch
  • 2x jumpers and jumper headers
  • “right angle” male headers
  • Female and male headers
  • Jumper wires

The Circuit

ArduinoVS1003Shield-Part2_bb

The board is designed for the following:

  • A MIDI In header is provided connected to the RX pin via a switch.
  • All six analog pins (A0 to A5) are linked out to header pins.
  • Potentiometers are connected to A0 and A1 via a jumper so they can be switched in or out as required.

After having built mine I added an optional LED (and resistor) linked up to pin 6 via a jumper and hooked into GND somewhere.  The thinking was that as the built-in LED for the Uno (pin 13) is tied up with the VS1003 interface it might be handy to have the option of another MIDI indicator LED.  You can just about see it in the photo below.

Warning: Watch out for the underside of the right angled header pins.  Mine were very, very close to the ICSP header for the Arduino, so I made sure there was adequate spacing between the shield and the Arduino and added a layer of insulating tape to the underside of the shield to prevent shorts.

2021-01-12 21.53.59

The Code

This project is all about building the shield there is no new code required.

I have updated the code from the previous project to include an optional MIDI_LED and added the option for a second potentiometer to act as a volume control.

All options are controlled by uncommenting statements at the top of the file.  Although note that I’ve changed the used to control if the first pot changes instruments or not.  See the comments in the code for details.

Find it on github here.

Closing Thoughts

This makes for a really nice self-contained module now.

Kevin

Leave a comment