SparkiDuino 1.0.5.4 Update (Feb 17th)

New update with lots of fixes from Sparki’s debut week!

You can install it by re-installing, it will copy over and replace the existing IDE:

[edit] Just updated with ‘a’ version Feb 18 to fix boards.txt problem
[edit] Just updated with ‘b’ version Feb 19 to fix a problem with moveRight();
[Edit] updated windows versioms with ‘c’ version Feb 20 that fixed dpinst error and should fix win 8 driver errors (tested on non-virtual xp, win7 x64, win8 x64 computer)

Windows Installer
OSX Zip file

Its unsupported, but we also have the library file for those that want to install it in their Arduino software:
Arduino Library file
As well as a driver installer:
Sparki Driver Installer

1.0.5.4

  • Changed Stepper code to speed up Sparki 2x
  • turning by degrees is now accurate
  • Corrected error in wall avoidance example
  • Corrected error in hill_climb example
  • Corrected error in line following example
  • Added Restore_Default as an example
  • Fixed issues with LCD code
  • Added LCD examples for each command
  • Added links to all parts to their web pages

Great to see that you have addressed the issues so quickly. Is there a source code repository that people can browse?

Is there a download of just the library for those of us using linux or other IDEs?

Salut,

I checked and see that you have not adopted my proposed speed control and continued to hard-code the speed to be 100%.
I also see, that you have fixed the missing WHITE declaration but then hard-coded the color to be always white for any drawing operation. I suggest to either introduce a global color value (black/white as your buffer only has one bit per color) so that I can draw black pixels, lines, rectangles and circles.

If you wish, I can check your code prior to release on the customer side, you have my coordinates through my login credentials.

Ciao, Mathias

I installed over the top of my existing install and “Arcbotics Sparki” was no longer an option under Boards, and sketches wouldn’t compile/upload.

It might just be me as I had overwritten part of the original install with Roborealm’s files.

I had a backup of the original install and copying the original boards.txt to C:\Program Files (x86)\SparkiDuino\hardware\arduino solved the problem. The boards.txt that was there was dated 5/18/2013 7:26 AM

The forum won’t let me upload a .txt file so here are the contents of the working boards.txt file if anyone else needs it.

[code]# See: http://code.google.com/p/arduino/wiki/Platforms

##############################################################

sparki.name=ArcBotics Sparki
sparki.upload.protocol=avr109
sparki.upload.maximum_size=28672
sparki.upload.speed=57600
sparki.upload.disable_flushing=true
sparki.bootloader.low_fuses=0xff
sparki.bootloader.high_fuses=0xd8
sparki.bootloader.extended_fuses=0xcb
sparki.bootloader.path=caterina
sparki.bootloader.file=Caterina-Leonardo.hex
sparki.bootloader.unlock_bits=0x3F
sparki.bootloader.lock_bits=0x2F
sparki.build.mcu=atmega32u4
sparki.build.f_cpu=16000000L
sparki.build.vid=0x2341
sparki.build.pid=0x8036
sparki.build.core=arduino
sparki.build.variant=leonardo

##############################################################

servotor32.name=ArcBotics Hexy-Servotor32
servotor32.upload.protocol=avr109
servotor32.upload.maximum_size=28672
servotor32.upload.speed=57600
servotor32.upload.disable_flushing=true
servotor32.bootloader.low_fuses=0xff
servotor32.bootloader.high_fuses=0xd8
servotor32.bootloader.extended_fuses=0xcb
servotor32.bootloader.path=caterina
servotor32.bootloader.file=Caterina-Leonardo.hex
servotor32.bootloader.unlock_bits=0x3F
servotor32.bootloader.lock_bits=0x2F
servotor32.build.mcu=atmega32u4
servotor32.build.f_cpu=16000000L
servotor32.build.vid=0x2341
servotor32.build.pid=0x8036
servotor32.build.core=arduino
servotor32.build.variant=leonardo

##############################################################

uno.name=Arduino Uno
uno.upload.protocol=arduino
uno.upload.maximum_size=32256
uno.upload.speed=115200
uno.bootloader.low_fuses=0xff
uno.bootloader.high_fuses=0xde
uno.bootloader.extended_fuses=0x05
uno.bootloader.path=optiboot
uno.bootloader.file=optiboot_atmega328.hex
uno.bootloader.unlock_bits=0x3F
uno.bootloader.lock_bits=0x0F
uno.build.mcu=atmega328p
uno.build.f_cpu=16000000L
uno.build.core=arduino
uno.build.variant=standard

