ROBOTC.net Blog  

ROBOTC News

Archive for the ‘Releases’ Category

Latest ROBOTC Update is our Official Release!!

with 13 comments

ROBOTC 4-26

We’re very excited for our official release update, ROBOTC 4.26!! This update is for the both the VEX Robotics (CORTEX and IQ) and LEGO MINDSTORMS (NXT and EV3) robotics systems.

Some of these new updates include …

  • 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.23.09

Screenshot-2014-08-15_17.37.14

Screenshot-2014-08-15_17.25.23_____________________________________________________________________________

ROBOTC 4.25 -> 4.26 Change Log

  • Major Bug Fixes
    • Fixed Encoder Count Issue with VEX IQ Virtual Worlds – Encoders were not properly adjusting to the 360 count scale and may have caused issues when trying to use multiple “setMotorTarget/moveMotorTarget” commands.
    • Fixed Virtual Worlds for VEX Cortex platform – crashes when trying to download to Virtual Worlds with VEX Cortex platform are now resolved.
  • VEX IQ
    • Support for VEX IQ Brain Firmware Version 1.12
    • Increase timeout (4 seconds -> 10 seconds) for downloading over wireless for VEX IQ.
    • New VEX IQ Clawbot image for Standard Models
    • New Dialog Message for successful VEX IQ Firmware Downloading
  • VEX Cortex
    • Implemented fix for dual platform users who may experience compiler errors due to “External Motors/Servo Controllers” flag being enabled.
    • Check that a valid team number has been set for VEX Cortex Controller. The check is made during user program download when the download type has been set to “Competition”. Teams should set their VEX Team Number to assist with debugging at competition while using VEXNet 2.0 (white) radios.
  • LEGO EV3
    • Adjust EV3 Standard Model – Motor ports were reversed (left vs right)
    • Adjusted all EV3 Graphical Sample Program to reflect new “standard model”
    • Support for draw picture (BMP) file on LCD screen. Does not support general BMP files, but rather LEGO specific picture files.
    • Fixed an issue where the EV3 “Reset Gyro” command was not properly resetting the Gyro value.
    • “getBatteryCurrent” command has been fixed.
    • Improved usage of Casper’s “search for devices” so that USB connected EV3 that are disconnected during a ROBOTC session are better handled.
    • Crashes to ROBOTC after closing the IDE Editor after communicating with an EV3 have been resolved.
  • Virtual Worlds
    • Additional Logic to have “TETRIX” based Virtual Worlds appear if the “External Motor/Servo Controller” flag is toggled. Currently they do not appear under any condition.
    • Fixed bug hiding “Joystick Control – Basic” for Virtual Worlds users.
  • Graphical Interface
    • Prevent ‘text’ and ‘graphical’ menus from becoming undocked from the ROBOTC interface – doing so may cause the main ROBOTC interface to become unresponsive.
    • Fixed bug where empty parameter values were using the last provided string as opposed to overwriting with “Blank” values – applies for the “MultipleMotor” Graphical commands.
  • ROBOTC IDE / General
    • Text-Based Function Library will no longer show commands that have been deemed “deprecated”
    • Update “Errors” to “Compiler Errors” based on user’s feedback.
    • Change compiler “error” to “warning” for assignment of a pointer value to an int without use of a cast.
    • Compiler was incorrectly allocating temporary variables during evaluation of “&(NULL)” types of expressions. Fixed.
    • Updated Help documentation files.

Download ROBOTC 4.26 here! And ensure that your devices are up to date by following the instruction in our last post. 

As always, if you have questions or feedback, feel free to contact at support@robotc.net or visit our forums! Happy programming!!

Written by Cara Friez

September 2nd, 2014 at 10:07 am

Exciting New ROBOTC Update Available Today!

with 11 comments

ROBOTC4-25

We’re excited to release our latest update, ROBOTC 4.25!!  We are calling this our “Release Preview”, because we are still in development for the full version, which will be released by the end of the month. This release is stable and we encourage all our ROBOTC users to try it out. If you run into any major issues, let us know in the forums. This update is for the both the VEX Robotics (CORTEX and IQ) and LEGO MINDSTORMS (NXT and EV3) robotics systems.

