Common question that comes up about pull-up resistors: what value do you pick and why not just use a piece of wire? In this follow-up electronics tutorial, the bald engineer looks at how to pick a pull-up resistor value. Note that while focused on pull-up everything said in this video would apply to pull-down as well.

If you’re new to pull-up resistors, check out this longer Pull-Up Resistor Tutorial.

Watch the full video

Oscilloscope Probes Primer – Why so many types?

Compare Passive, Active, High Voltage, and Current Probes

Oscilloscope Probes Primer

Unless you have a BNC or SMA connector your board, you will need a probe to get signals into an oscilloscope. Understanding what kind of oscilloscope probes are out there, which ones should you have for your scope and which ones to use for different measurements can be daunting. In this post, I look at some common scope probe types and offer some suggested measurements for each.

Special thanks to Rohde and Schwarz for providing the equipment used in this post. You can learn more about their scopes and probes at rohde-schwarz.com .

This post is not a comprehensive guide of oscilloscope probes. I am covering the types I have used. I do think this information should be enough to least form questions to ask your vendor before purchasing. Asking questions is important. If you have never bought specialized oscilloscope probes, you might not realize they can cost more than the scope itself. Maybe not an individual probe, but get one for each channel, and the cost rises. So picking the correct probe type is essential.

Continue Reading »

Autodesk released EAGLE 9. This new version continues the improvement that Autodesk has been providing since acquiring the infamous ECAD tool. There are three areas I look at in this AddOhms Livestream.

How I looked at EAGLE 9

In the beginning, I use an old training class I wrote about five years ago when I was using EAGLE daily. It shows how to design a 555 flashing circuit from schematic to PCB. A follow-on class taught how to mill the PCB on a Shopbot. I might update the course and release it if I have time. The exercise class helps me find some surprises with EAGLE’s incremental improvements.

After that, I check out three new features. I also looked at the “Design Blocks” stuff which is a way to incorporate completed schematics like the Adafruit PowerBoost circuit. I need to come back and look at that function again later. Also, I am not positive, but I think that feature was introduced before 9.

1. Quick Routing

The quick routing reminds of the old “follow me” option. You can select individual airwires, entire nets, or multiple signals to route interactively. Unlike the Autorouter, which routes the board as the whole. In the video, I build a simple 555-based PCB. I couldn’t try out routing multiple signals, like address and data for DDR memory. The value I see most from this feature is selectively routing your critical signals and then quick routing the remaining non-critical nets.

2. Device Manager

This informational window provides a clean break-down of many pieces of data. Need to know what layers a footprint use? How about the length of an entire net? In the video, I show that you can use this feature to verify all of your passive components have the same package style. The information is all there, Device Manager brings it to your attention.

3. Breakout

Spoiler Alert: I really like the Breakout Feature. (For those that say I don’t smile in videos, I did this time.) Long story short, this is a shortcut to expand all of the pins for an IC. A great example is in the AddOhms Pyramiduino DIY PCB episode. In the beginning, you can see my time lapse as I break out each of the GPIO pins. That can happen in EAGLE now with a single click.

Check it out

Have you had a chance to check out EAGLE 9 yet? If so, what are your thoughts?

Watch EAGLE 9 First Look on YouTube

DIY Arduino PCB Pryamiduino (Video)

Addohms video on making a KiCad Triangle.

Pyramiduino KiCad PCB Desgin

Continuing the DIY Arduino tutorial series, this AddOhms episode shows how to create a PCB in KiCad. I make a joke that the original design was a rectangle, which I found boring and pointless. So instead, I designed a triangle to give the board 3 points. Get it? Puns! I am calling it the Pryamiduino. To be honest, I found not having a constraint to be a problem. By forcing a specific board size and shape, many decisions were more manageable.

boring rectangular arduino nano clone

First design – Boring!

In the end, the video ended up more edited than I planned. KiCad is just so finicky and crashy that I could not make a coherent start to finish tutorial. At least, I could not work with a board at this level of complexity. Something simple like a 555 flasher would be easier to show from start to finish. I am planning some immediate follow-ups with quick tips on using KiCad. It is a frustrating suite of applications, but the results can be quite nice.

AddOhms Pyramiduino Show Notes

Continue Reading »

Debug SONOFF AC Relay with a Thermal Camera

Find the problem without a live measurement

SONOFF FLIR Banner

My recent SONOFF WiFi Switch experience reminded me of something from high school. I attended an off-site electronics class with my best friend. As teenage boys, we were prone to doing stupid things. One of our favorite games was to see who could handle the highest voltage. Our bench had a variable AC supply that went from 0 to 120 volts. So we would grab the alligator clips while the other person slowly turned the knob up. John once made it to 50 volts. I seem to recall my tolerance around 30 volts. First, DO NOT do this. It was stupid. Second, I think this game is why handling AC makes me so uncomfortable.

While I am not an electrician, I do know the basics about wiring mains AC circuits. So when one of my studio lights needed a new switch, I was okay to replace it. Mains AC does not scare me when it is off. I did not have a mechanical switch available. Instead, I opted for a SONOFF WiFi Switch. I did not intend to connect WiFi, at least not yet. I just wanted to control the light with the manual push button.

The clever solution seemed to be clever, at least for a few minutes. Suddenly the light turned off. I thought maybe there was a timeout for the manual button. Annoying, but workable. The lamp remained off for about another 2 minutes when I started to smell that unmistakeable burning plastic odor. Touching the case of the SONOFF identified the culprit immediately.

