SFT Synth Project

Code Name: Piranha
A photograph of the third circuit board prototype, fully assembled
The second board design, 3rd circuit board prototype, with a 'blue wire of salvation' clearly visible


The 'SFT Synth' (code named 'Piranha') is a monophonic single-voice MIDI programmable synthesizer built with a minimal number of components and controlled using an Atmel AVR (ATMega328P) processor. The board in the photograph above is 4 inches long and 2 inches wide. It is programmable using a computer with a MIDI adaptor, running the 'SFT Synth Programmer' application. The application is designed to run on Windows XP or later (32-bit or 64-bit) using static-linked MFC, and X11 systems (such as Linux and FreeBSD), and [potentially] native OSX, using wxWidgets.

A screen capture of an early version of the SFT Synth Programmer application
A screen capture of an early version of the SFT Synth Programmer application

A similar screen capture of a preliminary wxWidgets version of the SFT Synth Programmer application
A similar screen capture of a preliminary wxWidgets version of the SFT Synth Programmer application

The 'SFT Synth' uses a standard MIDI interface to receive MIDI controller and program commands. The newest prototype includes a 'MIDI through' connector so that the devices can be 'chained'. Previously this was a 'MIDI out' but its usefulness was questionable at best, and the ability to chain a series of devices together is FAR more important. Additionally, there is both an external serial (5V TTL) and ISP header on the board, for easy re-programming of the AVR microcontroller, necessary for possible open source licensing. The pin arrangement for the serial port is compatible with popular USB/Serial devices, such as the 'FTDI friend' available from Adafruit.

NOTE:  The SFT Synth Programmer software is also capable of using that type of USB/Serial adaptor to communicate with the SFTSynth in lieu of a MIDI interface.

This project will MOST LIKELY require additional outside financing to complete. I am currently investigating several options, INCLUDING the possibility of 'crowd sourcing'. All SERIOUS offers will be considered. See Project Status.


Project Status

Additional Project Needs that MAY Require Financing

Demo Song and Sound Samples

Additional Photos

A photograph of the first circuit board prototype, fully assembled
The original board design

A photo of the original prototype

Another photo of the original prototype [exploded]

A Related Project - The 'Unbricker'

This is the 'unbricker' that I can use to program the AVR CPUs directly, or via an ISP cable. It is basically an Arduino ISP programmer that uses a slightly modified version of the sample program that is included with the Arduino IDE, and has a ZIF socket wired up as if it's connected to an ISP header. With this (simply constructed) device I can flash an AVR that has no bootloader on it [I have been using a modified version of the Adafruit bootloader since it works so well] by inserting it into the ZIF socket. Or, I can 'unbrick' a unit that has a CPU soldered in place by use of the ISP header.

You will notice that the ZIF socket has its own ceramic resonator. This is necessary to create a proper circuit for an AVR processor. Additionally I've populated it with some LEDs to indicate programming activity and status. At the top you will see a 6 pin male header. This mates up with Adafruit's 'FTDI friend' (see link, above) and FTDI USB cable. It is the same type of USB/serial interface that you would use with the 'Boarduino' (also from Adafruit, and seen in the original prototype photos above).

The 16.000 Mhz ceramic resonator is basically the same as what the Boarduino uses. Thankfully Adafruit open sourced their device, and the schematic is trivially simple, like a reference design. Though I would definitely recommend using the Boarduino for prototyping, I would prefer to use a CPU + resonator (or crystal) for a final design, mostly because of cost. But I think the Adafruit people knew this. Arduino itself is open sourced, after all.

One key feature of the 'unbrick' unit is the 'reset' jumper, next to the regulator. By disabling the 'reset on open' that happens when AVRDUDE opens the serial port, you will flash whatever firmware or bootloader you choose onto the ZIF or SPI connected device. However, if you ENABLE the 'reset on open', you'll be able to re-flash the programmer itself with new firmware. It is a much simpler solution than the ones offered on the 'Arduino ISP' web page, though it requires building your own device (soldering, etc.). If nothing else, it's a nice proof of concept for how to use an AVR processor directly within your design, without the 3rd party device. [Still, for breadboarding, I would prefer the Boarduino or an Arduino - they're designed for that]

©2013,2014 by Stewart~Frazier Tools, Inc. - all rights reserved
Last Update: 9/03/2014

Back to S.F.T. Inc. main page