Subscribe to Make Magazine Today!

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.

  • theophrastus

    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?

    • jdege

      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.

      • theophrastus

        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?

        • jdoege

          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.

  • GuruSantiago

    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

  • David Bono

    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.