##############################################################

atmega328.name=Arduino Duemilanove w/ ATmega328

atmega328.upload.protocol=arduino
atmega328.upload.maximum_size=30720
atmega328.upload.speed=57600

atmega328.bootloader.low_fuses=0xFF
atmega328.bootloader.high_fuses=0xDA
atmega328.bootloader.extended_fuses=0x05
atmega328.bootloader.path=atmega
atmega328.bootloader.file=ATmegaBOOT_168_atmega328.hex
atmega328.bootloader.unlock_bits=0x3F
atmega328.bootloader.lock_bits=0x0F

atmega328.build.mcu=atmega328p
atmega328.build.f_cpu=16000000L
atmega328.build.core=arduino
atmega328.build.variant=standard

##############################################################

diecimila.name=Arduino Diecimila or Duemilanove w/ ATmega168

diecimila.upload.protocol=arduino
diecimila.upload.maximum_size=14336
diecimila.upload.speed=19200

diecimila.bootloader.low_fuses=0xff
diecimila.bootloader.high_fuses=0xdd
diecimila.bootloader.extended_fuses=0x00
diecimila.bootloader.path=atmega
diecimila.bootloader.file=ATmegaBOOT_168_diecimila.hex
diecimila.bootloader.unlock_bits=0x3F
diecimila.bootloader.lock_bits=0x0F

diecimila.build.mcu=atmega168
diecimila.build.f_cpu=16000000L
diecimila.build.core=arduino
diecimila.build.variant=standard

##############################################################

nano328.name=Arduino Nano w/ ATmega328

nano328.upload.protocol=arduino
nano328.upload.maximum_size=30720
nano328.upload.speed=57600

nano328.bootloader.low_fuses=0xFF
nano328.bootloader.high_fuses=0xDA
nano328.bootloader.extended_fuses=0x05
nano328.bootloader.path=atmega
nano328.bootloader.file=ATmegaBOOT_168_atmega328.hex
nano328.bootloader.unlock_bits=0x3F
nano328.bootloader.lock_bits=0x0F

nano328.build.mcu=atmega328p
nano328.build.f_cpu=16000000L
nano328.build.core=arduino
nano328.build.variant=eightanaloginputs

##############################################################

nano.name=Arduino Nano w/ ATmega168

nano.upload.protocol=arduino
nano.upload.maximum_size=14336
nano.upload.speed=19200

nano.bootloader.low_fuses=0xff
nano.bootloader.high_fuses=0xdd
nano.bootloader.extended_fuses=0x00
nano.bootloader.path=atmega
nano.bootloader.file=ATmegaBOOT_168_diecimila.hex
nano.bootloader.unlock_bits=0x3F
nano.bootloader.lock_bits=0x0F

nano.build.mcu=atmega168
nano.build.f_cpu=16000000L
nano.build.core=arduino
nano.build.variant=eightanaloginputs

##############################################################

mega2560.name=Arduino Mega 2560 or Mega ADK

mega2560.upload.protocol=wiring
mega2560.upload.maximum_size=258048
mega2560.upload.speed=115200

mega2560.bootloader.low_fuses=0xFF
mega2560.bootloader.high_fuses=0xD8
mega2560.bootloader.extended_fuses=0xFD
mega2560.bootloader.path=stk500v2
mega2560.bootloader.file=stk500boot_v2_mega2560.hex
mega2560.bootloader.unlock_bits=0x3F
mega2560.bootloader.lock_bits=0x0F

mega2560.build.mcu=atmega2560
mega2560.build.f_cpu=16000000L
mega2560.build.core=arduino
mega2560.build.variant=mega

##############################################################

mega.name=Arduino Mega (ATmega1280)

mega.upload.protocol=arduino
mega.upload.maximum_size=126976
mega.upload.speed=57600

mega.bootloader.low_fuses=0xFF
mega.bootloader.high_fuses=0xDA
mega.bootloader.extended_fuses=0xF5
mega.bootloader.path=atmega
mega.bootloader.file=ATmegaBOOT_168_atmega1280.hex
mega.bootloader.unlock_bits=0x3F
mega.bootloader.lock_bits=0x0F

mega.build.mcu=atmega1280
mega.build.f_cpu=16000000L
mega.build.core=arduino
mega.build.variant=mega

##############################################################

