SparkiDuino Update (May 24th)


Here’s our latest update! Let us know what you think. More updates are planned, but this solves most of the issues people have posted in the forms thus far.

We’ll have it posted here in the forums for a few days in case anyone catches anything we didn’t, and then it’ll be on the main start page.

Windows Installer
SparkiDuino Windows Installer

SparkiDuino OSX Zip

Here’s what we’ve changed:

- Motor control code changed from time-based to step-based.
This shouldn’t mean anything for most people, but it does mean that motion is now based on math and such, and allows much finer-grained control of the stepper motor motion. It also avoids potential (unlikely, small) problems in inaccurate motion as the case of an interrupt conflict. This new method includes speed control.

- Distances are now based on maths of final Sparki
Turns out previous motion was based on a magic number based on a slightly different earlier version of Sparki, which resulted in inaccurate movement when the model was changed. Dimensions for the motion are based on the final version’s cad drawings, checked against final production version. These value are in Sparki.h for people that want to change them.

- Speed Control
You can now set a global speed value for all of sparki stepper motors by using sparki.speed(), using values from 1-100 precent. You can enter more than 100, but the hardware may not work with it given you battery voltage (although it won’t harm the motors by trying). You can get it to work reliably above 100 by upping the stepper motor voltage (which might harm them).

- Moves now accept negatives
You can now use negative values for moveLeft, moveRight, moveForward and moveBackward. This makes things easier for people doing algorithmic motions. Note that 0 still means infinite movement until told to stop.

- Buzzer louder by default
The beep() command now uses the loudest frequency the buzzer produces (2800hz)

- LCD draw color changeable
You can now choose whether the drawing functions write in white or black pixels with sparki.setPixelColor(). the options are:

- IR Send now working
IR send is now implemented. You can send IR codes to other Sparkis, and they will see them as remote button presses. Sparki will take a break when it sends an IR code. Specifically, the wheels spinning and LED updates will pause for the 65ms it takes to transmit an IR code.

- Driver install optional for windows version
You can choose whether or not to (re)install the drivers when installing the windows version. No changes to the driver have been made.

Suggestions for interface presented by library

Why SparkiDuino uses Arduino 1.0.5 instead of the new 1.5 version?
It seems quite laggy on my computer. (It takes 15s to open the menu bar).
I haven’t encounter similar problem on my own Arduino 1.5 yet.
Can I just copy the library folder to my own Arduino 1.5 to make it working?
Thx :slight_smile:


1.5 isn’t an official release yet. As soon as it is, we’ll probably switch.


It is easy to start programm Sparki on Arch Linux, read Sparki on Arch Linux.

The SparkiDuino is compatible only with old Arduino IDE 1.0.x version, it doesn’t work with Arduino IDE 1.6.


ArcBotics, could you please provide library compatible with Arduino IDE 1.6 ?


The current github library has been 1.6 compatible for a while, we just haven’t fully tested and packaged it yet, as there are some other headaches involved with bundling 1.6.