Check-out these seven new features in the Arduino 1.6 release

The (official) Arduino team has finally released the 1.6 version of the Arduino software. After being in the making for over 2 years, this release is an exciting one!

1.6 marks the end of split releases between the traditional 8-bit boards and ARM based boards. There’s some really cool features built-in, so keep reading to see my take on the good, the bad, and the ugly.

Continue Reading »

Hands-on with Arduino Create and Arduino IoT

Arduino and Genuino have a new platform for your IoT projects

This past weekend Arduino fans celebrated Arduino and Genuino Day 2016. In classrooms, maker spaces, and impromptu meet-ups around the world enginerds got together to learn and create with Arduino. At the Jacobs Institute for Design Innovation on Berkeley’s Campus, I first heard that Arduino Create had been launched.

In addition to hands-on learning workshops, there was a display of Arduino/Genuino projects by students. In the afternoon, three Arduino co-founders gave a short talk. David Mellis spoke on Machine Learning. Tom Igoe did his first talk on Technology and Humanities. Lastly, Massimo Banzi talked about IoT.

Arduino Day, Mellis, Igoe, Banzi

Arduino Day, Mellis, Igoe, Banzi

Massimo’s IoT discussion related to the earlier announcement that day of Arduino Create. This new platform has a web-based IDE, Arduino Project Hub, and Arduino IoT.

Excited about the announcements, I spent some time with the hackster.io powered Arduino Project Hub and the Arduino IoT.  Here’s my hands-on with Arduino Create.

Continue Reading »

Ouch. The Arduino GSM shield has a pretty serious design flaw, with its capacitors.

Tantalum is a really misunderstood capacitor. Well, all capacitors are misunderstood, but that’s a subject for another post. I ran across this post on the Arduino forums on the Arduino GSM shield. In the post, ddewaele, reports that the shield blew up, catching fire. At first some might think it was due to abuse by the user. While it is possible that reversing the polarity or applying over-voltage could cause a catastrophic failure, it is also possible that the user doing nothing wrong could result in the same failure mode!

Wait, what? So what gives? Well, there’s two things to understand. First, Tantalum doesn’t explode. It takes almost 2000°C before Tantalum metal will ignite. Okay, so if Tantalum doesn’t explode what is ddawaele seeing? It’s the cathode material, Manganese Dioxide, (MnO2) that is exploding…

Continue Reading »

New Arduino Nano board from Maker Faire 2019

Is the new Arduino Nano Every, IoT, BLE, and BLE Sense worth it?

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

Continue Reading »

Arduino Bootloader, What is it?

This simple code does important things

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.

Continue Reading »

Arduino millis() plus addition does not add up

Here's why you should use subtraction with millis()

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().

Continue Reading »

A week of Arduino Millis()

By far one of the most powerful functions of the Arduino library is the millis() counter. It is also one of the most misunderstood functions. Mastering millis() can unlock incredible amounts of potential with an Arduino. That’s why I’m spending an entire week on millis().

Each day this week I’m posting a new example of how to use millis() in your code. Each will be cataloged on this newly created Arduino Millis() Cookbook Page. If you have ideas for other examples, leave comments below.

Also, quick note. In doing this work I realized there was some issues with my previous Multitasking with Millis and How to Reset Millis() (hint, you don’t) posts which I’ve now corrected.

Most of the major electronic blogs have covered the controversy between Arduino LLC and Arduino SRL. My first deep look into it was from Hackaday’s Arduino v. Arduino. Since it has been covered so well by others, I won’t re-hash the already known facts.

If you want to join in giving feedback to these companies, please tag your posts, tweets, and content with “#OneArduino“.

Click to keep reading and see the letter.

(more…)

Continue reading » | | Posted in Videos
Disclosure of Material Connection: Some of the links in the post above are “affiliate links.” This means if you click on the link and purchase the item, I will receive an affiliate commission. Regardless, I only recommend products or services I use personally and believe will add value to my readers. I am disclosing this in accordance with the Federal Trade Commission’s 16 CFR, Part 255: “Guides Concerning the Use of Endorsements and Testimonials in Advertising.”

Fuelling Your Arduino – Thermal Look at Arduino Power

There are many options for powering an Arduino board.  The designers did a great job of designing an auto-select circuit that makes it simple to power the boards.  However, there are trade offs in how much power is available and how much power gets wasted.  Australian Robotoics has a great breakdown of what an Arduino looks like under a thermal camera, when powered from USB and various external sources.  I don’t agree with everything that is said in this article, but the pictures are very revealing (and cool to look at).

Fuelling Your Arduino – Why you should use an External Power Breakout | Australian Robotics.

Sending simple serial commands to an Arduino

Don't send words when characters will do

Sending simple serial commands to an Arduino is the easiest way to communicate between an Arduino and a computer. The computer could be a PC, a Raspberry Pi, or any device that communicates with serial.

By sending and “decoding” a single character it is easy to add a simple debug menu or even serial menu. Plus, it is easy to extend.

Single Character vs. Full Words

The mistake I see many people make is that they try to send full-text strings as serial commands. For example, to turn on a LED, I have seen (silly) commands like “RED LED ON” or “RED LED OFF.” While you could use something like strcmp(), as I showed on the Multiple MQTT Topics example, that tends to be overkill for most serial commands.

Humans like words, computers like binary. Just send one character over serial.

