🛠️ Lightweight i2c scan & logger crate for embedded Rust (no_std friendly)
dvcdbg is a lightweight logging and debugging output library for embedded Rust development.
It can be used in a no_std environment and supports log output via I2C
✨ Features
- ✅
no_stdsupport - ✅ Formatless, fast and lightweight
- ✅ It also includes utilities for embedded debugging, such as an I2C scanner.
- ✅ Easy to use with simple logging and macros
- ✅ Comes with handy built-in utilities such as an I2C bus scanner
- ✅ Features can be selected with feature flags (e.g.,
debug_log)
📈 Firmware Size History
📦 Quickstart
# Cargo.toml
[]
= { = "0.1.1", = ["debug_log"] }
📄 Usage example (Arduino)
use default_serial;
use SerialLogger;
let dp = take.unwrap;
let pins = pins!;
let mut serial = default_serial!;
let mut logger = new;
logger.log;
// Use `log!` macro (requires debug_log feature)
log!;
📚 Documentation
🚀 Binary Size Optimisation
Since dvcdbg is designed for a no_std environment, it is important to minimise the final binary size.
Enabling LTO (link-time optimisation) and strip during release builds will remove unused code from dvcdbg and other dependent crates, significantly reducing the binary size.
Add the following settings to your application's Cargo.toml.
# Cargo.toml (application side)
[]
= true
= true
🛠️ Supported environments
- Rust
no_std - AVR ( Arduino Uno )
🤝 Contributions welcome!
Bug reports, feature suggestions, and pull requests are welcome! Please see our contribution guidelines.
📄 Licenses
MIT OR Apache-2.0