Some of these new updates include …

  • 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.23.09

Screenshot-2014-08-15_17.37.14

Screenshot-2014-08-15_17.25.23

_____________________________________________________________________________

Before you can use ROBOTC 4.25, you will need to ensure that your devices are up to date. The instructions to update your hardware will be different depending on what hardware setup you may have…

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.

_____________________________________________________________________________

And finally, the very LONG Change Log for 4.25:

  • 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

_____________________________________________________________________________

Download ROBOTC 4.25 here!

As always, if you have questions or feedback, feel free to contact at support@robotc.net or visit our forums! Happy programming!!

Written by Cara Friez

August 15th, 2014 at 8:49 pm

Announcing VEX Skyrise Robot Virtual World!

without comments

The ROBOTC and Robot Virtual World team are thrilled to announce their latest virtual world: VEX Skyrise! The VEX Skyrise virtual world simulates the brand new VEX Robotics Competition, announced today at VEX Worlds, for the 2014-2015 season. Like previous simulations of the competitions, this virtual world includes multiple fully programmable robots, the correctly scaled field and game objects, and score and timer tracking. It’s absolutely perfect for teams who want to do strategic planning and learn how to program. Check out video of the new game here!

VEX Skyrise

VEX Skyrise features very high scoring goals this year. To account for this, we’ve added a brand new robot: RVW VEX Scissorbot. Scissorbot can pick the cube game objects off of the ground and quickly score them in the highest goals. It is fully programmable with motors, encoders, a gyro sensor, sonar sensor, potentiometer, and line tracking sensors.

Scizzorbot

We’ve also adapted our RVW VEX Scooperbot model with a gripper and linear slides, allowing it to grab game objects from the floor, extend its arms, and drop them onto the goals. We’ve dubbed this version RVW VEX Fantasticbot. It also features a full set of motors and sensors, making it fully programmable.

Clawbot

The download for the VEX Skyrise virtual world, along with additional helpful information can be found at RobotVirtualWorlds.com. To help you get started, sample code is included with the world, but also can be downloaded here:  RVW VEX Skyrise Sample Code

Good luck to all of the VEX teams at Worlds during the final day of the competition. We look forward to another great season!

 

Robomatter Blog Ad VEX RVW

Written by Jesse Flot

April 26th, 2014 at 12:53 am

Update – ROBOTC for VEX Robotics 4.08

with 4 comments

ROBOTC logo 4 UpdateThe ROBOTC Development Team is excited to announce the availability of ROBOTC for VEX Robotics 4.08 – an update for the VEX Cortex and VEX IQ platforms. This new version supports the latest firmware versions provided by VEX Robotics (4.20 for VEX Cortex / 1.09 for VEX IQ) and all of the new features supported by the new firmware updates. Some of these new improvements include:

- Support for the VEXnet 2.0 (white) Radios for the VEX Cortex
- Bug Fixes for the VEX IQ system to prevent “I2C Errors”
- Speed enhancements for VEX IQ for better performance of motors and sensor
- New VEX IQ commands for Gyro sensors

This new version of ROBOTC also supports the VEX IQ “Graphical Natural Language” feature. This new interface allows users to program robots from inside ROBOTC with easy-to-use graphical blocks that can be drag-and-dropped to form a program. Each block represents an individual command from the “text-based” ROBOTC and Natural Language. The new click and drag interface along with the simplified commands of Natural Language allows any robotics user to get up and running with programming their robots as soon as possible. As of today, the Graphical Natural Language commands work with the VEX IQ system, but we’re actively developing support for ALL ROBOTC supported platforms!

Before you can use ROBOTC for VEX Robotics 4.08, you will need to ensure that your VEX devices are up to date. The instructions to update your hardware will be different depending on what hardware setup you may have…

  • VEX IQ Users
    • Run the “VEX IQ Firmware Update Utility” and update your VEX IQ brain to firmware version 1.09. 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.20 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 this utility here.
    • 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.20 from inside of ROBOTC. After updating your master firmware, you will also have to install the latest ROBOTC firmware as well.
    • Note that this new firmware version will support download and debugging with both VEXnet 1.0 (black) and VEXnet 2.0 (white) keys.

