James Munns
banner
jamesmunns.com
James Munns
@jamesmunns.com
Notable Protocol Enjoyer.

Doing stuff, mostly in Rust and on Embedded systems. Need help with that? Hire me @onevariable.com
Co-host @sdr-podcast.com

DMs (matrix): @jamesmunns:beeper.com
DMs (signal): jamesmunns.255

he/him
Kein Ort für Nazis
"nonlinearities of scale" are so fun to see, especially as a consultant. "We can't afford to do X/We can't afford NOT to do X" at different scales are 100% goofy. On top of that, the wildcards of "we've always done it like this"/"this is the only in-house expertise we have" makes it all calvinball
depending on the operating margins of the manufacturer, decent odds debian is already on there
If you own a computer it should be illegal for a company to not let you easily install your own software. This includes crap like tvs and refrigerators. Let me put Debian on my dishwasher.
December 26, 2025 at 3:42 PM
Reposted by James Munns
btw me and my friend are still looking for CCC tickets, if you happen to be willing to sell them please message me!! .-. #39c3
December 26, 2025 at 7:18 AM
Reposted by James Munns
The whole premise of a compliance team governing complex systems they barely understand is broken. Compliance in a complex system has to be a continuous team sport, a natural byproduct of the way teams work. Not an annual bolt-on.
December 24, 2025 at 9:08 PM
Time to spend all of the money you’d normally spend on regularly priced RAM upgrades on sponsoring devs building oss + native Rust (or swift, or go) desktop UI frameworks/toolkits instead!

(Then only the rust developers are sad we need more RAM for actually compiling the apps)
It would be hilarious if spiking RAM prices were the cause of a move away from Electron/webview-based apps to native apps. I've seen arguments from gamers* that unoptimized games right now are on the verge of unethical*.

* yeah, I know
* yeah, I know, it's about ethics in videogame optimizat
December 25, 2025 at 11:30 AM
Reposted by James Munns
Plans are still on for this in an hour. If you’re in the KC metro and want to take a stand with the local immigrant defense against the kidnapping of our community’s law abiding immigrant families, now is your chance. ICE chose to do this before Christmas because terror and pain is the point.
To anyone in the KC metro area who may be interested in proving the point that we’re not happy about our friends and family being kidnapped by masked secret police for following the law
December 24, 2025 at 6:38 PM
Reposted by James Munns
I just booked a last-minute trip to Hamburg for #39C3

Looking forward to seeing folks there. If we are mutuals and you're going too, text me!

If you have an extra ticket, DM me and I'll buy it full price.
December 24, 2025 at 3:32 PM
It's that time of year again :D

Doing it today (christmas eve) instead of tomorrow (christmas day) because we have some other plans.
My Christmas tradition is making an absolute ton (2kg) of homemade tortilla chips and making loaded nachos.

I have salsa roja and verde for the festivities.
December 24, 2025 at 11:50 AM
There are definitely things Cargo is not perfect at, and there are definitely edge cases it flat out does not handle well at all.

That being said: It is an indescribably better experience for 95% of users than prior domain tools, and has been an unquestionable boon for Rust usage and adoption.
Cargo is a ridiculously huge benefit to the Rust ecosystem.
December 22, 2025 at 6:31 PM
Reposted by James Munns
I've been working on the latest experiment over the last few weeks (github.com/hannobraun/f...). It's going great so far! (post 1 of 4)
fornjot/experiments/2025-12-03 at main · hannobraun/fornjot
Early-stage b-rep CAD kernel, written in the Rust programming language. - hannobraun/fornjot
github.com
December 22, 2025 at 1:34 PM
Reposted by James Munns
First real-world usage of Garmin's emergency autoland system. avbrief.com/autoland-sav...
December 22, 2025 at 12:48 AM
Im lucky enough to know some very cool people, doing very cool things.
December 21, 2025 at 3:34 PM
The probe-rs toolset is what most people use host-side, it gives you the ability to read and write data from RTT channels (which are basically just ring buffers). They also have an rtt-target that allows you to define the MCU-side buffers and setup to declare the RTT channels you want.
A few years ago I wanted to use one of the rtt crates to write out a binary file via JTAG (trying to copy defmt a bit but binary data). Is there a nice workflow for something like this already in the ecosystem or is it a bit roll your own?
December 21, 2025 at 2:25 PM
To be honest, I probably wouldn't do that with a microcontroller, and that's not my area of expertise!

