and now for something completely different…
… well not really.
ConVEX is now available on github.
https://github.com/jpearman/convex
ConVEX does not have an installer.
ConVEX does not have an IDE.
ConVEX is not easy for beginners to use, in fact, don’t even try, however…
ConVEX is provided as Open Source, that’s right, if you want to brick your cortex, now you can.
Unless you want to struggle with ARM toolchains, eclipse and make tools, I suggest you install PROS first as it does all the heavy lifting for you.
Download the zip file from github, unzip the master and then ChibiOS, move the convex folder and the ChibiOS folder into your PROS workspace, the file hierarchy should look like this.
Then read the documentation.
http://jpearman.github.io/convex/doxygen/html/index.html
Load a demo project and have fun.
So what is ConVEX?
The ConVEX firmware library is an add on package for the ChibiOS/RT operating system that supports the VEX cortex microcontroller. The library adds the necessary functionality to allow C applications to be created and executed on the cortex that can access its available hardware.
ConVEX is not trying to be competitive with ROBOTC or EasyC (or PROS ), it is only appropriate for advanced users who have some familiarity with RTOS concepts and are comfortable with programming micro-controllers at a bare bones level.
ConVEX uses many features of the ChibiOS/RT library and the hardware abstraction layer that it provides for the STM32 processor. Modification of the low level drivers could cause damage to the cortex hardware, however, under most circumstances user code can be developed that is as robust as the existing environments for the cortex.
Follow the steps outlined in the Getting Started section of the documentation to install ConVEX and the necessary tools. A few demo programs are included that can be used as a starting point for user projects.
Features
- Preemptive multithreading
- 128 priority levels
- Round-robin scheduling for threads at the same priority level
- Software timers
- Counting semaphores
- Mutexes with support for the priority inheritance algorithm
- Condition variables
- Synchronous and asynchronous Messages
- Event flags and handlers
- Queues
- Synchronous and asynchronous I/O with timeout capability
- Thread-safe memory heap and memory pool allocators.
Cortex specific features
- Digital IO
- Analog Inputs, potentiometer, accelerometer etc.
- Ultrasonic sensor support
- Quadrature encoder support
- Motor control
- Integrated motor encoder support
- Support for two VEX LCD displays
- Competition control
- Simple audio tones and chip tone playback support
- Command line interface (shell)
Optional features
- SmartMotor library
- Apollo - real time display of motor and sensor data
- VEX Gyro
- PID library
- ROBOTC style tasks and Sensor support to allow easy code porting
ConVEX projects will take longer to compile than PROS projects, this is partly due to compiling all the source code with each project, but also due to issues with the make program included with PROS (under windows).
ConVEX has been tested using eclipse on OSX (10.5 - 10.8) and also Win XP and Windows 7 64bit. I have not (and do not plan to) test under any version on Linux.
Note: To get the plugin to load under Win7-64bit, after copying to the plugins folder I had to launch PROS in administrator mode. Subsequent launches could be normal.
I’ve been using ConVEX for a couple of months, however, it has not received the level of testing that either EasyC or ROBOTC has. I would use it in parallel to the existing environments until we have proven it over a longer time and squashed the remaining bugs.
Again, this is firmware for advanced users, don’t start randomly playing with code that you do not understand just to see what it does, you may kill your cortex. However, anything is now possible, want to interface that odd I2C sensor, no problem. Want to change the analog sample rate, no problem. A custom PC controller for the cortex, no problem. You get the idea.
Disclaimer.
THIS SOFTWARE IS PROVIDED “AS IS”. NO WARRANTIES, WHETHER EXPRESS,
IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS
SOFTWARE. THE AUTHORS SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR
SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.