Communication with the UART-enabled firmware is possible directly via USB through the Nucleo’s built-in ST-link.

However data transfer is considerably slower with UART than with SPI. At 115.2kbps a full transfer takes >640ms.

For a linux system the user must have the read/write permissions to:


On a Debian-based system this is easily and permanently achieved by adding the user to the group dialout:

sudo adduser esben dialout

There are two options:

  1. Using the command line interface (Otterly CLI)
  2. Using a graphical user interface (Otterly CCD GUI)

For the CLI any system with a gcc compiler should suffice.

For the GUI the requirements are  GTK3+ and gnuplot.


Graphic user interface for controlling the TCD1304

If you decide to use the GUI, I strongly recommend you to take a look at Jens-Ulrich Frölich’s blog Leaves of Science. He has improved the user experience a lot and uses Octave to analyze the collected data.