I think the majority of today's 3d scanners are either steroscopic cameras, or maybe scanning lasers? Or maybe just single cameras with a ton of DSP. Most of that is more GPU oriented AFAIK.
Well if you were to build a 3d scanner the one you put the thing inside and it rotates and takes picture how would you go about that ?
December 21, 2025 at 2:20 PM
Reposted by James Munns
just realized only now that "graphite" means "writing rock"
December 21, 2025 at 2:05 AM
Hilarious find of the day, a bot account that follows only accounts with "James" as their names or in their profiles
December 21, 2025 at 8:33 AM
Reposted by James Munns
🚨 A New Simplified Embedded Rust Update is Out + 50% off!

🎊 50% off eBooks until Dec 23, 00:00 UTC

What’s new:
🔹 Project chapter w/ real-world engineering practices.
🔹 Updated crate dependencies
🔹 Several Fixes

📘 SER has now sold 900+ copies!

Scan QR to get your copy. Other formats early 2026.
December 20, 2025 at 4:47 PM
Awesome response to this so far! Going AFK for a bit, happy to pick up some more questions when I get back if anybody has some :)
I've been wanting to try and start brain dumping some thoughts on (embedded) rust, how I approach problems, write HAL/device drivers, tools I use, etc.

But, I'm terrible at starting to write unless I have specific questions to answer.

So: ask me anything re: embedded/rust/hardware!
December 20, 2025 at 1:59 PM
TIL this is where the sample from MSI's "Bitches" comes from: www.youtube.com/watch?v=amR6...
Siouxsie And The Banshees - Happy House (Official Music Video)
YouTube video by SiouxsieBansheesVEVO
www.youtube.com
December 20, 2025 at 12:27 PM
Strongly co-signed. I'd love to see the @tweedegolf.bsky.social get the chance to put some love into this.
Things linkers could do better for embedded:

- More control over where code lives in memory (like have some part of code live in RAM)
- Actual good error messages
- Aid in MPU/trustzone setup
- Actually help in multi-binary situations (like bootloader + app)
- Replace linker scripts
December 20, 2025 at 12:19 PM
Reposted by James Munns
Linkers for embedded kinda suck, no?

Do you work at a big company who could use a new one?

At @tweedegolf.bsky.social we have some amazing people who could build an awesome new embedded linker.

We should talk.
December 20, 2025 at 12:15 PM
I think it's probably reasonable to avoid writing unsafe outside of HW drivers (e.g. MMIO access), data structures (sometimes!), and synchronization primitives.

I'm not really a fan "never unsafe", it's just a tool! It has a cost: additional dilligence needed. Sometimes worth it.
Do you think it’s realistic to aim for never writing any unsafe code in non-library projects? My semester project was able to do everything with esp-hal and embassy in entirely safe rust, but what if we hadn’t have all the io driver crates we needed?
December 20, 2025 at 11:47 AM
Sure, it can be, but to be honest: MOST projects are not safety critical! If you are safety critical, I STILL think you should probably be making a reasonably sized internal HAL that you re-use across projects. Most safety teams I know re-use the same hardware across projects to amortize costs.
@jamesmunns.com isn't functional safety a reason to start from scratch as well? I don't have the experience myself, but my understanding is that starting from scratch is generally less work than certifying software that wasn't designed with safety critical applications in mind from the start.
December 20, 2025 at 10:39 AM
I mostly use defmt, which is a specialized/efficient logger that usually runs over RTT and the SWD debugger you use for flashing, for most of my diagnostics. This covers probably like... 50-75% of my debugging needs? You can usually tell a lot from print/log-style debugging.
How do you find deadlocks in your embedded code? The pi pico I programmed with embassy rust doesn’t react after the first input I trigger and I don’t know how to debug it.
Probably gonna need to turn parts of the code off to narrow it down but that sounds like a hassle. Maybe it’s not a deadlock
December 20, 2025 at 10:34 AM
I feel like I've definitely seen/been the person that has tweaked a HAL for specific project, but I really haven't seen this. Really what I've seen is:

1. Use the open source HAL off the shelf
2. Take the open source HAL, make special changes, use that
3. Write a minimal HAL from scratch
What do you think about creating project-specific HALs tailored for particular project needs (and therefore not flexible enough to be reusable)? Do you know good examples of this approach?
December 20, 2025 at 10:21 AM
Hmm. I can't think of any tools that I really miss?

Rust on Desktop and Rust on Embedded is a remarkably consistent experience. We use some extra tools like probe-rs on embedded for flashing, or different logging libraries, but the net experience is pretty same same.

Lots of SW is portable to both
What tools (software or hardware) do you miss the most when you work on embedded projects?
December 20, 2025 at 10:14 AM