Skip to main content


Cloning the project#


  1. Git (^2.25.1)
  2. Visual Studio Code (^1.61.2)

You know with age we take some habits and it would be easier if you follow the same ones...

All our github projects are always in a folder called git which is at the first level of the home directory. It is followed by the name of the github user/organization and finally the project name.

So, to install the project from bash:

mkdir -p ~/git/hackuarium/cd ~/git/hackuarium/git clone

The possibility to clone the project will require that you validate your public key in github!

Installing the PlatformIO plugin#

In VSCode you need to open Extensions tab or press (PC) Ctrl++X, (Mac) ++X and search ´PlatformIO IDE´ to install it:

PlatformIO IDE

Hardware support for Leonardo 8MHz = LilyPad Arduino USB#

The version 6.0.1 of the bioreactor is operating at 8MHz/3V3 instead of the standard 16MHz/5V.


If you do any mistake and try flashing the bioreactor board as if it was a normal Leonardo, you will be able to flash the program but the USB port will not be recognized anymore afterwards. You will have to reflash the bootloader!!!

Using USBtiny#

By default some Linux versions will only give you a USB readonly access and will prevent you from burning the bootloader. You can implent two options to solve this problem:

  1. Check the ID for USBTinyISP:
$ lusb
  • You need to find USBtiny in the prompt:
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 005: ID 8087:0a2b Intel Corp. Bus 001 Device 006: ID 047f:0115 Plantronics, Inc. Voyager Legend Bus 001 Device 003: ID 046d:c31c Logitech, Inc. Keyboard K120 Bus 001 Device 002: ID 046d:c011 Logitech, Inc. Optical MouseMan Bus 001 Device 007: ID 1781:0c9f Multiple Vendors USBtiny Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
  • For this case, USBtiny is: Bus 001 Device 007: ID 1781:0c9f Multiple Vendors USBtiny.

  • Show Device permissions:

$ ls -al /dev/bus/usb/001/007
  • If you have a similar response like this:
crw-rw---- 1 root root 189, 6 Okt 2 09:45 /dev/bus/usb/001/007
  • You need to change permissions:
$ ls -al /dev/bus/usb/001/007
  1. In order for the USBTiny to have r/w access you should add a USB rule:
# UDEV rule for Arduino ISP R3 programmer board,# to prevent having to run Arduino IDE as root to get it to program.# Copy this file to /etc/udev/rules.d with the name 99-USBtiny.rules
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1781", ATTRS{idProduct}=="0c9f", GROUP="plugdev", MODE="0666"

That's it#

You should now be able to compile the project from PlatformIO IDE.

Burning bootloader#

You can now proceed with burning the bootloader using the program_via_USBtinyISP environment created in platformio.ini file. Go to platformIO Terminal and type:

$: pio run -e program_via_USBtinyISP --target bootloader

PlatformIO: New Terminal

Upload the code#

Once you have the bootloader, you can remove USBtinyISP and upload your code using USB cable directly between bioreactor and laptop with PlatformIO: Upload button or press Ctrl + Alt + U:

Upload option

You can check upload success in the same terminal:

Upload success

The parameters#

In order to control the bioreactor you should have a look at the description of the Parameters (Go Next).