Jacob

Calculus Made Simple

To many, integral and differential calculus may as well be a foreign language from an alien planet. Many people don’t grasp the fundamental concepts which drive the calculus, and consequently fail to derive the value they otherwise could from that knowledge. I’ve always found the key to making use of some bit of knowledge is to internalize it, to restate the concepts in terms that are familiar and comfortable to you, but to compare this restatement and internalization to the…

1
Read More

Kernel Design: Microkernel vs. Monolithic

Motivation This hotly debated topic has been around for decades, and it is just as alive today as it was 28 years ago. The truth is, there are fundamental differences in the theory which drives the design of a monolithic kernel versus a microkernel. In this post, I will extrapolate from my knowledge of various kernel designs to explore what these two primary types are, what their features, benefits, drawbacks and implications may be. I’ll also briefly explore the extension…

0
Read More

Virtualization for Embedded Systems Series: Type-2 Hypervisors Deep Dive

In the previous post in this series, we dove deep into container technology and looked at how to implement some functionality into containers applicable to embedded devices. In this post, we will look at type-2 hypervisors and dive deep into practical ways to use them for embedded systems. This post will be light on content as I am quite busy currently, but wanted to wrap up this series. I will try to circle back and dive deeper into this topic…

0
Read More

Better JTAG on the Cheap with the FT232H

A couple of weeks ago I wrote a post about using the FTDI FT232R as a cheap JTAG debugger. I’ve been using it for a bit now to play with my Raspberry Pi 3B, and now that my code size has grown, the FT232R is just too slow to cut it. Here’s a breakdown: on the FT232R, the max speed I can set the adapter to is 3MHz. This has given me a transfer speed (loading via GDB) of around…

0
Read More
Raspberry Pi

JTAG On the Cheap with the FTDI FT232R

JTAG 101 What is it? JTAG stands for the Joint Test Action Group, and the TAP or Test Access Port this group defined is one of the most (if not the most) common way to program and debug embedded devices and computers of all flavors. For the professional, JTAG devices are bountiful and usually not too much of a strain on the commercial budget. But for the hobbyist, things aren’t so peachy. A Segger J-Link EDU can be had for…

1
Read More

Building a Customized Linux Image for Raspberry Pi with Yocto + Docker Support

Motivation I recently stumbled upon HypriotOS while looking for Docker-ready distributions for my Raspberry Pi 3B+. I flashed this onto and SD card and started playing around with it. It works incredibly well, but I noticed that it was built for armv7l which is a 32-bit implementation. Since the Raspberry Pi 3B+ has a 4x core Cortex-A53 which is 64 bit, I wanted to make use of the 64 bit processor! I’ve worked with Yocto before (in fact, my day…

0
Read More

Turning my Hallway Closet into a Drop Zone: Gallery

Genesis of a Project In our new house, we had a hallways closet that was massive. It was very deep, and fairly wide, but had low overhead, due to the stairs passing above it. My wife had the brilliant idea to turn this into a dropzone for shoes, parcels, mail, etc. She took to Pinterest to gather ideas, and I turned it into a weekend project. The Project Plan Regrettably, I didn’t capture all the “design” pieces, and only have…

0
Read More

Virtualization for Embedded Systems Series: Containers Deep Dive

In the previous post, I looked at several real-world use cases for containers and hypervisors. This post will be a deep dive into containers and a how-to on using them. Note: all the code, Dockerfiles, etc. are archived in a git repo at GitHub. Container History Origins A little history is needed before we jump into building and deploying containers. Docker, which is likely still the largest container technology provider by a longshot, was originally released in 2013. In just…

0
Read More

Hacking a Smart Outlet

IoT Everywhere Everything, and I mean everything is “smart” these days. Everyone has heard of the Internet of Things, and we are living through the emergence of some incredibly revolutionary connectivity. Some pretty cool and useful concepts have come out of it, admittedly, but there’s also some drawbacks. I really enjoy the idea of having smart outlets that I can command with my voice, and there are outlets-a-plenty on Amazon, but can I trust them? I’ve decided to use my…

0
Read More

Virtualization for Embedded Systems Series: Applications in the Real World

In the last post, we looked at several different types of virtualization technologies. We wrapped up by narrowing our focus on the types of virtualization down to just two primary categories – hypervisors and containers. In this post I’ll dig in to some real world applications of these types of virtualization, and we’ll look at how they can be used to solve real problems. Containerization Simplified Management One of the low hanging fruits of container virtualization is the ability to…

0
Read More