ARC Beta 2020.04.02.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

Welcome to the new ARC (Autonomous Robot Control) Software Beta!

Stable release of ARC is scheduled to replace "EZ Builder" end of April, 2020

ARC includes many innovative features to empower you to lead the next generation of robotics. Such as an incredibly fast JavaScript ECMA 5.1 compiler for scripting, new threading engine, and many behind the scene performance enhancements. The new ARC is not only significantly faster, it offers the the dynamic power of JavaScript for robot programming.

Why ARC?
Synthiam has been active as a leader in robotics for a number of years. Trail blazing many approaches that are now common place to robots. We've been successful at making advanced technologies available to creative users, who want to build robots without messing about with complicated code.

"A story ARC (also narrative arc) is an extended or continuing storyline in episodic storytelling media such as television, comic books, comic strips, boardgames, video games, and films with each episode following a dramatic arc. On a television program, for example, the story would unfold over many episodes."

We see our robot software being part of the story ARC of robotics. By connecting your ideas to reality as we progress toward a future where robots co-exist alongside humans. It's our passion to connect the dots, fill in the gaps, and find the missing links of the industry.

For this, we're all part of an ARC in the story of robotics.

Significant Changes
With this release, you will notice a much faster response in the UI and increased scripting execution time. The new JavaScript engine allows user definable functions, access to .Net objects through reflection, and functions defined by plugins. With .Net reflection, your programs have access to the entire operating system, .Net controls and ARC framework. That means presenting user dialog boxes, creating custom UI interfaces, and a lot more.

We'll begin updating the website documentation to provide examples of how to use these new features during the upcoming weeks.

Disclaimer: Beta Release Notice
This is a beta release of the software for testing and providing feedback to enhance your robot building experience. Backup your existing project files before using this software, in case you wish to roll back to ARC during the Beta test phase.

1) ARC uses a new advanced project file format. While this new format can load legacy ARC projects, any projects saved in the new ARC format or plugins that have been updated will not be backward compatible with ARC.

2) Mobile app will not load projects saved with ARC at this time.

3) Plugins have been updated to work with ARC and will not work with ARC. If plugins are updated, continue using ARC

4) This is beta, so please provide usage feedback

User-inserted image

Performance Examples:
Count to 100,000 with JavaScript: 0.0985902 seconds
Count to 100,000 with EZ-Script: 4.731215 seconds

Uninstall and Rollback
If you experience too many operational challenges with this Beta release, roll back to ARC is possible. Visit the Program & Features in your Windows menu and uninstall Arc. Following that, reboot, download ARC and install.

User-inserted image

- Initial beta release

- Fix for syntax highlight of JavaScript editor

- Fix for reading joystick configuration on legacy projects
- Fix for loading Blockly definition on editor
- Fix for sound board v4 displaying progress when playing during editing

- Added Console class for JavaScript editor
- Behind-the-scene enhancements and various fixes

- Fixes for javascript editor
- ControlCommand() from cheatsheet and right-click are properly escaped for javascript
- Performance improvements on existing functions

- Fixes for WiiMote and Joystick button scripts
- Additional Javascript help added to editor
- Additional user messaging added to plugin installer

- copy paste fix for javascript help document
- save manual for javascript saves the correct manual
- prompt for default programming language on first load
- script collection UI update
- added default value option for javascript GetVar(); for if variable object doesn't exist returns the default value
- added new javascript method VarExists() to check if a global variable exists

- append ; to ControlCommand() from cheatsheet and right-click in editor
- Script Collection formatted correctly and displays lots of text for the title
- Uses new cloud authentication method that is secure (will require new login)
- New error handling within camera that logs plugin errors separately than the image updating

- removed ARC references in ezscript manual
- renamed ezscript controls in add control menu
- new error handling will log any catastrophic crashes and provide reasoning behind software unexpectedly shutting down. This usually happens from fault in a plugin, so now it'll be logged so the author can fix it