leonardo.name=Arduino Leonardo
leonardo.upload.protocol=avr109
leonardo.upload.maximum_size=28672
leonardo.upload.speed=57600
leonardo.upload.disable_flushing=true
leonardo.bootloader.low_fuses=0xff
leonardo.bootloader.high_fuses=0xd8
leonardo.bootloader.extended_fuses=0xcb
leonardo.bootloader.path=caterina
leonardo.bootloader.file=Caterina-Leonardo.hex
leonardo.bootloader.unlock_bits=0x3F
leonardo.bootloader.lock_bits=0x2F
leonardo.build.mcu=atmega32u4
leonardo.build.f_cpu=16000000L
leonardo.build.vid=0x2341
leonardo.build.pid=0x8036
leonardo.build.core=arduino
leonardo.build.variant=leonardo

##############################################################

esplora.name=Arduino Esplora
esplora.upload.protocol=avr109
esplora.upload.maximum_size=28672
esplora.upload.speed=57600
esplora.upload.disable_flushing=true
esplora.bootloader.low_fuses=0xff
esplora.bootloader.high_fuses=0xd8
esplora.bootloader.extended_fuses=0xcb
esplora.bootloader.path=caterina
esplora.bootloader.file=Caterina-Esplora.hex
esplora.bootloader.unlock_bits=0x3F
esplora.bootloader.lock_bits=0x2F
esplora.build.mcu=atmega32u4
esplora.build.f_cpu=16000000L
esplora.build.vid=0x2341
esplora.build.pid=0x803C
esplora.build.core=arduino
esplora.build.variant=leonardo

##############################################################

micro.name=Arduino Micro
micro.upload.protocol=avr109
micro.upload.maximum_size=28672
micro.upload.speed=57600
micro.upload.disable_flushing=true
micro.bootloader.low_fuses=0xff
micro.bootloader.high_fuses=0xd8
micro.bootloader.extended_fuses=0xcb
micro.bootloader.path=caterina
micro.bootloader.file=Caterina-Micro.hex
micro.bootloader.unlock_bits=0x3F
micro.bootloader.lock_bits=0x2F
micro.build.mcu=atmega32u4
micro.build.f_cpu=16000000L
micro.build.vid=0x2341
micro.build.pid=0x8037
micro.build.core=arduino
micro.build.variant=micro

##############################################################

mini328.name=Arduino Mini w/ ATmega328

mini328.upload.protocol=arduino
mini328.upload.maximum_size=28672
mini328.upload.speed=115200

mini328.bootloader.low_fuses=0xff
mini328.bootloader.high_fuses=0xd8
mini328.bootloader.extended_fuses=0x05
mini328.bootloader.path=optiboot
mini328.bootloader.file=optiboot_atmega328-Mini.hex
mini328.bootloader.unlock_bits=0x3F
mini328.bootloader.lock_bits=0x0F

mini328.build.mcu=atmega328p
mini328.build.f_cpu=16000000L
mini328.build.core=arduino
mini328.build.variant=eightanaloginputs

##############################################################

mini.name=Arduino Mini w/ ATmega168

mini.upload.protocol=arduino
mini.upload.maximum_size=14336
mini.upload.speed=19200

mini.bootloader.low_fuses=0xff
mini.bootloader.high_fuses=0xdd
mini.bootloader.extended_fuses=0x00
mini.bootloader.path=atmega
mini.bootloader.file=ATmegaBOOT_168_ng.hex
mini.bootloader.unlock_bits=0x3F
mini.bootloader.lock_bits=0x0F

mini.build.mcu=atmega168
mini.build.f_cpu=16000000L
mini.build.core=arduino
mini.build.variant=eightanaloginputs

##############################################################

ethernet.name=Arduino Ethernet

ethernet.upload.protocol=arduino
ethernet.upload.maximum_size=32256
ethernet.upload.speed=115200

ethernet.bootloader.low_fuses=0xff
ethernet.bootloader.high_fuses=0xde
ethernet.bootloader.extended_fuses=0x05
ethernet.bootloader.path=optiboot
ethernet.bootloader.file=optiboot_atmega328.hex
ethernet.bootloader.unlock_bits=0x3F
ethernet.bootloader.lock_bits=0x0F

ethernet.build.variant=standard
ethernet.build.mcu=atmega328p
ethernet.build.f_cpu=16000000L
ethernet.build.core=arduino

##############################################################

fio.name=Arduino Fio

fio.upload.protocol=arduino
fio.upload.maximum_size=30720
fio.upload.speed=57600

