Installation

Setting up west

This shouldn't need to be re-done. These files are committed

west init -l mellifera_firmware

pipenv sync
pipenv shell
west update
west zephyr-export
west packages pip --install
west sdk install

NRFUtil (Nordic Semiconductor)

This is required for flashing Nordic Semiconductor devices

This is installed globally, not in the environment

# dependencies first
sudo apt install -y libusb-1.0-0
wget https://github.com/NordicSemiconductor/nrf-udev/releases/download/v1.0.1/nrf-udev_1.0.1-all.deb
sudo dpkg -i nrf-udev_1.0.1-all.deb

curl https://files.nordicsemi.com/artifactory/swtools/external/nrfutil/executables/x86_64-unknown-linux-gnu/nrfutil -o nrfutil
chmod +x nrfutil
sudo mv nrfutil /usr/bin/nrfutil  # I should probably change ownership too... but I'm the only user on this machine so I don't care
nrfutil self-upgrade
nrfutil install device

Building

west build -p auto -b nrf52dk/nrf52832 firmware/blinky
west build -p auto -b nrf52dk/nrf52832 firmware/app
west build -p auto -b mellifera_rev1 firmware/blinky
west build -p auto -b mellifera_rev1 firmware/app

west flash

Zephyr Example Application

Getting Started

Initialization

The first step is to initialize the workspace folder (my-workspace) where the example-application and all Zephyr modules will be cloned. Run the following command:

# initialize my-workspace for the example-application (main branch)
west init -m https://github.com/zephyrproject-rtos/example-application --mr main my-workspace
# update Zephyr modules
cd my-workspace
west update

Building and running

To build the application, run the following command:

cd mellifera_firmware
west build -b mellifera_rev1 app

Once you have built the application, run the following command to flash it:

west flash
go install github.com/apache/mynewt-mcumgr-cli/mcumgr@latest

Bootloader

# build and flash the bootloader
west build -p -b mellifera_rev1 ../mcuboot/boot/zephyr/ -- -DCONF_FILE=$(pwd)/boot.conf
west flash

# define serial connection to device
~/go/bin/mcumgr conn add acm0 type="serial" connstring="dev=/dev/ttyACM0,baud=115200,mtu=512"
~/go/bin/mcumgr conn add ttyusb0 type="serial" connstring="dev=/dev/ttyUSB0,baud=115200,mtu=512"

# hold button while power cycling to enter bootloading mode
~/go/bin/mcumgr -c ttyusb0 image list

# build the app
west build -p -b mellifera_rev1 app

~/go/bin/mcumgr -c ttyusb0 image upload -e build/zephyr/zephyr.signed.bin
~/go/bin/mcumgr -c ttyusb0 image list

Testing

To execute Twister integration tests, run the following command:

west twister -T tests --integration

Documentation

A minimal documentation setup is provided for Doxygen and Sphinx. To build the documentation first change to the doc folder:

cd doc

Before continueing, check if you have Doxygen installed. It is recommended to use the same Doxygen version used in CI. To install Sphinx, make sure you have a Python installation in place and run:

pip install -r requirements.txt

API documentation (Doxygen) can be built using the following command:

doxygen

The output will be stored in the _build_doxygen folder. Similarly, the Sphinx documentation (HTML) can be built using the following command:

make html

The output will be stored in the _build_sphinx folder. You may check for other output formats other than HTML by running make help.

Description
No description provided
Readme 364 KiB
Languages
C 83.6%
Python 9.7%
CMake 4.4%
Batchfile 1.3%
Makefile 1%