Arduino Simulators

Why would anyone need an Arduino simulator? You can get a board so easily and in such an affordable price. Well, sometimes you might be missing some parts of your circuit, and running the code on the emulator is always a good idea for debugging before trying it on the actual board!

There are a few simulators available (free or commercial), I have tried some of them. Some have very basic features and might require some extra skills for setting them up and using, some are very easy to use and provide great functionalities. Here is the list:

Has some nice GUI that can load sketches, and simulate the output on an actual Arduino Uno board (pins are highlighted when there is some interaction). You can provide feedback to the analog/digital ports through a dialog window that features sliders for setting the values. A big plus for this simulator is the debugger tool that allows you to watch variables at runtime!


  • Simuino (Free, Linux, source code available)
Simuino comes in two versions: as a web tool that can be used directly within your browser, as a standalone-terminal application. I’ve tried the web tool, which seems to be much easier to access than compile the source codes on my macbook.
The interface allows you to load your own sketch, use existing examples, edit sketch and then simulate the execution. The simulation part can be a bit tricky: You need to execute the simulation and then move to a different page that illustrates the board and the simulation. The simulator does not automatically execute you need to drive the execution process by clicking step+, step- buttons (like a debugger).


The most advanced simulator available (used to be free, now commercial) is the Virtual Breadboard. It features Arduino, Netduino and PIC microcontroller simulation. The main hit of this software is that you can simply setup your circuit by dragging components on a virtual breadboard, provide the sketch code and watch running with virtual LEDs blinking, motors running, LCDs showing characters and more. It features all the essential virtual hardware that you will need for simulating the basic Arduino examples and many more.

After evaluating your sketch through simulation you can also upload the sketch to your actual board through the Virtual Breadboard application.

More info about the book in Chapter 4.


Special thanks to Ira Laefsky for providing the first link.

OpenEnergyMonitor announces the Store!

Interested in monitoring your home’s power consumption? Chapter 11 discusses a bit about the OpenEnergyMonitor project and also presentes the essential components and schematics you need to build your own monitoring system based on the Arduino.

Now it has become even easier, since OpenEnergyMonitor has announced the electronic Shop that provides kits for building stuff like
the Home Energy Monitor Kit Bundle 868Mhz.

Femtoduino – the smallest Arduino clone available

An Italian guy (Fabio Varesano) has designed and built the smaller Arduino clone available:

It has almost the size of a Bluetooth module. Really great work and the most importantly, Fabio shares all essential resources so that one can build Femtoduino. The schematics are based on the Arduino Pro Mini by Sparkfun.

Now, Internet/Web of Things is much closer to hobbyists with projects that can be more pervasive and easily deployed!

Check the video link below to see also it’s size against an Arduino Uno board:


More information and links to schematics and instructions here.

**You can pre-order one here!**


Presentation about Cloud Platforms and Open Hardware

I have just given a lecture at the IEEE UCG Student Branch about Free/Open Cloud Platforms and interaction with Open Hardware. Open Hardware is great but communication with free and Open Cloud platforms is even better since it provides numerous opportunities for data management, automations and many more…imagination is your only limit!

Browse through the slides below and feel free to contact me for any questions.

The Book has been (finally) released!

Dear Arduino and IoT fans,

The time has come! The book has been finally released and you can purchase it right away through Createspace eBookStore. Soon it will also be available on Amazon and other online stores and bookstores worldwide!

You might also have noticed the new url address: has replaced

I would like to thank those you have sent emails expressing their interest in the book, the publication process and have sent constructive comments about the new site’s structure and layout.

I always remain at your disposal for questions, ideas, suggestions and corrections about the Book. All figures (full color and best available resolution) have also been added on the site for your convenience. The source code for each project will be added very shortly.

More info here:

You can also add my twitter account for direct news about IoT and Arduino updates: @BuildingIoT


PS: You do not need to subscribe to the new site. If for any reason you wish to be removed from this list, just reply to this message, replacing the subject with the word ‘remove’.

Using Breakout to connect your Arduino with the Internet (through your PC)

Breakout is a great tool that makes easier the communication of your Arduino board with the Internet (and thus Cloud platforms) using your computer as an intermediate node.

As also presented in Chapter 07 of the Book, connecting your Arduino to the Internet through your computer requires developing a small Java-Processing-bases application and using the Firmata library on the Arduino.

Breakout simplifies the process enabling us to create functional web-based interfaces to the physical world. To use it you need the following:

  • An Arduino board (Uno, Fio, Mega, Pro Mini, Duemilanove, etc).

Operation System:

  • Mac OS X 10.6 or higher
  • Windows 7 or higher
  • Ubuntu 11.10 64-bit


  • Java Runtime Environment version 1.6 or higher must be installed.

Web Browser:

  • Chrome version 14 or higher
  • Firefox version 7 or higher
  • Safari version 5 or higher

