Programming mistralXG's MCU
Microchip provides a bootloader for the PIC18F2550
MCU. This sits in the first 2K of program memory and lets
you reprogram the chip over the USB interface. I modified
this to suit the hardware configuration used by mistralXG.
The bootloader hex file (MistralBoot.hex) needs to be
burned into the MCU. The pushbutton connectors have
been arranged to double-up as the In-Circuit Serial
Programming (ICSP) interface, so this could be used if you
have a suitable programmer.
With the bootloader installed,
holding the Select button down
as you switch on puts mistralXG into
programming mode. You can then
program the device with hex files
from the PC using Microchip's
PDFSUSB.exe utility (included
with the firmware framework).
Use the utility to program in
mistralXG.hex and then cycle the
power (leaving the pushbuttons
alone) to see the Splash Screen and
start playing with your own
and build a mistralXG of your own or put the code to use
in some other personal project.
I plan to continue to enhance the project over time.
One plan is to add external storage to the design using
the SCL and SDA pins on the MCU — these are not used
at the moment. I may also update the code to use a later
version of the USB Firmware Framework. I'll post any
new developments on my website (
Steve can be contacted via email at firstname.lastname@example.org.
I had great fun developing
mistralXG and learned a lot about
USB and PIC peripherals. I hope you
feel as inspired to experiment as I did
Robert Lang’s MIDI-nator was
the initial inspiration for me to start
work on the design.
Thorsten Klose ( www.ucapps.de)
was generous in giving his expertise
to answer some technical MIDI-USB
questions I had at the outset of the
project, for running my MIDI-USB
implementation through his test
suite, and for the suggestion to add
what I’ve called an injection timer to
the running status code.
PCB Milling Machines
TOOLS FOR DEBUG
A multimeter is handy for
checking voltages and it is useful to
have access to an oscilloscope to
check what various signals are doing.
As long as you've not made any
assembly errors, mistralXG should
just burst into life when you apply
power. If that doesn't happen, you'll
need to be able to check that the
oscillator is running and the MCU
has reset correctly. The Microchip
programmer/debugger tools are
invaluable in helping you to do this.
Electrical engineers agree: with a Protomat S-Series
prototyping machine at your side, you’ll arrive at the
best solutions, fast. These highly accurate benchtop
PCB milling machines eliminate bread-boarding and
allow you to create real, repeatable test circuits—
including plated vias—in minutes, not days.
• Declare your independence from board houses
• Affordable, entry-level price tag
• The best milling speed, resolution, and accuracy
in the industry
• Single-sided, double-sided, and multilayered
machining without hazardous chemicals
• Optional vacuum table and autosearch camera
for layer alignment
For complete details visit:
March 2009 45