The Dato DUO is a musical instrument that is designed to be played by two people.
This repository is no longer updated. Go to https://github.com/datomusic/duo-imxrt for firmware for newer Dato DUO's.
The firmware is open source, although changing it is not recommended for beginners. Steps below are tested on Mac OS X. We're welcoming contributors who want to help us get this working on other platforms.
The electronic heart of the Dato DUO is the NXP Kinetis K20 microcontroller, the same as used in the Teensy 3.2. Audio is generated using the Audio Library.
For now, it's not possible to upload firmware using the Arduino IDE. You will need to download and install it, though, in order to get all required tools and libraries. Advanced users can use the supplied makefile.
-
Download and install the Arduino IDE from Arduino.cc
-
Download and install Teensyduino from PJRC.com. In the install wizard, enable the Audio, FastLED and Keypad libraries

-
From a command line window, clone this repository including submodules
git clone --recursive https://github.com/datomusic/duo-firmware
Go to the duo-firmware folder and type make.
Connect the Dato DUO to your computer using a micro USB cable. Put your Dato DUO into firmware update mode by gently pressing a pointy object into the little hole next to the headphone output. The lights will stop flashing and the Play button will become blue (early DUO's with a serial number below 350 will not show a blue button).
On your computer, type make dfu to upload the firmware to the DUO.
If you cloned this repository without the submodules, go to the duo-firmware folder and type git submodule update --init --recursive to fetch all required submodules.
If that doesn't help, please file a GitHub issue with as much detail as you can so that we can troubleshoot the issue.
- The
teensy3sub-folder is taken from The Teensy 3 Cores - The
toolssub-folder is taken from Teensyduino - The
Makefilefile is moved, modified fromteensy3/Makefile - The
49-teensy.rulesfile is taken from PJRC's udev rules
Modifications to Makefile include
- Add support for arduino libraries
- Change tools directory
- Calculate target name from current directory
- Prettify rule output
- Do not upload by default, only build