Home / Programming / ROBOTC / New Release: ROBOTC 4.25

New Release: ROBOTC 4.25

There’s a new release of ROBOTC available for all platforms, version 4.25, the “Blood, Sweat and Tears” edition!  Well, the official name is “Preview Release”, but I think my name is more accurate.  A lot of work into making this release.  So without further ado, let’s have a look at some of the highlights of what’s new.

  • Full EV3 Functionality (Sounds, LCD, LEDs, Sensors, Motors)
  • Graphical Language for all platforms (VEX IQ, VEX Cortex – LEGO NXT, LEGO EV3)
  • Updated 3rd Party Driver Library for NXT and EV3
  • Updated Text Based Natural Language for NXT
  • Tons and Tons of Bug Fixes and Enhancements!

Screenshot-2014-08-15_17.37.14

I am a big fan of the remote screen functionality, which you can see above.  The EV3’s screen can be a little hard to read at times and this makes all the difference.  It’s also super handy if you want to share screenshots with your friends, or the forums if you want to share your awesome programs, or not so awesome bug.

Screenshot at 07-03-34

Another cool feature which has been added to the EV3’s arsenal of programming languages is the Graphical Language.  It’s a Scratch-like programming environment inside ROBOTC, that allows you to quickly drag and drop functionality into your program, without having to write any code!  What’s even better than that?  Well, with a click of a button, you can convert the Graphical Language to Natural Language, a simplified C-API that is the 2nd step towards full-blown ROBOTC.  Here you can see the above program, after it’s been converted to Natural Language.  Even your comments have been preserved, so nothing is lost.

Screenshot at 07-03-10

It is important to note that, once converted, you cannot convert the Natural Language program back to Graphical.

Steps before you can start programming:

LEGO NXT Users
  • Simply update to the latest ROBOTC firmware from inside of ROBOTC.
LEGO EV3 Users
  • Update your LEGO EV3′s Firmware/Kernel by connecting your EV3 and select “Download EV3 Linux Kernel” from inside of ROBOTC – This process will take about 5 minutes and will allow your EV3 to communicate with both ROBOTC and the EV3 Icon-Based programming language. After updating your EV3′S Linux Kernel, you’ll be able to install the ROBOTC firmware from inside of ROBOTC.
VEX IQ Users
  • Run the “VEX IQ Firmware Update Utility” and update your VEX IQ Brain to firmware version 1.10. You will also need to update your VEX IQ Wireless Controller by attaching it to your VEX IQ Brain using the tether cable. You will also have to install the latest ROBOTC firmware from inside of ROBOTC.
VEX Cortex Users (with Black VEXnet 1.0 Keys)
  • You will need to update your VEX Cortex and VEX Game Controllers with version 4.25 from inside of ROBOTC. After updating your master firmware, you will also have to install the latest ROBOTC firmware as well.
VEX Cortex Users (with White VEXnet 2.0 Keys)
  • The new VEXnet 2.0 keys have a specific “radio firmware” that you will need to upgrade to enable “Download and Debugging” support. You can find the “VEXnet Key 2.0 Firmware Upgrade Utility” utility here.
  • Link: http://www.vexrobotics.com/wiki/index.php/Software_Downloads
  • Download the “VEXnet Key 2.0 Firmware Upgrade Utility” and insert your VEXnet 2.0 key to any free USB port on your computer. Follow the instructions on the utility to update each key individually. All VEXnet 2.0 keys must be running the same version in order to function properly.
  • After updating your VEXnet 2.0 keys, you will need to update your VEX Cortex and VEX Game Controllers with version 4.25 from inside of ROBOTC. After updating your master firmware, you will also have to install the latest ROBOTC firmware as well.