- javascript variables fix with ezscript (global) and javascript. Global variables have a $, and javascript doesn't (obviously :))
- New About window
- Improved logging for ezscript engine
- Fix for variable watcher throwing an exception because the timer loaded before the control UI initialized
- Stop camera when there is an error setting in Camera configuration. Default set to OFF, but can be turned on by the user
- control render performance improvement
- check for updates enhancement. Checks and prepares download link before loading the entire ARC program for performance
- new exception handling for crashes from plugins

- speech synthesis control is reusable and can take multi lines (paragraphs). Jeremie loves when I call him out on stuff, so this was his request and I don't quite understand it but here it is anyway:D
- close button on the add control window
- Fix for error diagnostic uploader
- Improved error logging for unhandled exceptions
- Updated URLs in url manager
- Button script fix for interface builder
- Mobile interface control has been renamed to Interface Builder control because it's not used for only designing mobile apps anymore

- script monitor updated for Arc
- cloud open window closes when ESC is hit
- Some controls have a minimum size. To prevent people from losing buttons on controls that have been resized (i.e. auto position)

- startup performance improvement
- Updated latest CEF
- Fix for timeout of web queries (update, etc)
- Check for latest version of plugins when internet connected and new ARC version installed
Initialize folder structure in program Start
- raise an error in scripting if attempting to send ControlCommand() to a control that doesn't exist
- fix for occasional error during multithread processors when shutting down ARC regarding disposing the ezb v4 sound driver
- ezb connections properly disposes removed connections
- ezbmanager improves handling up to 254 ezbs in a project
- ezb module is lighter with a few performance improvements

- Prioritized search path of libraries for 3rd party plugins
- Suppress debug log messages when application is shutting down
- Various performance & UI enhancements

- Fix for closing a project with user interface that isn't marked for Primary

- Migrates ARC to ARC projects (copies registry, copies projects, copies plugins)
- renamed namespace to ARC (plugins must be recompiled and reinstalled)
- Updated to .net 4.7.2 for enhanced dpi, performance and feature improvements
- Do not display error for log diagnostic uploading if internet isn't available
- Fix for logging Application exceptions
- notify the user if the plugin is referencing ARC and requires an update to ARC
- CONFIG PRESSSED override. Puts the config button in the title bar of controls to provide more real-estate
- Changed title bar close and settings icons in master template
- Performance improvement to controls
- fix for javascript drone land and takeoff functions
- i2c write byte for jeremie because he's lazy:D LOL
- Various other fixes and improvements

- Improved error handling in script executor
- GUI improvements for user controls in plugins
- Improvements and various fixes to existing controls
- Fix for global variable that detected negative numbers as a string
- Fixes for many javascript commands

- disabled experimental smooth scrolling in javascript editor for rendering performance improvement
- updated javascript syntax parser when editing
- cloud saving prompts error if exceeding maximum file size to save
- javascript editor keeps cursor position of last line rather than trying to parse the scope
- default for servo profile to be set to false in a new project. Can be changed when saving to the cloud or configuring in project properties
- saving displays message if the file was too large to be saved
- intellisense parsing fix
- Moved javascript Getvoltage and GetTemp from Utility to EZB
- Added IsConnected to EZB in javascript
- removed mpeg encoder in video recording because the codec doesn't exist in windows by default for mpeg2
- to prevent tabs from being broken into multiple lines in the tab control, use the thin space unicode that prevents line breaks

- performance enhancements to cloud open screen
- added available plugin sync
- plugin installer does not wait for keyboard input after successful installation of plugins via http
- clicking on uninstalled plugin in add control menu will automatically download and install the plugin

- fix for iotiny and v4 firmware updater
- iotiny has latest production firmware in firmware installer
- Removed sabertooth Movement Panel because it is now a plugin
- Update available plugin list with software update