fio.bootloader.low_fuses=0xFF
fio.bootloader.high_fuses=0xDA
fio.bootloader.extended_fuses=0x05
fio.bootloader.path=arduino:atmega
fio.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex
fio.bootloader.unlock_bits=0x3F
fio.bootloader.lock_bits=0x0F

fio.build.mcu=atmega328p
fio.build.f_cpu=8000000L
fio.build.core=arduino
fio.build.variant=eightanaloginputs

##############################################################

bt328.name=Arduino BT w/ ATmega328

bt328.upload.protocol=arduino
bt328.upload.maximum_size=28672
bt328.upload.speed=19200
bt328.upload.disable_flushing=true

bt328.bootloader.low_fuses=0xff
bt328.bootloader.high_fuses=0xd8
bt328.bootloader.extended_fuses=0x05
bt328.bootloader.path=bt
bt328.bootloader.file=ATmegaBOOT_168_atmega328_bt.hex
bt328.bootloader.unlock_bits=0x3F
bt328.bootloader.lock_bits=0x0F

bt328.build.mcu=atmega328p
bt328.build.f_cpu=16000000L
bt328.build.core=arduino
bt328.build.variant=eightanaloginputs

##############################################################

bt.name=Arduino BT w/ ATmega168

bt.upload.protocol=arduino
bt.upload.maximum_size=14336
bt.upload.speed=19200
bt.upload.disable_flushing=true

bt.bootloader.low_fuses=0xff
bt.bootloader.high_fuses=0xdd
bt.bootloader.extended_fuses=0x00
bt.bootloader.path=bt
bt.bootloader.file=ATmegaBOOT_168.hex
bt.bootloader.unlock_bits=0x3F
bt.bootloader.lock_bits=0x0F

bt.build.mcu=atmega168
bt.build.f_cpu=16000000L
bt.build.core=arduino
bt.build.variant=eightanaloginputs

##############################################################

LilyPadUSB.name=LilyPad Arduino USB
LilyPadUSB.upload.protocol=avr109
LilyPadUSB.upload.maximum_size=28672
LilyPadUSB.upload.speed=57600
LilyPadUSB.upload.disable_flushing=true
LilyPadUSB.bootloader.low_fuses=0xff
LilyPadUSB.bootloader.high_fuses=0xd8
LilyPadUSB.bootloader.extended_fuses=0xce
LilyPadUSB.bootloader.path=caterina-LilyPadUSB
LilyPadUSB.bootloader.file=Caterina-LilyPadUSB.hex
LilyPadUSB.bootloader.unlock_bits=0x3F
LilyPadUSB.bootloader.lock_bits=0x2F
LilyPadUSB.build.mcu=atmega32u4
LilyPadUSB.build.f_cpu=8000000L
LilyPadUSB.build.vid=0x1B4F
LilyPadUSB.build.pid=0x9208
LilyPadUSB.build.core=arduino
LilyPadUSB.build.variant=leonardo

##############################################################

lilypad328.name=LilyPad Arduino w/ ATmega328

lilypad328.upload.protocol=arduino
lilypad328.upload.maximum_size=30720
lilypad328.upload.speed=57600

lilypad328.bootloader.low_fuses=0xFF
lilypad328.bootloader.high_fuses=0xDA
lilypad328.bootloader.extended_fuses=0x05
lilypad328.bootloader.path=atmega
lilypad328.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex
lilypad328.bootloader.unlock_bits=0x3F
lilypad328.bootloader.lock_bits=0x0F

lilypad328.build.mcu=atmega328p
lilypad328.build.f_cpu=8000000L
lilypad328.build.core=arduino
lilypad328.build.variant=standard

##############################################################

lilypad.name=LilyPad Arduino w/ ATmega168

lilypad.upload.protocol=arduino
lilypad.upload.maximum_size=14336
lilypad.upload.speed=19200

lilypad.bootloader.low_fuses=0xe2
lilypad.bootloader.high_fuses=0xdd
lilypad.bootloader.extended_fuses=0x00
lilypad.bootloader.path=lilypad
lilypad.bootloader.file=LilyPadBOOT_168.hex
lilypad.bootloader.unlock_bits=0x3F
lilypad.bootloader.lock_bits=0x0F

lilypad.build.mcu=atmega168
lilypad.build.f_cpu=8000000L
lilypad.build.core=arduino
lilypad.build.variant=standard

##############################################################

pro5v328.name=Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328

pro5v328.upload.protocol=arduino
pro5v328.upload.maximum_size=30720
pro5v328.upload.speed=57600

