Drivers
These samples demonstrate how to use various drivers supported by Zephyr.
- AT45 DataFlash driverUse the AT45 family DataFlash driver to interact with the flash memory over SPI.
- Auxiliary displayOutput "Hello World" to an auxiliary display.
- ChargerCharge a battery using the charger driver API.
- CryptoUse the crypto APIs to perform various encryption/decryption operations.
- Digital-to-Analog Converter (DAC)Generate an analog sawtooth signal using the DAC driver API.
- DisplayDraw basic rectangles on a display device.
- EEPROMStore a boot count value in EEPROM.
- Enhanced Serial Peripheral Interface (eSPI)Use eSPI to connect to a slave device and exchange virtual wire packets.
- Flash shellExplore a flash device using shell commands.
- GNSSConnect to a GNSS device to obtain time, navigation data, and satellite information.
- HD44780 LCD controllerControl an HD44780-based LCD display using GPIO pins.
- HT16K33 LED driver with keyscanControl up to 128 LEDs connected to an HT16K33 LED driver and log keyscan events.
- JEDEC SPI-NOR flashUse the flash API to interact with an SPI NOR serial flash memory device.
- JESD216 flashUse the JESD216 flash API to extract information from a compatible serial memory device.
- KSCANUse the KSCAN API to read key presses and releases on a keyboard matrix.
- LiteX clock control driverUse LiteX clock control driver to generate multiple clock signals.
- MBOXPerform inter-processor mailbox communication using the MBOX API.
- MBOX DataPerform inter-processor mailbox communication using the MBOX API with data.
- Memory controller (MEMC) driverAccess memory-mapped external RAM
- nRF SoC Internal StorageUse the flash API to interact with the SoC flash.
- PECI interfaceMonitor CPU temperature using PECI.
- PS/2 interfaceCommunicate with a PS/2 mouse.
- SMBus shellInteract with SMBus peripherals using shell commands.
- SPI bitbangUse the bitbang SPI driver for communicating with a slave.
- WatchdogUse the watchdog driver API to reset the board when it gets stuck in an infinite loop.
ADC
- Analog-to-Digital Converter (ADC) sequence sampleRead analog inputs from ADC channels, using a sequence.
- Analog-to-Digital Converter (ADC) with devicetreeRead analog inputs from ADC channels.
Audio
- Digital Microphone (DMIC)Perform PDM transfers using different configurations.
Controller Area Network (CAN)
- Controller Area Network (CAN) babbling nodeSimulate a babbling CAN node.
- Controller Area Network (CAN) counterSend and receive CAN messages.
Counter
- Counter AlarmImplement an alarm application using the counter API.
- DS3231 TCXO RTCInteract with a DS3231 real-time clock using the counter API and dedicated driver API.
Ethernet
- Inter-VM Shared Memory (ivshmem) EthernetCommunicate with another "cell" in the Jailhouse hypervisor using IVSHMEM Ethernet.
FPGA
- FPGA ControllerLoad a bitstream into an FPGA and perform basic operations on it.
Haptics
- DRV2605 Haptic DriverDrive an LRA using the DRV2605 haptic driver chip.
Inter-Integrated Circuit (I2C) Bus
- I2C Custom TargetSetup a custom I2C target on the I2C interface.
- I2C TargetSetup an I2C target on the I2C interface.
I2S
- I2S codecProcess an audio stream to codec.
- I2S echoProcess an audio stream to add an echo effect.
- I2S outputSend I2S output stream
Inter-Processor Mailbox (IPM)
- IPM on ESP32Implement inter-processor mailbox (IPM) between ESP32 APP and PRO CPUs.
- IPM on NXP i.MXImplement inter-processor mailbox (IPM) on i.MX SoCs containing a Messaging Unit peripheral.
- IPM on NXP LPCImplement inter-processor mailbox (IPM) on NXP LPC family.
- IPM over IVSHMEMImplement inter-processor mailbox (IPM) over IVSHMEM (Inter-VM shared memory)
- IPM with ARM MHUImplement inter-processor mailbox (IPM) using an MHU (Message Handling Unit)
Light-Emitting Diode (LED)
- Breathing-blinking LED (BBLED)Control a BBLED (Breathing-Blinking LED) using Microchip XEC driver.
- IS31FL3194 RGB LEDCycle colors on an RGB LED connected to the IS31FL3194 using the LED API.
- IS31FL3216A LEDControl up to 16 PWM LEDs connected to an IS31FL3216A driver chip.
- IS31FL3733 LED MatrixControl a matrix of up to 192 LEDs connected to an IS31FL3733 driver chip.
- LED PWMControl PWM LEDs using the LED API.
- LED stripControl an LED strip.
- LP3943 RGBW LEDControl up to 16 RGBW LEDs connected to an LP3943 driver chip.
- LP50XX RGB LEDControl up to 12 RGB LEDs connected to an LP50xx driver chip.
- LP5562 RGB LEDControl 4 RGB LEDs connected to an LP5562 driver chip.
- LP5569 9-channel LED controllerControl 9 LEDs connected to an LP5569 driver chip.
- PCA9633 LEDControl 4 LEDs connected to a PCA9633 driver chip.
- SX1509B RGB LEDControl an RGB LED connected to an SX1509B driver chip.
LoRa
- LoRa receiveReceive packets in both synchronous and asynchronous mode using the LoRa radio.
- LoRa sendTransmit a preconfigured payload every second using the LoRa radio.
Miscellaneous
- FT800Display various shapes and text using FT800 Embedded Video Engine.
- Grove LCDDisplay an incrementing counter and change the backlight color.
- Time-aware GPIOSynchronize clocks.
Multi-bit SPI Bus (MSPI)
- JEDEC MSPI-NOR flashUse the flash API to interact with a MSPI NOR serial flash memory device.
- MSPI asynchronous transferUse the MSPI API to interact with MSPI memory device asynchronously.
Universal Asynchronous Receiver-Transmitter (UART)
- Native TTY UARTUse native TTY driver to send and receive data between two UART-to-USB bridge dongles.
- UART echoRead data from the console and echo it back.
- UART PassthroughPass data directly between the console and another UART interface.
Video
- Video captureUse the video API to retrieve video frames from a capture device.
- Video capture to LVGLCapture video frames and display them on an LCD using LVGL.
- Video TCP server sinkCapture video frames and send them over the network to a TCP client.
Virtualization
- IVSHMEM doorbellUse Inter-VM Shared Memory to exchange messages between two processes running on different operating systems.
1-Wire
- 1-Wire scannerScan for 1-Wire devices and print their family ID and serial number.