"I guess I'm a bit confused where..." <- rp-hal isn't really a thing, it's a workspace that contains a bunch of actual crates. The architecture is basically: rp2040-pac: Low level (somewhat non-Rusty) hardware access API. embedded-hal: generic APIs of very common stuff. rp2040-hal: implementations of the appropriate APIs from embedded-hal built on top of rp2040-pac. rp-pico (among others): overrides some of rp2040-hal to provide convenience for specific features of that board. E.G. it's common to define a `led` entry under gpio for whatever pin that particular board has hooked up to its LED(s) as well as constants for things like the speed of external clocks.