ARC Ez-builder 2014.03.27.00

Download and install the latest ARC robot programming software to experience these updates.

Download ARC
Software Information
*Warning: This update includes a firmware update to the EZ-B v3.

This is an update to the EZ-B v3 firmware in preparation for shipping the v4. As you know, the v4 has amazing bandwidth and super low latency of all asynchronous events (i.e. streaming video, streaming audio, commands, etc.). The bandwidth of the EZ-B v4 is 6.66 mbps, which is a kabillion times faster than the 9600 bps of EZ-B v3. The EZ-Builder and EZ-SDK had filters which prevented too much data from flooding the communication channel of the EZ-B v3. Well, I have learned a thing or two while designing the v4.

The communication protocol between the client and EZ-B has always been very optimized and efficient - that was never a concern. However, how the EZ-B internally processes and buffers the incoming commands was improved. While designing the v4, I took advantage of the ARM CPU's many DMA channels. DMA is the Direct Memory Access feature of full featured processors; even found on in your PC. With DMA, the processor does not need to use expensive program instructions to perform simple tasks between Peripherals (hardware) and Memory. The EZ-B v4 has 8 DMA channels actively operating to buffer data between peripherals and the memory... This allow the main program to use it's impressive 120mhz processing speed effectively.

What does this have to do with the v3? Well, the v3 is a very simple and (forgive me) old school microcontroller. This old hardware does not have DMA, so the main program needs to handle both peripherals and command instructions - sharing the total processing speed of only 40mhz.

A while ago, I had an interesting idea - of how to take advantage of the hardware interrupts of the EZ-B v3's microcontroller to simulate a DMA style input buffer... Well, guess what? It works!

The benefits to the v3 having this custom software DMA faux input buffer is EZ-Builder no longer requires a communication speed filter. This also means far more responsive commands. During tests last night, Jeremie was changing colors of a BlinkM RGB LED over I2C while running a 12 servo Auto Position Script. With the previous 16.0 firmware, the BlinkM color changes were twitchy and laggy. With the new improved firmware 16.3, the responsiveness was very noticeable.

Also, those who use Ping and Sharp IR sensors will notice a dramatic performance difference!

There have been a few other changes in the latest v3's 16.3 firmware... However, these are changes which are internal to the operation of the EZ-B v3 for compatibility with the upcoming v4. Although there are no "new" features to the EZ-B v3, there are many reliability and performance enhancements - that I am certain you will notice.

The biggest change to this update is also the communication protocol. In order to make room for the new EZ-B v4 commands, the protocol needed to be reworked a little - do not worry, it's still as efficient as always :). This does mean that the Android App will also need to be updated in order to work with this new firmware 16.3. I'll post the Android App update later this evening.

- new command: GetADC12()
- new command: checkForUpdate()
- fix for $array[$x] support
- SDK supports 12 bit ADC
- all tracking types display more than one object returned but will only use the largest detected object
- support for three UART ports on v4
- removed support for v1 file format
- removed TCP password for v4 compatibility
- removed TCP EZ-Builder Command Server which allowed EZ-Builders to be chained together for v4 compatibility
- display variable arrays in form varaiable watcher
- EZ-B v3 Firmware v16.3
Czech Republic
Thank you Troy .Me and my son are happy. But after last update not. I would like to ask for help.
As always, I'll look into it, find the reason, and solve it:) I'll check on that today.

As for the adc multiplier, that has not changed - the multiplier can be edited in the config button. Press the config button and change the multiplier for your voltage.