Category Archives: Skills

Buttery Smooth Fades with the Power of HSV

In firmware-land we usually refer to colors using RGB. This is intuitively pleasing with a little background on color theory and an understanding of how multicolor LEDs work. Most of the colorful LEDs we are use not actually a single diode. They are red, green, and blue diodes shoved together in tight quarters. (Though interestingly very high end LEDs use even more colors than that, but that’s a topic for another article.) When all three light up at once the emitted light munges together into a single color which your brain perceives. Appropriately the schematic symbol for an RGB LED …read more

Continue reading

Posted in how-to, led, led hacks, Original Art, RGB LED, Skills | Leave a comment

Pipelining Digital Logic in FPGAs

When you first learn about digital logic, it probably seems like it is easy. You learn about AND and OR gates and figure that’s not very hard. However, going from a few basic gates to something like a CPU or another complex system is a whole different story. It is like going from “Hello World!” to writing an operating system. There’s a lot to understand before you can make that leap. In this set of articles, I want to talk about a way to organize more complex FPGA designs like CPUs using a technique called pipelining.

These days a complex …read more

Continue reading

Posted in pipeline, Skills, verilog | Leave a comment

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

Posted in microcontroller, motor driver, opto, optoisolation, Original Art, Skills, transistor | Leave a comment

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

Posted in how-to, Skills, structural framing systems, structures | Leave a comment

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

Posted in organization, Printed It, Skills, soldering, tool hacks, tools, tweezers, wire stripper | Leave a comment

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

Posted in how-to, Original Art, Skills, transistor, transistor amplifier, transistor biasing | Leave a comment

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

Posted in OctoPi, Octoprint, Raspberry Pi, Skills, slicer, stl | Leave a comment

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

Posted in how-to, Original Art, programming language, Skills, Software Development | Leave a comment

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

Posted in how-to, Microcontrollers, NodeMCU, oled display, Original Art, Skills | Leave a comment

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

Posted in Original Art, programming language, Skills, Software Development | Leave a comment