The complete Changelog (better grab a coffee):

  • Cortex: Added servo motor commands to Cortex for Virtual Worlds.
  • Cortex: Added potentiometer commands to Cortex for Virtual Worlds.
  • Cortex: Add Timers and Clear Timers to Graphical for Cortex.
  • IDE: Spurious “rbg” file extension may have been added when saving a text file created from converting a graphics file. Fixed.
  • EV3: Update the routine that checks for “valid syntax of NXT on-brick file” for EV3. EV3 has different rules for file names than NXT.
  • VEX IQ: Added sound commands to Natural Language for VEX IQ – modified the playNote command to use typedefs to make it easier for natural language users.
  • Compiler: When substituting symbol names that match except with different letter case do a better job of handling the case when multiple symbols might possibly fit.
  • EV3: Support for standard ROBOTC “playTone” file with EV3.
  • Updated IDE Version (4.25)
  • Updated Firmware Version (10.25)
  • IDE: New Help System Engine + Content Files (replaces CHM)
  • Debugger: Fixed issue where VEX IQ motor debugger window was displaying “raw” encoder counts instead of “scaled” encoder counts.
  • Virtual Worlds: Adjust “no echo” value for VEX IQ in Emulator/Virtual Worlds
  • IDE: Default directory has been adjusted to be “my documents” instead of the root ROBOTC directory for saving un-saved files.
  • Compiler: Format code “%f” was broken in implementation when a number of decimal specifier wasn’t provided. Fixed.
  • Natural Language: Updated Natural Language Libraries to include “debugging” to LCD commands.
  • GUI: Updated Desktop/Start Icons for Graphical
  • Debugger: Sensor window had some “artifacts” when the number of display rows was larger than the number of active sensors. Fixed so that artifacts are now blank lines.
  • Compiler: Fixed compiler bug. Conversion of ‘float’ constant expressions to ‘long’ constant value was incorrect. End result of bug was that most likely value assigned was zero.
  • EV3: Added resources to the firmware image with sounds and images in /home/root/lms2012/resources/
  • EV3: EV3 firmware from LEGO does not properly handle the use of ‘.’ in the middle of filenames. Replace the ‘.’ with ‘_’.
  • Compiler: Fixed issue with rand() – Compiler was incorrectly optimizing get/set property opcodes to a one-byte index value with constant parameters. Almost all properties only need one byte with exception of “propertyRandom” which was behaving incorrectly as a result of this bug.
  • Graphical: Support for “compiler error” display for graphical files including using “graphical block numbers” rather than “text line index” for error display.
  • Graphical: Tweaked graphical loop block colors.
  • VEX IQ: Allow the debugger to display information based on the global motor encoder units instead of raw counts for VEX IQ
  • Cortex: Updated VEX Cortex IME Support to reflect new motor type (393 with Turbo Gears). Also removed some inconsistencies in the software as well.
  • EV3: When USB connected EV3 is disconnected then ROBOTC would not reconnect to it when reconnected until ROBOTC application was existed and re-entered. The problem was ROBOTC was using a “old” list of “discovered devices”. Now discards list of devices and rescans — when connecting via USB only — and problem is resolved.
  • EV3: Support for EV3 text drawing to screen.
  • EV3: Breakpoints now working for EV3.
  • EV3: Add support for “EV3 Remote Screen” as part of the Debugger.
  • Compiler: Improved implementation of compiler parse for ‘typedef enum” and “typedef struct”. Implementation is now closer to standard “C” with better handling for “anonymous” typedefs. Does not break any sample programs.
  • IDE: “Open Include File” command in source file context menu was broken; fixed. “Go to symbol definition” context menu command now filters out macro parameters and procedure variables.
  • NXT: Fixed issue where “simple” game controller data wasn’t appearing in available debugger windows
  • Graphical: Graphic trash can implementation. You can drag selection to the trash can to delete blocks.
  • NXT/EV3: Fix spurious generation of “#pragma config” for PID settings that are all set to 0xFF values.
  • Graphical: Syntax checking on graphical files. Some errors are now flagged.
  • Graphical: Implement “Comment” block for Graphical views including edit capability.
  • EV3: New Commands for EV3 IR Sensor
  • EV3: New Commands for EV3 Bumper/Touch Sensor
  • EV3: New Commands for EV3 Color sensor
  • EV3: New Commands for EV3 Gyro sensor
  • EV3: New Commands for EV3 Touch Sensor
  • Graphical: “>” and “<” comparison operators were swapping when saving a graphical file. Fixed.
  • IDE: When a new source file is opened (or a template file) do not initially set the “modified” flag in the file. Only set the modified flag after end user has modified the file.
  • IDE: Avoid double “Save File” prompt when compiling a file and on the first SAVE prompt you click cancel.
  • EV3 Kernel: Image of latest build – version 1.06X and all the I2C enhancements.
  • EV3: IDE “File Management” window for EV3 was often crashing; fixed a buffer read overflow situation which clears this up. Better text error message when there is not enough free flash memory to write a new file to the EV3.
  • IDE: Disable “error” message box when pulling USB cable from robot brain (and the debugger shuts down).
  • VEX IQ: Visual Error handling for Debugger Exceptions (Wrong Motor/Sensors/etc)
  • VEX IQ: Updated GUI Text: When a ROBOTC AUTO program had previously ran, and then a user was trying to access a TeleOp program, they would be greeted with a “No Radio Needed…” message box. Updated the text to reflect that if they’re seeing a message they probably need a remote control, because this string is never presented to the user for more than a split second in Auto mode.
  • IDE: Fixed issue with “Sensors” debugger window not being able to be edited.
  • VEX IQ: fixed Issue with VEX IQ Color Sensor – Hue values were being scaled improperly.
  • Graphical: Reduce flicker on graphical view when dragging blocks.
  • Graphical: Added registry options to adjust the appearance of graphical programs. Includes show/hide {}. Show/hide semi-colons. Optional “end” text on end block. Etc.
  • Robot Virtual Worlds / VEX IQ: Invert the proximity value provided by the vex color sensor to align with real hardware.
  • IDE: Add support to “Motors and Sensors Setup” to store drive side — left/right/none — for each motor. Graphical Movement Commands will now use this data to decide what motors to drive
  • Graphical: Adjust width of graphic programming blocks based on contents of edit controls and width of drop down menu items.
  • Graphical: Added EV3, VEX Cortex and NXT as “Graphical Language” platforms.
  • Bug: Large ICON toolbar was not getting built when IDE is opened unless it was “opening last file”. Changed data table to ensure that it is initially built.
  • IDE: Added ability for “Macro” commands to Compile/Download/Launch Graphical Files when special flags are stored inside of the .RGB files.
  • Graphical: VEX IQ Motors and Sensors now support dynamic menus based on Motors and Sensor Setup Data

About Xander

Xander Soldaat is a Software Engineer and former Infrastructure Architect. He loves building and programming robots. He recently had the opportunity to turn his robotics hobby into his profession and has started working for Robomatter, the makers of ROBOTC and Robot Virtual Words.