Home / Programming / ROBOTC / Released: ROBOTC 4.29

Released: ROBOTC 4.29

ROBOTC-4-29-660

So you think you can Changelog?  Grab a cup of coffee and something to eat, because this is a LONG list.  ROBOTC 4.29 is out we’ve made a lot of changes to all platforms.  Many bugs were squashed and some new features were added  Please note that the Changelog is split up into changes from 4.27 (previous release) to 4.28 (latest beta) and 4.28 to 4.29 (latest release).  Are you ready?

If you don’t want to read but just want to download, here are the links:

  • ROBOTC 4.29 for MINDSTORMS EV3 and NXT: [LINK]
  • ROBOTC 4.29 for VEX Cortex and IQ: [LINK]
  • ROBOTC 4.29 for Robot Virtual Worlds (MINDSTORMS): [LINK]
  • ROBOTC 4.29 for Robot Virtual Worlds (VEX): [LINK]

ROBOTC 4.28 BETA -> 4.29 Change Log:

(EV3) Add additional message traces when enumerating Casper devices — generate a message about each device that is found during enumeration.
(EV3) Hide “Poll LEGO Brick” from EV3 – not currently supported.
(EV3) EV3 motors now use correct motor speed/power functions, depending on the PID flag in the setup pragma/dialog.
(EV3) Added intrinsic (getMotorRPM()) to calculate the RPM of a motor, updated 10x per second
(EV3) Added intrinsic to sync two motors for an infinite amount of time (setMotorSync)
(EV3) modeNXTTemperature_F was incorrectly setting mode to sensorSONAR
(EV3) Example of how to use the getMotorRPM() function. Displays a cool RPM meter on the screen.
(EV3) convertPCFileNameToFileName_LINUX() uses getMaxFileNameSize() to retrieve max filename size.
(EV3) File names exceeding 31 chars are now truncated to prevent errors.
(EV3) Fixed the Friendly_IRBeacon.c program, some code was commented out, which shouldn’t have been
(EV3) Added a stall detection example which uses the getMotorRPM() function
(EV3) Convert legacy NXT I2C types into EV3 equivalents.
(EV3) Added “moveMotorTarget” to Graphical
(EV3/NXT) Driver Suite updated to the latest version in Git. Note that there’s an identical copy in both the NXT and EV3 folders
(NXT) Fixed issue in “Motors and Sensors Setup” the code that compared configuration against the various standard models was not working when “External Controllers” are used.

(CORTEX) Updated VEX Cortex Graphical Implementation to support competition (single run autonomous per toggle)
(CORTEX) Modified “BuiltInVariables.txt” to properly show VEX Cortex commands.
(IQ) Fix RVW Clawbot standard model to match Virtual Worlds configuration.
(IQ) Add Armbot with Sensors “standard model”
(IQ) New RVW Specific Motor and Sensor Models + VEX IQ Clawbot – No Sensors model.
(IQ) Added “moveMotorTarget” to Graphical

(ALL) “Test Communications Link” dialog was not properly storing/retrieving the registry value for the “Ping Type” variable.
(ALL) Debug stream fixed so that “Clear Debug Stream” clears the IDE’s Window at the proper location; previously it was possibly erasing the screen at a spot well after the actual “clear” function was called.
(ALL) Enhance Debug Stream handling to better support (1) Buffer overflow conditions and (2) proper visual appearance on IDE when “Clear Debug Stream” intrinsic is used.
(ALL) Adjustments so maximum size of messages transferred between IDE and emulator increased to 10K from 1K.
(ALL) Fix bug when maximum message size now exceeds maximum flash sector size.
(ALL) Joystick buttons had different enums for real and virtual robots. This affected the joy1Btn() command.
(ALL) Upissue Firmware Version to 10.29 / Upissue IDE Version to 4.29
(ALL) Contents of DebugStream window can now be saved through the menu
(ALL) Automatically select RVW package if one is not selected.
(ALL) Increase number of RVW Packages available to 40 potential options – allows for future level packs.
(ALL) DebugStream can now also be saved as a *.csv file
(ALL) DebugStream Window contents can now be saved to a file.
(ALL) User models (from Motors and Sensors setup) can now use relative filenames for user models.
(ALL) Fix crashing issue when CheckForUpdates get a malformed XML file (typically hotel login pages)
(ALL) Fix crash issue when Version XML file download is corrupted by school/hotel/conference “login” screens.
(ALL) Fix crash issue when licensing libraries return an unexpected return value – error message string formatting command was invalid causing a crash.
(ALL) Added pipe symbol to the LCD Printing Libraries fonts.
(ALL) Fixed backslash character in small font.
(ALL) Better parsing of “If” and dangling “else” clauses. Prevents a compiler crash when bad syntax in the “if” condition clause.
(ALL) Support in GUI for use of user-defined “motors and sensor configuration data files”.
(ALL) New “registry flag” to indicate whether user defined “configuration model” files are allowed.
(ALL) Previously breakpoints could not be defined in header files. This is now fixed.
(ALL) Benign. Enhance output in message trace window for “set breakpoint” message.
(ALL) Command line based activation / deactivation commands. Implemented but not fully tested yet – documentation to follow.

