Zephyr Project: Difference between revisions

From Wildsong
Jump to navigationJump to search
Brian Wilson (talk | contribs)
Brian Wilson (talk | contribs)
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
Zephyr is a realtime operating system that runs on small devices such as ESP32, ESP32-C3, RP2040, nRF52840 and so on.
Zephyr is a realtime operating system that runs on small devices such as ESP32, ESP32-C3, RP2040, nRF52840 and so on.


Some of them work with PlatformIO.
Some of them work with PlatformIO. What does it take to add an unsupported platform to PlatformIO? What does it take to work with Zephyr without PlatformIO? So far that's what I have done anyway. Command line. Not a big deal to me.
 
What does it take to add one, I mean, what is PlatformIO really? :-)


== Windows ==
== Windows ==
Line 10: Line 8:
=== Initial set up for Windows ===
=== Initial set up for Windows ===


I did set up some tools with chocolatey, I have not documented that here.
I did set up some tools with chocolatey, the rest is with conda.
 
choco install ninja gperf python311 git dtc-msys2 wget 7zip


  conda create --name=zephyrproject python=3.11.5
  conda create --name=zephyrproject python=3.11.5
Line 23: Line 23:
  pip install -r ~/zephyrproject/zephyr/scripts/requirements.txt
  pip install -r ~/zephyrproject/zephyr/scripts/requirements.txt


=== Install tool chains ===
===Install tool chains===


  cd ~
  cd ~
  wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.16.4/zephyr-sdk-0.16.4_windows-x86_64.7z
  wget [https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.16.4/zephyr-sdk-0.16.5.1_windows-x86_64.7z https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.16.5.1/zephyr-sdk-0.16.5.1_windows-x86_64.7z]
  7z x zephyr-sdk-0.16.4_windows-x86_64.7z
  7z x zephyr-sdk-0.16.5.1_windows-x86_64.7z
  cd zephyr-sdk-0.16.4
  cd zephyr-sdk-0.16.5.1
  ./setup.cmd
  ./setup.cmd


=== Getting started===
===Getting started===
https://docs.zephyrproject.org/latest/develop/getting_started/index.html
https://docs.zephyrproject.org/latest/develop/getting_started/index.html


Line 37: Line 37:
  west build -p always -b <your-board-name> samples/basic/blinky
  west build -p always -b <your-board-name> samples/basic/blinky
  west flash
  west flash
The "-p always" forces a pristine build.