Here’s the list of changes and enhancements between version 4.06 and 4.08.

VEX Cortex:

  • Support for VEX Cortex Master Firmware 4.20 and VEX Game Controller Master Firmware 4.20
  • Support for wirelessly download and debugging using the new VEXnet 2.0 2.4Ghz radios.
  • Fixed an issue with launching ROBOTC in “Virtual Worlds” mode, which may incorrectly choose the wrong compiler target.
  • Fixed issue with Windows XP/Vista/8 where ROBOTC may crash when unplugging/plugging in a device

VEX IQ:

  • Improved motor responsiveness (16ms update cycles as opposed to 50ms today – this was a mitigation for the I2C issues in the current Master FW)
  • Improved sensor responsiveness (varies by sensor – this was a mitigation for the I2C issues in the current Master FW)
  • Gyro sensors can now return either integer values (getGyroDegrees/getGyroRate) or floating point values (getGyroDegreesFloat/getGyroRateFloat)
  • Fixed a bug where the Gyro sensor was not using the “rate” setting to properly return a deg/sec calculation for the getGyroRate command.
  • Exposed the ability to calibrate the gyro sensor from the user program and specify the number of “samples” to take during calibration (more samples = less drift = longer calibration time)
  • Also added a boolean “get” command to read the gyro calibration status bit to know when calibration is done.
  • New PWM adjustment function – allows users to trigger a specific VEX IQ motor to read the current battery voltage from the VEX IQ brain to adjust the PWM scale factor in the motor to ensure consistent performance. This is automatically done each time a program is executed with ROBOTC, but for longer programs end-users might want to readjust the PWM scale factor.
  • New “read immediate current” from motor – returns a value in mA
  • Modified functions for “motor strength” – renamed these to be “motor current limit” and uses values in mA instead of 0-255 byte value. These commands used to be called “getMotorStrength” and “setMotorStrength” – they’re now renamed to “getMotorCurrentLimit” and “setMotorCurrentLimit”
  • Fixed an issue with “Graphical” mode where users may start up in “Cortex” mode and the function library will appear blank
  • Fixed an issue when “Natural Language” mode was enabled that normal sample programs may not run properly (using the leftMotor/rightMotor keywords)
  • Fixed issue with Windows XP/Vista/8 where ROBOTC may crash when unplugging/plugging in a device

If you have any questions or issues, contact us at support@robotc.net. Happy Programming!!

 
 

Robomatter Blog Ad VEX IQ

 

Written by Tim Friez

March 26th, 2014 at 8:40 pm

ROBOTC Graphical Programming Preview Available!

without comments

clickanddragAfter months of work, the ROBOTC Development Team is excited to announce the availability of the first preview release of ROBOTC Graphical Language for the VEX IQ platform. This new interface will allow you to program robots from inside ROBOTC with easy-to-use graphical blocks that can be drag-and-dropped to form a program. Each block represents an individual command from the “text-based” ROBOTC and Natural Language. The new click and drag interface along with the simplified commands of Natural Language will allow any robotics user to get up and running with programming their robots as soon as possible.

The first release of ROBOTC Graphical Language is available for the VEX IQ platform for use with the standard VEX IQ Clawbot and Autopilot Robots. All ROBOTC 4.0 users will receive access to the new Graphical Language interface at no additional cost! Our plans over the next few months are to extend the Graphical Language interface to all of ROBOTC’s support platforms, including the Robot Virtual Worlds technology. You can download the preview version today at http://www.robotc.net/graphical/.

———————————————————————————————————————————————————-

The new ROBOTC Graphical programming environment adds a number of new features we’d like to highlight:

Graphical Language Command List (Drag and Drop)

GraphicalFunctionBar
With the new ROBOTC Graphical Mode, we’ve updated our “Functions Library” to match the style of the Graphical interface. This new mode will allow you to drag and drop blocks of code from the “Graphical Functions” menu into your program to get your program created even faster!

New Language Commands for Easier Programs

