The inertial sensor is cool, but our initial impression is that for practical use the gyro works just as well. The calibration is quicker and doesn’t have options for seconds. You just calibrate it! It seems to detect gravity so the brain can be mounted however you want.
I know the processor and memory are much better, but again, for practical purposes, I wouldn’t say it a great competitive advantge.
So the answer is no, there is not an improvement. I can’t use RobotMesh and I have to pay more. And while the color screen has some layer of coolness, the brain is inside a robot and the screen isn’t really visible.
Maybe if there was a version of Scratch that ran with sprites the color screen would be a deal, I could use it for Code club.
The color screen, while a cool feature, was probably a cheaper component compared to what the old lcd would cost today. With the rising cost in electronics over he last two year the prices would have gone up regardless of the new version.
Lately, we’re hard pressed to find anything that we don’t pay more for. Relative to other options, the IQ Kits still hold up very well on value, though. Also, the Gen 2 kits come with a better set of parts than past kits.
The Gen 2 brain’s internal 6-axis gyro is a big improvement.
We have several Middle School students that are absolutely enjoying VexCode’s native python ability.
Wireless programming from the controller is fantastic. Seen this speed up the process for students in testing their code.
And our kids have made use of the extra Joystick buttons.
I think you need to separate competitive advantage from overall user experience.
Motors are the same, most sensors are the same, so a typical small student program will work pretty much the same way.
But we have built in IMU and built in radio.
We have ability to store more programs that can have more advanced capability.
We have double the number of I2C busses that connect to the sensors and motors, and they have better recovery mechanisms so no more “I2C error detected” messages that need a full brain reset, you can still potentially lose comms with sensors if a cable comes loose, but others will continue to work.
we have SD Card support.
USB C connector
wireless programming through the controller.
better BLE support.
more advanced dashboards
some support for non-competition use where 4 of the ports can be used as raw i2c, asynchronous serial or digital IO.
built in log like the V5.
all motor/sensor firmware is inside the brain and it will update devices as necessary.
UI in 6 languages, more will come in the future.
and many other small improvements.
ports 1, 6, 7 and 12 are on dedicated connections to the cpu in the IQ2 brain, these are not shared with other physical ports.
That means we can use them as generic I2C busses for any device, not just VEX devices that need the auto-negotiated address stuff. There’s a C API for this as well as a C++ API, not sure if I ever added Python bindings, don’t remember right now,
You can use them as generic async serial ports (with logic level IO), you can open them using the same API as we have on V5, for example, opening and read/write to “/dev/port1”. You can easily connect to Arduino or other micro controllers uarts.
You can also use them as pure digital IO, two outputs and one input line on each port, there’s a C API for this but I don’t think that ever made it into the C++ or Python APIs.
OK, now I’m excited. I’d be interested in the Python API. One of the things to be able to do in the classroom is to add I2C sensors, displays, etc. to systems. It’s doable for the V1 version but a cleaner interface would be appreciated.
Now all I need is @DRow to add the weird connectors and a crimp tool so I can make things nice and neat.
The log is a (semi) permanent record of errors and warnings that may appear on the brain, for example, a motor becoming disconnected during a match.
IQ generation 2 (and EXP) can be used very much like V5 for output to a PC, stdio (ie. printf or std::cout) are sent to a second serial port on the brain, or if wireless is being used, a second serial port on the controller. stdio can also be sent over bluetooth, VEX doesn’t provide any applications to display that yet but we’ve done testing using webBLE and displaying output in a browser, so perhaps that will be available in the future.
The ability to use some of the ports as raw I2C or UARTs is a pretty cool feature that we had back on the Vex V4/Cortex brains. I am glad its back.
I actually developed a little wireless module that would hook to one of the UARTs on a V4 brain and send back data to a similar module attached to a PC. It was pretty useful for a lot of custom stuff and made for some really cool demos for the kids in my robot club.