Table of Contents

Development tools

ARM GNU C/C++ toolchain for bare-metal devices

Download the arm-none-eabi-gcc-4.9 toolchain from the GNU ARM Embedded Toolchain project (currently tested with the 14.07 release https://launchpad.net/gcc-arm-embedded/+milestone/4.9-2014-q4-major ).

Extract the archive (e.g. to ~/toolchains ).

Update your PATH to find the newly installed toolchain. In your ~/.profile (for bash) or your ~/.zshrc (for zsh) , add

PATH="$HOME/toolchains/gcc-arm-none-eabi-4_9-2014q4/bin:$PATH"

Restart your session so that is sourced again, and verify that you are running the correct arm-none-eabi-gcc version:

$ arm-none-eabi-gcc --version
arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.9.3 20141119 (release) [ARM/embedded-4_9-branch revision 218278]
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Add compiler to Code::Blocks

If you want to use an IDE like Code::Blocks, you can configure it to use the newly installed toolchain.

When you create your project in Code::Blocks, be sure to select the “Quimesis ARM Linux Compiler”.

Libraries for host developments

Run a 32-bit toolchain on a 64-bit Ubuntu

sudo apt-get install lib32stdc++6
sudo apt-get install lib32z1

Windows tools

ST/Link v2 windows driver: STSW-LINK009 : http://www.st.com/web/en/catalog/tools/PF260219

ST/Link Utility: STSW-LINK004 : http://www.st.com/web/en/catalog/tools/PF258168

GDB server for emIDE: http://emide.org/files/stlinkgdbserver.7z

CANUSB module

To use the CANUSB module :

  1. Connect CAN_L (pin2), CAN_H (pin7) and CAN_GND (pin3) (see http://www.can232.com/?page_id=16)
  2. Follow this step-by-step guide to install the Lawicel CANUSB adapter on Linux (mainly step 1 to 6) : http://pascal-walter.blogspot.com/2015/08/installing-lawicel-canusb-on-linux.html

In brief :

sudo apt-get install can-utils
sudo modprobe can
sudo modprobe can_raw
sudo modprobe slcan

Make them load automatically :

sudo nano /etc/modules

Add the three modules “can”, “can_raw” and “slcan” to the list (each goes in one line).

sudo slcand -o -c -f -s8 /dev/ttyUSB0 slcan0
sudo ifconfig slcan0 up
candump slcan0
cansend slcan0 <ID>#<byte1>.<byte2>.<...>.<byte8>

USB-I2C (USB-ISS) module

from https://www.robot-electronics.co.uk/htm/usb_iss_tech.htm

To be used with i2c-devantech-iss kernel module, to access a dedicated /dev/i2c-x device on one's Linux desktop.

Then you can use the /dev/i2c-x device directly, or request another kernel module to use it:

echo <your_module> <device_address> > /sys/bus/i2c/devices/i2c-<x>/new_device

When using zsh, the latest command may result into failure zsh: file exists: /sys/bus/i2c/devices/i2c-<x>/new_device; in that case, just switch to bash, and the same command will succeed.

FLIR cameras

PureThermal2 USB module

https://groupgets.com/manufacturers/getlab/products/purethermal-2-flir-lepton-smart-i-o-module https://lepton.flir.com/getting-started/

On Ubuntu, can be used with the GetThermal interface.

FLIR ONE PRO

Normally foressen to work with Android.

But can be used on Linux using flir-gtk1).

See also https://www.dpin.de/nf/thermal-camera-on-linux-flir-one-pro/.

1)
on Ubuntu < 20.04, this requires the amnual install of https://github.com/DaveGamble/cJSON