Zephyr for the impatient
This guide assumes a working uv install, if you're not using uv for managing python versions and/or virtual environments, I can highly recommend it: Installing uv.
Installing Zephyr
Follow the Zephyr Getting Started Guide up to and including "Install dependencies"
Install west with:
This creates a virtual environment just for west and installs all the dependencies west needs into it. This way, it doesn't matter what changes on the host, west will always work even in projects with different venvs.
Note: you might need to add
$HOME/.local/binto your path if you haven't already because uv installs binaries and symlinks there.
Now get the zephyr source code:
And install all the dependencies for west:
Export zephyr CMake package
And now simply follow the guide again from Install Zephyr SDK.
Finally, as a last step, add source $HOME/zephyrproject/zephyr/zephyr-env.sh to your .bashrc, .zshrc or to the init file of whatever other shell you fancy.
That's it. now you should have a zephyr install that just works without having to debug whatever went wrong with some venv or env variables.
Wiggling some pins
Just want to toggle some GPIO to start bring-up of your board? The /zephyr,user devicetree node is your friend, see The /zephyr,user node#GPIOs in the docs. And mind the -gpios in signal-gpios, it's the type of the property named signal. The Syntax and structure section of the docs has more information on this.