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
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.
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.
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.
GetCharAt() This method uses the GetCharAt() function to return the byte at the specified position
$x = "Hello"
$a=0
:start
$y = GetCharAt($x, $a)
print("$a = $y")
$a = $a + 1
if ($a = Length($x))
Halt()
goto(START)
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"
$a=0
:start
$y = $x[$a]
print("$a = $y")
$a = $a + 1
if ($a = Length($x))
Halt()
goto(START)
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")
PrintHex($Raw)
$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")
halt()
endif
# Check if $Green is a numeric value
if (IsNumeric($Green) = false)
print("Set the Green value to a number")
halt()
endif
# Check if $Blue is a numeric value
if (IsNumeric($Blue) = false)
print("Set the Blue value to a number")
halt()
endif
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
ARC Free
Free
- Includes one free 3rd party plugin robot skill per project
- Trial cloud services
- Free with trial limitations
For schools, personal use & organizations. This edition is updated every 6-12 months.
ARC Pro
Only $8.99/mo
- 2 or more PCs simultaneously
- Includes unlimited skills
- Cloud backup
- 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.
- Recommended requirements are Windows 10 or higher with 8+gb ram and 1000+MB free space.
- ARC Free known-issues can be viewed by clicking here.
- 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 FREE |
ARC PRO |
---|---|---|
Get ARC for Free | View Plans | |
Usage | Personal DIY Education |
Personal DIY Education Business |
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 |
** 1,000 per cognitive type (vision recognition, speech recognition, face detection, sentiment, text recognition, emotion detection, azure text to speech)
Upgrade to ARC Pro
With Synthiam ARC Pro, you're not just programming a robot; you're shaping the future of automation, one innovative idea at a time.
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?
Wow! lots of stuff. Happy Holidays.
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 !
Always fantastic DJ and Crew!
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!