Tag

arduino

Browsing

When connecting multiple oscilloscope probes to a circuit, does each probe need to connect to ground?

The short answer is yes!

Why? The long answer is kind because of the ground loop. Remember, a circuit needs a closed path. And while on DC circuits we may rarely think about the distance of that path, it absolutely matters when there is an AC or frequency component.

When you do not connect each probe’s ground, the signal path because enormous since it must connect to the circuit’s ground through another probe. (See the animation in the video above.)

Logic analyzers capture digital signals and then display a waveform or list. Serial busses like I2C, SPI, or UART (Serial) can be decoded or triggered on when there are problems in your circuit. In this video, learn the basic controls you need to use (almost) any logic analyzer. You’ll learn how to set up a simple trigger, make measurements, and set things like sample rate or memory depth.

When I first graduated from college, I started as an Application Engineer for Agilent Technologies. Based in Austin, I supported computer companies like Dell, Compaq, HP, IBM, and Tandem. I helped their engineers set up million-dollar logic analyzer configurations to measure various PC busses.

I did embellish a tad during the introduction. Shown in the video is an HP 16500. While I did occasionally help program a trigger on these analyzers, my career really started with its successor, the HP 16700. Both were amazing analyzers for their time. It is mind-boggling to think that a small $150 USB-based device has very similar measurement capabilities to those old beasts.

Previously, I made a written Logic Analyzer introduction tutorial and benchmarked digitalWrite() with a Salee Logic 8. Contrary to what people have said, the LA2016 featured in this video does NOT use Salee’s excellent Logic software. However, the user interface is clearly copied from it.

See show notes on element14

I had the chance to spend some time with the Arduino team before and during Maker Faire Bay Area 2019. I also attended Massimo’s “State of Arduino” talk. In short, there are new Arduino Nano boards coming, a certification available today, updates on the Vidor, interesting education kits, and one more special announcement.

It rained most of the weekend, which I am sure caused attendance to take a hit. Normally this would not be a big deal, but there was some talk it may be the last year for the Bay Area’s show. As usual, I walked the show on Friday and did take note there were several new exhibitors throughout. For that reason, I hope it is not the last one.

Depsite the grim news, spirits from attendees were high. On Saturday I helped answer questions and give out t-shirts at the Arduino booth. The time flew by fast but not before I got to overhear and explain tidbits about this year’s Arduino announcements.

New Arduino Nano (Every, IoT, BLE, and BLE Sense)

My favorite announcement, hands down, is the new Arduino Nano boards. The boards are a new small form factor featuring castellated edges. A “castellated edge” means you can solder the entire module to a PCB. It is a cost-effective way for adding a complex microcontroller solution to small and medium run products. You might be familiar with the concept from the ESP, WiFi, or Bluetooth modules.

The board form factor is really the only thing these new Arduino Nano boards have in common. Each offers a slightly different feature set. Oh, and the price for each is shocking for an Arduino branded board.

New Arduino Nano Every

New Arduino Nano Every
Arduino Nano Every

In the past, I’ve covered how to reset Arduino millis() and have provided a growing list of examples using millis(). While reviewing the code for the elegoo Penguin Bot, I was reminded of a millis() mistake I see often: addition. The only way to properly handle millis() rollover is with subtraction. Let’s look at why (and how.)

What is Arduino millis()

The Arduino library has a function called millis() which returns the number of milliseconds the processor has been running. On other platforms, you might see references to a “tick counter.” It is the same idea. A hardware timer keeps incrementing a counter at a known rate. In this case, that rate is milliseconds.

A mistake new programmers often make is trying to “reset millis().” A better method is to compare two time-stamps based on millis(). So this if-statement is comparing a previous timestamp to the current value of millis().