NewLanguageCommands
We also added some new language extensions to both ROBOTC and Natural Language; such as the simplistic “Repeat” command. Prior to the Repeat command, users would need to copy and paste large sections of code or use a looping structure (like a ‘for’ or ‘while’ loop) in order to have a set of actions repeat a number of times. With the new “Repeat” command, however, users can simply specify how many times they would like the code to run, with no complex coding required. And users who wish to make an “infinite loop” can use the “repeat forever” command to accomplish this task quickly!

Commenting Blocks of Code!

CommentingOut
Another awesome tool that we’ve implemented in ROBOTC Graphical is the “comment out” feature. You can now comment out an entire line of code just by clicking on the block’s line number. The robot ignores lines of code that are “commented out” when the program runs, which makes this feature very useful when testing or debugging code. This new tool is unique to ROBOTC’s Graphical interface.

Updated and Simplified Toolbar

Toolbar
Sometimes navigating menus as a new user can be a little overwhelming – so many options to choose from and lots of questions about what each option is used for. To help with this, we’ve redesigned ROBOTC’s toolbar to make getting up and running easier. We put the most used commands on a larger toolbar so new users have an area to easily click to download firmware, send their code to their robot, and run their programs without having to use the standard menu interface.

Convert to Text-Based Natural Language

ConvertToText ConvertToText2
Because each Graphical Natural Language block corresponds to a real ROBOTC or Natural Language function, users will be able to graduate from Graphical Programming to full text-based programming with the press of a single button. This allows users to naturally transition from Graphical Natural Language to the text based Natural Language (or ROBOTC), without having to worry about manually converting the code line-by-line!

Teacher’s Guide and Sample Programs

UsersGuide
The new graphical interface includes over 50 new sample programs to help you get up and running with working examples and demo code. In addition, we’ve also developed a 30+page guide to walk new (and existing) users through the new Graphical Programming interface and getting started with the VEX IQ platform. You can find a link to the programming guide here and also on the ROBOTC Graphical page.

———————————————————————————————————————————————————-

This initial release is only the beginning and we’re planning on improving the software with more features and flexibility over the coming months.

Future Support/Features:

  • Copy and Paste
  • Undo/Redo Support
  • Support for custom robots/configurations via an updated “Motors and Sensor Setup” interface.
  • Dynamic Loop and Command Parameters (based on Motors and Sensor Setup / Robot Configuration)
  • Tooltips, Contextual Help, and more!

Click here to download the installer!

Let us know what you think! If you have any feedback or questions, please send them along via the ROBOTC’s VEX IQ forums.

 
 

Robomatter Blog Ad VEX IQ

 

Updates to Ruins of Atlantis and Operation Reset

with one comment

We’re happy to announce that we have a fresh batch of Robot Virtual Worlds updates for you! Read on for more detail.

Ruins of Atlantis

  • We’ve added lots of really cool ocean life to the level, over 20 species of fish. See if you can spot them all! These and other visual elements can be disabled in the Options menu of the splash screen.
  • Badges for completing the Ruins of Atlantis path with each robot have been added (See below). Each of the three robots available has different dimensions, so this rewards the student for completing additional math and programming practice.
  • We’ve updated our high resolution printable map with valuable information and fun, themed elements.
  • A comprehensive teacher’s guide is now included, which covers everything from getting started, programming options available, and how to teach with the tools in the world.

Ruins of Atlantis 2

New Badges

Operation Reset

  • Operation Reset has been updated to include the latest physics engine.
  • A number of small bugs have been resolved. Thanks for the feedback!

Operation Reset

The latest versions of our Robot Virtual Worlds can always be downloaded from RobotVirtualWorlds.com or CS2N. As always, if you need help or have any feedback, please visit our forums.

Written by Jesse Flot

February 17th, 2014 at 3:55 pm

Sneak Preview: RVW Expedition Atlantis

without comments

Atlantis01Happy Friday! I thought it might be nice to end the week with a little sneak preview into our newest Robot Virtual World game, “Expedition Atlantis: A Calculated Deep Sea Adventure.” We are still working on it, so things might change, but wanted to share an inside look. The game and curriculum will be available this Fall. Check back for more info soon!

 

 

 

 

 


 

 

Written by Cara Friez

July 12th, 2013 at 5:59 pm

Announcing ROBOT 4.0!

without comments

ROBOTC-logoWe 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 year and will announce final pricing and availability details in the near future.

