Category

Tutorials

Category

Whenever someone sends me some code that doesn’t work, there are a few common Arduino programming mistakes that I check. Some of these mistakes I make myself.  In most cases my code will compile just fine. Sometimes, these mistakes won’t generate any compiler error.

When my Arduino code is acting up, these are the first things I check. Here are my 5 common Arduino programming mistakes, I use to debug non-working code.

A couple of weeks ago I wrote about four current flow direction myths. As a follow up to that popular post, I decided to dedicate this month’s AddOhms electronics tutorial video to Current Flow. In episode #19, I tackle the question of which way does current flow.

You might have heard about “conventional flow” and “electron flow.” In conventional flow, we assume that current flows from the positive voltage towards the negative voltage. In digital, the “negative voltage” is usually called ground. However, that’s not how the electrons move nor is it how they carry the charge around a circuit path.

Electron flow is the description of how electrons carry a charge. Which is the negative voltage towards the positive? This confusion is a result of Ben Franklin mistakingly identifying how electrons moved so many years ago. Yet, we have kept the “positive” and “negative” labels as they are today.

The key though is that it doesn’t matter which method you use to analyze a circuit. Electrons move in a closed path. So whether they travel from positive to negative or from negative to positive, doesn’t matter!

AddOhms #19: Current Flow Direction

Check out the full AddOhms Electronics Video Tutorial on Which Way Does Current Flow on the AddOhms YouTube Channel.

Almost all microcontroller (and microprocessor) development systems use some form of a bootloader. Often called firmware, mistakenly, the Arduino bootloader is one example. Since it is a rather popular platform, let’s use it as an example. Let’s talk about what a bootloader does and how it works.

When a microcontroller turns on, it only knows how to do one thing.  Typically, that one thing is to run an instruction found at a specific memory location. Often this location address 0x0000, but not always. Usually, this memory location will contain a jump instruction to another place in memory, which is the start of the user program. The bootloader, however, exists in a slightly separate memory space from the user program.

On power-up or reset, a bootloader is a section of program memory that runs before the main code runs. It can be used to setup the microcontroller or provide limited ability to update the main program’s code.

A KiCad BOM is a list of all the parts your design is using. The term BOM, or bill-of-materials, is standard for supply chain management and does not just apply to electronics. KiCad’s eeschema has a BOM export feature. Unfortunately as of Version 4.0, this feature is still somewhat lacking. Given the limitations, here are some tips to take your KiCad BOM from Schematic to Mouser.

Spending a few extra minutes while capturing (drawing) your schematic thinking about your KiCad BOM can save you a ton of time later on. Moreover, as you build up a database of parts, these extra minutes turn into seconds. Here are a couple of ways to describe your parts, especially passive components, better while drawing schematics in KiCad.

I was invited to speak at the 11th Hardware Developers Didactic Galactic group at the Supplyframe office in San Francisco. I talked about the misconception that capacitors are a simple device.

Chris Gammell recorded the discussion and posted it via PHY Media. This video is about 50 minutes.

In this talk, I break down a few things to know about Ceramic, Aluminum, Tantalum, and Supercapacitors. You can see the full video via PHY Media’s YouTube Channel: They’re JUST Capacitors. For links and the slides, check out this post.