ROBOTC 4.27 -> 4.28 BETA Change Log:

(EV3) Fixed user reported bug in Synchronized Motor Movements commands.
(EV3) Disabled setting sensor ports to typeNone/modeNone when initially configuring port. This prevented sensor ports from being reconfigured manually afterwards inside a program.
(EV3) Added Joystick support for EV3.
(EV3) Fixed BMP files not displaying properly on the EV3 screen.
(EV3) Added Datalogging for the EV3. It is file based and saves the data in a CSV format under prjs/rc-data/
(EV3) Added EV3 file operations for reading/writing to files. Commands are available for reading/writing all types and raw data. Files are saved in the standard ROBOTC projects folder and cannot be saved elsewhere for security/safety reasons.
(EV3) Fix EV3 issue of USB connected brick disconnected when COMM link is open and IDE cannot recover when USB link is reconnected.
(EV3) Changed ramp up/down parameters to 0 for EV3 motors, as per the LEGO programming environment. This is a feature ROBOTC was using but isn’t supported well by the EV3.
(EV3) Fixed issue where motor speed was not normalized to -100 to 100 when values exceeding the maximum were provided.
(EV3) Adjusted I2C read and write commands to use standard LEGO ioctl. The calls are non-blocking.
(EV3) setSensorTypeModeFromWithinOpcode is now used instead of calling for a separate type and mode change. This fixes the issue of bad sensor modes.
(EV3) EV3 Touch sensor can now have both bumps and touch value read, regardless of mode
(EV3) sensorReset() now calls appropriate reset function, depending on the connection type. If used on Gyro or Touch, the heading or bump count is reset, respectively.
(EV3/NXT) Fixed issue with ROBOTC ‘auto-updater’ when launching ROBOTC for LEGO based platforms.

(CORTEX) Fixed issue where performing a new motor PID movement when an existing PID movement is in progress didn’t work properly.
(CORTEX) Allow users to select “Xmtr2″ for VEX Cortex Graphical (Expert and higher menu level)
(CORTEX) Added competition control and competition template for Cortex Graphical
(CORTEX) Added Virtual Worlds Natural Language 2.0 Library for VEX Cortex
(CORTEX) Renamed old-style Natural Language mode to “Natural Language PLTW”
(CORTEX) Fixed issue where software inspection would fail without a radio link on VEX Cortex
(CORTEX) Added dialog message to Cortex “Download Firmware” button on large icon toolbar.
(CORTEX) Multiple incomplete consecutive PID moves. Fix issue when current move is in “ramp down” and new PID movement is initiated.
(IQ) Added additional standard models for VEX IQ.
(IQ) Fix issue where mode wasn’t being set for Graphical for VEX IQ Color Sensor.

(ALL) Updated Help System Documentation for new commands and features.
(ALL) Updated Firmware for 10.28 / 4.28 compatibility.
(ALL) Added a compiler error when ‘switch’ expression was illegal.
(ALL) Support for optional “int” keyword as in the declaration “short int” or “int short” in addition to “short”.
(ALL) Add USB Joystick control to Graphical (in loop blocks)

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.