A Driver binary for the M5Stack Cardputer ADV that provides full support for NEOS
Find a file
2026-07-30 22:19:27 +02:00
.cargo feat: define design for Drivers in NEOS, begin implementation 2026-07-30 22:19:27 +02:00
.zed initialize NEOS driver project 2026-07-30 18:19:46 +02:00
src feat: define design for Drivers in NEOS, begin implementation 2026-07-30 22:19:27 +02:00
.envrc initialize NEOS driver project 2026-07-30 18:19:46 +02:00
.gitignore initialize NEOS driver project 2026-07-30 18:19:46 +02:00
build.sh initialize NEOS driver project 2026-07-30 18:19:46 +02:00
Cargo.lock initialize NEOS driver project 2026-07-30 18:19:46 +02:00
Cargo.toml initialize NEOS driver project 2026-07-30 18:19:46 +02:00
flake.lock initialize NEOS driver project 2026-07-30 18:19:46 +02:00
flake.nix initialize NEOS driver project 2026-07-30 18:19:46 +02:00
README.md initialize NEOS driver project 2026-07-30 18:19:46 +02:00

NEOS Driver for Cardputer ADV

This repository implements NEK's HAL API for the M5Stack Cardputer ADV. Installing this file alongside the NEK generic image gives the Cardputer ADV full support for the NE Operating System.

This repository also acts as a general example of how you can develop drivers for your own devices.

Compilation

Note

Just like with every other part of the NEOS project, you need the ESP32 Rust toolchain to compile this program.

Nix (and NixOS) users can use nix develop to automatically get the toolchain. For anyone else, if you don't already have it installed, check out the official guide:

https://docs.espressif.com/projects/rust/book/getting-started/toolchain.html

Compilation is best done with the build.sh script, simply because it automates an extra optimization step, but it can also be done with cargo:

./build.sh
## OR
cargo build --release

The optimization done in build.sh is removing some heavy (but unused) LLVM sections from the final binary. If these sections are present, they take up a lot of space, so removing them significantly reduces the file size.

If you don't have bash, you can still run this optimization step manually (actual path to binary might vary):

xtensa-esp32s3-elf-objcopy \
    --remove-section=.llvmbc \
    --remove-section=.llvmcmd \
    target/xtensa-esp32s3-none-elf/release/neos-driver \
    target/xtensa-esp32s3-none-elf/release/neos-driver

Installation

Warning

This part is a Work in Progress and is currently being investigated :)