Written by Cara Friez

May 13th, 2013 at 1:30 pm

Robot Virtual Worlds Measurement Toolkit

without comments

Measurement-Tool-KitWe recently added a great new feature to our Robot Virtual Worlds … the Measurement Toolkit! There is no more guessing on how far a robot needs to travel to solve programming problems. It allows for intelligent path planning and navigation. You can now have students do the math, show their work, and explain how they solved the problems.

Check out our newest video that talks about what the measurement toolkit can do in RVW!

Official Release of ROBOTC 3.60!

without comments

ROBOTC 36

 

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.
 

Some of the key enhancements are:

  • Added support for proxy server when activating ROBOTC (Proxy Support guide can be found here).
  • Add watchdog timer support to VEX Cortex to alleviate processor crashes that can occur with static (more information on this issue can be found on the VEX IME Product Page).
  • 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!)
  • Updated Curriculum Tables included for Robot Virtual Worlds.

See below for the more detailed changelog and download ROBOTC 3.60 here!

ROBOTC Hangout
 

To celebrate the official release, we will be having our first Google Hangout! Tim Friez, John Watson, and Xander Soldaat will be there to discuss the new features and answer some of your questions. To tune in live, visit ROBOTC.net/hangouts at 2pm EST tomorrow (Thursday, March 21.)

—————————————————————————————————————-

3.59 to 3.60 BETA Changelog

VEX:

  • New Standard Models Added for PLTW.
  • Update VEX Cortex I2C interrupt handler to handle case where interrupt for last received character is not processed until STOP signal has already been sent.
  • Add parameter to I2C Device Driver (VEX Cortex) to indicate whether being called for a “timer tick” or for a “message is now complete”. Add a few more statistics to the error collection.
  • Increase VEX Cortex I2C message timeout to 6 milliseconds from 3.
  • Start sending VEX Cortex I2C polling messages immediately after last poll has finished. Improves I2C responsiveness for VEX Cortex.

LEGO:

  • Xander’s 3rd Party Driver Suite updated to version 3.3.1

Arduino:

  • New firmware conditional compiles to eliminate the get/set property opcodes for ‘long’ and ‘float’.
  • Arduino only. “Copy opcode from flash to RAM” performance improved.
  • On Arduino, sensor initialization incorrectly assumed as sensor types had the extra “sensor buffer” structure. But the extra buffer is only linked for complicated sensor types so RAM was being overwritten. Fixed.

General:

  • Updated application and desktop icon quality.
  • Fix “Multiple overloads match” error introduced with change that did proper validation of pointer expression with point procedure parameter variable.
  • Improved validation of procedure parameter matching for function overloads. Previously when parameter was a pointer, only checked to confirm that calling expression was also a pointer. Check was extended to also (correctly) match on the type of pointer as well.
  • Could not change “check array bounds” in Compiler Code
    cialis

    Optimization tab. The issue was that after changing the check mark the “code optimization type” would be recalculated and then the “optimization type” radio buttons updated. Array bounds checking is not used in determining the optimization type; but in setting the type it is modified. So the changed check mark was being accepted and then software was overwriting. Fixed.

  • Split “auto save” into two individually settable flags: (1) to auto save source files before compile and (2) auto save files when application exits.
  • Incorrect code optimization involving ‘struct’ variable offsets and perhaps other cases. For the assignment instruction “<variable2> is assigned address of <variable1>” compiler was replacing references to “<variable2> with “<variable1>. This optimization should only occur for “simple assignments” of “<variable2> = <variable1>”. Fixed.
  • Change ‘nSysTime’ and ‘nPgmTime’ intrinsic variables to “unsigned”. ‘unsigned’ intrinsic variables were being converted to ‘signed’ when used in comparison expressions generating a warning regarding mixed ‘signed’ / ‘unsigned’ comparison. Fixed.
  • Upper range check for “array bounds check” opcode used “>” instead of “>=” in comparison allowing ‘one past’ array size as valid.

3.54 to 3.59 BETA Changelog

VEX:

  • 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.

LEGO:

  • 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.

Arduino:

  • 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.

General:

  • 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.

Written by Cara Friez

March 20th, 2013 at 2:58 pm