pro5v328.bootloader.low_fuses=0xFF
pro5v328.bootloader.high_fuses=0xDA
pro5v328.bootloader.extended_fuses=0x05
pro5v328.bootloader.path=atmega
pro5v328.bootloader.file=ATmegaBOOT_168_atmega328.hex
pro5v328.bootloader.unlock_bits=0x3F
pro5v328.bootloader.lock_bits=0x0F

pro5v328.build.mcu=atmega328p
pro5v328.build.f_cpu=16000000L
pro5v328.build.core=arduino
pro5v328.build.variant=standard

##############################################################

pro5v.name=Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega168

pro5v.upload.protocol=arduino
pro5v.upload.maximum_size=14336
pro5v.upload.speed=19200

pro5v.bootloader.low_fuses=0xff
pro5v.bootloader.high_fuses=0xdd
pro5v.bootloader.extended_fuses=0x00
pro5v.bootloader.path=atmega
pro5v.bootloader.file=ATmegaBOOT_168_diecimila.hex
pro5v.bootloader.unlock_bits=0x3F
pro5v.bootloader.lock_bits=0x0F

pro5v.build.mcu=atmega168
pro5v.build.f_cpu=16000000L
pro5v.build.core=arduino
pro5v.build.variant=standard

##############################################################

pro328.name=Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega328

pro328.upload.protocol=arduino
pro328.upload.maximum_size=30720
pro328.upload.speed=57600

pro328.bootloader.low_fuses=0xFF
pro328.bootloader.high_fuses=0xDA
pro328.bootloader.extended_fuses=0x05
pro328.bootloader.path=atmega
pro328.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex
pro328.bootloader.unlock_bits=0x3F
pro328.bootloader.lock_bits=0x0F

pro328.build.mcu=atmega328p
pro328.build.f_cpu=8000000L
pro328.build.core=arduino
pro328.build.variant=standard

##############################################################

pro.name=Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega168

pro.upload.protocol=arduino
pro.upload.maximum_size=14336
pro.upload.speed=19200

pro.bootloader.low_fuses=0xc6
pro.bootloader.high_fuses=0xdd
pro.bootloader.extended_fuses=0x00
pro.bootloader.path=atmega
pro.bootloader.file=ATmegaBOOT_168_pro_8MHz.hex
pro.bootloader.unlock_bits=0x3F
pro.bootloader.lock_bits=0x0F

pro.build.mcu=atmega168
pro.build.f_cpu=8000000L
pro.build.core=arduino
pro.build.variant=standard

##############################################################

atmega168.name=Arduino NG or older w/ ATmega168

atmega168.upload.protocol=arduino
atmega168.upload.maximum_size=14336
atmega168.upload.speed=19200

atmega168.bootloader.low_fuses=0xff
atmega168.bootloader.high_fuses=0xdd
atmega168.bootloader.extended_fuses=0x00
atmega168.bootloader.path=atmega
atmega168.bootloader.file=ATmegaBOOT_168_ng.hex
atmega168.bootloader.unlock_bits=0x3F
atmega168.bootloader.lock_bits=0x0F

atmega168.build.mcu=atmega168
atmega168.build.f_cpu=16000000L
atmega168.build.core=arduino
atmega168.build.variant=standard

##############################################################

atmega8.name=Arduino NG or older w/ ATmega8

atmega8.upload.protocol=arduino
atmega8.upload.maximum_size=7168
atmega8.upload.speed=19200

atmega8.bootloader.low_fuses=0xdf
atmega8.bootloader.high_fuses=0xca
atmega8.bootloader.path=atmega8
atmega8.bootloader.file=ATmegaBOOT-prod-firmware-2009-11-07.hex
atmega8.bootloader.unlock_bits=0x3F
atmega8.bootloader.lock_bits=0x0F

atmega8.build.mcu=atmega8
atmega8.build.f_cpu=16000000L
atmega8.build.core=arduino
atmega8.build.variant=standard
[/code]

[quote=“roboalchemist”]New update with lots of fixes from Sparki’s debut week!

1.0.5.4…
[/quote]
I appreciate the update, especially the inclusion of “Restore_Default”.

Does this update include the Sparki.h and Sparki.cpp component updates required by RoboRealm?

Will you also create a new Sparki_Library_1.0.5.4.zip for those of us that want to install the Sparki library into Arduino IDE manually?

EDIT: I see that the library file is now available. :smiley:

Thank you,

@John: I’ve just done the updates the hard way in Arduino IDE by updating individually from the files in the github.

