Adam Dunkels Picture

Adam Dunkels

Blog

Protothreads Receives ACM SenSys Test of Time Award

I am thrilled and honored to announce that the paper “Protothreads: Simplifying event-driven programming of memory-constrained embedd...

Read More

More Articles

Tracking 100k Assets Before Having 100k Assets to Track: A Complex IoT System Built with AI Coding Agents

How do you ensure that your asset tracking system works with 100k+ assets when the hardware to track those assets exist only in sample quantities? We used AI coding agents to build a ...

In IoT, Bluetooth, AI, May 19, 2026

A BASIC Interpreter in Markdown, Running "Natively" in Claude Code

If we view Claude Code as a processor and Markdown as its machine code, what can we do with it? Today, let’s build a BASIC interpreter.

In AI, Programming, Just for Fun, May 17, 2026

How Fast Does Claude, Acting as a User Space IP Stack, Respond to Pings?

Here is a fun thought: if we ask Claude Code to act as a user space IP stack, how quickly will it be able to respond to a ping?

In AI, Programming, Just for Fun, May 11, 2026

It Isn't The Emdashes — It's The Words: 32 Ways Your Writing Looks Like an AI Wrote it

We all know people use AI to write their texts. And we all know they tend to have a similar feel to them. There is something with those texts that makes them look like other texts. We...

In AI, Just for Fun, May 03, 2026

Can we Vibe Code a Smart Home Device with Matter?

Developing a smart home product takes serious effort. Can AI make it easier? Let’s try to vibe code a working prototype of a smart home product with the Matter smart home standard, wh...

In IoT, Matter, AI, Apr 27, 2026

Whose Problem Are We Solving? A Question That Cuts Through The Fog

Most product ideas fail because nobody needed them in the first place. And by the time we figured that out, it may be too late.But there is a simple question that can cut through that...

In Startups, Ideas, Mar 23, 2026

Sometimes Your Device Is Alive But Is Actually Dead

A hardware watchdog timer is a standard mechanism for embedded systems.The idea is simple: a countdown timer that resets the microcontroller unlessthe firmware explicitly resets it. I...

In IoT, Programming, Feb 24, 2026

Stress-Testing 100+ Bluetooth Beacons (so the Team Can Sleep Well at Night)

How do we make sure our Bluetooth beacon system works with hundreds of devices in the same room? We built a testbed with 100+ nRF52840-based beacons, stress-testing firmware, OTA upda...

In IoT, Bluetooth, Oct 06, 2025

A Personal, Portable Laugh Track (An Early Lesson in AI Coding)

This was a ridiculous idea I had one day: wouldn’t it be fun to have a personal, portable laugh track – you know, like in those old sitcoms where there would be a canned laughter afte...

In Programming, Just for Fun, Aug 19, 2024

How to Use git diff with an sqlite3 Database

If we have a git repository where there is a binary sqlite3 file, it is difficult to see what changed by only using a git diff command. But there is a neat git trick (learned from her...

In Programming, Jul 11, 2024