PROS 2.11.0 Open Source, Atom, and JINX Announcement

The PROS development team has been hard at work over this past summer to provide a multitude of improvements to PROS to provide you with the highest powered and most user-friendly coding environment for the Cortex to date. This update can be broken down into a variety of new features:

PROS for Atom

Atom is now the officially supported IDE of the PROS development team! We believe Atom will provide a much more pleasurable programming experience for new and experienced developers alike. It is more customizable, looks better, and has better syntax checking than Eclipse. The source is hosted at github.com/purduesigbots/pros-atom Check out some of the screenshots below:


If you would still like to use Eclipse, the kernel template is available on the legacy download site and can continue to be used.

JINX Graphical Debugger

JINX is the official debugging utility for use with PROS code. With JINX, you get to graph data, generate CSV files, send commands back to the cortex, and more, all from your browser of choice. JINX works by using a computer connected to the cortex via serial as the central hub of a webserver. Other computers and mobile devices on the network can then connect as clients and enjoy the use of the interactive features. You can view the JINX setup and user guide at github.com/purduesigbots/jinx.


Above: Example of JINX usage to map motor output to PWM value

Above: Example of JINX usage on a mobile device

PROS Command Line Interface

The PROS Command Line Interface was first introduced with PROS for Eclipse 1.6.0, but is now revamped. The CLI provides the infrastructure necessary to do high level PROS-specific tasks, such as creating projects and uploading code to the microcontroller, without the need for an IDE. You have the freedom to use whatever IDE you prefer (and then manually controlling flashing and building through the command line), although the PROS Development Team will officially support Atom. This release of the CLI also features VEXnet 2.0 flashing capability and a variety of bug fixes. The repository for the CLI is located at github.com/purduesigbots/pros-cli

PROS Kernel is now Open Source!

The PROS Development Team has always had the core mission of supporting the VEX community by providing a premier coding environment and unparalleled support for this environment. It has become increasingly apparent as the PROS user base has grown that releasing the PROS source code to the community fits with this mission. As a result, we’re pleased to announce that the PROS kernel is now freely available on GitHub under the Mozilla Public License 2.0. Feel free to make modifications and share with others. If you find something to improve, please shoot us a pull request. The PROS Development Team appreciates the support of the incredibly skilled users in this community and we look forward to the future of PROS as a project backed by the VEX community as a whole. This repository is located at github.com/purduesigbots/pros

Additionally, we’ve exposed PROS’s inner I2C library for use with custom sensors, and we’re moving to a new versioning format that complies with semantic versioning. The next release of the PROS kernel will be tagged at 2.11.0. Within PROS going forward, the past kernel version 2b10 will be referred to as 2.10.0, but it is the same binary that we’ve previously released. As all of the upgrades found in 2.11.0 have already been tested for years, this kernel version can also be considered completely stable.

tl;dr - PROS is now open source and features a new IDE, a CLI, and a debugging environment.

Moving Forward

Signing up for the Beta

While all of our projects are open source, we are going to hold on to the installers for a couple more weeks as we iron out the last bit of development that needs to occur. That being said, the current ecosystem is stable for daily use (you can see our roadmap for full release below). If you’d like to test out the new version using installers, you can sign up here: https://edjubuh.typeform.com/to/qyamAc

PROS Roadmap

Here are a few things we’re planning on finishing up in the next few weeks:

  • Atom-CLI GUI equality. Only basic project management tasks are supported in PROS and we’re going to add the ability to download templates
  • Improvements to the PROS terminal built into Atom
  • Incorporate JINX into Atom
  • New PROS documentation website featuring our new branding and better tutorials/support
    If you’d like to help us out with any of these, feel free to shoot us a pull request or contact us at pros_development [at] cs.purdue.edu!

We hope you all are as excited about this PROS update as we are, and we’ll have the fully tested release in a few weeks!

I have used Atom since it came out, and it’s my favorite text editor, thanks so much!

You just made my son, @BottomNotch very happy.

