Introduction: Upload New Software to Trinity Using Arduino [Jak Nahrát Software Do Trinity Pomocí Arduino]

[ČESKY NÍŽE]

Hi dudes! Here you will learn how to upload new firmware to Trinity synth using Arduino IDE.
More info about Trinity is here:  http://www.bastl-instruments.com/
This method is to be used to update the firmware in your instruments to the most up-to-date version. But not only that! This opens the world of software synth hacking to you so you can change the software running to any existing software. You can also change drum samples for your drum, or you can make new drumkits, change wavetables for the synths or make entirely new functionality to your triniy (eg. midi controler, midi analog trigger, midi cv converter, dmx controler, video generator, audio effects and many more).
Because Arduino community is huge and managed to connect literally everything to an Arduino you can also hack the Trinity and connect prety much anything to you musical system! Trinity uses the same chip with the same bootloader as Arduino UNO - ATMEGA 328 with optiboot!
I decided to make this tutorial in English and in Czech. Czech is always in [these brackets]. I also typed in mac user information in because was easy for me to write down so you don`t have to google it. 

For uploading the software you will need

-Computer with internet access
-assembled Trinity
-FTDi USB-Serial breakout board
-mini USB - USB cable
-Arduino IDE with libraries - instructions follows



CZ

Čaudy! tady se naučíme jak nahrát software do Trinity pomocí Arduino IDE.
More info about Trinity is here:  http://www.bastl-instruments.com/
To znamená, že se Trinity dá nejenom aktualizovat firmvare ale také se dá změnit na jakýkoli jiný nástroj, který běží na trinity. Dají se taky měnit samply v DRUMu nebo vytvářet celé drum-kity, měnit wavetably v synťácích nebo můžeš vytvořit úplně novou funkcionalitu ( např.: midi kontroler, midi analogovej spouštěš, midi na cv konvertor, dmxovej kontroler, video generátor, audio efekt a mnoho dalších krejzy věcí).
Protože má Arduino mega komunitu lidí co už k tomu připojili doslova všechno (včetně banánů) tak teď můžeš zapojit tohle "všechno" do svýho hudebního systému! Trinity používá stejný čip jako Arduino UNO se stejným bootloaderem, Atmega 328 s optibootem]
Tento návod jsem se rozhodl napsat jak anglicky tak česky. Čeština je vždy v [těchto závorkách]. Pak protože používám mac tak jsem macovské informace napsal přímo do aby se to nemuselo googlit.

Pro nahrátí softwaru potřebujete

-počítač s internetem
-sestavený Trinity
-FTDi USB-Serial breakout board
-mini USB - USB kabel
-Arduino IDE s knihovnami viz. dále

Step 1: Download and Install All Necessary Files, Libraries and Drivers

Step 2: Modify the Config File in Mozzi Library

[ČESKY NÍŽE]

Now we need to setup one file in the Mozzi library.
The file is called mozzi_config.h and is to be found in the Mozzi folder
Open it in text editor
As on the pictures comment out the line 16 like this: //#define AUDIO_MODE STANDARD
and uncomment the line 17: #define AUDIO_MODE HIFI

so it looks like this:
//#define AUDIO_MODE STANDARD
#define AUDIO_MODE HIFI

this activates the HIFI mode 14 bit double PWM D/A conversion
NOW save the file !


CZ

Je potřeba upravit jeden soubor v Mozzi knihovně
Soubor se jmenuje mozzi_config.h a je v adresáři Mozzi
Otevřete jej v textovém editoru.
Jak na obrázku zakomentujte řádek 16 tímto způsobem: //#define AUDIO_MODE STANDARD
a odkomentujete řádek 17: #define AUDIO_MODE HIFI
aby vypadaly takto:

//#define AUDIO_MODE STANDARD
#define AUDIO_MODE HIFI

Toto aktivuje HIFI mód knihovny 14-ti bitová dvojtá pulzní modulace D/A převodník
Soubor uložte.

Step 3: Modify the Midi_Settings.h to Save Some RAM

It is good to lover sysEx message buffer in the MIDI library because it saves us a lot of RAM memory and the sysEx messages we would use are for sure smaller then 128 bytes.
Go to midi_Settings.h file

change the line number 73

/*! Maximum size of SysEx receivable. Decrease to save RAM if you don't expect
to receive SysEx, or adjust accordingly. */

static const unsigned SysExMaxSize = 128;


so it looks like this (as on the picture:

static const unsigned SysExMaxSize = 64;

Step 4: Open Arduino - Set It Up and Check If Everything Works

[ČESKY NÍŽE]

Open the Arduino IDE application.

Connect FTDi USB connector to your computer.
You shouldn`t get any warning/error messages while arduino starts up - it might make a warning on directory name of a library - in that case rename the library folder name

To set it up correctly do:
Tools>Board>Arduino Uno
Tools>Board>Serial Port> tty.usbserial-blablabla

Note: this only shows when the ftdi board is already connected by a USB cable to your computer and if the ftdi driver and the virtual com port was installed properly - go few steps back to see it how.

