O Zephyr Project é uma iniciativa de código aberto da Linux Foundation que visa fornecer um RTOS (Real-Time Operating System) escalável, seguro e flexível para dispositivos IoT (Internet of Things) de todos os tamanhos. O projeto foi criado para atender à demanda crescente de sistemas operacionais de tempo real confiáveis para dispositivos conectados à Internet. Com o Zephyr Project, os desenvolvedores podem criar aplicativos IoT seguros e robustos em várias plataformas, desde dispositivos wearables e sensores de baixo consumo até sistemas de borda mais complexos. Além disso, o Zephyr Project é altamente personalizável e suporta uma ampla variedade de arquiteturas de processadores e dispositivos de hardware. Isso o torna uma opção atraente para desenvolvedores de IoT que buscam um RTOS de alto desempenho e fácil de usar.
Nesse texto apresentaremos os primeiros passos para configurar o ambiente para programar a Franzininho WiFi.
Antes de começarmos o texto, deixamos aqui o agradecimento ao Felipe Neves por adicionar o suporte a Franzininho WiFi ao Zephyr project no final de 2022.
Sobre a Franzininho WiFi
Franzininho WiFi é uma placa de desenvolvimento educacional baseada no ESP32-S2, que SoC da Espressif com Wi-Fi e baixo consumo de energia, projetado para ser seguro e econômico, com alto desempenho e um rico conjunto de recursos de IOs.
Recursos da Franzininho WiFi
A Franzininho WiFi possui os seguintes recursos:
- Módulo ESP32-S2
- Microcontrolador Xtensa® single-core32-bit LX7 operando em até 240 MHz
- Memórias: 128 KB de ROM, 320 KB de SRAM, 16 KB SRAM no RTC, 4MB de Flash
- WiFi 802.11 b/g/n
- Interfaces: GPIO, SPI, LCD, UART, I2C, I2S, Camera, IR,contador de pulsos, LED PWM, TWAI(CAN), USB 1.1 OTG, ADC, DAC, touch, sensor de temperatura interno.
- Inicialização segura baseada em RSA-3072
- Criptografia flash baseada em AES-XTS-256
- Chave privada protegida e dispositivo seguro contra acesso de software
- Aceleradores criptográficos para desempenho aprimorado
- Proteção contra-ataques de injeção de falha física
- Pinout:
- 40 pinos divididos em 2×20 headers de 2,54 mm
- 35 GPIOs
- Compatível com protoboard
- 2 LEDS de uso geral
- Botões: 1xReset, 1 x Boot
- USB: conector micro USB – OTG 1.1
- Alimentação:
- 5V via conector USB
- 5V e GND via pinos
- 3V3 e GND via pinos
- Formas de programação:
- ESP-IDF,
- Arduino,
- CircuitPyhton,
- MicroPython,
- Zephyr,
- NuttX
Confira mais detalhes da placa em: Franzininho WiFi: A placa versátil para iniciantes e desenvolvedores experientes
Programando a Franzininho WiFi com Zephyr RTOS
Instalação do Zephyr RTOS:
Para instalação do Zephyr siga os passos apresentados e: https://docs.zephyrproject.org/latest/develop/getting_started/index.html
Se preferir um material em português, recomendo os seguintes artigos publicados aqui no Embarcados:
Zephyr RTOS no ESP32 – Primeiros Passos
Zephyr RTOS – Instalando o Ambiente de Desenvolvimento
Pré-requisitos
O Espressif HAL requer blobs binários de WiFi e Bluetooth para funcionar. Execute o comando abaixo para recuperar esses arquivos:
west blobs fetch hal_espressifObservação:
Recomenda-se executar o comando acima após : west update
Building & Flashing
O Build & Flash é feito normalmente (consulte Construindo um aplicativo e Executando um aplicativo para obter mais detalhes):
# From the root of the zephyr repository
west build -b esp32s2_franzininho samples/hello_world
O target flash normalmente funcionará com a configuração da placa esp32s2_franzininho. Aqui está um exemplo para o Hello World:
# From the root of the zephyr repository
west build -b esp32s2_franzininho samples/hello_world
west flash
Abra o monitor serial usando o seguinte comando:
west espressif monitorDepois que a placa for automaticamente inicializada, você deverá ver a seguinte mensagem no monitor:
***** Booting Zephyr OS vx.x.x-xxx-gxxxxxxxxxxxx *****
Hello World! esp32s2_franzininho
Observação:
Para o Flaash e Build é necessário um conversor USB/Serial ligados aos pinos TX(43) e RX(44). A USB ainda não está suportada.
Saiba Mais
Webinar Gravado: Zephyr RTOS – Por que você deveria utilizá-lo em seu próximo projeto?
Blink LED no ESP32 e Zephyr RTOS
Webinar gravado: Zephyr Project – Um RTOS para IOT
Criando uma aplicação Zephyr out-of-tree com WIFI do ESP32 habilitado
Zephyr RTOS – Primeiro Projeto BLE: Monitor Cardíaco





