Skip to content

Adding avr_328p_hal crate to README.md - #522

Merged
adamgreig merged 2 commits into
rust-embedded:masterfrom
Darethan026:master
Aug 11, 2026
Merged

Adding avr_328p_hal crate to README.md#522
adamgreig merged 2 commits into
rust-embedded:masterfrom
Darethan026:master

Conversation

@Darethan026

Copy link
Copy Markdown
Contributor

Hello maintainers,

I would like to submit my crate, avr_328p_hal under the Board Support Package section.

Unlike crates that use external dependencies, making large embedded projects slower with each addition, this crate is entirely written from the ATmega328P datasheet specifications using pure #![no_std] Rust.

Key Implementations:

  • Direct memory-mapped I/O manipulation via volatile Read/Write pointer operations, making it highly optimised and very performant.
  • Enforced Pin configuration safety using the Typestate Pattern for all implemented drivers to have one owner in the allowed scope, with Drop implemented, so that Pins are freed, allowing the driver methods to be used elsewhere.
  • Implemented drivers for GPIO, TIMERS, ADC, LCD (Hitachi HD44780/JHD659), and USART0.

Note: The crate currently relies on stack-allocated buffers to handle printing to the LCD. It currently doesn't include a runtime, but that's not a problem for 95% of the projects it may be used for; A custom runtime is planned for a future release.

It is published on crates.io and documented on docs.rs. Examples are included in the crate's documentation examples/ directory and in the repository's examples/ directory on GitHub. Thank you for reviewing this Pull Request!

@adamgreig
adamgreig merged commit 6e235e7 into rust-embedded:master Aug 11, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants