HOWTO

Quick & Easy Attitude and Heading Reference System
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
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
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
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
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

Creating a sensor or peripheral with an SPI (slave) interface
Creating a sensor or peripheral with an SPI (slave) interface

Designed to interact with a 16-bit I/O expander, the firmware was ready for testing.  Though I was still waiting on parts, I wanted to make sure it would all work as expected.  What’s an impatient developer to do?  Create his own SPI slave to replace the missing part, of course! If you’ve gotten anywhere beyond…

Read more

Real world Kicad project postmortem and more tips
Real world Kicad project postmortem and more tips

As a follow-up to my intro/tutorial, I’ll go over a few more lessons learned using Kicad including some tips that should be of help to anyone embarking on a similar journey. The power module project was selected for a first adventure using Kicad as it was relatively small while being non-trivial.  The circuit holds around…

Read more

Kicad: Techniques, Tips and Work-arounds
Kicad: Techniques, Tips and Work-arounds

Kicad is an cross-platform, open source, electronics design suite.  I’d toyed with it in the past, but had never made it to actually designing real projects with it until recently.  Here, I’ll go over my experience and initial impressions, and provide a few pointers and resources for anyone curious about trying it out.  We’ll tour…

Read more

Transmitting mounds of data in realtime over Bluetooth Low Energy
Transmitting mounds of data in realtime over Bluetooth Low Energy

My client needed to receive a relatively large amount of data on a mobile device, from an embedded system, and process it in near-realtime.   The simplest method for communication with a whole host of mobile devices is to go over bluetooth low energy, but this protocol’s main concern is more about power conservation than throughput. …

Read more

Turning complex waveforms into usable values–VRMS, Power, Torque… how to do it and why it works

After this tutorial, you’ll know “in your bones” how to deal with the weirder stuff, when it comes to time-dependent values. It’s easy to find formulas to plug into to for simple cases, like a steady DC voltage or nice sine waves with known peak values but what happens when things aren’t so straightforward?  Say…

Read more