Prototype your microcontroller project with Toolduino

Prototype your microcontroller project with Toolduino

MAKE subscriber Michael writes in to tell us about Toolduino, a GUI program that lets you access all of the pins on your Arduino through your computer. To use it, you have to flash a special sketch to your Arduino that implements the Firmata protocol, which allows a connected computer to control all of the pins on the microcontroller without reprogramming it. Then, all you have to do is run the Toolduino program to start interacting with things connected to the ‘duino. This should help you get the interaction parts of your project worked out quickly, after which you can migrate to an Arduino sketch, or just stick with Firmata and write your program in Processing.

12 thoughts on “Prototype your microcontroller project with Toolduino

  1. theophrastus says:

    It’s probably a stupid question, but in order to do what it seems to be doing why doesn’t it need a wire between every in/out pin and the host computer?

    1. jdege says:

      Because the host computer is communicating with a program (they call it a sketch in this domain) running on the Arduino via the USB/Serial interface. The program on the Arduino can control and observe the digital and analog pins and report back observed data via that same interface.

      1. theophrastus says:

        sketch does its business through the USB port. so are they depending on sketch to ‘know’ what the second PWM output port, for example, is doing? and as such, isn’t that like… meta-simulation?

        1. jdoege says:

          You are saying “sketch” but not quite correctly in this context. A “sketch” is a program you (or someone) creates to run on the Atmel microcontroller on the Arduino Duemilanove board. The USB port on that board is attached to an FTDI USB to Serial chip that in turn communicates with the Atmel microcontroller for the purposes of both configuring the microcontroller and, after configuration, communicating with it.

          What is occurring here is that someone has written a sketch to run on the microcontroller that is also configured to communicate over the serial channel, back through the USB port to the PC. They have also written a program that is, in turn, capable of communicating over the USB port, through the serial channel to the microcontroller. The program on the PC has the nifty user interface with a picture of the board. It send commands to the Arduino to either set a pin or read a pin’s state or value. The Arduino responds to these commands appropriately and also sends back the requested data.

          While the computer probably remembers what was written to the outputs, it really is not simulation. It is physical reality. In a nutshell, all this really is, is a pretty user interface that allows you direct control over the pins on the Arduino when it is connected to your PC. I don’t think you can load and run your own sketch and have the PC represent what is happening on the pins, here.

  2. GuruSantiago says:

    Toolduino makes it even easier to get project prototyped. I love it.

    Checkout my Arduino Projects:

    Follow me on twitter to learn more about Arduino and Electronics @ElectronicFun

  3. David Bono says:

    It would be cool if Toolduino could act as an Arduino “debugger” – download a sketch from your desktop to the Arduino / Freeduino device, and then use a desktop GUI to set breakpoints, single-step, inspect the AVR state, etc.

    1. jdoege says:

      This seems quite feasible for the Arduino folks to implement. The Atmel ATmega328 has an on-chip debugging system that should support everything you describe for object code. It uses the reset pin for communication:

      They have a system to support programming and debug:

      So far as I know, the Arduino programming environment does not have this functionality.

      1. jdoege says:

        They do, however, bring this port out on the Duemilanove board. It is the 6 pin header on the far right of the board labeled ICSP.

      2. Matt Mets says:

        I’d love to see debugger support in the Arduino, but it might start to make things much more complicated :-). For starts, you will need a debugger to plug into the ICSP, which sort of defeats the purpose of having a serial bootloader in the first place. You could /probably/ debug your project directly using gdb (, which I think supports some of the AVR prototyping tools such as the Dragon (

        There are other hobbyist systems that do support debugging through their interface, such as ROBOTC from the Robotics Academy (

        Another possibility might be to use a higher-powered processor that is Arduino compatible, such as the MAPLE, and use the extra processor speed and memory to run a background debug module. It seems possible from an engineering perspective, however I think the real value would be in making it work unobtrusively.

  4. Thai Nguyen says:

    Ronaldo & Ronaldinho ca cuoc bong da anh. Both moved to Europe at a young age. Both played for some of the biggest clubs in Europe. Both won a massive amount of individual and team honors with club and country. Both started to party….HARD. Both got fat. Both moved back to Brazil aged hướng dẫn kèo bóng đá around 32. Both had a slight bit of a resurgence in Brazil in the twilight of their careers.

  5. nhan says:

    Southampton are trying to loan out £12million flop Gaston Ramirez after failing to find a buyer for him during the transfer window…Norwich striker Gary Hooper is a loan target for Fulham….Arsenal are lining up a January xem ty le ca cuoc bong da truc tuyen swoop for Juventus forward Simone Zaza…Izzy Brown has revealed he could be recalled by Chelsea in January from his loan with Vitesse…Newcastle United turned down the chance to sign 26-year-old QPR striker Charlie Austin on transfer deadline day.

  6. nhan says:

    A trigger is an individual setting or programming ty le keo bong da of MarketFeeder telling it which parameters need to exist in order to activate and execute a bet (lay or back bet).

    MarketFeeder logs into Betfair and loads markets in real time. So long as no triggers are ‘live’ nothing happens. In order to demonstrate what I mean let us look at an example. Say we would like to develop a trigger for football in the ‘over 2.5 goals’ market. For this, I can get MarketFeeder to load all of Betfair’s football markets for a particular day and concentrate on the odds for the over 2.5 goals market.

    You may have observed that the odds in Betfair rise perhaps 5 minutes before the beginning of a game and then tend to dip slightly as soon as the game v begins (before rising again until the first goal is scored). It is impossible using a browser and logging manually into Betfair to monitor and observe all the match markets at the same time but MarketFeeder will do this for you.

    You can set MarketFeeder to log all games of a certain group (e.g. by odds). Afterwards, you can evaluate these logs and after just one weekend you should have dozens of different data sets to analyse.

    In this example the initial observation was that odds rise 5 minutes before the beginning of a game and after kick-off they drop. This could mean the possibility of backing at a high price and trading out with little risk by laying lower at kick-off. With logs, you can check your theory exactly.

Comments are closed.

Discuss this article with the rest of the community on our Discord server!