While looking around for a synth chip to provide a default output for my stradella chord machine, the VS1103b offering from VLSI looked very promising. This is the MIDI/ADPCM version of their popular low-power DSP engines that are used in mp3 players and the like. I wanted a quick way of hooking this up for a try-out without straining my eyes (and my patience) on the development of a suitable PCB to house the SMD package, and came across a break-out board (BOB) from sparkfun which might do the trick. I ordered one of these from Technobots and whilst waiting for it to arrive, I downloaded the schematic and the VS1103 datasheet, and read the latter thoroughly. I then had a scratch around on VLSI’s website for any other relevant information.
Reading the VS1103b datasheet, I inferred that there was a ’simple’ setup that did not require the use of a micro-controller, and indeed this is so. Sadly, there was no other supplied information with the sparkfun BOB, other than the schematic. This would be sufficient to put off a whole host of would-be users of the VS1103b BOB, and I think that’s a shame.
I wanted that ‘warm’ feeling that the chip (and my setup) were working before I attempted to talk to it via the SPI interface, so I came up with the schematic below. This schematic shows a minimalist, but fully-working MIDI synthesizer, and a similar schematic supplied by VLSI or sparkfun would have been very useful.
As can be seen in the above, only 7 connections need to be made to the BOB. These are briefly (moving anti-clock-wise round the BOB connections):
- RESET – 10K resistor to VDD (3.3 volts) and tact switch to GND. Taking RESET to GND resets the chip.
- RX – MIDI input from opto-isolator.
- GND – connected to 0 volts.
- GPIO0 – connected to GND via 10K resistor.
- GPIO1 – connected to 3v3 via 10K resistor.
- LEFT – Left channel audio out to amplifier. (you could also output the RIGHT channel if you wish)
- VCC – Vin+ 5 volt +ve supply. (BOB has two on-board 3v3 regulators providing correct voltages to digital and anlog sections)
As well as the VS1103b, you will need:
R1,R2 – 220 ohms 1/4 watt resistors (5%)
R3,R4,R5 – 10K ohms 1/4 watt resistors (5%)
C1,C2 – 100nF (10 volt) ceramic disc capacitors
S1 – TACT switch
OK1 – 6N138 opto-isolator
D1 – 1N4148 diode
X1 – 180deg 5 pin DIN socket (MIDI IN)
ESR can supply all parts except the BOB.
Not forgetting both 5 volt and 3.3 volt supplies.
I used a good-quality wall-wart for the 5v supply & another wall-wart set to 9 volts supplying the input to the LM317 regulator circuit given above below the main circuit. The 240 ohm and 390 ohm resistors used in the 3v3 supply were 1% tolerance types, and C3,C4 were 100nF disc ceramic. A small electrolytic 47uF was used for C5. I took the trouble to implement a ‘proper’ 3v3 supply, because I will be extending the circuit later. A more simple resistor and 3v3 zener diode will suffice if all you are building is the simple version above.
I lashed up the circuit on a breadboard, and this is shown in the following 4 photos.
In the above close-up photographs (with the exception of the opto-isolator close-up) note the following:
- GND is the vertical line of pins to the extreme left.
- 5 volts +ve is the vertical line of pins to the extreme right.
- 3.3 volts +ve is the vertical line of pins to the left of the above (5V line)
- MICP is the BOB connection corresponding to line 44 left (to the left of the photos) I’ve marked this in blue pen.
- Vin+ is the BOB connection corresponding to line 44 right (to the right of the photos)
- IGNORE wire colouring – it is not significant.
The Sparkfun VS1103b BOB provides an easy and cost-effective route to embedding a fully-clocked VS1103b into your own design. Minor shortcomings in my view are as follows:
The BOB should implement the RT-MIDI default by tying GPIO1 to 3v3 rather than GND.
The BOB should be supplied with a schematic showing a simple implementation of MIDI synth such as I have presented above.
Access to the on-board digital 3v3 supply would be useful, saving implementation of this off-board. (caveat – user might overload and blow up the on-board regulator!)
The BOB is too wide to make easy breadboarding – a narrower but longer board would be a better solution.
Wired up as above, the system defaults to Grand Piano at reset. MIDI Program Changes can be used to select the wide range of instruments available. The quality of the produced instruments is excellent.
The output level from LEFT (and presumably RIGHT is similar) is around 250 mV – more than ample.
I will be using the Sparkfun VS1103b BOB in my stradella chord generator driven by a PIC micro-controller – this will be documented in a later article.