- fixed downloading ezbits
- fix for getting ezscript variable into javascript if numeric by forcing the type
- allow updating plugins that are out dated from the add control menu
- various performance improvements

- several performance improvements to UI and layout of control content
- do not distinct video devices. multiple video devices of same moniker can be used
- Added new event to plugin control framework for PANIC STOP/RELEASE SERVOS. If a user presses the Options->Panic button, controls can bind to the event to stop per user request
- added ezbmanager.formmain method for programatically raising the panic/stop/release servo event. Same as the user pressing the panic button from the Options->Panic ribbon menu
- form script and script collection added to PANIC/STOP/RELEASE button

- several video performance improvements
- camera device has variable for glyph rotation degrees
- glyph detection performance enhancement
- increased error logging

- glyph rotation accuracy improved
- glyph performance improvement

- Fix for Blockly getVoltage and getCPUTemp (moved from Script to EZB namespace)
- fix for javascript editor intellisense with occasional double dot being inserted
- file read manager and javascript file commands additions for binary and string methods
- updated add control form
- networking supports SOCKS Proxy Servers (configurable in preferences menu)
- Fix error handling for open from cloud

- trim phrase text for speech recognition incase someone puts a space at the end of the phrase O_o
- fix for javascript servo Increment and Decrement
- fixed logic for javascript waitfor methods where the engine may return null exception when stopping script
- javascript method fixes: audio.sayEZBWait, net.HTTPPost, digital.toggle, and a few others
- intellisense improvement
- glyph performance improvements
- Added File.GetLength and File.GetReadPosition javascript methods
- Blockly and RoboScratch workspace UI enhancements

- added File.IsFileOpenForReading() javascript method
- proper exception handling for missing control commands or ControlCommand() incorrect syntax
- fix File.ReadLine()
- fixed shortcut creator
- fix javascript servo.increment
- Fix error msg for Audio.soundNote() from javascript

- various fixes and performance improvements
- fixed wiimote when disconnecting from raising a catastrophic error

- right click on downloaded plugin in Add Control to uninstall
- Allow users to create a robot skill from ARC from the menu item next to Add Control. Visual Studio is required

- integrated Jint into ARC namespace for convenience
- enhancements to Create Control builder
- enhancements to renderer

ARC Downloads

Teams FREE


  • Includes a free 3rd party plugin robot skill per project
  • Community support
  • Free with trial limitations

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


Early Access

Only $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.
  • Teams 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 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!

Yes I can report that I have no more problems and it is much faster!
Updated with several javascript editor improvements
Updated with new add control feature
Updated with a number of improvements and enhancements
Updated with performance improvements
#108   — Edited
I can't replicate that issue of locking a file by File.appendStringLine();

There were some changes to File namespace on the 17th. Not sure what version you're running. But the File.appendStringLine() merely ...


public void AppendStringLine(string filename, string str) {

System.IO.File.AppendAllText(filename, str);
System.IO.File.AppendAllText(filename, System.Environment.NewLine);
which is not lock a file.

If you're wondering what files are locked, use this:
I Can't reproduce with the new version.

Please run this code:


var filename="c:\\temp\\lines.txt";
if (File.exists(filename))
for (var ix=0; ix<100; ix++)
File.appendStringLine(filename, "Line " + ix);

print("Read lines");
while (!File.isReadEnd(filename))
var line = File.readLine(filename);
print(">>" + line);
And let me know if works as expected. I'm using the last version.
Perfect - thanks. Fixed for 2020.03.19.00

User-inserted image
this message keeps popping up.i dont see a version 2020.3.19.

User-inserted image

i also was not able to upload video's here on synthiam.
Updated with a new feature next to Add Control which allows you to create a control in ARC directly. Enter the information and ensure you have Visual Studio installed.
Black is a good general background colour.

Unless there is a lot of text to read, then black in white.

At least for this old fart ;-)
haha "at least for this old fart " glad i am not old allone.lolxD
One of the last (if not the last) update before moving to stable