Skip to content

Running on NuttX

Daniel Byshkin edited this page Dec 3, 2024 · 10 revisions

NuttX Setup

Prerequisites

Clone the Raspberry Pi Pico SDK

Set PICO_SDK_PATH environment variable in ~/.bashrc

export PICO_SDK_PATH=<absolute_path_to_pico-sdk_directory>

Load the env variables

source ~/.bashrc

Get Picotool, follow the building instructions, ignore the udev rules, then from the build dir run

sudo make install

Confirm that picotool is installed by running

picotool

NuttX installation

Follow the NuttX documentation, install dependencies and clone nuttx-apps

Clone our NuttX fork, it includes some modifications to enable all gpio outputs

git clone -b raspberry-pi-pico-w-deploy [email protected]:CarletonURocketry/nuttx.git nuttx

Clone the hysim nuttx-build branch to the apps directory

git clone -b nuttx-build [email protected]:CarletonURocketry/hysim.git

Building NuttX

From the nuttx directory run, this imports our config file directly

./tools/configure.sh -l cuinspace-pico-w:telnet

and finally build nuttx

make

to delete the whole config you can run

make distclean

To flash the pico connect it while holding the BOOTSEL button, the pico should appear as external storage. Then drag and drop the nuttx.uf2 file to the pico, it should disappear right after.

Getting shell

Run

sudo dmesg

you should see something the lines of ttyACM0: USB ACM device, where ttyACM0 is the device we will be connecting to.

Download a serial terminal such as minicom/picocom/tio

To connect to the pico run

tio /dev/ttyACM0

Press Enter 3 times, you should be greeted by nsh>

Additional resources

https://nuttx.apache.org/docs/latest/platforms/arm/rp2040/index.html

https://nuttx.apache.org/docs/latest/platforms/arm/rp2040/boards/raspberrypi-pico-w/index.html

Clone this wiki locally