For my third PIC-based project, I chose a much more challenging design - a synthesiser built around a Yamaha DB50XG daughter card I already had, using a PIC18F2550 to provide USB access alongside the normal MIDI ports to drive the synthesiser.


Once again, Nuts & Volts accepted my submission for publication, and it became the main project featured on the cover of the February 2009 issue. The article was written in two parts, the second part appearing in the March 2009 issue.


Click on the image below for a PDF file containing the two original articles.

(Reprinted by permission only from T & L Publications, Inc., d.b.a., Nuts & Volts, Copyright 2003).


Although I put a lot of effort into keeping the articles' size down to the required word count for the magazine, they were reduced further by the editorial team, and the process introduced a couple of typos. You may prefer to read the originals as submitted - PDFs can be obtained by clicking on the other images below. Any errors in this version are, of course, down to me.



Development has continued on mistralXG since publication in Nuts & Volts. See Change record below.


This is the latest schematic for mistralXG. Click on the image for a full-size schematic.



You can get a PDF of the schematic here.


The code was written using the MPLAB 8.xx IDE, the C18 compiler and the USB Firmware Framework from Microchip. Development has continued since publication. See Change record below for a description of the changes and to obtain the latest files.


Important: the bootloader code was changed (for v1.05) to correct the reset behaviour, so make sure you have the latest version, not the one from the Nuts & Volts website. The update was passed to the N&V site admin, but I can't control if and how they may make it available.

Change record

Since publication in Nuts & Volts, the changes listed below have been made. Click here for the latest project files.


  • Addition of a 2K trimpot to adjust the LCD contrast
  • Addition of a DC-DC converter so a single 5V power supply is all that is required
  • 128KB of storage
  • PCB designed - here are some pictures:
  • PCB layouts. Note that the bottom layout is shown "through" the board.

    ... and get PDFs of these here: layout, top copper, bottom copper
  • The whole lot packaged in a nice Hammond case - more pictures:
  • Several people have asked me about the labelling of the front panel of the enclosure. I didn't want to resort to simple labels as I also wanted to add a logo to the case. After examining several alternatives — all too expensive — I found a supplier of some vinyl printer stock that did the job. The vinyl has a special coating that takes inkjet ink very well and has a paper backing that reveals a sticky side when peeled off. The results were better than I hoped. The supplier I used was steclar704 on eBay... I used the matt version. (Disclaimer: I have no knowledge of the seller beyond having bought this one item from him/her)

Software enhancements and bug fixes


  • Modified the bootloader code, activating pull-ups on Port B before the Select button is tested to ensure correct reset behaviour.
  • Input source selection (M or W) not correctly displayed if changed when USB not connected.


  • Initial release (as published by Nuts & Volts).