Optocouplers: Defending Your Microcontroller, MIDI, and a Hot Tip for Speed

Deep in the heart of your latest project lies a little silicon brain. Much like the brain inside your own bone-plated noggin, your microcontroller needs protection from the outside world from time to time. When it comes to isolating your microcontroller’s sensitive little pins from high voltages, ground loops, or general noise, nothing beats an optocoupler. And while simple on-off control of a device through an optocoupler can be as simple as hooking up an LED, they are not perfect digital devices.

But first a step back. What is an optocoupler anyway? The prototype is an LED and a light-sensitive …read more

Continue reading Optocouplers: Defending Your Microcontroller, MIDI, and a Hot Tip for Speed

How to Build Anything Out of Aluminum Extrusion and 3D Printed Brackets

The real power of 3D printing is in infinite customization of parts. This becomes especially powerful when you combine 3D printing with existing materials. I have been developing a few simple tricks to make generic fasteners and printed connectors a perfect match for aluminum extrusion, via a novel twist or two on top of techniques you may already know.

Work long enough with 3D printers, and our ideas inevitably grow beyond our print volume. Depending on the nature of the project, it may be possible to divide into pieces then glue them together. But usually a larger project also places …read more

Continue reading How to Build Anything Out of Aluminum Extrusion and 3D Printed Brackets

Printed It: Toolbag Essentials

While complex devices assembled from 3D printed components are certainly impressive, it’s the simple prints that have always held the most appeal to me personally. Being able to pick an object up off the bed of your printer and immediately put it to use with little to no additional work is about as close as we can get to Star Trek style replicators. It’s a great demonstration to show off the utility of your 3D printer, but more importantly, having immediate access to some of these tools and gadgets might get you out of a jam one day.

With that …read more

Continue reading Printed It: Toolbag Essentials

Biasing That Transistor: The Common Emitter Amplifier

If you open up the perennial favourite electronics textbook The Art Of Electronics and turn to the section on transistors, you will see a little cartoon. A transistor is shown as a room in which “transistor man” stands watching a dial showing the base current, while adjusting a potentiometer that limits the collector current. If you apply a little more base current, he pushes up the collector a bit. If you wind back the base current, he drops it back. It’s a simple but effective way of explaining the basic operation of a transistor, but it stops short of some …read more

Continue reading Biasing That Transistor: The Common Emitter Amplifier

3D Printering: Which Raspberry Pi is Best at Slicing in Octoprint?

OctoPrint is arguably the ultimate tool for remote 3D printer control and monitoring. Whether you simply want a way to send G-Code to your printer without it being physically connected to your computer or you want to be able to monitor a print from your phone while at work, OctoPrint is what you’re looking for. The core software itself is fantastic, and the community that has sprung up around the development of OctoPrint plugins has done an incredible job expanding the basic functionality into some very impressive new territory.

But all that is on the software side; you still need …read more

Continue reading 3D Printering: Which Raspberry Pi is Best at Slicing in Octoprint?

Directly Executing Chunks of Memory: Function Pointers In C

In the first part of this series, we covered the basics of pointers in C, and went on to more complex arrangements and pointer arithmetic in the second part. Both times, we focused solely on pointers representing data in memory.

But data isn’t the only thing residing in memory. All the program code is accessible through either the RAM or some other executable type of memory, giving each function a specific address inside that memory as entry point. Once again, pointers are simply memory addresses, and to fully utilize this similarity, C provides the concept of function pointers. Function pointers …read more

Continue reading Directly Executing Chunks of Memory: Function Pointers In C

Accessing Blockchain on ESP8266 Using the NodeMCU Board

Blockchains claim to be public, distributed, effectively immutable ledgers. Unfortunately, they also tend to get a little bit huge – presently the Bitcoin blockchain is 194GB and Ethereum weighs in at 444GB. That poses quite an inconvenience for me, as I was looking at making some fun ‘Ethereum blockchain aware’ gadgets and that’s several orders of magnitude too much data to deal with on a microcontroller, not to mention the bandwidth cost if using 3G.

Having imagined a thin device that I could integrate into my mobile phone cover (or perhaps… a wallet?) dealing with the whole blockchain was clearly …read more

Continue reading Accessing Blockchain on ESP8266 Using the NodeMCU Board

When 4 + 1 Equals 8: An Advanced Take On Pointers In C

In our first part on pointers, we covered the basics and common pitfalls of pointers in C. If we had to break it down into one sentence, the main principle of pointers is that they are simply data types storing a memory address, and as long as we make sure that we have enough memory allocated at that address, everything is going to be fine.

In this second part, we are going to continue with some more advanced pointer topics, including pointer arithmetic, pointers with another pointer as underlying data type, and the relationship between arrays and pointers. But first, …read more

Continue reading When 4 + 1 Equals 8: An Advanced Take On Pointers In C

Circuit VR: The Dickson Charge Pump

There was a time when taking a low DC voltage — say a single battery — and converting it to a higher voltage was painful. Now, however, cheap and easy-to-use DC to DC converters are readily available. For some small tasks, though, these can seem like overkill. For example, consider a case where you need to supply a higher voltage for a MOSFET gate that doesn’t draw much current. Perhaps you need that higher voltage to trigger a microcontroller’s programming mode and nothing else. The current draw is minimal, and a full-blown DC to DC converter is overkill. For cases …read more

Continue reading Circuit VR: The Dickson Charge Pump