Mobile Web Browsers:

  • Safari
  • Firefox version 7 or higher
  • Chrome Beta (for Android 4.0 or higher)
Once you have downloaded and installed the latest version of Breakout you can prepare your Arduino board by uploading the Firmata sketch (File -> Examples -> Firmata -> StandardFirmata).
Start the Breakout Server (Doubleclick on the installation icon) and connect to your board. No need for extra coding on your computer!
Communication with your board can now be performed through your browser by using standard HTML and JavaScript code.
To access your board remotely you need enable remote access to the Breakout server (public IP or port forwarding at your router and also make sure the port – default is 8887 is accessible).
Breakout comes with various examples demonstrating all kinds of functionality. The hello_world.html contains the following code:
<!DOCTYPE html>
<head><meta charset=utf-8 />
<style type="text/css">
.text {
font-family: "Arial";
font-size: 22px;
color: #00AEEF;
</style><title>Hello World!</title>

<script src="../../dist/Breakout.js"></script>
<script src="../libs/jquery-1.7.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {

// dependencies:
// declare these variables so you don't have
// to type the full namespace
var IOBoard = BO.IOBoard;
var IOBoardEvent = BO.IOBoardEvent;
var Button =;
var ButtonEvent =;
var LED =;
var Oscillator = BO.generators.Oscillator;

// set to true to print debug messages to console
BO.enableDebugging = true;

// replace "localhost" with the IP address of the computer
// the IOboard is connected to in order to load pages on a
// phone or tablet (eg. "", 8887)
var ard = new IOBoard("localhost", 8887);
var onboardLED;
var fadeLED;

// listen for the IOBoard READY event which indicates the IOBoard
// is ready to send and receive data
ard.addEventListener(IOBoardEvent.READY, onReady);

function onReady(event) {

// remove the event listener because it is no longer needed
ard.removeEventListener(IOBoardEvent.READY, onReady);

// create a new LED
// params: IOBoard, reference to the pin object the LED is attached to
onboardLED = new LED(ard, ard.getDigitalPin(13));
// blink the on for 2 seconds then off for 2 seconds 100 times
// params: interval (how often the blink lasts), number of times to blink (0 = forever)
onboardLED.blink(2000, 100);

// create a new LED
fadeLED = new LED(ard, ard.getDigitalPin(11));
// use a sine wave to fade the led on and off every second
// params: interval, times (0 = forever), waveform to apply
fadeLED.blink(1000, 0, Oscillator.SIN);

// create a new button
// params: IOBoard, Pin, buttonMode
var button01 = new Button(ard, ard.getDigitalPin(2), Button.PULL_DOWN);
// listen for button press and release events
button01.addEventListener(ButtonEvent.PRESS, onButtonPress);
button01.addEventListener(ButtonEvent.RELEASE, onButtonRelease);


function onButtonPress(event) {
// get a reference to the button object that fired the event
var btn =;
$('#button').html("button: pin = " + btn.pinNumber + " pressed");

function onButtonRelease(event) {
// get a reference to the button object that fired the event
var btn =;
$('#button').html("button: pin = " + btn.pinNumber + " released");




<img src="images/hw_schematic.png"/>
<p class="text">The led attached to pin 11 should fade on and off<br>
every second and the on-board LED should toggle <br>
on for 2 seconds and off for 2 seconds 100 times.</p>
<div id="button" class="text">button:</div>


and looks like this:


The LED attached on your Arduino should start blinking right away!




Internet of Things Camera by Adafruit

Lady Ada from Adafruit Industries has combined an Eye-Fi memory card (SD memory card combined with a WiFi transceiver), a serial JPEG Camera and an Arduino UNO to make an IoT-enabled Camera!











The camera can be programmed via the appropriate sketch to upload images at any interval (or external trigger) to your computer, mobile phone or any of the social photo sharing sites that the Eye-Fi supports.

More information here.

Major announcement about the Book

Dear friends,

There has been a major update about the book release. Apress has decided on January 30th due to a number of reasons to cancel the book publication process. Their official claim was that the book does not mesh in with their Arduino line. After looking for some alternative publishers I have decided to self-publish the book through the Amazon’s CreateSpace service.

The chapters have been converted to the appropriate format and are ready to published. The book can be purchased in both hardcover and electronic formats from Amazon, CreateSpace eStore, bookstores, other online retail, libraries and academic institution. Same content, different title, lower price!

The only thing that delays the new release is the official contract-copyright release by Apress which is expected in the following days. By the time this happens the book will become immediately available for purchase under the new title. I will keep you updated about the progress.

If you have pre-ordered any copies of the previous title please cancel your purchase.

My apologies for any inconvenience caused,


Internet of Things

Teaser and short movie by European Research Cluster on the Internet of Things:
Internet of Things Europe – The movie|
Internet of Things Europe – Teaser N° 2: The Pillbox|
Internet of Things Europe – Teaser N° 3: Traffic|
Internet of Things Europe – Teaser N° 4: Student|