On Windows as I remember it show as for example COM 2
You can easily test if the FTDi is installed properly by unplugging it and looking at the list of serial ports - plugging it back again and if there is new port in the list (you have to refresh the list by clicking on tools again)


CZ

Spust aplikaci Arduino
Připoj ftdi usb konektor
Neměli by se objevit žádné varování nebo chyby při startu arduino - mohlo by se objevit varování ohledně jména složky knihovny - pokud se to objeví přejmenujte adresáře - viz dříve a znovu spusťte arduino
Pro správné nastavení
Tools>Board>Arduino Uno
Tools>Board>Serial Port> tty.usbserial-blablabla

Tohle nastavení je přístupno pouze pokud je ftdi konektor připojen a jsou správně nainstalovány jeho drivery.
Na windowsu se zobrazí něco jako COM 2 ve výběru portu.
Jednoduše se dá otestovat jestli je FTDi správně nainstalován tak, že ho odpojíš od usb a mrkneš na seznam seriových portů. pak ho zapojíš do usb a měl by se ti ukázat novej port ,kterej vybereš. (seznam portů musíš aktualizovat - znova klikneš na tools).

Step 5: Connect to Trinity [zapoj To]

[ČESKY NÍŽE]

As show on the picture you connect the Trinity to the FTDi USB board and this one you connect with cable to your computer.
The other picture shows how you can wire it up to your Arduino to upload the software.

IMPORTANT! the 2nd picture is not 100% correct because I have bad version of Arduino-this shows more how to wire it up. You need the version of Arduino - the older model that has the DIL big chip - not smd. The same kind of chip as Trinity has. You need to take the chip out as on this picture: http://arduino.cc/en/uploads/Guide/ArduinoMiniAndNGBreadboardPhoto.jpg

The wiring is following - from top to bottom on the picture on Trinity:

RST - reset (green)
TX - 1 - (white)
RX - 0 - (green)
5V - + - (red)
GND - - - (black)


CZ

Jak na obrázku se zapojí FTDi k Trinity a pak stačí zapojit USB kabel k počítači.

Můžeš taky použít desku Arduino k uploadu softwaru. musí mít vyjimatelnej čip - DIL ne SMD a pak by mělo platit následující zapojení - na tomhle obrázku mám špatnej tip Arduino - ten má SMD je to jen zapojovací obrázek
Měl bys mít Arduino bez čipu asi jak na tomhle obrázku http://arduino.cc/en/uploads/Guide/ArduinoMiniAndNGBreadboardPhoto.jpg

Zapojení je následující od vršku dolů podle obrázku na trinity

RST - reset (zelená)
TX - 1 - (bílá)
RX - 0 - (zelená)
5V - + - (červená)
GND - - - (černá)

Step 6: Upload the Software [nahraj to Tam]

[česky níže]

So now we should be ready to upload the software. Chose for example File>Examples>bastl>POLY

  1. On the picture 1. you see i clicked the "Upload" button (second from the left - arrow pointing to the right)- first it compiles - the status bar tells "Compiling sketch"
  2. If it compiles the status changes into "Uploading "
    -if everything is right you should see the LEDs on the FTDi board blinking while the status bar tells "Uploading.."

    -if there was problem with compiling - an error about something "not defined" you probable made something wrong with installing the libraries - go few steps back and check if everything is right

    -if it tells you something about sync there is a hardware problem. check if the ftdi is connected properly - it might be also problem with soldering or you might have something connected to the chain connectors or wrong board version selected
  3. Now the status bar should tell you "Done Uploading" without any error message.

CONGRATS - everything smooth and the world of software hacking is here! let us know what you do with it!
Stay tuned : http://www.bastl-instruments.com/

[ Teď by to mělo být ready na nahrání - flashnutí softu - vyber třeba File>Examples>bastl>POLY

  1. Na obrázku č. 1 jsem kliknul na tlačítko "Upload" (druhý z leva - je na něm šipka doprava) - nejdřív se software zkompiluje (převede do řeči mikročipů) - status by měl být "compiling sketch"
  2. Pokud to zkompiluje tak by se status měl změnit na "Uploading..."

    -pokud je všechno jak má být tak by měly blikat ledky na FTDi desce což značí komunikace Trinity s počítačem a to, že se nahrává software

    -pokud byl problém s kompilací a je tam chybové hlášení něco jako "not defined" tak se pravděpodobně stala nějaká chybka při instalaci knihoven, takže se vrať o pár kroků zpět

    -pokud to hodí chybu něco jako "not in sync" tak je nějaký hardwarový problém (pájení na trinity, špatně zapojený ftdi, nebo je něco připojený do řetězících konektorů) . taky je možný že je špatně vybranej board (má být Arduin Uno)
  3. Teď by to mělo hlásit "Done Uploading" bez žádnýho chybovýho hlášení

ŠPICA - betálný je to tam nahraný a otevřel se ti svět softwarovýho bastlení. Teď ukaž zač je toho bastl loket a dej vědět co s tím zprasíš!

Stay tuned http://www.bastl-instruments.com/

Věnováno Ninjovi