HOWTO

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

Finding a messy signal’s period and frequency, the easy way
Finding a messy signal’s period and frequency, the easy way

I’ve recently had to determining the frequency of some arbitrary repeating signal, from a stream of sampled values. In a simple universe, you could just wait for a specific value to come in–say the peak value–or monitor for the zero crossing or somesuch. However, the particulars in this case included the fact that, in addition…

Read more