DIY Kit - Wiring the Box


Please note this guide is for v1 Gecho (made in 2018 and earlier), in v2 the box is removable and requires no assembly.

Got the box? That's great!

If your Gecho board also requires some soldering, please follow this guide first.

Drilling holes for wires

If you find it handier to drill from the battery side, it is a good idea to put some thick cardboard between the lid and rest of the box, to not damage the lid. Or do it other way round, and put a cardboard under the box, to not damage the table.

About Channels

About Channels, or how Math is not really that hard

What are those "channels" anyway?

It's just a fancy name for program - kind of like washing machine has a program. Gecho has relatively large memory for code - 1MB, of which currrent firmware occupies <200kB. Hardware is able to run more than one type of synthesis, it can also combine various inputs, outputs, sensors and processing to form an uniquely behaving mode of operation.

Some channels are passive, have no interaction - you can just listen to them. Other react to your input in various forms. Some are for testing and some for settings or programming your own content. The list is long and expanding.

From Random Signal to Arrangemements

Generating Chord Progressions from Random Signal

Few articles with original writing appeared recently with their own interpretation of Gecho, not always entirely consistent with the truth.

In a fraction of them I noticed one misconception being perpetuated: reportedly, Gecho can "compose music out of chaos", i.e., invent melodies and chord progressions that sound nice. But wait, this sounds like a problem for A.I.! It can't really fit into a single-chip synthesizer. Or can it?

There are known rules about what sounds good toghether and what does not. Machine learning or genetic algorithms come to mind - why not try to apply few simple principles and see where it goes.

Tutorial - Changing sample pitch in real time

Implementing New Voice Type for Melody - Sampled Instrument

Objective: Demonstrate how to expand the functionality using the framework, showing examples of how to:

  • add a new type of voice, played by a real instrument
  • use this voice for melody, by changing pitch in real time


If you haven't done so, please start with the first tutorial in the series to make sure you have all equipment and software ready.

Get Started

Let's assume you got the IDE installed, board connected to SWD and you tried the flashing utility to see that it communicates well.

Find a sample you want to use for the new instrument, it should be a WAV file, mono, 16bit. The sampling rate is not too important here.

Tutorial - How to upload arbitrary data to STM32F4 Flash Memory

Uploading binary data to a desired address


Gecho has one megabyte of FLASH memory, and only a fragment is occupied by standard firmware.

You might need to use this process, if:

  • you wish to extend the functionality
  • you need to store larger amount of data
  • it is not handy to pack data into source files (as constants etc.)
  • you want to be able to replace this data without interfering with firmware

Connect your SWD Programming Adapter and start STM32 ST-LINK Utility.

Into the "Size" field, enter 0x100000 - this is a full range of FLASH memory available in our MCU - and click "Connect to the target" icon.

Tutorial - How to implement new channel

Implementing New Channel - A Rudimentary Drum Machine

Objective: Demonstrate how easy is it to expand the functionality using the framework, showing examples of how to:

  • add a new channel with any numeric code we want
  • enable or disable standard features that are available, to borrow some functionality from other channels
  • upload arbitrary data into FLASH memory and access it, this is handy for lot of other things too
  • decode binary 16-bit PCM sample data from a standard WAV format
  • play multiple instruments in parallel, from FLASH memory with zero waiting state and no need for buffering in SRAM
  • bind this new functionality to existing controls
  • mix the signal output from our custom function into the loop with or without delay/echo

Requirements for any Gecho firmware programming

Gecho Loopsynth - Little bit of background

Making of the Synth

Pocket-size subtractive, hackable DYI synth

Making of the Synth

I have been fascinated by synthesizers from very early age. My best friend's dad ran a wedding-playing band and he owned Roland JX-3P (just guessing the exact model now, from my memory of silver buttons with red LEDs inside). When he allowed us to touch it after lots of nagging, and we powered it on, my ears immediately noticed it was something out of this world. I was born in Czechoslovakia, a country run by communists, where we spent our days duplicating 10th copy of illegally imported tapes through cheap "International" branded double decks.

Gecho The Awesome Loopsynth


Successfully funded on Kickstarter!

Gecho has acquired funding for the initial production batch:

Missed the campaign?

Don't worry, we may have few extra units left. To get notified when they become available, please sign up for the newsletter at this website, or you can like/follow our FB page. Also, you are encouraged to subscribe to our YouTube channel where demos with newly added functionality appear from time to time.