Basic OpenMote Setup for scum-test-code

  • Clone the PisterLab fork of the OpenMote firmware.

The freq_sweep_rx_simple and freq_sweep_tx_simple programs both use the scum_freq_sweep_examples branch of this repository, so make sure to swap to that branch if you are using those examples.

  • Install Anaconda.

  • Make sure conda --version shows the Anaconda version properly (otherwise, add conda to $PATH).

  • Create a Python2.7 conda environment: conda create -n <environment name> python=2.7. The environment name can be openmote or py2.

  • Activate the Python2.7 conda environment: conda activate <envioronment name>.

  • Install the scons, pyserial, intelhex, and colorama Python packages: pip install scons pyserial intelhex colorama. Alternatively, you can install them with conda: conda install scons pyserial colorama && conda install -c conda-forge intelhex.

  • Install the ARM GNU toolchain.

    • On Windows, gcc-arm-11.2-2022.02-mingw-w64-i686-arm-none-eabi.exe will work. Using a newer version of the ARM GNU toolchain (e.g., 12.3rel1) will not work and will cause flashing the OpenMote to fail with the error message Target returned: 0x43, Invalid address.

    • On Mac with Apple Silicon, I had to use ARM GNU toolchain 10.3 for compilation to work. When I used ARM GNU toolchain 11.2, an illegal instruction error showed up during compilation (see, and when I used ARM GNU toolchain 11.3rel1, the binary size was 2.6 MB in size. Flashing a large binary onto the OpenMote will cause an error with the message Target returned: 0x43, Invalid address.

    • After installing the toolchain, add the path, e.g., C:\Program Files (x86)\Arm GNU Toolchain arm-none-eabi\11.2 2022.02\bin to $PATH.

    • Make sure that arm-none-eabi-gcc -v shows the ARM GNU toolchain version properly.

  • Bootload a program onto OpenMote (using openwsn-fw/projects/common/bsp_radio_rx as an example): scons board=openmote-b-24ghz toolchain=armgcc bootload=<OPENMOTE_PORT> bsp_radio_rx.

    • Two ports will appear for the OpenMote. Use the one with the higher number in the command above.

    • On Windows, I experienced ERROR: Timeout waiting for ACK/NACK after 'Synch (0x55 0x55)' . This was resolved by going into the device manager and locating the COM ports for both devices and changing the baud rates to 115200 for both COM ports associated with the OpenMote.