Euroshield 1 with Teensy 3.6 and cli builds on Arch Linux

These are basically notes for future me, but maybe they will help someone else doing the same thing.

I just got my lovely new euroshield 1 today and pulled out a teensy 3.6 that has been sitting in a drawer for far too long to pop into it.

The first thing to note: the USB port faces down, just line the pins up with the bottom and it's going to hang weirdly off the top -- the extra pins on the 3.6 aren't used by the euroshield but it supports the teensy 3.6 just fine.

I'm skipping all the misdirections and false starts here of course!

The first thing to do is basically follow the arch linux arduino setup notes as written.

That meant for me installing the packages arduino, arduino-docs, arduino-avr-core, and arduino-builder.

Probably arduino-avr-core and arduino-builder is enough.

Then add yourself to the uucp and lock groups (lock I think is only needed if you want to run the GUI -- I wanted to do this to test so I did it!)

Make sure the cdc_acm kernel module is loaded. (It already was for me.)

As I write, the latest version of the IDE is 1.8.10 but teensyduino only supports 1.8.9 so that's the version I installed.

Follow the instructions in this guide to install the stock arduino and then teensyduino.

That meant for me downloading 1.8.9 from the arduino site, extracting it (tar xvf), downloading the udev rules file and copying it to /etc/udev/rules.d/ and then downloading the linux x64 installer for teensyduino, making it executable with chmod +x and then running it.

The installer will ask you to find the arduino directory -- point it to the stock arduino you just unpacked.

The reason you can't just point it to the /usr/share/arduino/ dir and install things directly is that the teensyduino is really strict about the installation you're modifying. The file size of one of the java jars is slightly different than the stock build so it refused to continue with the arch package. More from the man himself

After installation is complete copy the teensy directories manually:

  • hardware/teensy -> /usr/share/ardiuno/hardware/teensy
  • hardware/tools -> /usr/share/ardiuno/hardware/tools
  • examples/Teensy -> /usr/share/ardiuno/examples/Teensy

You'll also need to manually alter the /usr/share/arduino/hardware/teensy/avr/boards.txt file and set defaults for certain options usually selected in the menu of the IDE. Check out this wonderful blog post for more troubleshooting info.

I had to set these values for the teensy 3.6:

teensy36.build.fcpu=240000000
teensy36.build.keylayout=US_ENGLISH
teensy36.build.usbtype=USB_SERIAL
teensy36.build.flags.ldspecs=

But check out the hardware/teensy/avr/boards.txt file and look for values corresponding to the board you want in the teensyWHATEVER.menu sections.

After that, I copied the VCO example from the euroshield downloads on the forum and renamed it vco.ino -- to finally build and upload it:

arduino-builder -fqbn teensy:avr:teensy36 -hardware /usr/share/arduino/hardware -tools /usr/share/arduino/tools -tools /usr/share/arduino/tools-builder vco.ino

Your fqbn is going to be teensy:avr: plus the name of your teensy as found in the boards.txt file.

And, there were sinewaves and triangle waves and everything was good!

Next up

I want to port my pulsar synthesis implementation from pippi to this module -- with a complex profile of params controlled by the logistic equation, whose seed values are CV controlled from the euroshield inputs.

But that's for another post!