Archive for the ‘Update’ tag
The ROBOTC Development Team is happy to announce an update to ROBOTC for VEX Robotics – Version 4.05! This new version fixes a number of user reported issues and also adds a few new features and enhancements. We recommend that all ROBOTC 4.X users upgrade to the latest version of ROBOTC for VEX Robotics. Download ROBOTC for VEX Robotics 4.05 today!
Also available today, users are able to purchase and upgrade to the new ROBOTC for VEX Robotics 4.x. To see pricing details and purchase/upgrade your license, visit http://www.robotc.net/purchase/vexrobotics/ (for Real Robots) or http://www.robotc.net/purchase/rvw/rvw-vex-4.php (for Virtual Worlds).
ROBOTC 3.x to 4.X upgrade details:
ROBOTC for VEX Cortex and PIC 3.X Upgrade
Perpetual Users (who purchased in 2013): No upgrade fee! Full purchase price will be applied towards same type of license for 4.0.
Perpetual Users (who purchase before 2013): 50% discount on equivalent 4.0 License
Annual Users (who purchased in 2013): 50% discount on equivalent 4.0 License
ROBOTC Virtual Worlds for VEX Robotics 3.x Upgrade
FREE VIRTUAL WORLDS UPGRADE FOR ALL EXISTING USERS!
In order to upgrade, you will need your existing LicenseID and Password information to complete the upgrade checkout process. A new licenseID will be generated for your upgrade license. For a walkthrough on the “upgrade” process, visit our ROBOTC.net Wiki page on upgrading your license.
The upgrade period for ROBOTC for VEX Robotics 4.x is only 6 months long and will expire on June 1st, 2014 – so upgrade today before it’s too late!
4.04 -> 4.05 Change Log:
- Moved Virtual Worlds folder to C:/Program Files/Robot Virtual Worlds (may be /Program Files (x86/) to support future products.
- Resolved an issue where ROBOTC would crash whenever a USB device was plugged into the computer on 32-bit (x86) machines.
- Fixed an issue where the “reverse” flag for Virtual Worlds was being applied twice (effectively ignoring the reverse flag)
- Fixed an issue where the “Check for Updates” was not triggering properly at the start of the ROBOTC application.
- Enabled the “Joystick Configuration” menu option – was previously hidden from end users.
- Updated Virtual Worlds Curriculum Companion to 3.3.1
Here’s a few notes before you get started with the new build with VEX IQ:
* Make sure you use the VEX IQ Firmware Update Utility and update your VEX IQ Brain to version 1.07 or later – this is required to use the new 4.03 Beta Version of ROBOTC for VEX Robotics
* If you are using the VEX IQ Color Sensor, there is a new firmware version available for it as well. Upgrade the IQ Brain to version 1.07, then connect your VEX IQ Color Sensor and use the “Update” button.
* Inside of ROBOTC, you’ll want to download the latest ROBOTC firmware (version 10.03) to your VEX IQ. Use the “Robot -> Download Firmware” option to download this new firmware onto the VEX IQ Brain.
* If this is your first time using your VEX IQ kit with ROBOTC, make sure to take at the ‘Getting Started with VEX IQ Guide‘ on the ROBOTC wiki for instructions on setting up the VEX IQ system.
ROBOTC for VEX Robotics 4.X includes the new ‘Natural Language 2.0′ for the VEX IQ platform. Programming robots has never been easier than the new and improved Natural Language 2.0. Learn more about Natural Language and download our new documentation at http://www.vexteacher.com (Note: the VEX Cortex will continue using Natural Language 1.0 to maintain backwards compatibility.)
Here’s a few notes before you get started with the new build with VEX Cortex:
* There is new ROBOTC firmware for the VEX Cortex system. Use the “Robot -> Download Firmware” option to download this new firmware onto the VEX Cortex microcontroller.
* The default platform when starting ROBOTC for VEX Robotics for the first time is now VEX IQ. Cortex users can switch the platform back to Cortex mode by using “Robot Menu -> Platform Type”
* The VEX Cortex Master Firmware and VEX Cortex Joystick Firmware are still the same from ROBOTC 3.62.
After the firmware(s) has been updated, your VEX Robotics systems should be good to go! Take a look below for the basic change log and let us know if you have any questions/concerns, or if you run into any issues.
The ROBOTC Development Team is happy to announce the first beta version of ROBOTC for VEX Robotics 4.X!! This version (4.03 Beta) support both the VEX Cortex and VEX IQ platforms in the same programming environment. This 4.03 Beta version can be installed along side of your existing ROBOTC 3.x installation. Download ROBOTC for VEX Robotics 4.03 Beta today!
This beta version includes ROBOTC’s Natural Language 2.0 for the VEX IQ platform. Programming robots has never been easier than the new and improved Natural Language 2.0. Learn more about Natural Language and download our new documentation at http://www.vexteacher.com (Note: the VEX Cortex will continue using Natural Language 1.0 to maintain backwards compatibility.)
Important Note: All users will have a 30-day free trial period with ROBOTC for VEX Robotics 4.03 Beta – we will be opening up the order processing for upgrades and new ROBOTC 4.x licenses within in the next few weeks.
Here’s a few notes before you get started with the new build with VEX IQ:
- Make sure you use the VEX IQ Firmware Update Utility and update your VEX IQ Brain to version 1.07 or later – this is required to use the new 4.03 Beta Version of ROBOTC for VEX Robotics
- If you are using the VEX IQ Color Sensor, there is a new firmware version available for it as well. Upgrade the IQ Brain to version 1.07, then connect your VEX IQ Color Sensor and use the “Update” button.
- Inside of ROBOTC, you’ll want to download the latest ROBOTC firmware (version 10.03) to your VEX IQ. Use the “Robot -> Download Firmware” option to download this new firmware onto the VEX IQ Brain.
Here’s a few notes before you get started with the new build with VEX Cortex:
- There is new ROBOTC firmware for the VEX Cortex system. Use the “Robot -> Download Firmware” option to download this new firmware onto the VEX Cortex microcontroller.
- The default platform when starting ROBOTC for VEX Robotics for the first time is now VEX IQ. Cortex users can switch the platform back to Cortex mode by using “Robot Menu -> Platform Type”
- The VEX Cortex Master Firmware and VEX Cortex Joystick Firmware are still the same from ROBOTC 3.62.
After the firmware(s) has been updated, your VEX Robotics systems should be good to go! Take a look below for the basic change log and let us know if you have any questions/concerns, or if you run into any issues. A more comprehensive change log will be coming in the near future!
4.03 Beta Change Log:
- Updated RBC Macro Files to support VEX IQ
- Fully updated CHM documentation to support VEX Cortex and VEX IQ changes
- Full support for VEX Cortex 269 and 393 Integrated Motor Encoders (IME) with PID and “move to target” functionality and motor ramping for smoother movements.Added new commands for VEX Cortex IME-based movements. Commands are similar to VEX IQ implementation.
- VEX PID Overview: http://www.robotc.net/wiki/VEX_PID_Control
- VEX Integrated Motor Encoder Functions: http://www.robotc.net/wiki/VEX_PID_Control_Functions
- Updated numerous commands to remove capital letters at the beginning of function names for consistently – older programs may generate warning messages, but will still work.
- Support for the “%f” (float) formatting code for the VEX IQ LCD Display.
- Encoders were being reset when program was stopped by the user, but not at the start of a new program. This has been updated so encoder reset occurs when program is started or terminated by the user (encoders are not reset when the program is suspended, only terminated).
- Fixed issue with “Software Inspection” dialog overwriting the “last firmware downloaded filename.
- (VEX IQ) Preserve “auto ID” sensor types for using sensors not defined in motors and sensors setup. Don’t allow overwrite with “sensorsNone”.
- Numerous other small bug fixes and enhancements (in depth change log coming soon!).
Two weeks ago we released ROBOTC for VEX Robotics 4.0 exclusively for VEX IQ and today, we are happy to release the second version of ROBOTC for VEX Robotics – VEX IQ Preview! Thanks to all the feedback we received from our wonderful users, we were able to implement these updates and new features to make it easier for everyone to use!
Download the new Preview Version today from the ROBOTC Preview Website.
Here’s a few notes before you get started with the new build:
- Make sure you use the VEX IQ Firmware Update utility to update your VEX IQ Brain to version 1.03 – This is important for using the new Preview Version of ROBOTC.
- If you are using the VEX IQ Color Sensor, there is a new firmware version available for it as well. Download the 1.03 version into your Brain, then connect your VEX IQ Color Sensor and use the “Update”
- Inside of ROBOTC, you’ll want to download the latest ROBOTC firmware (version 10.02) to your VEX IQ. Use the “Robot -> Download Firmware” option to do this.
After that, you should be good to go! Take a look below for the official change log and let us know if you have any questions/concerns or run into any issues.
- Added Distance Sensor Driver and Test Program – Sensor Implementation is not 100% complete.
- Added VEX IQ Device Drivers to ROBOTC installation.
- New Hardware Verification screen to identify possible hardware configuration errors with VEX IQ
- Fixed various bugs with Tele Op/Autonomous menu system
- Improved Sound sample programs and internal functionality.
- Added “Functions Library” option for VEX IQ Bumper Sensor – function was previously available but not listed.
- Support for “Remote Buttons” on the VEX IQ Remote Screen debugger window.
- Added “Software Inspection” for VEX IQ – gives a quick diagnostics on firmware versions, battery voltages and overall state of the VEX IQ hardware.
- Fixed bug where VEX IQ Bumper Switch would disable other sensors and motors on adjacent ports.
Check out what you can do with ROBOTC for VEX Robotics 4.0 already …
What do you think of the new release?
We are happy to announce that ROBOTC 3.62 is now available! This is a maintenance release that adds a few new features and fixes some outstanding bugs. This will be the last release for the 3.x family of ROBOTC products, barring any major issues that are reported.
ROBOTC is the premiere robotics programming language for educational robotics and competitions. ROBOTC is a C-Based Programming Language with an Easy-to-Use Development Environment. ROBOTC 3.62 contains four major updates, as shown in the change-log below.
3.61 to 3.62 Change-log
- Bug Fix: Fixed additional bug in “NXT Brick – Joystick” windows with the “Improper Argument” message box.
- Installer Fix: Updated Code Signing Certificate for Installers – No more scary warning when installing ROBOTC
- Update: Robot Virtual Worlds Curriculum Companion Tables – ROBOTC now includes version 3.0 of the Curriculum Companion Tables. All robot models have been updated to include grippers, arms, and new sensors such as Gyroscopes, Potentiometers, and IR Seekers. Find out more about recent RVW updates here.
- Update: License management now allows ROBOTC 4.x users to activate and use ROBOTC 3.x – users will be able to simultaneously have both versions installed on their computers without conflict. All ROBOTC 4.x users (new and upgrade users) will continue to have access to 3.62. Using both ROBOTC 3.x and ROBOTC 4.x with a 4.x license will only use one (1) activation from your license.
Over the next few weeks, we will start to release preview versions of ROBOTC 4.0 for the various platforms ROBOTC supports. ROBOTC 4.0 can be installed alongside ROBOTC 3.x to prevent any issues for users of ROBOTC 3.x. Users who purchase a ROBOTC 4.x license will be able to use ROBOTC 3.62 using the same license for added flexibility.
Important Note for FTC and VEX Competition teams: ROBOTC 3.x will be a legal language for the entire 2013-2014 competition season. Once ROBOTC 4.x is fully released, you will be able to use either version during competition. The ROBOTC development team does not recommend the use of “Preview” versions for competition.
We’ve recently been made aware of a bug in the recently released ROBOTC version 3.61. The bug would cause the IDE to generate an ‘Improper Argument’ window if the ‘Joystick Control – Competition’ Debugger Window was opened while ROBOTC was in LEGO NXT + TETRIX/MATRIX mode, and could subsequently crash the IDE.
If you are using ROBOTC for LEGO MINDSTORMS 3.61 and have encountered the bug, please make sure to manually download and apply the new update from ROBOTC’s NXT downloads page. Other versions of ROBOTC 3.61 are not affected.
ROBOTC is the premiere robotics programming language for educational robotics and competitions. ROBOTC is a C-Based Programming Language with an Easy-to-Use Development Environment. ROBOTC 3.61 contains three major updates, as shown in the changelog below.
You can download it here.
3.60 to 3.61 Changelog
- NEW Joystick Configuration Utility – Added compatibility for custom joystick configurations; the Joystick Configuration Utility can now be used to configure a wide variety of controllers for use with ROBOTC. Read about it on the Custom Joystick Controls page on the ROBOTC wiki!
- Fixed Samostat.c sample program – There was a typo in the ‘nxtDisplayTextLine(status.nLine, “%s”, status.message);’ line of the Samostat.c program in ROBOTC 3.60 that prevented it from working properly. This has been fixed in 3.61.
- Updated Robot Virtual Worlds Curriculum Companion Tables – ROBOTC now includes the latest update of the Curriculum Companion Tables which added Quality Control Settings and now provides Update Notifications as well. Find out more about recent RVW updates here.
We are very excited to share details on ROBOTC 4.0!! This version of ROBOTC will be getting a lot of new features as well as some enhancements to favorite tools already included. Also included in this upgrade will be support for new hardware platforms, including the new VEX IQ and LEGO EV3.
Planned Features in 4.0:
- Overhauled Natural Language functionality to make learning how to program even easier.
- Motors and sensor setup that will automatically detect devices (with supported platforms/devices.)
- Enhanced drag and drop capability with our function library for new users.
- Updated text editor with code collapsing, improved auto-complete, and more user customizability.
- Even more sample programs to help users get started, including samples for new platforms and advanced programming concepts!
- Support for both VEX Cortex and VEX IQ in ROBOTC for VEX Robotics 4.0
- Support for both NXT and EV3 in ROBOTC for LEGO MINDSTORMS 4.0
- No-Cost standalone version of ROBOTC for VEX PIC for legacy users.
Pricing and final availability for 4.0 has not been finalized; however customers can feel secure buying ROBOTC today knowing they will get a full ROBOTC 4.0 upgrade as soon as it is available.
Current ROBOTC Users Upgrade Details:
- 3.0 Perpetual Users (who purchased in 2013): No upgrade fee! Full purchase price will be applied towards same type of license for 4.0.
- 3.0 Annual Users (who purchased in 2013): 50% discount on equivalent 4.0 License
- 3.0 Perpetual Users (who purchase before 2013): 50% discount on equivalent 4.0 License
If you own a license to ROBOTC 3.xx – You can continue to use 3.xx for as long as you would like (assuming you have a perpetual license) – the software will not stop working once 4.xx is released. However, if you wish to use the features and platforms available in ROBOTC 4.xx, you will have to purchase an upgrade at a significant discount.
Upgrades will be available for up to 6 months after the official release of ROBOTC 4.0. Stay tuned to the ROBOTC.net Blog – We will be releasing free beta versions throughout the Summer and will announce final pricing and availability details in the near future.
We are very excited to announce that today is the first day of Spring and …. the first day of ROBOTC 3.60! ROBOTC is the premiere robotics programming language for educational robotics and competitions. ROBOTC is a C-Based Programming Language with an Easy-to-Use Development Environment. We are really proud of this release and can’t wait to hear what you think! Remember, we could not do this without your support and feedback. We hope you’ll continue to share your comments with us, either in the forums or on our Facebook or Twitter page.
Read the rest of this entry »
The ROBOTC team is happy to announce the ROBOTC 3.59.0 BETA release. We’ve made a number of enhancements and repaired a number of user issues. Some of the major updates are:
- Added support for proxy server when activating ROBOTC.
- Add watchdog timer support to VEX Cortex to alleviate processor crashes that can occur with static.
- Fixed a bug in the NXT color sensor that now allows you to read individual RGB values.
- Updated with the latest version of the 3rd party sensor drivers for NXT. (Thanks Xander!)
See below for the more detailed changelog. You can download ROBOTC 3.59.0 here!
3.54 to 3.59 BETA Changelog
- Add watchdog timer support to VEX Cortex. This will allow the VEX Cortex User Processor to “restart” automatically once the processor crashes/is halted. Useful for any potential static issue that may cause the User Processor to “crash”.
- Change watchdog implementation from “windowed” watchdog to standard watchdog (no window, reset any time). Increase watchdog timeout to 0.75 seconds.
- In Debugger Motors display the last motor was not always properly updated. Fixed.
- Enable emulator for VEX PIC. Fix subsequent bug with “Motors” debugger display for VEX PIC locking up IDE when emulator is enabled; this bug should be limited to VEX PIC Emulator only.
- VEX PIC downloading was failing when master firmware was out of date. Getting stuck in a repetitive loop that wasn’t exiting. Fixed.
- VEX PIC was not executing user programs. Bug was that “start of flash file system VTOC” needed to be aligned on 4-byte boundary. Previous change had added a 1-byte field to the header preamble and there was not a corresponding 3-byte file added for VEX PIC. ARM platforms worked OK. This may also have broken Arduino (i.e. any 8-bit) platform).
- Added a Conditional Compile flag for tUARTs to avoid confusion between uartOne and UART1
- There are two separate flags for “allow any serial port for communications” — one for VEX Cortex and one for all other platforms. This was not obvious. Preferences “Environment” tab was only updating flag for non-Cortex; this has been changed to update the appropriate flag based on platform setting. The VEX Cortex flag can also be updated in the “VEX Cortex” tab.
- User configurable UART setup was screwed up for the platforms whose “uart 0″ is fixed as non-configurable and usable only for system communications port to PC — i.e. VEX Cortex, VEX PIC. The ROBOTC IDE was storing the data in the persistent data table (at start of flash file system) offset by one entry. I.E. data for “uart 1″ on VEX Cortex was stored in “uart 2″, etc.
- NXT color sensor read RGB individual values broken with pointer implementation. Change “getMemoryParmXXX” function calls to “getCommonParamaterValueXXX” function calls. Check rest of firmware for same mistake.
- New feature for 3rd Party Sensor Driver Suite to set the two digital I/O lines on NXT sensors. Added two new sensor types (sensorCustom, sensorCustom9V) for this along with two new property intrinsic variables to set I/O line direction and values; these intrinsic variables are bit masks (2-bits) for the two lines.
- “setPixel” intrinsic (and corresponding “clearPixel” and “invertPixel”) take “unsigned” parameters. But implementation was using “signed” parameters and not properly range checking if parameters were negative. If negative, then should do nothing. Instead they were incorrectly wring to invalid buffer address which eventually caused a firmware crash.
- Fix issue for “Motors” tab for Arduino in “Motors and Sensors Setup” property sheet. Was incorrectly trying to setup “encoder information for motor”, but Arduino platform does not “associate encoder sensor with motor” — which is currently only a feature for VEX Cortex.
- Added Support for Proxy Server when activating ROBOTC – Users can set Proxy preferences under “Detailed Preferences – General – Environment”.
- Incorrect generation of compiler error message when double pointer (i.e. “**”) is used.
- “Print” a range of pages was not working when the starting page was not ’1′. Fixed.
- Remove incorrect error message from error “Assignment between two different pointer types” when one side of ‘=’ is a ‘void *’.
- Compiler was incorrectly generating error message for “Expected a pointer expression in a pointer expression with ‘++’ or ‘-+’ operand. Compiler was incorrectly checking to verify the right operand was an integer value.
- Compiler was incorrectly generating error message for “Invalid pointer expression” in a pointer expression with ‘+’ or ‘-’ operand. One operand of the expression must be a pointer and the other operand must be an integer (without implied conversion of a pointer to an integer). Compiler was incorrectly checking for the integer — the expression incorrectly had a “!” in it!
- Change code generation of ‘var arg’ for pointers to be consistent with standard C — i.e. the value of the pointer is placed in the argument. This may result in an additional instruction generated when argument is a ‘string’; previously RobotC got too cute trying to save this extra instruction which only worked for “%s” format codes but was broken for “%d” on a pointer.
- In ‘sprintf” implementation for “%s” and “%p” format codes– change from “get Address of parameter” to”get value of parameter” to match corresponding change in compiler code. Also minor cleanup of “%s” and “%p” format codes.
- Assignment expressions of “<char * variable> = <char constant> were generating compiler error because the “<char constant>” was evaluated as a “string” type. Added code in “get expression type” to check for this and not generate error as the compiler auto converts “string” to “char *” during code generation.
- Fixes an issue with the Live Start Page and “check for updates” that may have caused crashes.
- Improved validation of pointer expressions. Fix bug in calculating expression type of pointer expressions like “<ptr sub-expression> + <numeric constant>”; the result was (always?) incorrectly set as “long *”? Also added check that “=” of pointer is from a pointer of the same type – otherwise generate error message.
- Fixed consistency in implementation of “random” intrinsic property.
- Eliminate compiler error message in constant expression evaluation of sub-expressions using “*” operator. If either of the two operands is ‘zero’ then result is zero regardless of whether the other operand is a compile time constant.
- Do not generate additional errors — “too many parameters” specified — when procedure is “compiler generated undefined symbol”.
- When switch between “real robots” and “emulator”, the function that calculates “size of RAM pointer variable” was not being called. It adjusts between 2-byte (VEX PIC, Arduino) and 4-byte (Emulator, VEX Cortex, NXT) pointer sizes. No issue with VEX Cortex and NXT as they only use 4-byte pointers. But a problem with VEX PIC and Arduino where real robots use 2-byte RAM pointers! Added the appropriate call to function setup.
- Small code optimization for “postfix –”/postfix ++” operators to avoid temporary. In some cases they can be simplified to prefix operands.
- Incorrect initialization of static variables in “inner scope” for local procedure. They were initialized every time inner scope block was accessed rather than once on program startup.
- Debugger Panes for “Locals” and “Globals” (especially Globals) was not properly handling updates to ‘long’ and ‘float’ variables. Globals was completely broke — only lower two bytes of 4-byte variables was being updated which broke ‘long’ and ‘float’ variables. In both, ‘char’ variables were updating a short value — i.e. overwriting following characters.
- Fix problem with incorrect user code using a “short” variable and “sprintf” format code of “%f”. This can crash ROBOTC VM firmware if the short variable is not aligned on a 32-bit boundary.
- Add additional entries for StringFind for Character Constants and added test program.
- Redefine datalog opcodes and intrinsics. Legacy datalog incompatible with 3.5x VM operands which split memory variables and intrinsic properties into separate items.
- Firmware for all platforms now call “datalogHandlerInit()”. Conditional compile will define as NULL macro if a platform does not support Datalog. Datalog support is now conditionally compiled via “bHasDatalog” define rather than hard-coded as NXT only.
- Fix incorrect compiler type checking error when string constant is assigned to a char pointer.
- Fix bug in check for “is this a preprocessor string comparison expression”.
- Eliminate preprocessor string comparisons in Natural Language and replace with “defined(_Target_XXX_) where “_Target_XXX_” are three new system defined preprocessor variables — “_target_Robot_”, “_Target_Emulator_” and “Target_VirtWorld_”. Sample programs modified appropriately. Legacy user programs using legacy definitions will still work but will generate a compiler warning about non-standard extension.
- Add registry flag to enable compiler extension to allow preprocessor expressions support for string comparisons. Generate compiler error message if encountered without the flag being set.
- “cast” code generation fix. Previously when cast changed sign of result the ‘cast’ was applied before expression was converted to ‘int’ size used during a calculation. So casting a “ubyte” to “int” incorrectly converted it to a “signed char”. What should happen is “ubyte” expression gets evaluated into an “int” as part of expression evaluation (all expressions are evaluated at ‘int’ (or higher) level in “C”) and then the cast to “int” has no additional effect.
- Function to extract numeric “COMxxx”. Expanded syntax to support successful parsing of “(COM99)” previously would not accept extraneous characters.
- Add improved Dialog for selecting Communications Port. It uses a list box to display information about the port. Add check box to select any communications port.
- Compiler crash when parsing invalid syntax of ‘?’ expression. Compiler was not handling the case when “NULL” pointer returned from parsing sub-expression. The “NULL” was incorrect.
The ROBOTC Development team is proud to announce that ROBOTC 3.50 for the LEGO Mindstorms, VEX Cortex and PIC, Arduino, and Robot Virtual World platforms is now available! The new ROBOTC 3.50 update is free-of-charge for ALL existing ROBOTC 3.0 license holders. Download today and try out all of the new features and enhancements available in ROBOTC 3.50!
Change log for ROBOTC 3.50 (since version 3.08):
- Full ANSI-C support to support pointers, recursion, and stacks with an updated compiler and updated robot firmware.
- New and Updated Debugger Windows:
- “Local Variables” to monitor variables in the current task or function.
- (Note: Local variables are only available when your program is suspended)
- “Global Variables” to monitor variables available to your entire program.
- “Call Stacks” to monitor function calls in the currently selected task.
- Updated Documentation and Wiki (www.robotc.net/wiki) – Constantly Updating!
- Support for Standard C commands – sprintf(), sscanf(), support for character arrays, unsigned variables, etc.
- Support for the Arduino family of controllers (Uno, Mega, Mega 2560) with future support and expanded functionality for the Arduino Leonardo and Due controllers.
- Updated Robot Virtual Worlds support to include additional sensors and motors.
- Improved Robot Virtual Worlds performance to simulate more realistic physics and robot behaviors.
- Support for the new MATRIX building system with the NXT.
Robot Specific Fixes:
- NXT I2C sensors were incorrectly initializing clock and data lines as outputs when first configuration. They were correctly left as inputs after first message was sent. Change was to initialize as inputs. Before change, the first I2C message on an empty port will incorrectly appear to succeed.
- Ignore HiTechnic Textrix Motor Controller spurious encoder counts. I.E. if encoder value read is hex ‘FF80xxxx’ then force a reread. Always accept the re-read value.
- Eliminate Z-Axis from VEX joystick window as is unused.
- Arduino boards now support controlling LEDs from PWM pins.
- Arduino boards now will read zero when connecting analog to ground.
- Add “Show Current Program Counter” button to Debugger.
- Add new template for “New File”. All new programs will start with a task main structure. This template can be modified by the user (it lives in /Sample Programs/Platform/Templates)
- Always force “Save As” for all template files. Before the files were being saved in a default directory.
- Allow any serial port to be used with VEX PIC systems.
- Allow user entered blank (empty) lines before first “#pragma config(” lines. Currently generates a compiler error.
- Improve placement of related compiler generated errors to appropriate line numbers.
- Fix bug where “Motors and Sensors Setup” did not work on empty files.
- Properly restore floating “Debugger Panes” when Debugger is invoked.
- Changed Checkmarks to Radio Icons for many menu items. This shows a “dot” instead of a “check mark” in the menu icon field.
- Created tooltip strings in resource file for all missing commands.
- Prepare to add two new Debugger panes to display “Breakpoints” and “Bookmarks”. Based on the existing “Compiler Errors” pane architecture. The new panes are displayed but the content is still empty.
- Better synchronization of breakpoints between “Source File” and “Disassembly Listing”. Previously when breakpoint was added/removed in one window the corresponding change was not properly made in the other window. Now the breakpoint ICONs are always refreshed whenever a window is “Activated” (i.e. made topmost).
- Add two new menu commands for “increase indent” and “decrease indent”.
- Tweak “auto close breakpoint hit” message box implementation. Add a check mark to the dialog.
- Add new “Compile OR Compile+Download” toolbar.
- Debug “Task Status” window — minor enhancements.
- FONT name was not being updated in Preferences “Font” tab correctly. Fixed.
Compiler and Command Updates/Fixes:
- Pointer support. New functions positioning for improvements in the dereference (“*”) and address of (“&”) unary operators.
- New “#pragma debugWindows(…)” to specify a list of Debugger Windows that should be opened.
- Add new intrinsic function “DebugStreamClear” to allow programs on robot to clear the debug stream.
- Support for “Implied Pointers” in functions.
- Fixed compiler priority for binary and unary versions of ‘&’, ‘*’, ‘+’ and ‘-’ operators.
- Support for unsigned longs.
- Add new intrinsic function for “round”.
- Added support for ‘atan2′.
- Allow ‘struct’ pointers as valid function return types.
- Fix issue in ‘struct’ declaration causing a random memory overwrite in ROBOTC IDE.
- Support pointer variables for ‘++’ and ‘–’.
- ‘sizeof’ operator now accepts argument types of ‘char’, ‘short’, ‘long’, ‘float’, …
- Fix bug in evaluating “complicated” / compound constant expressions in “#if”.
- Add support for ‘%p’ format code in ‘sprintf’.
- Improve code generation for pointer references to ‘struct’.
- Added doubly nested ‘->’ operator.
- Fixed bug in unary ‘-’ VM opcode.
- Improve code generation for structure element access.
- Fix implementation of structure element access code generation; i.e. the “.” operator.
- Partially re-implement “sizeof” operator for proper calculation of ‘pointer’ and ‘reference’ variables.
- Add “drop down toolbar button” to “Compile and Download” toolbar to select “Download + Compile” or “Compile” only; vs two separate buttons.
- Add partial support for new download “write to RAM” message. Needed for new “local variables” window.
- Add support for new “trinary opcodes” (+, – and *) with ‘long’ operands. Previously trinary opcodes were for ‘short’ variables. Trinary opcodes are primarily used for efficient code generation for array and structure element access.
- Added definition for new “NoOp” command.