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 beopenmote
orpy2
.Activate the Python2.7 conda environment:
conda activate <environment 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 messageTarget returned: 0x43, Invalid address
.On Mac, 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 Unable to setup build environment on Apple Silicon, failing with: internal compiler error: Illegal instruction: 4 · Issue #903 · raspberrypi/pico-sdk), 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., on Windows, add
C:\Program Files (x86)\Arm GNU Toolchain arm-none-eabi\11.2 2022.02\bin
to$PATH
. On Mac, addexport PATH="/Applications/ARM/bin:$PATH"
to~/.bashrc
or~/.zshrc
.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.