switch (variable) {
  case 'a':
	// A Stuff

  case 'b':
  case 'c':
	// B and C Stuff
  break;
}

Continue Reading »

Why do engineers (love to) hate Arduino?

Engineers love or hate Arduino, but why?

A couple of months ago podcast I listen to interviewed an embedded engineer. Eventually, the topic of Arduino came up, and all three people on the show let of sighs of disgust. This lead to me to start thinking about why do engineers hate Arduino?

On this particular show, they said Arduino had too many abstraction layers to be useful. All three members of the panel agreed that direct hardware access was critical to success in embedded designs.

On the same episode, the same people talking, the topic changed to using a new chip or sensor. Then this comment was made: “I won’t design for a chip with no high-level software API and detailed examples.” (I’m paraphrasing to protect the innocent.) Everyone on the episode agreed.

Wow. Just what is Arduino then? One view is that it’s a well-documented board, with a high-level API, and lots of detailed examples. But somehow, these features on other platforms is desirable? So why do did these engineers hate Arduino so much when it is what they said every vendor should offer?

Are they haters? Are they trolls? Or are they just engineers who show a behavior common to humans. Let’s take a look at why engineers hate Arduino using other examples and concepts from psychology.

Continue Reading »

Arduino: Getting Real Time Help

While the Arduino Project Team provides their official Arduino forums, sometimes real-time help is just a bit better.  When that is the case, I encourage you to visit the freenode.net IRC channel, #arduino.  While as of today it is not an official channel, there are a number of great people available to help.

You can find me under the nick “baldengineer”, big surprise, I know.  Others like kline, Yoston and pwillard are also excellent people to ping with questions.

This AddOhms episode is part 3 of the “design your own Arduino” series. In this one I populate a bare PCB, reflow solder it, debug a few issues, and load the Uno bootloader. Originally, I designed 2 versions of the board. One version contained an error that I planned to fix in the episode. Well, turns out, the “correct” board had two issues which were more interesting.

Check out the #27 show notes for links to a bunch of stuff in the episode, including the design files.

Watch on YouTube

Comments (3) | | Posted in Videos
Disclosure of Material Connection: Some of the links in the post above are “affiliate links.” This means if you click on the link and purchase the item, I will receive an affiliate commission. Regardless, I only recommend products or services I use personally and believe will add value to my readers. I am disclosing this in accordance with the Federal Trade Commission’s 16 CFR, Part 255: “Guides Concerning the Use of Endorsements and Testimonials in Advertising.”

Arduino Comparison Chart

When getting started with the Arduino, the shear number of board options can be intimidating. While the variety is a great option, it can be daunting to a new user. Many people are afraid of selecting the wrong board, or their budget doesn’t allow for buying multiple boards. Just looking at the “official” boards listed on the Arduino.cc site, there are 14+ different Arduino board types to consider. Then there are a variety of 3rd-party boards with their own uniqueness.

This publicly editable Arduino Comparison Table is a one-stop place to compare key features of Arduino boards, such as Input Voltage, I/O Pins Available, and Connectivity options. Feel free to update information, make changes, or add new boards.

Visit the Google Docs Spreadsheet to use filters and sort by the various parameters.

[View Full Table]

Spotting Arduino Clones

Open Source Hardware (OSH) means not only releasing devices, but all of the documentation associated with them. For some projects, this may include the actual CAD files used to produce the device. For example, the Arduino team produces not only schematics but the Eagle PCB CAD files for each of their boards. The great thing about such disclosure is that one can easily tweak the existing design for their own purposes. The downside is that nearly anyone can submit the exact same files to their own production house and have immediate clones.

Flickr changed their API, so the callouts are gone…. Sorry about that. -James

Even when some people choose to do this, as have some eBay (and now Amazon) sellers, differences crop up from “real” boards and the clones (aka “fakes”). Click on the above photo for a Flickr-based “spot the differences” game!

millis() Tutorial: Arduino Multitasking

After working through these exercises, check out this article on how to avoid rollover or reset mills().

After learning how to flash a single LED on your Arduino, you are probably looking for a way to make cool patterns, but feel limited by the use of delay(). If you ask in the forums, you get told to look at the “Blink Without Delay” example. This example introduces the idea of replacing delay() with a state machine. If you’re confused how to use it, this tutorial is setup to take you from blinking two LEDs with delay, to using an alternate method, right down to how you can use millis().

Continue Reading »

Annotated Arduino UNO

Arduino UNO with Annotations

westfw of the Arduino Forums has put together a nice Flickr Annotation of the New Arduino UNO. A couple of changes have been made from the previous Duemilanove. Interestingly they have left pads for either a crystal or resonator on the board. This may allow the end-user to use a crystal for more accuracy without adding additional cost for everyone else.

 

When learning to use an Arduino, you have two things to learn: programming and hardware. In the past, I’ve taught some classes on how to program the Arduino. These are the slides I used to explain what the Arduino “Language” is, basic debugging concepts, how to use variables, and basic structures.

 

Comments (0) | | Posted in Slides
Disclosure of Material Connection: Some of the links in the post above are “affiliate links.” This means if you click on the link and purchase the item, I will receive an affiliate commission. Regardless, I only recommend products or services I use personally and believe will add value to my readers. I am disclosing this in accordance with the Federal Trade Commission’s 16 CFR, Part 255: “Guides Concerning the Use of Endorsements and Testimonials in Advertising.”