This commit implements the common RMT driver (already available for
the other Espressif's xtensa-based devices) for ESP32.
This allows us to have a proper separation between the lower and
upper-half drivers and use the 'ws2812' example to drive WS2812 RGB
LEDs.
This commit updates the Wi-Fi and the BLE driver of ESP32. Most of
the changes rely on using the common sources and header files for
xtensa-based Espressif's SoCs.
The new Wi-Fi driver supports WPA3-SAE for both Station and SoftAP
mode. BLE's coexistence mode was enhanced according to the latest
libraries.
Please note that other sources required minor changes in order to
be compatible with the common sources.
Enable with ./tools/configure.sh -l esp32-devkitc:dac
DAC channel 0 = GPIO 25
DAC channel 1 = GPIO 26
default path: /dev/dac0
Resolution 8 bits = values 0~255
Voltage: 0~Vref
The reference voltage 'Vref' here is input from the pin VDD3P3_RTC
which ideally equals to the power supply VDD (3.3V).
The RMT (Remote Control) character driver allows to use the RMT
peripheral (usually, a one-wire peripheral dedicated to driving
IR remote control) as a character driver.
Please note that this perpiheral depends on the lower-half specific
driver implementation.
Once these messages are thrown during the system's bring-up, it is
advisable them to be output by the syslog considering the file
system initialization.
The SmartFS partition needs to be formatted before being mounted.
Otherwise, it would throw an error message. The error message now
contains a suggestion to format the partition when such an error
is detected.
This commit sets the BLE's interrupt as a IRAM-enabled interrupt,
which enables it to run during a SPI flash operation. This enables
us to create a cache to off-load semaphores and message queues
operations and treat them when the SPI flash operation is finished.
By doing that, we avoid packet losses during a SPI flash operation.
This commit provides an interface to register ISRs that run from
IRAM and keeps track of the non-IRAM interrupts. It enables, for
instance, to avoid disabling all the interrupts during a SPI flash
operation: IRAM-enabled ISRs are, then, able to run during these
operations.
It also makes the code look more similar to the ESP32-S3 SPI flash
implementation by creating a common `esp32_spiflash_init` that is
responsible to create the SPI flash operation tasks. The function
intended to initialize the SPI flash partions was, then, renamed to
`board_spiflash_init`.
drivers/sensors/bme680.c: The bme680 driver
sensor.h: Added new type of sensor (Gas) to be used for retrieving the bme680 data
esp32/common/src/esp32_bme680.c: bme680 support on esp32
esp32/esp32-sparrow_kit/esp32_bringup.c: added support for the bme680
esp32/esp32-sparrow-kit/configs/nsh/defconfig: fixed defconfig ci problem
Signed-off-by: simonatoaca <simona.alexandra2000@gmail.com>
esp32-sparrow-kit: Fixed defconfig
Signed-off-by: simonatoaca <simona.alexandra2000@gmail.com>
Code is now C89 compatible
Signed-off-by: simonatoaca <simona.alexandra2000@gmail.com>
Reused already defined sensor data structs by registering every sub-sensor separately
Signed-off-by: simonatoaca <simona.alexandra2000@gmail.com>
Implemented suggestions
Signed-off-by: simonatoaca <simona.alexandra2000@gmail.com>
Signed-off-by: simonatoaca <simona.alexandra2000@gmail.com>
esp32-sparrow-kit: Added rgb led driver to bringup and to defconfig
Signed-off-by: simonatoaca <simona.alexandra2000@gmail.com>
Fixed checkstyle
Signed-off-by: simonatoaca <simona.alexandra2000@gmail.com>
Update esp32_rgbled.h
Update boards/xtensa/esp32/common/src/esp32_rgbled.c
Co-authored-by: Petro Karashchenko <petro.karashchenko@gmail.com>
Update boards/xtensa/esp32/common/src/esp32_rgbled.c
Co-authored-by: Petro Karashchenko <petro.karashchenko@gmail.com>
Update boards/xtensa/esp32/common/src/esp32_rgbled.c
Co-authored-by: Petro Karashchenko <petro.karashchenko@gmail.com>
Update boards/xtensa/esp32/common/src/esp32_rgbled.c
Co-authored-by: Petro Karashchenko <petro.karashchenko@gmail.com>
Removed ret 0 as an error in the case of nx_write()
The framebuffer itself already initializes the display so there is no need to
do the reverse operation. Otherwise the code gets stuck in an infinite loop.
Signed-off-by: Robert-Ionut Alexa <robertalexa2000@gmail.com>
Instead of using Espressif's emulated NVS to save Wi-Fi data, use
`wapi`s wireless configure initialization mechanism for saving
Wi-Fi data. It 1) avoids creating a specific storage partition
just to save Wi-Fi data (ESP32's storage partition is used
instead); 2) avoids initialization problems of the emulated NVS
when SMP is enabled (the Wi-Fi driver tries to initialize it before
the actual partition is initialized); and 3) enables reconnecting
using `wapi reconnect` command and connect the device automatically
on bringup if `CONFIG_NETUTILS_NETINIT` is selected.
This commit aims to enable the use of ROM functions on ESP32.
This is done by creating the required syscall stubs table and adding the missing symbols to the linker script.
Add support to esp32-sparrow-kit for the LTR308 sensor. This patch also
enables the sensor in the default nsh config file.
Signed-off-by: Robert-Ionut Alexa <robertalexa2000@gmail.com>
- Add ioctl method to enable allocating the apb buffer.
- Add RX methods to set data width, sample rate, channels and
for receiving data from the I2S peripheral.
- Update the i2schar defconfig to enable the I2S receiver.
- Add nxlooper defconfig to enable testing the RX interface.
- Add specific bindings on ESP32 bringup to enable nxlooper
to work without the need of any specific codec.
Add initial support for the I2S peripheral on ESP32.
Add I2S character driver and generic I2S audio driver.
Include i2schar defconfig for ESP32-DevKitC board.