Change Release Notes
Welcome to the new ARC (Autonomous Robot Control) Software!
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 story line in episodic storytelling media such as television, comic books, comic strips, board games, 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.
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
Unleash your creativity with the power of easy robot programming using Synthiam ARC Pro
OK, Using the Beta-2020-04-05-00-19321 version I now have scroll bars on desktop 2 & 3. Thanks.
I also see the person number in the About section. I guess I'm just blind. LOL.
Thanks once again!
@ DJ Sures Progression from EZB srcipts to ARC scripts progressing very well, and I'm learning too. But back to arrays. I'm still stuck. Creating and accessing array within an ARC script, no problem: Pixel = ["P0","P1","P2","P3","P4","P5","P6","P7","P8","P9","P10","P11","P12","P13","P14","P15"];
_count = 0; while(_count < 16) { print("count = " + _count); print("Pixel = " + Pixel[_count]); _count++; }
But I need to create the array in Init ARC script, and access the elements in another ARC script (global variable). But when I try to define with the same way as I do for global variables with the setVar(), I get: <<Variable is an array: $Pixel>> and $Pixel is not shown in the global variable list i(t is not defined) Init script: setVar("$Pixel",["P0","P1","P2","P3","P4","P5","P6","P7","P8","P9","P10","P11","P12","P13","P14","P15"]);
How to define the arrays ?
Oh - I see... You want to push an array from JavaScript to the global variable. You're right, it seems to be not working. I just fixed it now and will publish it in tomorrow's beta channel for ya
Oh, btw... you can get the length of an Array in JavaScript with .length... like this...
or you can simply loop through like this...
@DJ Sure Thanks.
The global variable array definition works (They show up in the global variable listing)
setVar("$Pixel",["P0","P1","P2","P3","P4","P5","P6","P7","P8","P9","P10","P11","P12","P13","P14","P15"]);
But for some reason, I can not use a variable as an index to retrieve an element.
This is ok:
print(getVar("$Pixel[15]") );
But this does not work ( I get: << Input string was not in a correct format. >>
_count = 0;
x = getVar("$Pixel[_count]");
Same thing with a local script: << Input string was not in a correct format. >> _count = 0; x = getVar("Pixel[_count]");
Also, I can not get the .length to work. setVar("$Pixel",["P0","P1","P2","P3","P4","P5","P6","P7","P8","P9","P10","P11","P12","P13","P14","P15"]); print(getVar("Pixel".length) ); That gives me << Variable not defined: $5 >>
cool
Assign the global variable to a local one.
var myArray = getVar($globalArray);
and then do stuff to that array
It says I have 2020 4.7 beta , a later version
@DJ Sures Yooohooo, it works !!!
It took me a while to figure out a syntax error, but I'm not about to gorget it now (hope not).
When retrieving elements from the array in the loop, I was coding getVar("$Pixel[_count]"); instead of getVar("$Pixel[" + _count + "]");
Now that I have control over the individual pixels of my Neo-Pixel Ring, I got to figure out how to write to the serial port.
In EZB scripting, I was writing:
$NeoPixelSerialPin = "0.d18" // Define serial pin (init script)
SendSerial($NeoPixelSerialPin,9600,"C0,0,0") // Send string "C0,0,0" to serial port at 9600 baud
But now, I assume I must use the COM. So just open port and send data ?
Open port:
com.open(port, baud);
COM.open(???, 9600);
Send data:
com.writeString(port, str);
COM.writeString(???, "C0,0,0");
Am I close ? What do I write for port ?