If you’re in a hurry…github.com/ArcBotics/Sparki

[quote=“8-Bits”][quote=“roboalchemist”]New update with lots of fixes from Sparki’s debut week!

1.0.5.4…
[/quote]
I appreciate the update, especially the inclusion of “Restore_Default”.

Does this update include the Sparki.h and Sparki.cpp component updates required by RoboRealm?

Will you also create a new Sparki_Library_1.0.5.4.zip for those of us that want to install the Sparki library into Arduino IDE manually?

Thank you,[/quote]

It does not include the Roborealm updates. I tried compiling the Roborealm sketch and it got the same errors as before I had used Roborealm’s files. I think putting Roborealm’s files back in place would overwrite some or all of the update as the Sparki.cpp is older than the one in this ArcBotics release.

I don’t have any pressing need for Roborealm at this time so I’m just going to wait until things get more stable and they can coordinate with Arcbotics.

There seems to be a copy&paste bug in the MoveRight function which make it move left instead when you supply the degree argument. (at least the latest in GitHub where i downloaded the code from)

Based on the replies, I’m wondering if this update is worthwhile or will it create additional problems? I’m currently trying out and learning a great deal from the old installation and would not want to introduce new problems and nuances into the mix.What do you “experts” say?

Salut,

I just tested the wall_avoidance code and the sparki makes a high pitched noise (meaning that the stepper coils are stuck).
I guess I stick with the original 1.0.5.3 version as the new version seems to make more worse than fixing things.

Ciao, Mathias

I don’t see how making both versions available will cause problems. The “experts” will know which to use and at this point we actually need the individual files in the zip format to maintain what we have. BTW, it’s also nice to be able to see the individual file attributes (date, size, etc.) of each component in one place.

Everyone else can just follow the Sparki documentation and use the self-installer, which hopefully will not cause other problems for them. :slight_smile:

@Mathias: I just updated the wall Avoidance from the github & I’m not seeing the issues your are.

Just to try this new installation, Zax is right the board.txt file is replaced in the Windows installation and “ArcBotics Sparki” no longer exists in the selection.

I agree, there are too many components changing at this early release stage.

I also could not reinstall the boards but thanks to Zax’s post copied his file and made a txt file and then copied it in. Things look good so far. I am still not getting correct angles. moveRight (127) accually turns 120 deg. might be wheel slippage I am checking on that.

Thanks for the update.

It seems that version 1.0.5.4 is now the default installer for Windows in the main website. They should make version 1.0.5.3 still available until they fix the “Board.txt” issue. There are other folks who just got their Sparki and having problem getting the robot to upload any of the examples because of this issue.

Fixed the boards.txt issue in this installer. File updated online.

Roboalchemist,

I suggest you consider utilizing a beta release program where some active Sparki users can test code releases prior to official release. This will save you headaches in the long run.

Vladarino

IMO the code update process is getting out of control. At the time of this post Github has files dated 20140216; the ArcBotics FTP hosting site has files dated 20140217; and there are changes noted (e.g. the 2x speed) that were made later and can’t be located (by me). And users are posting “problems”; questions; and Arduino code based on all of these which is confusing.

It has been suggested that people posting problems in the code need to include information as to what version (date/time) of software was used. I would suggest the following format:

Operating Environment
Sparki Library used: Sparki.Driver-1.0.5.4a-Setup.exe or Sparki_Library_1.0.5.4.zip
Sparki.h modified date: 20140217 @ 09:20
Sparki.cpp modified date: 20140217 @ 09:23
Computer OS: Windows 7 32-bit / 8.1 64-bit / OSX 10.9
Notes:

Code developers should note any feature they hard coded around (e.g. adding an offset to a returned function value) to make what they did work.

It is also suggested that ArcBotics implement some form of user “beta testing” process to test changes before they are applied to the production Installer and sample Arduino sketch code.

@Ortsac

If you have found your stride, you may wait.

I understand that a lot of work goes into a project like this and that the Arcbotics team is running lean, so this is NOT critical: There were many small mistakes left in the original code examples that could confuse a new user, and I’ve seen a couple mentions by some in this thread of possible similar errors with code and/or the ease of the upgrade process.

If you are past some of the initial hurdles and are learning with your own explorations I would keep on trucking. There is no need to update every release unless you have something that you are stuck on that forces you to try an update as a solve.

If you are new and want to avoid technical issues you could keep an eye on the forums and do an update when things smooth out. You can independently download the new examples from the GIT repository, or ask others to post them for you to access.

Have fun!