Release 2013.01.12.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

This release is minor and the update focus is on the EZ-Script i2c read/write commands. The i2c is normally a confusing protocol due to the addressing issues. I have created the i2c commands in EZ-Script to figure out all addressing conversion for you :)

Click here to read about i2c:

Click here to locate the i2c port on your EZ-B:

For example, the confusion behind the i2c addressing lies in shifting the 7 bit address into an 8 bit address, and setting the LSB to 0 or 1 depending on the direction of the data. Does that sound confusing? Good, because you do not need to worry about any of that with ARC!

If you communicating with an i2c device (for example an Arduino or Compass, etc) - you may be given one of many address types....


Device Address: 0xa0


Device Address: 0x50


Device Read Address: 0x50 Device Write Address: 0x51

The above list of addresses are all the same - surprisingly. In any other environment, you would need to understand how they are the same to know how to use them. You would need to convert between 7 bit and 8 bit of 0xa0 to 0x50. You would then also need to convert the 0x50 to 0x51. Wow, so confusing! Well, ARC makes it easy.

In fact, you can use ANY i2c device address - without needing to format or convert the bytes. ARC will figure it out for you:) You simply connect the device to your i2c port, read the manual to find the i2c address, and enter it in ARC's EZ-Script i2cWrite() or i2cRead() commands.

  • Release() fix
  • i2cWrite() and i2cRead() do not need device address conversion
  • Change tracking color by ControlCommand(). See below example

Tracking Color Change Command

ControlCommand("Camera", CameraColorTracking, "Red" )
ControlCommand("Camera", CameraColorTrackingEnable, "Blue" )

ARC Downloads

ARC Free


  • Includes a free 3rd party plugin robot skill per project
  • GPT-Powered AI support
  • Free with trial limitations

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



Only $8.99/mo

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

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



  • 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
  Get ARC for Free View Plans
Usage Personal
Premium support $14.99/ticket $9.99/ticket
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, azure text to speech)


Upgrade to ARC Pro

Subscribe to ARC Pro, and your robot will become a canvas for your imagination, limited only by your creativity.


The EZ peezy continues...Thank You DJ! :)

United Kingdom

Nice! Just in time for my I2C bits and bobs that are on their way to me. As always, thanks DJ.


OK, I'm fixen to show my ignorance here. I've been really interested in the 12C port but don't really understand it. What types of devices can I run through the 12C port?

I have a optical shaft encoder on one of my DC motors that I cant figure out how to use with EZ-B. Is there a device out there that can interface with EZ-B that will let me use this encoder now?


You will soon dave :)

#6 you Dave! :)


Wow, thanks. Now I have something to read this afternoon. ;)

New Zealand

As I said way back in the beginning of our journey....

There is one ring that rules them ... EZ aye !


DAVE did you get my reply about using WC-132 from NUBOTICS is has I2C PORT and has motor drivers and optical encoders inputs

nubotics wc-132 board looks like a great add-on for EZB

User-inserted image

United Kingdom

That board looks ideal for a future project I have in mind, and price isn't too bad either $89(USD).


i ordered 2 for some of my projects,I2C doesnt look to hard with the new EZB update


Robotmaker, no I didn't see your post on this board. sorry, I've been busy since the holidays and haven't had much time to spend on the forum.

Thanks for going through the trouble and time of pointing me to this. It looks like an ideal solution and easy addition to EZB. I wish I had seen this months ago. It would have saved me tons of work. Maybe I'll still get one.

thanks again!


@Dave, all that board will do is return the ticks to the EZ-B for the encoders. It will be the same amount of effort as you have done with the ADC Variable Resistor. The tick count won't provide you with positioning either. Meaning, you only know a rough estimate of how many rotations the motor has made - unless you know the starting position, it's impossible to know where the moving component is. Even if you do know the starting position, it's not an accurate way of moving to a specific position.

The Variable Resistor solution that you use is how Servos work. And the reason Servos use a Variable Resistor, instead of an encoder, is to have a great dependable method of addressing custom positioning.

Encoders are only beneficial for helping a two motor'd mechanism to drive very straight.


DJ i found out its the other way ,quadratue encoders are used for odometry and navigation it does need other sensors for good navigation.

Quadrature encoder has 2 channels A and B,servo feedback only has one and resolution is very low compare to let says 120 cpr or even 1024 cpr

Here is info on odometry optical encoders Odometry is the use of data from moving sensors to estimate change in position over time. Odometry is used by some robots, whether they be legged or wheeled, to estimate (not determine) their position relative to a starting location. This method is sensitive to errors due to the integration of velocity measurements over time to give position estimates. Rapid and accurate data collection, equipment calibration, and processing are required in most cases for odometry to be used effectively.

Single encoders are not that bad,but still have much higher resolution then a feedback pot and more linear Single optical encoders are in IROBOT roomba models for navigation Single magnetic ENCODERS using hall effect sensors and magnet are in NEATO models


SOME other info on using servo pots ,can only get 180 deg or so,since the pot has a dead stop thats why when you need a servo to set up as continuous servo ,the pot is removed and two 2.5k or pot is adjusted to center OPTICAL encoders have a pulse out (pwm) magnetic encoders have 0-5 volts out mostly WAY A QUADRATURE encoder is that one is set at 90 deg to the other IR sensor


Thanks to both DJ and Robotmaker for the education.

