I’ve just released version 0.1 of LPC82x HAL, the hardware abstraction layer for NXP’s LPC82x family of microcontrollers. LPC82x HAL provides a high-level, but largely zero-cost, API for accessing the hardware peripherals of LPC82x microcontrollers. It is a (partial) implementation of embedded-hal.

The project’s primary goal is to provide a safe API that only allows correct use of the hardware. Mistakes, like forgetting to initialize a peripheral before trying to use it, or attempting to use a pin that already has another function assigned to it, should always lead to compile-time errors.

At this point, the crate is still in a pretty rough state. It only provides APIs for a subset of the available peripherals, and the APIs that are available are not feature-complete and subject to change. Nonetheless, LPC82x is ready for initial use. I’ve put a great amount of effort into documenting the API, and if you need features that are currently missing, you can always fall back to the lpc82x crate.

I’d love to hear everyone’s feedback, here or on the issue tracker. Please also let me know if you’d like to use this crate, but are missing critical features. My time is limited, but I’ll try to prioritize issues that affect (potential) users.