<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>arduino on Bald Engineer</title><link>https://www.baldengineer.com/tag/arduino-stuff</link><description>Recent content in arduino on Bald Engineer</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Wed, 03 Apr 2024 03:32:30 +0000</lastBuildDate><atom:link href="https://www.baldengineer.com/tag/arduino-stuff/index.xml" rel="self" type="application/rss+xml"/><item><title>Do ALL Scope Probes Need Ground?</title><link>https://www.baldengineer.com/do-all-scope-probes-need-ground.html</link><pubDate>Fri, 24 Jun 2022 13:05:00 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=8661</guid><description>When connecting multiple oscilloscope probes to a circuit, does each probe need to connect to ground?&#10;The short answer is yes!&#10;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.&#10;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.)<p><a href="https://www.youtube.com/watch?v=ztmU0069-N4"><img src="https://i.ytimg.com/vi/ztmU0069-N4/hqdefault.jpg" alt="Do ALL Scope Probes Need Ground?"/></a></p><p><iframe src="https://www.youtube-nocookie.com/embed/ztmU0069-N4" title="Do ALL Scope Probes Need Ground?" width="560" height="315" loading="lazy" allowfullscreen="allowfullscreen"><a href="https://www.youtube.com/watch?v=ztmU0069-N4">Watch this video on YouTube</a></iframe></p></description></item><item><title>Op Amps Without Op Amps | Workbench Wednesdays #39</title><link>https://www.baldengineer.com/op-amps-without-op-amps-workbench-wednesdays-39.html</link><pubDate>Tue, 08 Jun 2021 22:35:00 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=8338</guid><description>Okay, technically, this circuit *does* use Op-Amps. However, the ones shown here are integrated into an ATmega128DB microcontroller from Microchip. The DIP package breaks out two operational amplifiers that are controllable entirely by software. Even better, you can program them like they are an Arduino!<p><a href="https://www.youtube.com/watch?v=MyXEwQwdqW8"><img src="https://i.ytimg.com/vi/MyXEwQwdqW8/hqdefault.jpg" alt="Op Amps Without Op Amps | Workbench Wednesdays #39"/></a></p><p><iframe src="https://www.youtube-nocookie.com/embed/MyXEwQwdqW8" title="Op Amps Without Op Amps | Workbench Wednesdays #39" width="560" height="315" loading="lazy" allowfullscreen="allowfullscreen"><a href="https://www.youtube.com/watch?v=MyXEwQwdqW8">Watch this video on YouTube</a></iframe></p></description></item><item><title>Logic Analyzer Basics | Workbench Wednesdays</title><link>https://www.baldengineer.com/logic-analyzer-on-wbw.html</link><pubDate>Sun, 29 Dec 2019 18:28:48 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?post_type=link&amp;p=7973</guid><description>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.&#10;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.<p><a href="https://www.youtube.com/watch?v=u1DYs2I-_lU"><img src="https://i.ytimg.com/vi/u1DYs2I-_lU/hqdefault.jpg" alt="Logic Analyzer Basics | Workbench Wednesdays"/></a></p><p><iframe src="https://www.youtube-nocookie.com/embed/u1DYs2I-_lU" title="Logic Analyzer Basics | Workbench Wednesdays" width="560" height="315" loading="lazy" allowfullscreen="allowfullscreen"><a href="https://www.youtube.com/watch?v=u1DYs2I-_lU">Watch this video on YouTube</a></iframe></p></description></item><item><title>New Arduino Nano board from Maker Faire 2019</title><link>https://www.baldengineer.com/new-arduino-nano-boards-from-mfba-2019.html</link><pubDate>Wed, 22 May 2019 13:42:05 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=7808</guid><description>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.&#10;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.<p><img src="https://www.baldengineer.com/wp-content/uploads/2019/05/New-Arduino-Nano-Every-at-Maker-Faire-2019.jpg" alt="New Arduino Nano board from Maker Faire 2019"/></p></description></item><item><title>Arduino millis() plus addition does not add up</title><link>https://www.baldengineer.com/arduino-millis-plus-addition-does-not-add-up.html</link><pubDate>Wed, 10 Oct 2018 13:00:23 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=7571</guid><description>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.)&#10;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.<p><img src="https://www.baldengineer.com/wp-content/uploads/2018/10/Arduino-millis-banner.jpg" alt="Arduino millis() plus addition does not add up"/></p></description></item><item><title>Penguin Bot from elegoo hands-on review of the kit build</title><link>https://www.baldengineer.com/penguin-bot-from-elegoo-hands-on-review-of-the-kit-build.html</link><pubDate>Wed, 19 Sep 2018 18:50:22 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=7550</guid><description>Recently I received three packages from Elegoo Industries. They are a company based in Shenzhen China. Before those packages, I noticed their name several times on various electronics kits on Amazon. They asked me if I’d help them with a video that shows how to assemble their latest creation: Penguin Bot.&#10;There is not much point in sharing that video with you unless you’ve purchased one. So instead, here is my review, or hands-on, of the kit. I will, however, show you a short Instagram video I made to show off Penguin Bot’s cuteness.<p><img src="https://www.baldengineer.com/wp-content/uploads/2018/09/Penguin-Bot-Header-1960px.jpg" alt="Penguin Bot from elegoo hands-on review of the kit build"/></p></description></item><item><title>Arduino MKR Vidor 4000 Hands-On</title><link>https://www.baldengineer.com/arduino-mkr-vidor-4000-hands-on.html</link><pubDate>Wed, 15 Aug 2018 13:27:52 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=7510</guid><description>Earlier this week, I looked at the Arduino MKR Vidor 4000 during an AddOhms live stream. My goal was to understand the Vidor better. It is the new FPGA-based Arduino which started shipping this month. It runs about $60. You can learn more at the Vidor Product Page on the Arduino website.&#10;In this post, I briefly touch on the difference between an FPGA and a microcontroller. Then I walk you around the MKR Vidor 4000’s board. Using one of the examples, I talk a bit about how the various chips communicate with each other. This section also highlights what makes the Arduino FPGA board different from other development boards. Lastly, I answer “should you buy an Arduino MKR Vidor 4000?”<p><img src="https://www.baldengineer.com/wp-content/uploads/2018/08/Arduino-MKR-Vidor-4000-Blue-Background-1960.jpg" alt="Arduino MKR Vidor 4000 Hands-On"/></p></description></item><item><title>Learn Six Oscilloscope Measurements with an Arduino DUT</title><link>https://www.baldengineer.com/six-oscilloscope-measurements-using-arduino.html</link><pubDate>Wed, 13 Jun 2018 18:44:22 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=7334</guid><description>One of the best ways to learn how to use a new piece of test equipment is to use it. Sounds easy, right? The problem is, sometimes when you are in the middle of troubleshooting your circuit, figuring out what the knobs on your scope do is an immense frustration. Use these 6 oscilloscope measurements, and just an Arduino Uno, to learn how to use a new or unfamiliar digital scope.<p><img src="https://www.baldengineer.com/wp-content/uploads/2018/06/Oscilloscope-Measurements-with-RTM3004-Alternative.jpg" alt="Learn Six Oscilloscope Measurements with an Arduino DUT"/></p></description></item><item><title>Arduino Uno WiFi Rev 2 Features I noticed</title><link>https://www.baldengineer.com/arduino-uno-wifi-rev-2-features-i-noticed.html</link><pubDate>Tue, 22 May 2018 02:10:34 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=7217</guid><description>Arduino announced several new products at the 2018 Bay Area Maker Faire. One of those products is the Uno WiFi Rev 2. (Check out this post for an introduction to the MKR Vidor 4000, an FPGA-based board. You can read their official announcement here. This new Uno board represents a significant upgrade for the 8-bit family of Arduino boards. However, I do have a few reservations.&#10;Arduino Uno WiFi Rev 2 Starting off, I am not happy with the name. It is too long. For that reason, I am going to keep using the full name in this post to demonstrate why I don’t like it. Another reason I’m grumpy it that new microprocessor makes it incompatible with 328p code. That said,sketches (and libraries) using only the Arduino library will (likely) work fine. Anything that uses registers, like direct port manipulation, will have issues. Just like moving to any other architecture supported by the IDE. However, because it has the name “Uno,” many users will be tripped up by incompatibilities.<p><img src="https://www.baldengineer.com/wp-content/uploads/2018/05/Uno-WiFi-Rev-2-Silk-Close-Up.jpg" alt="Arduino Uno WiFi Rev 2 Features I noticed"/></p></description></item><item><title>MKR Vidor 4000 brings FPGA to Makers</title><link>https://www.baldengineer.com/mkr-vidor-4000-brings-fpga-to-makers.html</link><pubDate>Mon, 21 May 2018 21:44:26 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=7207</guid><description>Arduino announced several new products at the 2018 Bay Area Maker Faire. One of those products is the MKR Vidor 4000, an FPGA-based board. You can read their official announcement here. (Over here is a write-up on the new Uno WiFi Rev 2.) The goal of the MKR Vidor is to make FPGA accessible to makers and innovators. It represents a new shift in hardware focus for the Arduino team.&#10;An FPGA is a Field Programmable Gate Array. In other words, it is reconfigurable hardware. Unlike a microcontroller, an FPGA is not running software. Instead, its gate array changes configurations for a specific task.<p><img src="https://www.baldengineer.com/wp-content/uploads/2018/05/Massimo-introducing-MKR-4000.jpg" alt="MKR Vidor 4000 brings FPGA to Makers"/></p></description></item><item><title>DIY Arduino PCB Pryamiduino (Video)</title><link>https://www.baldengineer.com/diy-arduino-pcb-pryamiduino.html</link><pubDate>Wed, 28 Feb 2018 14:00:03 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=7043</guid><description>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.<p><img src="https://www.baldengineer.com/wp-content/uploads/2018/02/24-YouTube-Thumbnail-Template-v1-1920px.jpg" alt="DIY Arduino PCB Pryamiduino (Video)"/></p></description></item><item><title>DIY Arduino Schematic board and Checklist</title><link>https://www.baldengineer.com/diy-arduino-schematic-checklist.html</link><pubDate>Wed, 17 Jan 2018 14:00:18 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=6915</guid><description>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.&#10;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.<p><img src="https://www.baldengineer.com/wp-content/uploads/2018/01/DIY-Arduino-Schematic-800px.jpg" alt="DIY Arduino Schematic board and Checklist"/></p></description></item><item><title>Arduino Keyboard Matrix Code and Hardware Tutorial</title><link>https://www.baldengineer.com/arduino-keyboard-matrix-tutorial.html</link><pubDate>Fri, 15 Dec 2017 14:00:26 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=6830</guid><description>As a kid, I got the book " Upgrading and Repairing PCs." (Now in its 22nd edition.) It was the first book to explain to me the PC architecture. I considered, how were there so few pins on an AT-style keyboard connector when there were 101 keys on the keyboard? That is when I first learned about the keyboard matrix.&#10;Intel_P8049_AH_controller&#10;The keyboard matrix itself did not amaze me, but instead the idea there was an entirely separate 8-bit microcontroller inside of the keyboard. Early keyboards may have used the P8049AH, which, there is still some stock available to purchase. I was fascinated with the idea an entire computer was necessary to run the keyboard, to use my “real” computer. Why did it take something as complicated as a microcontroller?<p><img src="https://www.baldengineer.com/wp-content/uploads/2017/12/keyboard-matrix-tutorial.png" alt="Arduino Keyboard Matrix Code and Hardware Tutorial"/></p></description></item><item><title>PicoScope 2204 Review and Hands-On</title><link>https://www.baldengineer.com/picoscope-2204-review.html</link><pubDate>Wed, 13 Sep 2017 12:21:32 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=6716</guid><description>If you need a reason to be an Element 14 member, let me suggest their Road Test program. Companies partner with Element14 to get people to try out their gear. A couple of years ago I got a new microcontroller board. This week I received a new test instrument. Here’s my hands-on Picoscope 2204 review.&#10;The scope is bus powered. With the BNCs and type-B USB connector, it is slightly larger than an external USB hard drive. There is not much weight to the device. It does not feel cheap, just lighter than I expected.<p><img src="https://www.baldengineer.com/wp-content/uploads/2017/09/picoscope-2204-review-1600px.jpg" alt="PicoScope 2204 Review and Hands-On"/></p></description></item><item><title>Sending simple serial commands to an Arduino</title><link>https://www.baldengineer.com/simple-serial-commands-arduino.html</link><pubDate>Wed, 01 Mar 2017 15:00:16 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=6376</guid><description>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.&#10;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.&#10;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.<p><img src="https://www.baldengineer.com/wp-content/uploads/2017/03/sending-simple-serial-commands-arduino-banner.jpg" alt="Sending simple serial commands to an Arduino"/></p></description></item><item><title>Multiple MQTT Topics with Arduino PubSubClient</title><link>https://www.baldengineer.com/multiple-mqtt-topics-pubsubclient.html</link><pubDate>Wed, 01 Feb 2017 13:00:22 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=6348</guid><description>In my Arduino MQTT Examples, I kept things simple by only subscribing to a single topic. One of the strengths of MQTT is that a device can subscribe (or publish) to multiple topics. The broker will sort things out. Even though my first example only showed one, it is straight forward to get the Arduino PubSubClient library to subscribe to Multiple MQTT topics.&#10;The quick answer is that you need to look at the MQTT response to find out which topic sent the payload.<p><img src="https://www.baldengineer.com/wp-content/uploads/2017/02/multiple-mqtt-topics-banner-760px.jpg" alt="Multiple MQTT Topics with Arduino PubSubClient"/></p></description></item><item><title>5 Common Arduino Programming Mistakes</title><link>https://www.baldengineer.com/5-common-arduino-programming-mistakes.html</link><pubDate>Wed, 17 Aug 2016 13:39:41 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=6145</guid><description>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.&#10;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.<p><img src="https://www.baldengineer.com/wp-content/uploads/2016/08/5-common-arduino-programming-mistakes.jpg" alt="5 Common Arduino Programming Mistakes"/></p></description></item><item><title>Arduboy Review and Hands-On</title><link>https://www.baldengineer.com/arduboy-review-hands.html</link><pubDate>Wed, 06 Jul 2016 13:00:37 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=6089</guid><description>When it comes to Kickstarters, I have been relatively lucky. Most of the projects I back have shipped, even if years after I forgot. However, few Kickstarters are something I use on a regular basis. The Arduboy has been a pleasant surprise. This Kickstarter-backed project packages the ease of programming an Arduino into a game playing friendly form factor. Here’s my first Arduboy review, impressions and hands-on experience.&#10;Looking back at when I was a kid, there were two gifts I received that made an impact in my life. I have them both to this day: my RadioShack Multimeter and my Nintendo Gameboy. No wonder that my two geek passions have always been electronics and (retro) video games. The Arduboy is a fun little device that combines both! The hardware has the limitations of early 8-bit game machines but the accessibility of an Arduino.<p><img src="https://www.baldengineer.com/wp-content/uploads/2016/07/arduboy-review-hands-on-banner-760px.jpg" alt="Arduboy Review and Hands-On"/></p></description></item><item><title>Arduino Bootloader, What is it?</title><link>https://www.baldengineer.com/arduino-bootloader.html</link><pubDate>Wed, 15 Jun 2016 13:00:14 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=6066</guid><description>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.&#10;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.<p><img src="https://www.baldengineer.com/wp-content/uploads/2016/06/arduino-bootloader-banner.jpg" alt="Arduino Bootloader, What is it?"/></p></description></item><item><title>Why do engineers (love to) hate Arduino?</title><link>https://www.baldengineer.com/engineers-hate-arduino.html</link><pubDate>Wed, 20 Apr 2016 13:00:02 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=5983</guid><description>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?&#10;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.<p><img src="https://www.baldengineer.com/wp-content/uploads/2016/04/why-engineers-hate-arduino-v2.jpg" alt="Why do engineers (love to) hate Arduino?"/></p></description></item><item><title>Hands-on with Arduino Create and Arduino IoT</title><link>https://www.baldengineer.com/hands-arduino-create-arduino-iot.html</link><pubDate>Wed, 06 Apr 2016 13:00:00 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=5926</guid><description>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.&#10;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.<p><img src="https://www.baldengineer.com/wp-content/uploads/2016/04/Arduino-Create-and-Arduino-IoT-Hands-On-760px.jpg" alt="Hands-on with Arduino Create and Arduino IoT"/></p></description></item><item><title>How to Turn Your Arduino Prototype Into a Manufacturable Product</title><link>https://www.baldengineer.com/arduino-prototype-into-product.html</link><pubDate>Wed, 30 Mar 2016 14:00:33 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=5902</guid><description>This week’s post is from my friend John Teel. I asked him to help answer a common question I receive: " How do you make an Arduino project into a product?" His experience as an electronics design engineer and serial entrepreneur is ideal to talk about going from prototype to product. He has developed tech products that sell in the millions of units. John now helps entrepreneurs, startups, makers, and small companies bring new electronic products to market. Check out the company he founded, Predictable Designs, and his free cheat sheet - 18 Steps to Market for Your New Electronic Product after reading his excellent post below. Dreaming of bringing a new hardware product to market? Perhaps you think your product will make the world a better place, or maybe you just dream of making millions of dollars.<p><img src="https://www.baldengineer.com/wp-content/uploads/2016/03/arduino-prototype-to-product-r3.jpg" alt="How to Turn Your Arduino Prototype Into a Manufacturable Product"/></p></description></item><item><title>MQTT Tutorial for Raspberry Pi, Arduino, and ESP8266</title><link>https://www.baldengineer.com/mqtt-tutorial.html</link><pubDate>Wed, 24 Feb 2016 16:00:45 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=5799</guid><description>This week’s MQTT Tutorial connects a Raspberry Pi, ESP8266 (or Arduino), and a PC together. Remember last week’s post provided an overview of message brokers and MQTT. We learned that MQTT is a hub and spoke protocol for sending messages between IoT devices. Clients can subscribe or publish messages to a central server, called a broker.&#10;Now it’s time to connect our IoT devices together!&#10;For this MQTT tutorial, I have three main elements:&#10;• My Computer, which will act as the broker.&#10;• Raspberry Pi running Python&#10;• ESP8266 controlling an LED<p><img src="https://www.baldengineer.com/wp-content/uploads/2016/02/mqtt-tutorial-banner.jpg" alt="MQTT Tutorial for Raspberry Pi, Arduino, and ESP8266"/></p></description></item><item><title>MQTT Introduction and Tutorial Part One</title><link>https://www.baldengineer.com/mqtt-introduction.html</link><pubDate>Wed, 17 Feb 2016 16:00:25 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=5778</guid><description>MQTT is an easy way for Internet of Things (IoT) devices to communicate with each other. This light-weight protocol can be used with a simple 8-bit Arduino to a Raspberry Pi to a multi-core PC to Amazon Web Services. It is that versatile.&#10;This MQTT Tutorial is broken into two parts. Part one is an MQTT Introduction. You’ll understand how publish/subscribe message brokering works. Next week, Part two will be a tutorial on using MQTT to communicate between a PC, Raspberry Pi, and ESP8266.<p><img src="https://www.baldengineer.com/wp-content/uploads/2016/02/mqtt-tutorial-banner-mqtt-part-one.jpg" alt="MQTT Introduction and Tutorial Part One"/></p></description></item><item><title>Microcontroller state machine with enum tutorial</title><link>https://www.baldengineer.com/state-machine-with-enum-tutorial.html</link><pubDate>Wed, 29 Jul 2015 13:00:07 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=5251</guid><description>Flag variables are great, and totally not evil, when you just have two states: ON or OFF. What about when you have multiple states? Is there an option better than creating multiple flag variables?&#10;The C-language has a declaration type just for this purpose. It is called an enumeration, or enum.&#10;Setting up a state machine with enum is a surprisingly simple. Arduino and embedded programmers should use them!&#10;All you need to do is create descriptive tag names, and let the compiler assign them an integer value. Unlike a #define which is just a macro replacement, the compiler treats an enum as your personal variable type.<p><img src="https://www.baldengineer.com/wp-content/uploads/2015/07/state-machines-with-enum-tutorial.jpg" alt="Microcontroller state machine with enum tutorial"/></p></description></item><item><title>Flag variables are not evil (for Microcontrollers)</title><link>https://www.baldengineer.com/flag-variables-are-not-evil-for-microcontrollers.html</link><pubDate>Wed, 15 Jul 2015 13:00:13 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=5206</guid><description>Getting programming questions answered on the internet can be problematic. Programmers love to have opinions, stick to those ideas, and express them to you even when their opinion has nothing to do with your question(s).&#10;Not only am I going to explain how to use flag variables in your code, I am going to encourage their use—which most programmers avoid.&#10;However, this advice comes with two caveats.&#10;This information only applies to limited resource environments like an Arduino, LaunchPad or PIC. Use flag variables very carefully when you do use them. The following flag variable usage examples are Arduino-centric but apply to any microcontroller platform, including the Energia project for TI Launchpads.&gt; Flag variables are a Good Thing(tm) – when used properly<p><img src="https://www.baldengineer.com/wp-content/uploads/2015/07/fun-with-flag-variables.png" alt="Flag variables are not evil (for Microcontrollers)"/></p></description></item><item><title>Which Arduino Starter Kit is the Best?</title><link>https://www.baldengineer.com/which-arduino-starter-kit-is-the-best.html</link><pubDate>Wed, 01 Jul 2015 13:00:33 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=5136</guid><description>The other day my friend called me up. He told me how much he missed building circuits and wanted to start again with the Arduino.&#10;So he asked me “which Arduino starter kit is the best to buy?” At which point, I drew a long breath. Easy question, not always an easy answer.&#10;Picking out an electronics kit depends on a number of factors. You should consider:&#10;Your budget What you already have What you want to do #1 and #2 are probably pretty easy to figure out. For many beginners, it’s “not much” and “nothing.” When you don’t know #3, what you want to do, then it gets trickier. Coming back to my friend, what did I do? Well, I went out and bought each one of the kits in this post. I put myself in his shoes and maybe these are your shoes as well.<p><img src="https://www.baldengineer.com/wp-content/uploads/2015/07/which-kit-is-best.jpg" alt="Which Arduino Starter Kit is the Best?"/></p></description></item><item><title>Pushbutton and Flashing LED tutorial with millis()</title><link>https://www.baldengineer.com/pushbutton-and-flashing-led-tutorial-with-millis.html</link><pubDate>Wed, 06 May 2015 14:00:21 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=4930</guid><description>How to blink (or flash) a LED without delay() and detect button pushes One of the limitations of the delay() function is that nothing else can really be done. This presents a problem when you want to flash a LED while waiting for a pushbutton to be pressed.&#10;Flashing the LED with millis() and using a flag variable to find if the LED should be flashing solves this problem.&#10;Consider this another example to my virtual millis() cookbook.<p><img src="https://www.baldengineer.com/wp-content/uploads/2015/05/pushbutton-and-millis_bb-fixed2.png" alt="Pushbutton and Flashing LED tutorial with millis()"/></p></description></item><item><title>Check-out these seven new features in the Arduino 1.6 release</title><link>https://www.baldengineer.com/seven-new-features-in-arduino-1-6-release.html</link><pubDate>Wed, 25 Mar 2015 16:15:00 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=4461</guid><description>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!&#10;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.<p><img src="https://www.baldengineer.com/wp-content/uploads/2015/03/arduino-1-6-1-glossy.png" alt="Check-out these seven new features in the Arduino 1.6 release"/></p></description></item><item><title>An example of when comments would have helped</title><link>https://www.baldengineer.com/comments-can-help.html</link><pubDate>Tue, 07 Oct 2014 14:00:05 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=2679</guid><description>What was one of the first things you were taught, when learning to program? “Comment Your Code!” And of course, like all programming students, you ignored that advice. Or, if you are like me, you made vague comments as the lines of “variable called var.”&#10;Tonight I opened up some code I haven’t touched in two years. Code that when I wrote it, made perfect sense to me… at the time.<p><img src="https://www.baldengineer.com/wp-content/uploads/2012/09/comments_binboo_banner.png" alt="An example of when comments would have helped"/></p></description></item><item><title>First Impressions of Electron, a new Node.js IDE for Arduino</title><link>https://www.baldengineer.com/first-impressions-of-electron-a-new-nodejs-ide-for-arduino.html</link><pubDate>Mon, 07 Jul 2014 14:00:53 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=2527</guid><description>The Arduino IDE is great in that with a single download on any PC platform, new users can start writing code and see immediate results. The same simplicity though, limits some of the more “advanced” features found in modern editors. Also one of the IDE’s greatest strengths is cross-platform through Java. This is also one of its weaknesses. Java is outdated and it’s time to move on.&#10;There’s a slew of other Arduino development environments out there, but most of them are limited to 1 or 2 platforms. Electron is a novel idea because it is based on Node.js, meaning it runs in Google’s Chrome.<p><img src="https://www.baldengineer.com/wp-content/uploads/2012/09/electron-banner.png" alt="First Impressions of Electron, a new Node.js IDE for Arduino"/></p></description></item><item><title>"Post your code" to the style of "Let it Be"</title><link>https://www.baldengineer.com/post-your-code-to-the-style-of-let-it-be.html</link><pubDate>Mon, 09 Jun 2014 15:00:06 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=2480</guid><description>A friendly reminder video to everyone asking for help in a programming forum.&#10;Lately I’ve been looking for ways to expand on the content in the AddOhms YouTube channel. One of the thoughts I had were taking some of the hard engineering lessons and turning them into a “Public Service Announcement”. You know, like those short films that would run on TV after school or NBC’s famous " The More You Know." Not something so dry, but something at least a little entertaining.<p><img src="https://www.baldengineer.com/wp-content/uploads/2012/09/post-your-code-banner.png" alt="&amp;#34;Post your code&amp;#34; to the style of &amp;#34;Let it Be&amp;#34;"/></p></description></item><item><title>Teach your Arduino to listen with µSpeech</title><link>https://www.baldengineer.com/teach-your-arduino-to-listen-with.html</link><pubDate>Tue, 08 Apr 2014 15:00:11 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=2299</guid><description>When most people say “Arduino” they mean an ATmega328 based board like the Uno. This means a simple 8-bit microcontroller with only 2K of RAM. That’s 2,048 bytes of memory to work with. So when someone asked me if the Arduino could do speech recognition, to be honest, I laughed. Then my jaw dropped when I saw µSpeech. A speech recognition library for the Arduino Uno’s ATmega328.&#10;The algorithm used is sophisticated and results will vary based on the types of words used as well as the hardware. It uses only 160 bytes of RAM.<p><img src="https://www.baldengineer.com/wp-content/uploads/2012/09/uSpeech-Banner.png" alt="Teach your Arduino to listen with µSpeech"/></p></description></item><item><title>9V Batteries Suck -- And why you shouldn't use them.</title><link>https://www.baldengineer.com/9v-batteries-suck.html</link><pubDate>Fri, 14 Feb 2014 12:00:37 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=2296</guid><description>Smoke detectors beep when their backup battery dies, which always seems to occur in the middle of the night (at least for me.) These backup batteries are usually a small rectangular 9V. They have become popular choices for electronics projects. If you need your Arduino project to last longer than a day, this isn’t the battery you want to use. Here’s why.&#10;What is a 9V Battery The 9v battery comes in a standard package about 25mm wide, 16mm tall, and 47mm long. On top there are standard snap-style connectors. The design of these connectors prevents you from attaching the battery backwards.<p><img src="https://www.baldengineer.com/wp-content/uploads/2012/09/9v_batterys_suck_banner.png" alt="9V Batteries Suck -- And why you shouldn&amp;#39;t use them."/></p></description></item><item><title>5 Myths Everyone Believes about Arduino (that aren't true)</title><link>https://www.baldengineer.com/5-arduino-myths.html</link><pubDate>Wed, 01 Jan 2014 12:00:59 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=2232</guid><description>Having spent the past 6 years writing code for the Arduino platform, I’ve noticed a trend in myths from both newcomers and veteran users. Here are the Top 5 Myths I see come up on forums, in classes, and on IRC.&#10;1. The Arduino uses its own Language This myth isn’t helped by the Arduino.cc home page used to say&#10;“T he microcontroller on the board is programmed using the Arduino programming language.”<p><img src="https://www.baldengineer.com/wp-content/uploads/2012/09/arduino_myths_banner.png" alt="5 Myths Everyone Believes about Arduino (that aren&amp;#39;t true)"/></p></description></item><item><title>AddOhms #7 - Comparing Arduino and Raspberry Pi</title><link>https://www.baldengineer.com/addohms-7-comparing-arduino-and-raspberry-pi.html</link><pubDate>Mon, 16 Dec 2013 12:00:59 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=2127</guid><description>The seventh AddOhms TutorialCast has gone “live”. (Gone “uploaded” sounds wrong.) Being able to understand difference between an Arduino and a Pi is a critical point for many new electronics hobbyist. The boards seem so similar, but they are so different. AddOhms #7: Comparing the Arduino and Raspberry Pi&#10;Full Episode Notes are available on the Episode’s homepage.<p><img src="https://www.baldengineer.com/wp-content/uploads/2012/09/addohms-ep7-banner.png" alt="AddOhms #7 - Comparing Arduino and Raspberry Pi"/></p></description></item><item><title>Arduino: Chasing LEDs with millis()</title><link>https://www.baldengineer.com/arduino-chasing-leds-with-millis.html</link><pubDate>Thu, 12 Dec 2013 12:00:34 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=2117</guid><description>A popular LED project is the “Larson Scanner.” This scanner emulates the effect seen on KIT from Knight Rider and the Cylons in Battlestar Galactica. The code is usually written using “delay()” which means you can’t combine it with anything else. The following code could be put into a function, called periodically and allow your code to scan while doing other things.&#10;One thing to note, a proper Larson Scanner has some persistence to the next and previous LEDs, this code does not. Maybe that would be a good exercise for the reader?<p><img src="https://www.baldengineer.com/wp-content/uploads/2012/09/millis-chasing-led-larson-scanner-banner.png" alt="Arduino:  Chasing LEDs with millis()"/></p></description></item><item><title>A week of Arduino Millis()</title><link>https://www.baldengineer.com/a-week-of-arduino-millis.html</link><pubDate>Mon, 09 Dec 2013 13:25:24 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=2079</guid><description>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().&#10;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.<p><img src="https://www.baldengineer.com/wp-content/uploads/2012/09/a-week-of-millis-banner.png" alt="A week of Arduino Millis()"/></p></description></item><item><title>The hidden Arduino Macro F() fixes random lock ups</title><link>https://www.baldengineer.com/arduino-f-macro.html</link><pubDate>Wed, 20 Nov 2013 12:25:33 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=1995</guid><description>It’s 3am but you are not going to bed until you squash this last bug. You sprinkle Serial.print() statements everywhere you can think of, and then that’s when all hell breaks loose: Your code randomly locks up, the LEDs go crazy, and you’ve had it. What’s going on? You’ve run out of RAM!&#10;All of those Serial.print() statements are composed of c-style strings. Which are “constant character arrays.” In order for those arrays to work properly, they get loaded into the ATmega’s RAM before your code starts running. Which can be a problem because 2,048 bytes of RAM doesn’t allow for much.</description></item><item><title>Three Alternatives to Arduino's Serial Monitor</title><link>https://www.baldengineer.com/alternatives-to-arduinos-serial-monitor.html</link><pubDate>Tue, 19 Nov 2013 11:39:29 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=1839</guid><description>The Arduino IDE includes a “Serial Monitor” which is decent for basic serial communication. However, when you need real time serial interaction or data logging capabilities, that’s when one of these serial monitor alternatives can come in handy.&#10;putty [Windows] Download: PuTTY. License: MIT.&#10;Hands-down one of my favorite terminal applications for Windows is PuTTY from Simon Tatham. In addition to being a great serial terminal it can also handle telnet, ssh, and a host of other things (no pun intended). The source is available and looks like it runs on UNIX platforms, but I have never tried. If you’re using Windows, this is probably your best go-to terminal application. Every Windows machine I use gets PuTTY in the Start Menu shortcuts.<p><img src="https://www.baldengineer.com/wp-content/uploads/2012/09/serial-alt-banner.png" alt="Three Alternatives to Arduino&amp;#39;s Serial Monitor"/></p></description></item><item><title>Const vs #define - When do you use them and why?</title><link>https://www.baldengineer.com/const-vs-define-when-do-you-them-and-why.html</link><pubDate>Thu, 14 Nov 2013 11:13:40 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=1944</guid><description>Arduino boards have microcontrollers with notoriously small amounts of RAM. The Uno only has 2,048 bytes of static RAM available for your program to store variables. So when you need to keep non-changing variables out of RAM which is best to use const or #define?&#10;What is #define #define is often misunderstood because it isn’t a programming statement. Instead, it sets up a macro which causes a text replace to occur before code is compiled. For example in this code:</description></item><item><title>Learn how to use a Mixed Signal Oscilloscope</title><link>https://www.baldengineer.com/learn-how-to-use-a-mixed-signal-oscilloscope.html</link><pubDate>Tue, 24 Sep 2013 02:15:33 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=1894</guid><description>When I teach the Electronics Measurements class at the TechShop in Austin, I take a lot of pride in showing off the Mixed-Signal Oscilloscope. We have a Rigol DS1102D as well as a standard DSO. To help illustrate the power of the combined digital and analog channels, I created a Mixed Signal Oscilloscope Demo Board, based on a counter, that has an issue that could be turned on or off. This board is also my first time making use of OSH Park’s PCB service.<p><img src="https://www.baldengineer.com/wp-content/uploads/2012/09/MSO-Update-Banner.png" alt="Learn how to use a Mixed Signal Oscilloscope"/></p></description></item><item><title>Ouch. The Arduino GSM shield has a pretty serious design flaw, with its capacitors.</title><link>https://www.baldengineer.com/ouch-the-arduino-gsm-shield-has-a-pretty-serious-design-flaw-with-its-capacitors.html</link><pubDate>Sat, 14 Sep 2013 02:44:39 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=1867</guid><description>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!<p><img src="https://www.baldengineer.com/wp-content/uploads/2012/09/tantalum-gsm-post2.png" alt="Ouch. The Arduino GSM shield has a pretty serious design flaw, with its capacitors."/></p></description></item><item><title>MSO Demo Board</title><link>https://www.baldengineer.com/mso-demo-board.html</link><pubDate>Mon, 26 Aug 2013 00:10:15 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?page_id=1854</guid><description>Last Update: 09/24/2013&#10;Status: Done&#10;Github: https://github.com/baldengineer/Mixed-Signal-Oscilloscope-Demo-Board&#10;Abstract As a member of the TechShop in Austin, TX I teach a class on Electronics Measurements. The class includes a variety of test equipment like power supplies, DMMs, and Rigol oscilloscopes. One of the oscilloscopes is a Rigol DS1052D which is a “Mixed Signal Oscilloscope.” In addition to the two 100MHz analog channels, the scope also include 16 digital channel channels. It is a logic analyzer and oscilloscope in one!<p><img src="https://www.baldengineer.com/wp-content/uploads/2013/08/9908664665_4aeb2b343c_n.jpg" alt="MSO Demo Board"/></p></description></item><item><title>Sawtooth waveform with the Arduino Due's Built-In DAC</title><link>https://www.baldengineer.com/sawtooth-waveform-with-the-arduino-dues-built-in-dac.html</link><pubDate>Fri, 08 Feb 2013 00:36:18 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=1533</guid><description>Users of the ATmega328 based Arduino boards will recognize that the analogWrite() function doesn’t actually do anything analog. It just sets the duty cycle of a pulse width modulated (PWM) signal. The (new) Arduino Due board, which I have had limited time to play with, actually sports two Analog DAC channels. Using a very simple for() loop, it is possible to generate a sawtooth waveform using these channels.<p><img src="https://www.baldengineer.com/wp-content/uploads/2012/09/sawtooth-banner.png" alt="Sawtooth waveform with the Arduino Due&amp;#39;s Built-In DAC"/></p></description></item><item><title>First impressions of the Arduino Due</title><link>https://www.baldengineer.com/my-first-impressions-of-the-arduino-due.html</link><pubDate>Fri, 23 Nov 2012 04:49:45 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=1392</guid><description>I’ve been working with Arduino boards for a number of years, as shown by the dates on some of my older blog posts. In that time I’ve only used boards based on the ATmega8 (like the Duemilanove or Uno). The Due is the first Arduino board I have used in what I would call the Mega form factor.&#10;Physical Differences I’m surprised by the size difference. I’ve always thought the original Arduino form factor was small, the Due is larger but still feels small.<p><img src="https://www.baldengineer.com/wp-content/uploads/2012/09/due-ports_banner.png" alt="First impressions of the Arduino Due"/></p></description></item><item><title>How to Fix: Arduino is damaged and can't be opened</title><link>https://www.baldengineer.com/how-to-fix-arduino-is-damaged-and-cant-be-opened.html</link><pubDate>Fri, 23 Nov 2012 03:06:52 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=1394</guid><description>Open source software that isn’t signed by an identified developer can cause headaches upgrading it on OSX. While working with the Arduino Due the first time, I downloaded 1.5 Beta of the Arduino IDE and ran into this error:&#10;“Arduino is damaged and can’t be opened. You should move it to the Trash.&#10;Here’s why you see the “… is damaged and can’t be opened” dialog and how to fix it.<p><img src="https://www.baldengineer.com/wp-content/uploads/2012/09/gatekeeper-banner.png" alt="How to Fix:  Arduino is damaged and can&amp;#39;t be opened"/></p></description></item><item><title>LED Matrix Arduino Shield</title><link>https://www.baldengineer.com/led-matrix-arduino-shield.html</link><pubDate>Sat, 06 Oct 2012 16:28:07 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?page_id=1291</guid><description>Status: Completed&#10;GitHub: https://github.com/baldengineer/8x6-LED-Matrix-Shield&#10;Abstract After getting a couple of flashing lights working on a microprocessor, the next fun project is generally building some kind of Matrix. At first I built a 5x5 LED matrix which was relatively simple to solder together. When trying to make one much larger, the task because significantly more complex. That’s when I decided to build a LED Matrix Shield for the Arduino which did not use Charliplexing, like the LoL shield. I wanted something that was simpler to understand and (ultimately) code for. Unfortunately, 5mm LEDs means 8 columns x 6 rows, instead of the traditional 8x8.<p><img src="https://www.baldengineer.com/wp-content/uploads/2012/10/youtube-1GKAh_ezETU.jpg" alt="LED Matrix Arduino Shield"/></p></description></item><item><title>Arduino: Getting Real Time Help</title><link>https://www.baldengineer.com/arduino-getting-real-time-help.html</link><pubDate>Mon, 13 Aug 2012 09:30:08 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=1155</guid><description>Note: The IRC Channel (along with all of Freenode) got nuked.&#10;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.&#10;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.<p><img src="https://www.baldengineer.com/wp-content/uploads/2012/09/Screen-Shot-2012-08-12-at-9.03.39-PM.png" alt="Arduino:  Getting Real Time Help"/></p></description></item><item><title>Arduino: Sending and Receiving Multi-Digit Integers</title><link>https://www.baldengineer.com/arduino-multi-digit-integers.html</link><pubDate>Mon, 30 Jul 2012 09:18:32 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=1105</guid><description>When Serial data is transmitted to an Arduino, it is sent one byte at a time. Even though you might type “123” in the Serial Monitor, that’s not quite what is sent. Instead the bytes “1” then “2” then “3” are sent. Once received into a buffer on the Arduino, these individual bytes need to be reassembled into something useful. The Arduino IDE provides Serial.readBytes() as one option. However, if you aren’t sure how many digits you are going to receive, this may not work. So another option is to use Serial.readBytesUntil() like so:<p><img src="https://www.baldengineer.com/wp-content/uploads/2012/07/Serial-Monitor-123.png" alt="Arduino:  Sending and Receiving Multi-Digit Integers"/></p></description></item><item><title>Arduino: How do you reset millis() ?</title><link>https://www.baldengineer.com/arduino-how-do-you-reset-millis.html</link><pubDate>Mon, 16 Jul 2012 14:00:42 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=861</guid><description>The quick answer to “How do you reset millis()” is: You Don’t! And here’s why: if you did, it would potentially break most libraries and functions that rely on it. Generally the reason people want to reset it, is that they are concerned about rollover. Instead of focusing on resetting millis(), here is how to use it correctly.&#10;Need to brush up on how millis() works? I’ve got a tutorial on how to effectively multi-task with millis() and another line-by-line tutorial on blink Without delay Avoiding rollover and checking how much time as passed is done in a single line:<p><img src="https://www.baldengineer.com/wp-content/uploads/2012/07/stopwatch_000018042439.jpg" alt="Arduino:  How do you reset millis() ?"/></p></description></item><item><title>(Accurate) RTC Shield Rev2</title><link>https://www.baldengineer.com/accurate-rtc-shield-rev2.html</link><pubDate>Sun, 08 Jul 2012 00:02:39 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=935</guid><description>Accurate RTC Shield with Kapton Stencil&#10;For the past couple of weeks I have been working with the DS3231 Maxim. This chip is a I2C based RTC with an integrated temperature compensated oscillator and crystal.This means despite changing temperature conditions, it will maintain a very accurate track of time. If you’re interested in the first rev of the PCB, let me know. I have a few available. They are functional, however, the prototyping area came bad.I have a set of new ones with a proper prototyping area, reset button, and power LED in process.</description></item><item><title>Accurate RTC Shield</title><link>https://www.baldengineer.com/accurate-rtc-shield.html</link><pubDate>Tue, 29 May 2012 03:32:24 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?page_id=867</guid><description>Status: In Progress, Last Update: October 14, 2012&#10;GiHub: https://github.com/jamesc4s/Accurate-RTC-Shield&#10;Abstract The DS3231 is a Precise Real-Time Clock from Maxim. It requires almost no external components and is temperature compensated. This chip solves some of the RTC issues associated with the DS1307. This Arduino shield will make it simple to add a RTC to any project, especially one where lost time is not acceptable.&#10;Electronics Parts list:<p><img src="https://www.baldengineer.com/wp-content/uploads/2014/12/ds3231_shield_125px.jpg" alt="Accurate RTC Shield"/></p></description></item><item><title>Fuelling Your Arduino - Thermal Look at Arduino Power</title><link>https://www.baldengineer.com/fuelling-your-arduino-thermal-look-at-arduino-power.html</link><pubDate>Fri, 25 May 2012 13:52:05 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=843</guid><description>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).<p><img src="https://www.baldengineer.com/wp-content/uploads/2012/05/7193726194_761499da74_z.jpg" alt="Fuelling Your Arduino - Thermal Look at Arduino Power"/></p></description></item><item><title>Binary + Bamboo = BinBoo</title><link>https://www.baldengineer.com/binary-bamboo-binboo.html</link><pubDate>Sun, 20 May 2012 00:22:14 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=830</guid><description>Several months ago I started a project to build a Binary Clock, using a Laser Cut enclosure. The plan was to use Ponoko’s laser cutting service. Looking through the materials available, I decided to use Bamboo. Knowing I was going to build a Bamboo enclosure for a Binary clock, helped me come to the name BinBoo. Even though I call it a Binary Clock, it is actually a BCD clock…<p><img src="https://www.baldengineer.com/wp-content/uploads/2014/12/binboo_1_125px.jpg" alt="Binary + Bamboo = BinBoo"/></p></description></item><item><title>Measuring Battery Capacity</title><link>https://www.baldengineer.com/measuring-battery-capacity.html</link><pubDate>Mon, 09 Apr 2012 17:19:01 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=805</guid><description>Why is choosing a simple AA battery such a daunting selection process? Manufacturers are keen on giving their products different names and brag about the chemical technology that makes them up. However, it is nearly impossible to make package-to-package comparisons of the battery’s capacitor.&#10;Denis Hennessay has a GREAT write up on Measuring Battery Capacity with an Arduino. In addition to full details on how his project works, Denis even shares the results of several AA batteries. Nice!<p><img src="https://www.baldengineer.com/wp-content/uploads/2012/04/bat_graph.png" alt="Measuring Battery Capacity"/></p></description></item><item><title>MSGEQ7 Simple Spectrum Analyzer</title><link>https://www.baldengineer.com/msgeq7-simple-spectrum-analyzer.html</link><pubDate>Sat, 07 Jan 2012 08:51:32 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?page_id=719</guid><description>Abstract Mixed Signal Integration has a cool little chip that has 7 built-in bandpass filters. Run an audio signal through it and you have an instant audio spectrum analyzer! This is a simple spectrum analyzer based on an Arduino. Each of the 5 LEDs represent a single section of the chip’s 7 sections of audio spectrum.&#10;MSGEQ7 on Adafruit Protoboard&#10;Electronics If you want to replicate this setup, here is the hardware you’ll need to get.<p><img src="https://www.baldengineer.com/wp-content/uploads/2012/01/youtube-_zYF9EcAwRg.jpg" alt="MSGEQ7 Simple Spectrum Analyzer"/></p></description></item><item><title>Arduino Comparison Chart</title><link>https://www.baldengineer.com/arduino-comparison-chart.html</link><pubDate>Sat, 07 Jan 2012 05:30:45 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?page_id=730</guid><description>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.</description></item><item><title>Added a G-Docs comparison chart to help pick an Arduino</title><link>https://www.baldengineer.com/picking-an-arduino-board-comparison-chart.html</link><pubDate>Sat, 07 Jan 2012 04:37:44 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=743</guid><description>Can’t decide which Arduino Board is for you? Have a board you want others to know about? This Google Docs Spreadsheet compares some of the key attributes of various Arduino boards. Whether you are trying to decide which one to buy or just want to know the differences, this chart can help.<p><img src="https://www.baldengineer.com/wp-content/uploads/2012/01/arduino-comp-chart-img-300x139.png" alt="Added a G-Docs comparison chart to help pick an Arduino"/></p></description></item><item><title>Arduino Internal Pull-Up Resistor Tutorial</title><link>https://www.baldengineer.com/arduino-internal-pull-up-resistor-tutorial.html</link><pubDate>Fri, 30 Dec 2011 07:31:32 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?page_id=704</guid><description>When hooking up switches or buttons to an Arduino I/O pin, sometimes the results might appear completely random. Sometimes it will appear as though there is a delay from when the button is pressed until the state of the pin actually changes. Other times the pin’s value will seem to randomly fluctuate from HIGH to LOW. Even more maddening might be as your finger gets closer to the switch, the pin’s state changes! The fix to these problems is simple: use the Arduino Internal Pull-up Resistor. Here’s how they can fix this problem and how you can use them with an Arduino board.<p><img src="https://www.baldengineer.com/wp-content/uploads/2011/12/youtube-jJnD6LdGmUo.jpg" alt="Arduino Internal Pull-Up Resistor Tutorial"/></p></description></item><item><title>Spotting Arduino Clones</title><link>https://www.baldengineer.com/spotting-arduino-clones.html</link><pubDate>Mon, 26 Dec 2011 23:40:20 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=600</guid><description>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.<p><img src="https://www.baldengineer.com/wp-content/uploads/2011/12/6578137169_07cab589d0.jpg" alt="Spotting Arduino Clones"/></p></description></item><item><title>Video Tutorial: Buttons and Pull-Ups</title><link>https://www.baldengineer.com/video-tutorial-buttons-and-pull-ups.html</link><pubDate>Mon, 19 Dec 2011 05:20:26 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=565</guid><description>This is a 4-minute video version of the Arduino Pull-Up Tutorial:</description></item><item><title>BinBoo - Binary Clock</title><link>https://www.baldengineer.com/binboo.html</link><pubDate>Sat, 10 Dec 2011 08:33:23 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?page_id=558</guid><description>Status: Completed Hackster.io Project Page: https://www.hackster.io/baldengineer/binboo Github Code: https://github.com/baldengineer/BinBoo GitHub Repository for BinBoo&#10;BinBoo Binary Clock made out of Bamboo&#10;Abstract Binary + Bamboo = BinBoo. This project is my first attempt at making a laser-cut enclosure. Ponoko was used to cut the project which holds itself together. The LEDs are driven by an Arduino-based clock that incorporates a RTC1307, FTDI chip, ATmega328, and TLC5940.<p><img src="https://www.baldengineer.com/wp-content/uploads/2011/12/youtube-7KnUqjA6JTE.jpg" alt="BinBoo - Binary Clock"/></p></description></item><item><title>The Making of Arduino - IEEE Spectrum</title><link>https://www.baldengineer.com/the-making-of-arduino.html</link><pubDate>Fri, 28 Oct 2011 16:41:57 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=458</guid><description>Even knowing that the name Arduino was rooted in Italian, I have often wondered what it meant. David Kushner of IEEE Spectrum has a great write-up on the beginnings of the Arduino project.&#10;Great read. The most surprising thing to me is that over 250,000 official boards have sold since 2005. That isn’t counting clones and stand alones. Wow!</description></item><item><title>Binary Clock Control Board</title><link>https://www.baldengineer.com/binary-clock-control-board.html</link><pubDate>Fri, 28 Oct 2011 01:38:10 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/blog/2011/10/27/binary-clock-control-board/</guid><description>Untitled, a photo by JamesC4S on Flickr.&#10;Assembled control board. The processor is an ATmega328, RTC is DS1307 RTC, and LED driver is a TLC5904. There is also a FT232RL on the back side for USB to Serial connection, however, it doesn’t appear to be working.Next I’ll need to turn on the RTC and make sure it can actually keep time.</description></item><item><title>Arduino UNO SMD Amnesia</title><link>https://www.baldengineer.com/arduino-uno-smd-amnesia.html</link><pubDate>Thu, 20 Jan 2011 16:10:22 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=353</guid><description>On the Janurary 15, 2011 edition of Adafruit’s “Ask An Engineer” live video chat, I heard LadyAda mention something about “Arduino Amnesia.” After investing the situation a little further, it turns out there are some Issues with the new Arduino UNO Smd edition.&#10;A bug in the new bootloader can be triggered on power-cycle causing the SMD version of the board to not load the previously stored sketch. The good news is there is already a fix for the bug. Either return the board to your Official Distributor or use a ISP to program the new bootloader.<p><img src="https://www.baldengineer.com/wp-content/uploads/2011/01/MRI_head_side1.png" alt="Arduino UNO SMD Amnesia"/></p></description></item><item><title>millis() Tutorial: Arduino Multitasking</title><link>https://www.baldengineer.com/millis-tutorial.html</link><pubDate>Fri, 07 Jan 2011 04:01:55 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=294</guid><description>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().<p><img src="https://www.baldengineer.com/wp-content/uploads/2011/01/eca9168a883497e1bb33bd3a47ba1baa-300x197.png" alt="millis() Tutorial: Arduino Multitasking"/></p></description></item><item><title>iPad/Arduino Controlled KegBot, by Yelp</title><link>https://www.baldengineer.com/ipadarduino-controlled-kegbot-by-yelp.html</link><pubDate>Sat, 16 Oct 2010 16:25:03 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=287</guid><description>Engineers at Yelp have put together an Arduino and iPad controlled Keg-o-rator. By swiping their RFID they can track how much a person is drinking, collect statistics about how others enjoyed the beer (by rating it), and maintain a leader-board of the office. Everything used in the project is based on off-the-self components. My guess is that they are communicating between the iPad and Arduino over the iPod Dock’s i2c interface. It looks like they are using the PodGizmo iPod Dock Conntector Breakout board available at Kinetka Systems. Drink up!<p><img src="https://www.baldengineer.com/wp-content/uploads/2010/10/youtube-BwVoir5HSo4.jpg" alt="iPad/Arduino Controlled KegBot, by Yelp"/></p></description></item><item><title>8x6 LED Matrix Shield for Ardiuno</title><link>https://www.baldengineer.com/8x6-led-matrix-shield-for-ardiuno.html</link><pubDate>Mon, 27 Sep 2010 01:34:40 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=237</guid><description>This is a quick video demonstrating the LED Matrix Shield for the Arduino. This Matrix is an 8x6 “Normal” matrix. (It is not Chairleplexed.) Blue LEDs were used to give it a brilliant hue and to provide another source of light in dimly lit apartment homes. Only one row of the Matrix is lit up at one time. This is done to save power and because the ATMega processor of the Arduino cannot source or sink more than 200mA of current.<p><img src="https://www.baldengineer.com/wp-content/uploads/2010/09/youtube-1GKAh_ezETU.jpg" alt="8x6 LED Matrix Shield for Ardiuno"/></p></description></item><item><title>Flexible Print Circuit version of Arduino</title><link>https://www.baldengineer.com/flexible-print-circuit-version-of-arduino.html</link><pubDate>Wed, 30 Jun 2010 14:57:43 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=158</guid><description>The folks over at Seedstudio have created a first for Arduino: a FPC version! In the past, it was very common for this material to be used as interconnects between circuit boards in production products. The flexibility makes it simple to use and the ability to attach components directly saves space. These are just prototypes, but Seeedstudio is looking for ideas to help move into higher volume production. Who is going to make the first Arduino watch?</description></item><item><title>TLC5940 Painter PCB</title><link>https://www.baldengineer.com/tlc5940-painter-pcb.html</link><pubDate>Sun, 05 Apr 2009 19:11:09 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=129</guid><description>TLC5940NT Painter Board&#10;This screen shot is an all-layer view of my TLC5940 painter board. The 1st draft featured two TLC5940s, but I decided it made the board too large. Instead, I wanted the ability to mount the painter boards around the LED’s shadow box. This should make routing all the wires much easier.&#10;The board is approximately 1.25in x 3.5in. All signals have been routed on the top or bottom layers. Most of the components will mount on (or through) the top layer. Some coupling caps have been put on the bottom. Initially the board had a 7805 built in, to provide +5V to the painter boards and the arduino. Instead, I ripped that out and plan to use the regulator on the arduino instead. There are 6 data and power ports. SER-IN will either come from the host arduino, or from another painter board. SER-OUT contains 2 less pins than SER-IN. I included two surface mount buttons in the layout, so I could get some inputs back to the Arduino, these are entirely option and will only work on a single board.</description></item><item><title>Row Your Boat, Part 1</title><link>https://www.baldengineer.com/row-your-boat-part-1.html</link><pubDate>Thu, 26 Mar 2009 02:28:39 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=119</guid><description>This pattern is called Row Your Boat. As one of the strips starts to get brighter, a nearby strip will join in the fading. After completing a fade cycle, they start switching colors. There is a random strobe thrown in there as well. The first 10 seconds are with a diffuser (piece of paper), the last 10 seconds are without. The final panel will use a diffuser.&#10;The colors have no correction yet, so red is really dim and green is really bright. It looks like one of the channels of my TLC5940 is going bad. The center LED strip’s blue is very dim. I’m not going to look much into it right now though. Instead, I will wait until I fab a PCB for the 5940 (this weekend?)</description></item><item><title>LED Strip Fun, First Try</title><link>https://www.baldengineer.com/led-strip-fun-first-try.html</link><pubDate>Sun, 01 Mar 2009 15:28:33 +0000</pubDate><guid isPermaLink="false">https://www.baldengineer.com/?p=84</guid><description>Initially I tried to get a LCD screen working with my Illuminato based Arduino. After a couple of attempts I realized two things: 1. The Iluminato is not ready for prime time. and 2. I burned out the LCD. So I decided to move on to the LCD strips I have from Sparkfun.&#10;The program is pretty simple since I am using the PWM outputs. The first video is with the lights off and the second is with the lights on. I need work out the min / avg / max for the different colors. The next step is to create two columns (or rows) of LED strips, using a buffer chip.</description></item></channel></rss>