I was and am exploring other methods of sending back positioning info to EZ-B other than large Variable Resistors (pots) I've found. I really don't have any extra room up in the head of B9. I'm animating the radar unit under the bubble so it will rotate back and forth by script or hopefully with the tracking camera when someone walks by. With all the gears, motors, wires and switches I'm running out of room. However just tonight I think I've worked out a way for everything to fit.

My first preference would be the ADC Variable Resistor at this stage with the build of my B9 robot and my experience. I've already used them twice in other parts of the robot for custom rotation positioning and have scripts already figured out and working. This method works great for me and seems to work with how EZ-B controls my animation. The only things I have worried about was going past the stop point of the pot and the pot wearing out over time and returning drifting voltage readings. On the first worry; I will not rotating any part of my B9 more than 180. Also I have installed multi turn pots that will give me 10 rotations. I've also installed stop plates and limit switches just in case disaster happens. In the second worry; I'm sure the pots will drift over time and if I'm alive to see that then they can always be adjusted in ARC, cleaned, replaced or upgraded.

Someday I may have more knowledge and get back in there and use more sophisticated sensors but for now I'll stay with the tried and true.

Again, thanks for the help and concern. I can use all I can get! Keep it coming. ;)


All valuable information,which Ive book marked, amongst dozens of others. Thanks robotmaker and seems the thread has "drifted" off the "release" topic , but thats keeps me checking and saving pertinent threads :)


Dave check out they have so many encoders all types,i am looking to get the small one they make thats what makes pot not so great DRIFTING and accuracy

You need both in real good PID and navigation.

Hall effects and OPTICAL encoders dont drift and very high accuracy.

ADC analog pots are mostly for servo's ,because drift and accuracy not important if you do research on it will found out why ADC pots not good for PID control or navigation.


another item about ADC pots the range is same as a magnetic encoder with ADC output so thay are about the same only no drifting and accuracy little higher Second you need a very stable 5 volt source or more drifting on magnetics doesnt need to be stable

ABOUT optical encoders if you do a formula on the size of the wheel and CPR of the encoder you can find how much it travels from start to end,and higher the CPR higher the accuracy of feet traveled and same with left turn or right or backwards and using a grid map for navigation


Again, encoders should not be considered for your applied use. Counting the number of ticks will not be an accurate and reliable method of custom positioning. Use analog variable resistors (pots) and the ADC port.:) Good luck!

Spend a few minutes thinking about it and you'll Eureka to the reason why encoders are not designed for positioning.


I'm sold DJ. I've seen it in action on my nattering ninny. I'm truly amazed how much control I can have with speed and positioning with pots and EZ-B.


Don't forget to share your POT code in the new EZ-Script section. I know many would benefit from it :)


DJ i guess magnetic encoders can be use in the ADC PORT TOO

And will you have a module to read optica encoders,i would think is very easy to read PWM like the way sonars do using the echo port


Accuracy of a pot is about 2-3 bits unless you go to a higher price of a multiturn then looking at 5 bits accuracy of magentic encoder is 10 bits and can get them up to 14 bits

Voltage output on both are the same ,both put out 0-5 volts level and both are connected to the wheel so better replacement to pot is magnetic encoder,since they really do the same not really counting the ticks on a magnetic encoder

here is some info off the site usdigital that mostly makes encoders

Analog output provides an analog voltage that is proportional to the absolute shaft position. Analog output is only available in 10-bit resolution.

and some info on tracking ,there are 2 types of encoders one is absolute and other is incremental

Position Control When controlling robotic end effector's position, absolute encoders are the preferred solution. US Digital absolute encoders are unique in the market as they offer high performance without the complicated communication protocols normally associated with absolute encoders. The compact size of the miniature magnetic MA3 encoder means that absolute encoders can be used in creative and tight spaces; the designer no longer needs specialized hardware or software to interact with the encoder, opening up a new world of possibilities.


So my question would be; How would this MA3 encoder interface with the EZB? Through the ADC port? Would it return the voltage values just like a common pot?

DJ, I didn't know you had the coding section up and ready. Wow, that was fast! I'll get my codes in there asap.


Wow, that little sucker costs over $70! Sure looks nice though and sounds likes it returns voltage readings like a regular pot. very tiny also.


They make others under $30 small size,but on that one i bought 6,if you buy 5 or more price drops alot dont forget when you deal with higher precision and smaller size price is high

Also another point most pots DONT DO 360 deg ,witch is what is needed on a motor feedback

I did find some but at a cost of $50 and there are big ADC takes 0-5 volts ,and both put out 0-5 volts ,its not like digital,so interfacing is the same

I SELL high torque motors from neato xv-11 and they come with magnetic encoders,they put out the same voltage


robotmaker, I think this part could help me. I need shaft position feedback, but let's say I have 60 turns of the shaft. I don't want to mess with gearing to get the shaft turns to something reasonable for a feedback pot. This peice is not limited mechanically, right? It will continue to rotate mechanically and just reset it's analog output?


i think so, never tested it

ALSO for others, regular pots are not 360 deg continuous and even multiturn they have a metal stop inside,they work great for servo position ONLY.

So only magnetic hall effects encoders can be used on motors for navigation and speed with analog output ,second can only tell if going foward,unless you have a differential circuit.

On quaderature optical encoders have 2 outputs 90 deg to each other and has ciruit to tell in going foward pulse or backward pulse ,by comparing the pulses.

When i get a chance and time looking at making pulse width to analog voltage out circuit.