Welcome Visitor:


Common Arduino Errors and Warnings

This is my attempt to collate and explain the most common errors and warnings you get when compiling code for the Arduino and Arduino-like boards.


Expected primary expression before '.' token

This is usually because you used a class name instead of an instance of a class. One example would be if you created an instance of the LiquidCrystal class:

LiquidCrystal lcd(4, 5, 6, 7, 8, 9, 10);

And then used something like:


instead of:

1×10³²⁴ things to do with a chipKIT™ Lenny and a QuickIO. No. 2: Virtual Mouse.

Number two in my series of what to do with a Lenny and a QuickIO.

How about a mouse? Yeah, a mouse. Honest :)

Well, maybe not an actual mouse, but maybe make it control the mouse pointer in an "almost" usable way...?

The two potentiometers on the QuickIO could control the mouse position, and the buttons can be the mouse buttons for clicking, etc. That should work.

1x10³²⁴ things to do with a chipKIT™ Lenny and a QuickIO. No. 1: Autoclicker.

This is the first part of a new series entitled "1x10³²⁴ things to do with a chipKIT™ Lenny and a QuickIO". In it, I'm going to be exploring some of the cool things you could do in just a matter of seconds using the two boards combined.

This first one is an Autoclicker.

In a full production environment it is often desirable to be able to install the firmware on a device without needing either the source code or a full IDE environment with which to perform the upload. This is especially important when dealing with proprietary or copyrighted source code where distributing the source code to third parties would not be appropriate.

Document Category: 

Splitting Up Text in C

A common question I often find is:

How can I split this incoming data into parts?

It's especially asked in conjunction with reading data through serial. So I thought I'd introduce you to two completely different approaches, each with benefits and drawbacks depending on the kind of data you are splitting.

So you have some data coming in through serial, or some similar stream, and you need to cut it up into different parts. The two methods basically consist of either:

Flexible LED Fading

I'd like to introduce you to a method of fading RGB LEDs both smoothly and flexibly.

A common method of fading colours on the Arduino is to use simple for loops, such as:

Fast, Efficient Data Storage on an Arduino

Logging data on an Arduino is very much a trivial every-day task. Connect an SD card, open a file, and start printing data to it.

For many people that is good enough. It results in nice easily readable (by us humans) data.

But it's not fast. It's not efficient. It's perfectly fine for things like logging temperature every hour, or barometric pressure every 5 minutes, etc. But when you have large amounts of data to store very rapidly you have to think a little differently.

The Evils of Arduino Strings

Everyone, when they're starting out on the Arduino and similar boards, learns to use the String object for working with text. Or they think they do.

Well, you should forget all you think you have learned about using Strings on the Arduino, because it is all wrong.

Making accurate ADC readings on the Arduino

There are many sensors out there which output a voltage as a function of the supply voltage as their sensed value. Temperature sensors, light sensors, all sorts.

Measuring that voltage, and converting it in to real figures for whatever is being sensed is not actually as simple as you might at first think.

There are many examples on the internet for converting an ADC value into a voltage, but basically it boils down to:

The Finite State Machine

Many of the programming questions on the Arduino forum can be answered with one simple response:

Implement a "Finite State Machine."

But what actually is a "Finite State Machine"?