After chatting with @Jabibi at worlds this past year, I was so excited! I honestly can’t wait for it to be released! I LOVE atom, so that’s also a plus.

Good Job Guys!!! It looks great!

Sublime next? Haha. :stuck_out_tongue:

This is slated for 0.3.3 release (updated now) of the Atom plugin, and only occurs when the linter plugin loads before the rest of the PROS plugin has activated. You should be able to refresh/restart Atom (refresh by Ctrl+Alt+R) and the message shouldn’t appear again.

We’ll look at bug reports anywhere, but reporting on GitHub issues is the best place for us to take a look quickly.

Have been using Atom for quite some time now and super exited to see that you guys ported PROS to it.
Great stuff

Hey guys,

Awesome stuff, the VEX community is going to immensely benefit from this. I wish I could give more praise.

Couple dumb questions…

After building the PROS kernel, I get the output.elf / output.bin files. I assume I’ve basically compiled a PROS project just consisting of the kernel and nothing else right?

If I added the kernel template files to this (init, opcontrol, auton, not including the libpros.a of course) and built it, I’m guessing I’d have the kernel + whatever I added to the template?

How does the kernel relate to the master code? Is output.bin essentially all “user code”?

Do we need specific master code to run PROS?

when building the kernel as a library (make library) it compiles into libpros.a which is basically the finished program but without the autonomous, initializeIO, initialize, and operatorControl symbols and you drop that into the project’s firmware folder obv

when building the kernel without library it compiles into an .elf and .bin using init.c, opcontrol.c, auto.c as if it were in a project

when you build a pros project it links all your source files together plus libpros.a then the linker script removes unused sections ( CCFLAGS -ffunction-sections and LDFLAGS -Wl,–gc-sections ) and you have the final .elf and .bin

output.bin is the (hex encoded) binary that is written directly to the user processor’s flash
PROS communicates to the master processor via SPI (src/supervisor.c) just like RobotC, so it does not require custom master firmware

Thanks!

Oh my…
Well thats awesome.

Seriously, PROS for atom looks absolutely amazing, super excited for a release. :3

@edjubuh and @Cody,

I am exited about the new features of PROS, and I love the idea of building and uploading to the cortex from the windows CLI. Cody’s recent video on building and flashing the PROS kernel, with a program, onto a cortex is great, but the documentation for PROS at

http://purduesigbots.github.io/purdueros/index.htm#CmdLine

made it seem to me like there is a (windows) command line building feature that is completely included with the new PROS IDE.

That documentation that I linked above says that one should be able to use “make” and “make upload” to build and put code onto the cortex, and I assumed it referred using these commands in the directories of the generated PROS projects from the latest PROS IDE. I even see there is a Makefile in generated project folders. However, after installing that IDE, running these commands in a project folder generates errors.

I would appreciate direction in getting PROS projects onto the cortex with the command line. Is Cody’s method the most straightforward? I am a total beginner to this.

attached are screenshots of the make error messages - I copied/pasted them into notepad so I could hide my dirnames :slight_smile:
log.png

Hi @CannonT,

It’s great to see enthusiasm for the new PROS CLI. The CLI will be cross platform and available for the major operating systems. The new PROS IDE will be launched here in a few weeks (can sign up for the beta here: https://edjubuh.typeform.com/to/qyamAc)

Can you confirm which operating system you’re using?

@edjubuh,
Thanks for info! I am running windows 10 home x64.
Did I mistakenly use the old IDE software thinking it had the new features?

To be clear, I didn’t touch on the PROS CLI, I used regular old Unix make and James’s stm32flashCortex utility.

I tried to build the PROS Kernel on Windows 10 Pro x64 using GnuWin32 and ran into issues. Something about libz-1.dll being missing.

@Cody I appreciate the clarification.

When can we expect a build of the CLI to be live?

This is awesome, but does this fix the issue where code could not be uploaded from Linux (specifically Ubuntu)? That would be awesome for me, because I could actually use my laptop for coding then and not a crappy HP Mini. Love PROS though!

IIRC that’s a driver problem and the driver’s come from VEX