HOWTO

Creating an I2C slave interface for a sensor or peripheral

You’re creating a stand-alone module to bundle a few hardware sensors, or have an independent microcontroller that stays awake and needs to wake the main system depending on configurable environmental triggers. What’s the easiest way to let this unit receive orders and communicate results? An I²C slave! Inter-Integrated Circuit–I²C–is specifically designed to provide an easy…

Read more

Inductive kickback made simple to grasp, easy to handle

This site is about much more than inductors but if you came looking for info on inductive kickback or inductors in general, this light crash course should make it clear in no time using a few random anthropomorphizations I’ve found useful. Inductors: the grumpy old man of passive components Inductors stay on top of current…

Read more

Eclipse saves my ass and the day

It started with the best of intentions, as these things are wont to do. What had begun as a test script, nothing more than the stub of an eventual server side implementation to catch data coming in from an embedded device, was quickly morphing into an actual project. Hm… getting serious and valuable: time to…

Read more

Extending the life of a cell connected IoT device

How do we maximize the useful lifetime of our battery powered, cell connected, IoT device? The obvious answer is to sleep and conserve power as much as possible but there are a few ways of doing this when dealing with M2M networks, like NB-IoT and LTE Cat M1, each with its own advantages and trade-offs….

Read more

Simplifying Assembly: Open Source Manual Pick & Place Assistance

Building prototypes is fun but can be a huge time sink.  Hunting around on the board–how many 10k resistors are there? where is R15? ugh. Thankfully, Colin O’Flynn created an program to help you while you’re acting as a meatbag pick and place machine.  MeatbagPnP is a python application that takes generated placement files and…

Read more

Quick & Easy Attitude and Heading Reference System

Though I’d used the Razor 9DoF and a few other IMUs, it’d been a few years since I got to play with an AHRS.  Recently, I got a request to tweak a system using the MPU-9250, a nine-axis (gyro, accelerometer and compass) MEMS device, to see how nicely we could get it to play. I…

Read more

Make: building AVR and Arduino firmware on the command line

I’ve had a few requests from visitors to my old (and now defunct) electrons site for the AVR Makefile.  Originally created in 2003, and finally included in the resources for an AVR-related Linux Journal article back in 2005, it turns out it’s still pretty useful so I’m replicating the original Makefile and instructions here, with…

Read more

A dive into the guts of firmware: Getting the FT90x toolchain working with mikroprog for FT90x

So you’ve got an FT90x–a cool IC that lets you behave as both a USB device and USB host–and you’ve coded for it using the sweet GCC/Eclipse toolchain. Thing is, now you want to burn your shiny new firmware but you planned to use a mikroe mikroprog for FT90x to do the job only to…

Read more

ReliableSPI: Ensuring reliable communications under difficult circumstances

To do anything interesting, we need reliable communication across machines (e.g. over bluetooth) and oftentimes within as well, between components working together within a device.  In one of my last projects, I wound up dealing with mounds of unreliable comm and here I’ll go over how I got around it and a few of the…

Read more

Mobile Raspberry Pi 3/Zero W: Tips and Lessons Learned

I just finished a project that involved video processing in a portable, wirelessly connected, package: a perfect opportunity to get to know the newer Raspberry Pi Zero W.  Here I’ll go over a few lessons learned while making this little computer truly mobile.  The main point of interest is power: power (as in applied voltage),…

Read more