Blog Post
Straddling the Boundary of Free and Proprietary Software
Cardinal Peak is currently developing an embedded product for a customer whose business is innovative lighting products. We have chosen to base the embedded system on Linux because it includes a wealth of infrastructure, it is open source and royalty free, and we have substantial experience with it. The embedded system is configured with an…
View Article
Read More
Blog Post
IoT Comms Software Is Hard
I’ve got a new blog post up at EE Times, talking about how to architect the network communications protocols for Internet-of-Things devices: Crafting a communications software stack tailored to the needs of your Internet of Things design is crucial — and not necessarily easy, given that options are continually evolving. Read the whole thing here.
Read More
Blog Post
Using UDP in Internet of Things Devices
I recently read this article by John Carbone about using UDP in embedded systems. The advice in the article is accurate, but there are some other issues to consider when designing UDP based protocols in embedded systems that Carbone did not address. I wanted to tackle them here. First and foremost: UDP datagrams are trivial…
View Article
Read More
Blog Post
Joy’s Law and the Problem of Engineering Design
One meme that has been making the rounds recently is Joy’s Law, supposedly named after Bill Joy, one of the founders of Sun Microsystems: “No matter who you are, most of the smartest people work for someone else.” It’s a cute aphorism, one that I hadn’t heard six months ago (although the Wikipedia page linked…
View Article
Read More
Blog Post
MAC vs HMAC: Differences Explained
Hash-based message authentication code, or HMAC, is an important building block for proving that data transmitted between the components of a system has not been tampered with. It is a widely used cryptographic technology. I recently came across its use in an RFID system.
Read More
Blog Post
“Who Am I” in the Internet of Things?
Out of the box, Chromecast has no idea who I am, or what my available content is. In a few simple steps I’m up and running with my content. I didn’t even enter my username and password! How did Google do that? The answer involves a protocol called oAuth.
Read More
Blog Post
More Thoughts on Security and the Internet of Things
Attacks that are initially restricted to the realm of esoteric, government-backed spooks become accessible over time to run-of-the-mill cybercriminals. Take, for example, the Linux.Darlloz worm, which attacks embedded devices and is interesting for a couple of reasons. First, it propagates by exploiting a vulnerability that was patched in May 2012. But the firmware images on many embedded devices are much older than that. The second reason I find it particularly interesting is it targets PHP, a scripting language largely used for web development.
Read More
Blog Post
Inter-Thread Communication Without a Mutex
A simple way to avoid mutex-locking issues is to not use mutexes. This post describes a simple technique for passing objects between threads in a thread-safe manner without mutexes, which makes the entire class of possible mutex-related errors impossible to implement!
Read More
Blog Post
My Threads Question
If we interview you here at Cardinal Peak, we’re going to assume you’re competent to use Google, and we’ll give you the benefit of the doubt that you can look up answers to weird corner cases. What we really want to know is how deeply you understand how a computer works.
Read More
Blog Post
I Want Widgets that Come With an API
Aside from the glut of “UltraHD” televisions at CES this year, I saw two other trends that seem noteworthy to me but that have not been highly reported in the tech press: There is a huge number of Internet-connected home sensors of all kinds, and also a much large concentration of smart or connected fitness…
View Article
Read More