For example for the '''m5stickc''' (they only have the "plus" model listed, see "west boards| grep m5".
For example for the '''m5stickc''' (they only have the "plus" model listed, see "west boards| grep m5".
  west build -p always -b m5stickc_plus samples/basic/blinky
  west build -p always -b m5stickc_plus samples/basic/blinky
What's the difference between an M5StickC and the "Plus"? (there is also a "Plus2" now) The Plus has a bigger tin7 screen (135x240 vs 80x160) has a RTC, a bigger still too small battery, and a little speaker (piezo buzzer).


or the nRF52840, use this for the full development kit,
or the '''nRF52840''', use this for the full development kit,
  west build -p always -b nrf21540dk_nrf52840 samples/basic/blinky
  west build -p always -b nrf21540dk_nrf52840 samples/basic/blinky


Line 53: Line 56:
nrfutil dfu usb-serial -pkg blinky.zip -p COM5
nrfutil dfu usb-serial -pkg blinky.zip -p COM5
</pre>
</pre>
== LVGL==
I am starting a separate [[LVGL]] page.
I have a couple options to me right now, a SeeedStudio Sensecap D1 Indicator and an M5StickC.
A few months ago some change in ESPHome caused the display driver for the M5StickC to quit. It stopped compiling. By now it's probably fixed but I'm thinking it might be fun to start here.
[https://github.com/kartben/artificial-nose Artificial Nose] this is a project that uses a Seed WIO Terminal and LVGL which is my interest here. The Terminal is like a smaller older version of the D1.
There are also examples based on the M5Stack Core


==Resources==
==Resources==
https://zephyrproject.org
https://zephyrproject.org
Supported boards https://docs.zephyrproject.org/latest/boards/index.html#boards
RP2040 Pico: https://docs.zephyrproject.org/latest/boards/raspberrypi/rpi_pico/doc/index.html
ESP32S3 https://docs.zephyrproject.org/latest/boards/espressif/esp32s3_devkitm/doc/index.html
M5Stack, including Atom, M5StickC Plus, and C3 Stamp https://docs.zephyrproject.org/latest/boards/m5stack/index.html
Seeed Studio https://docs.zephyrproject.org/latest/boards/seeed/index.html

Latest revision as of 00:53, 30 October 2024

Zephyr is a realtime operating system that runs on small devices such as ESP32, ESP32-C3, RP2040, nRF52840 and so on.

Some of them work with PlatformIO. What does it take to add an unsupported platform to PlatformIO? What does it take to work with Zephyr without PlatformIO? So far that's what I have done anyway. Command line. Not a big deal to me.

Windows

I installed Zephyr on Pearl so that I could work while on vacation later this month. I used a conda environment and so far it seems okay.

Initial set up for Windows

I did set up some tools with chocolatey, the rest is with conda.

choco install ninja gperf python311 git dtc-msys2 wget 7zip
conda create --name=zephyrproject python=3.11.5
conda activate zephyrproject
cd zephyrproject
pip install west
mkdir zephyrproject
cd zephyrproject
west init
west update
west zephyr-export
pip install -r ~/zephyrproject/zephyr/scripts/requirements.txt

Install tool chains

cd ~
wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.16.5.1/zephyr-sdk-0.16.5.1_windows-x86_64.7z
7z x zephyr-sdk-0.16.5.1_windows-x86_64.7z
cd zephyr-sdk-0.16.5.1
./setup.cmd

Getting started

https://docs.zephyrproject.org/latest/develop/getting_started/index.html

Build a binary to blink the dev board's LED.

west build -p always -b <your-board-name> samples/basic/blinky
west flash

The "-p always" forces a pristine build.

For example for the m5stickc (they only have the "plus" model listed, see "west boards| grep m5".

west build -p always -b m5stickc_plus samples/basic/blinky

What's the difference between an M5StickC and the "Plus"? (there is also a "Plus2" now) The Plus has a bigger tin7 screen (135x240 vs 80x160) has a RTC, a bigger still too small battery, and a little speaker (piezo buzzer).

or the nRF52840, use this for the full development kit,

west build -p always -b nrf21540dk_nrf52840 samples/basic/blinky

or this for the dongle version, if this works, the LED will blink in GREEN instead of RED! Imagine the excitement. The pkg command (step 3 here) issues a big warning about the package being unsigned. I think I can live with that.

nrfutil install nrf5sdk-tools # first time only, to install additional tools
west build -p always -b nrf52840dongle_nrf52840 samples/basic/blinky
nrfutil pkg generate --hw-version 52 --sd-req=0x00 \
       --application build/zephyr/zephyr.hex \
       --application-version 1 blinky.zip
nrfutil dfu usb-serial -pkg blinky.zip -p COM5

LVGL

I am starting a separate LVGL page.

I have a couple options to me right now, a SeeedStudio Sensecap D1 Indicator and an M5StickC.

A few months ago some change in ESPHome caused the display driver for the M5StickC to quit. It stopped compiling. By now it's probably fixed but I'm thinking it might be fun to start here.

Artificial Nose this is a project that uses a Seed WIO Terminal and LVGL which is my interest here. The Terminal is like a smaller older version of the D1.

There are also examples based on the M5Stack Core

Resources

https://zephyrproject.org

Supported boards https://docs.zephyrproject.org/latest/boards/index.html#boards

RP2040 Pico: https://docs.zephyrproject.org/latest/boards/raspberrypi/rpi_pico/doc/index.html

ESP32S3 https://docs.zephyrproject.org/latest/boards/espressif/esp32s3_devkitm/doc/index.html

M5Stack, including Atom, M5StickC Plus, and C3 Stamp https://docs.zephyrproject.org/latest/boards/m5stack/index.html

Seeed Studio https://docs.zephyrproject.org/latest/boards/seeed/index.html