"Okay, so for my own understandin..." <- > <@murraytodd:matrix.org> Okay, so for my own understanding, let me play things back. This has to do with the fact that the rp2040 has two cores, so rather than assuming `portable-atomic` should use it's own critical-section based on single-core assumptions, we have to tell `portable-atomic` to expect an external implementation, which in fact has already been included by the `critical-section` crate that was already included by `rp2040-pac`. > > Ergo, adding `portable-atomic = { version = "1.6.0", features = ["critical-section"] }` to my own `Cargo.toml` is necessary so that it knows to include its own `compare_exchange` method. (I did add that to my `Cargo.toml`, and the issue appears to have gotten resolved.) > > If that's all correct, would it make sense to either suggest the `rp2040-project-template` include that line by default or for either the `rp-pico` or `rp2040-hal` projects explicitly add that feature? I'd like to figure out if there's a good way to save the next beginner from this stumbling block. looks like a pretty accurate read to me. > would it make sense to either suggest the rp2040-project-template include that line A PR adding it would be most welcome. i'm also planning on updated the docs for embedded-hal-bus, would you mind if I tagged you to review?