Release 2012.12.29.00

(Autonomous Robot Control Software)
Make robots with the easiest robot programming software. Experience user-friendly features that make any robot easy to program.

Change Release Notes

Our ARC Robot Control Software is a masterpiece of simplicity and flexibility. Even without prior programming experience, your robot will be doing amazing things, quickly! No matter how easy we make the graphical interface, there will always be need for some programming. However, do not worry - we have made EZ-Script very, well, easy! Every new release of ARC introduces more functions to help customize your robot's behaviour. I hope you enjoy this release and the new scripting power it introduces to your robot creation:)

- WiiMote Control displays log of button presses

- WiiMote Control has fix for Non-Nintendo WiiMotes

- Joystick Control has graphic display of analog joystick positions

- New EZ-Script Commands: GetChar() and GetCharAt() will return the character at the specified location within the string

- New EZ-Script Command: Length() will return the length of the string array

- EZ-Script Control displays execution time... We want to show it off - because it's THAT fast!

- EZ-Script Variable Manager entirely re-written to be faster and support more functions

- EZ-Script Debug View displays line numbers

- New EZ-Script Command: PrintHex() will print the contents of a variable in hexadecimal. Great for debugging data received from i2cRead()

- New EZ-Script Command: i2cRead() will read the specified number of bytes to the assigned variable from the i2c interface on the EZ-B. You can use this to communicate with other Microcontrollers (such as arduino) over the i2c interface.

- EZ-Script allows character index support (see help manual for GetCharAt() for more information)

- Examples Form has Tree View of example projects for easy organization

- New EZ-Script Command: GetByteAt() and GetByte() will return the byte as a literal within a variable array. This is great for converting Hex to Decimal from an array holding i2cRead data

- New Control: Slide Script will allow custom scripting for a slider. Look at the i2c example for a demonstration.

- New EZ-Script Command: IsNumeric() will return True or False if the passed variable is a number

New Examples Form with Tree View
User-inserted image

New Slide Script Control
For a demo, Load the Examples -> Functions -> i2c
The Slide Script allows you to assign a variable to a slider. You may also create a script that will execute when the slider is moved. Also, a custom button will be visible when a script is added to that button.
User-inserted image

EZ-Script Displays Script Execution Time
We are very proud of EZ-Script and the compiler we have designed. The compiler is very very fast! Scripts that depend on EZ-B communication will take longer due to the communication delay.
User-inserted image

WiiMote and Joystick Controls display the position
The WiiMote and Joystick Controls will display their position with a graphical view. As you move the device, the position will update also.
User-inserted image

This method uses the GetCharAt() function to return the byte at the specified position


$x = "Hello"



$y = GetCharAt($x, $a)

print("$a = $y")

$a = $a + 1

if ($a = Length($x))


Square Bracket Array Reference
This example uses the array method of specifying a single byte within a variable at the specified position by using the array reference of a string. This is the same as using GetCharAt()


$x = "Hello"



$y = $x[$a]

print("$a = $y")

$a = $a + 1

if ($a = Length($x))


i2cRead() and PrintHex()
This will read data from the i2c interface at the specified address. The first line of code will convert the 7 bit hex address of the device into an 8 bit address, and set the first bit (LSB) to a 1 for reading. The i2cRead() function will read the data as an array into the variable. Each byte of the variable can be converted into a readable Decimal value using GetByte(). The raw received data is written to the debug window using PrintHex().


$ReadAddress = (0x09 << 1) + 1

Print("Read Address: $ReadAddress")

$raw = i2cRead(AUTO, $ReadAddress, 3)

Print("Received: Length($Raw) Bytes")


$Red = GetByte($Raw[0])
$Green = GetByte($Raw[1])
$Blue = GetByte($Raw[2])

i2cWrite() and IsNumeric()
The i2cWrite() function will send specified data on the i2c interface. In the example below, we first check to ensure the variables are numerical values. Following that, we convert the 7 bit i2c address of the device into an 8 bit value, and ensure the first bit (LSB) is 0. Then we send the data to the i2c device.


# Check if $Red is a numeric value
if (IsNumeric($Red) = false)
print("Set the Red value to a number")

# Check if $Green is a numeric value
if (IsNumeric($Green) = false)
print("Set the Green value to a number")

# Check if $Blue is a numeric value
if (IsNumeric($Blue) = false)
print("Set the Blue value to a number")

print("Red: $Red, Green: $Green, Blue: $Blue")

# Shift the bits over
# Set the LSB (first bit) to a 0
# When first bit is a 0 on i2c, that means
# it is a Write Address
$WriteAddress = 0x09 << 1

print("Write Address: $WriteAddress")

i2cWrite($WriteAddress, 'n', $Red, $Green, $Blue)

ARC Downloads

Teams FREE


  • Includes 1 free plugin robot skill per project
  • Community support
  • Free with trial limitations

For schools, personal use & organizations. This edition is updated every 6-9 months.


Early Access

As Low as $8.99/mo

  • 2 or more PCs simultaneously
  • Includes unlimited skills
  • Premium support
  • And much more

Experience the latest features and bug fixes weekly. A Pro subscription is required to use this edition.

Runtime FREE


  • Load and run any ARC project
  • Operates in read-only mode
  • Unlimited robot skills
  • Early access fixes & features

Have you finished programming your robot? Use this to run existing ARC projects for free.

  • Minimum requirements are Windows 10 or higher with 2+gb ram and 500+MB free space.
  • Get more information about each ARC edition by clicking here.
  • See what's new in the latest versions with Release notes.

Compare Editions

Feature ARC Teams
  Get ARC for Free View Plans
Usage Personal
Premium support $14.99/ticket
1 request/month
($9.99 for additional requests)
Feature requests Yes
Early access to new features & fixes Yes
Simultaneous microcontroller connections* 1 255
Robot skills* 20 Unlimited
Skill Store plugins* 1 Unlimited
Cognitive services usage** 10/day 6,000/day
Auto-positions gait actions* 40 Unlimited
Speech recongition phrases* 10 Unlimited
Camera devices* 1 Unlimited
Vision resolution max 320x240 Unlimited
Interface builder* 2 Unlimited
Cloud project size 128 MB
Cloud project revision history Yes
Create Exosphere requests 50/month
Exosphere API access Contact Us
Volume license discounts Contact Us
  Get ARC for Free View Plans
* Per robot project
** 1,000 per cognitive type (vision recognition, speech recognition, face detection, sentiment, text recognition, emotion detection)


Upgrade to ARC Pro

ARC Early Access will give you immediate updates and new features needed to unleash your robot's potential!

As usual DJ, this is over the top. I thought you guys took some time off over the holidays? Do you or your team ever sleep or ever relax?
This is truly the gift that keeps on giving!
I started (received two weeks ago) with my EZ-Robot kit and I am very happy... you made ??a good job. I built the next rover to explore the planet Mars :) :) Happy Holidays !
Whew ....more robot candy to digest! Awesome DJ! ......perfect timing for me !finally! acquiring a kit with special thanks to DJ and Co for the amazing offer..its now or never.:) :)
DJ, thanks for listening! I appreciate the I^2 C support!