Great. So I have an AC mains switch that isn’t working, but I do not want to go poking my multimeter into it. What do I do?

Turns out, that SONOFF module was defective. I wanted to debug it, but I did not want to measure anything while connected to AC. Here’s how I used a thermal camera to debug my SONOFF.

What is a SONOFF?

SONOFF Board Backside 1600px

See the ESP8266 and Antenna?

The SONOFF WiFi switch is an inexpensive AC relay. Internally it has an ESP12 chip, which became popular with the ESP8266. There is even an unpopulatd serial header which can be used to reflash the firmware. Among hackers, these modules are a popular way to get an AC relay that is easily programmed.

Continue Reading »

Circuit Python adds Python to Microcontrollers

Add rapid prototyping to your rapid prototyping board with Circuit Python or MicroPython

CircuitPython Matrix

Back in 2013, a Kickstarter ran for a project to put a python interpreter on a microcontroller. At the time I could not see the benefit. Cool project, but I asked myself: “why?” On my last Adafruit order, I received a free Circuit Playground Express. The board comes with CircuitPython pre-installed. After playing with Circuit Python, or CP, I finally “get it.”

For Valentine’s Day, I made an animated LED heart for a new love in my life, Circuit Python. Well, love is a bit of a strong word. The past couple of weeks I have been learning Circuit Python, and I am excited by what it offers.

What is Circuit Python?

It is a Python implementation that runs on microcontrollers. The code exists on the microcontroller as text. The interpreter runs the code from that text file. Circuit Python is built on, or based on, MicroPython. Adafruit is designing it to teach programming. It is easy to get started, just open up the code.py file from the auto-mounted drive and start typing. When you hit save, the code runs. That’s it.

Continue Reading »

Hologram.io connects Adafruit FONA

Send MQTT over cellular to an IoT Dashboard

adafruint fona hologram mqtt

While the buzzword “IoT “is relatively new, there has been a long time “internet of things” in operation. Those devices are called the far less sexy term “M2M” or machine-to-machine. These devices, around since the 90s, contain a microprocessor, some sensors, sometimes electromechanical hardware, and a cellular radio. These M2M devices were (and still are!) the early “Internet of Things.” Thanks to Hologram.io, you can join this new/old trend for free.

I decided it was time to up my IoT game with a GPRS, or 2G, data radio. In this post, I show the hardware I am using to create a 2G-based GPS tracker. It includes a Teensy 3.2 (Arduino) connected to a SIM808 Module (FONA) using a Hologram.io Developer SIM. It transmits GPS coordinates to an Adafruit.io Dashboard, which displays them on a map.

This post is not going to be a tidy tutorial. Instead, it is all the steps (and notes) I went through. I will cover:

  1. Hardware pieces I am using
  2. How to verify SIM808 (FONA) module is connected through Hologram via Serial Commands
  3. How to send HTTP/POST requests (including SSL) with the SIM808 (FONA)
  4. My (brute force) changes to the Adafruit FONA Library
  5. Code for sending MQTT payload (GPS Coords) to a dafruit.io dashboard

When done, you will be able to build something like a battery powered GPS Tracker, that updates over cellular. If you are in a rush, grab all the code from the FONA GPS Tracker Github Project.

Continue Reading »

When it is time to move away from delay(), it’s time to learn how to properly use millis(). If you’ve had trouble following my millis() examples, maybe a live tutorial will help.

In this AddOhms Livestream, I go through 4 code examples:

1. Blink, the one with delay(), as a starting point.

2. Blink Without Delay, line by line, what is it doing

3. PWM Fading without delay() (and with buttons)

4. Binary counter that uses buttons to speed up and slow down.

Appearance:Live millis() tutorial: AddOhms Live #5
Outlet:AddOhms Voideo Tutorials
Location:YouTube
Format:Vlog

DIY Arduino Schematic board and Checklist

Things to consider when designing a custom board, based on an Arduino

DIY Arduino Schematic Banner

One of the last significant steps in a project is designing the custom PCB. This stage means creating a DIY Arduino board that is custom to the application. Two examples of my past projects are BinBoo, a Binary Clock, and Open Vapors, my reflow oven controller.

While working on a project for a friend, I got to thinking; it would be nice to have a checklist for circuit elements to include on a DIY Arduino board. In the early days, I forgot to add a filter cap to AREF, for example.

These tips are based on an 8-bit AVR design, like the ATmega328p chip. You could apply these tips to other 8-bit AVRs. Until now, I have not designed a custom board around a 32-Bit/ARM board. Though at only $16, I would be tempted to just solder the Teensy module directly to my finished board.

Below is a written list of items for a DIY Arduino checklist. If you’d like to see me design this board in KiCad, check out this AddOhms Tutorial.

Continue Reading »

7 Arduino LCD display tips and tricks

Character LCD tutorial broken down by simple tips

Arduino LCD display

When I started working on Open Vapors, I thought the stumbling point would be the PID algorithm or safe AC line control. However, it turned out; I spent a significant amount of time understanding how to print to the Arduino LCD display correctly.

As I dig into my latest project, the lessons I learned back then are coming back to me. Here are 7 tips for driving an Arduino LCD display, like one with 2×20 or 4×20 characters.

Continue Reading »