Skip to content

seemoo-lab/shimmer3

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

96 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Shimmer3 Firmware Repository Fork

This repository is a fork of the original Shimmer3 repository. It features bugfixes for multiple issues and pull requests in the original repository:

  • PR 6: Fixes capitalization of include statements on Linux
  • Issue 7: Race condition in Bluetooth Stack
  • Issue 8: InfoMem response uses uninitialized variable
  • Issue 10: Acknowledgment byte in unsolicited status updates

Building and Flashing the Firmware

The Shimmer3 User Manual provides some basic information on how to build and flash the firmware under Linux. In the following, we aim to provide a more detailed description of how to perform these steps. However, at the moment, this manual only allows to compile the LogAndStream firmware since the SDLog firmware requires a different compiler version.

DISCLAIMER: You use this repository and the following guide at your own risk. The information provided here is based on our own experience by filling in the gaps of the original documentation.

Building the LogAndStream Firmware

In order to build the firmware, the correct version of the TI Code Composer Studio (CCS) is required. We use version 7 of the CCS. This version ships with the correct compiler version of the LogAndStream firmware. The easiest way to ensure a smooth installation is to use a virtual machine. In it, the CCS is installed, and the firmware is built.

Build the virtual machine

  • Install VirtualBox or another virtualization tool
  • Create a virtual machine with Ubuntu 18.04 or download a prebuilt image
  • Install the following packages as requirement for the CCS:
sudo apt install libgconf-2-4 libc6:i386 libusb-0.1-4 build-essential

Download the CCS

tar -xf CCS7.4.0.00015_linux-x64.tar.gz
cd CCS7.4.0.00015_linux-x64
./ccs_setup_linux64_7.4.0.00015.bin

Complete the CCS installation

In the installation GUI:

  • Select the MSP430 ultra-low power MCUs when asked what Processor Support to enable,
  • Acknowledge the unsupported boards in the next step.
  • Leave the debug probes settings the way they are
  • Wait until the installation has completed

Open the CCS and build the firmware

  • Clone the firmware repository
git clone https://github.com/seemoo-lab/shimmer3.git
  • Start the Code Composer Studio
  • Click File -> Import
  • Select Code Composer Studio -> CCS Projects from the list and hit Next
  • Select the firmware root folder as search directory
  • In the projects selection field, select the LogAndStream firmware and select Finish

The IDE should then index the project. Once indexing is complete, you can start the building process by clicking the hammer at the top. The compiled binary should be located in <Build Configuration>/<Project Name>.txt. For the LogAndStream firmware with Debug configuration, this would be: Debug/LogAndStream.txt. The firmware is in TIText format and has the .txt extension.

Flashing the firmware to the Shimmer

The firmware is flashed using the python-msp430-tools toolset. Since the original repository on Launchpad is no longer maintained, we provide a forked version that has the necessary patches applied (see the corresponding bug report on Launchpad here).

  • Create a virtualenv with Python2.7
virtualenv -p /usr/bin/python2.7 PyEnv
source PyEnv/bin/activate
  • Clone the repository
git clone https://github.com/seemoo-lab/python-msp430-tools
cd python-msp430-tools
  • Build and install the tools
python setup.py install
  • Retrieve the LogAndStream.txt firmware file from the virtual machine and flash it to the device
python2 -m msp430.bsl5.uart --invert-test --invert-reset -p <bl_device_path> -r -e -i titext -P LogAndStream.txt

where bl_device_path is the path to the UART device file of the Shimmer bootloader. If you have no custom udev ruleset installed and only a single Shimmer device connected to the host, this should be /dev/ttyUSB0. The programming will take several minutes. Afterwards, remove the Shimmer from the dock and power cycle the device.


Note to customers

For all customers with queries related to this repository, please contact Shimmer through our technical support page available on our website. All Issues raised in this public repository will be redirected to our support page.

FW_Shimmer3

compiler information:

  • workbench: TI CCS v7.2.0.00013
  • compiler version: TI v4.4.8
  • output format:
    • eabi (ELF) for most fw images
    • legacy COFF for SDLog

About

Shimmer3 applications for Code Composer Studio

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 91.9%
  • Python 5.9%
  • Batchfile 1.6%
  • Other 0.6%