I am setting up a Chipkit programming competition ...
The initial outline follows below.
Any suggestions or comments would be much appreciated.
Grand PIC32 Arduino Programming Competition
With the port of the Arduino development environment to 32 bit processor architectures such as the PIC32 and Cortex M3 the Arduino is evolving into a much more powerful computing and prototyping technology.
FTT have been Microchip Training Partners and Consultants for over 8 years and have tracked the development of Microchip technology from the early 8 bit processors through the 16 bit dsPIC and PIC24 families and on to the 32 bit PIC32 family.
Like the Atmel AVRs that are the mainstay of Arduino development the PIC32 processors come with a wide variety of on chip peripherals. However, being 32 bit processors they have a much larger address space than the 8 bit Atmel AVRs and much greater amounts of on chip RAM and Flash memory.
With the PIC32 Chipkit Arduino boards it is possible to incorporate small operating systems such as FreeRTOS, TinyOS and Contiki as well as interpreters for small scripting languages such as Lua or Scheme into applications running on these platforms.
The Arduino code pattern consists of a main loop together with provision for interrupts and interrupt handling where needed. Arduino sketches can then be converted into C/C++ code that can be compiled into a loadable application that can be loaded onto the target board via its onboard bootloader. This is fine for 8bit processors, however, with 32 bit processors it should be possible to do much better. It is not simply a matter of getting Arduino applications incorporating RTOS API functions to build and run. In the spirit of the Arduino community it is equally important to provide effective abstractions for multi-tasking and inter-process communication that will enable non-experts to take advantage of these mechanisms.
This, then , is a key motivation underlying this competition.
Entries to the competition will be judged according to a number of criteria, and marks awarded to each category. These marks will be totalled up to determine the overall winners.
The categories will be as follows :
1.Porting and adaptation of one of the following small operating systems FreeRTOS, TinyOS and Contiki to the Chipkit Arduino platform.
Note: Originally the idea was to use FreeRTOS and no other RTOS, but, this seemed to be too restrictive. FreeRTOS has been ported to the PIC32 and is widely used. There are various projects porting TinyOS and Contiki to the PIC32 though they have not been widely publicises, and it is hoped that this competition may inspire some of those doing these ports to make their work more widely available.
2.Documentation and description of the work, together with examples and tutorials
Note: Documentation and tutorial examples are very important. Pedantic though it might seem this category will be an important category when judging entries
3.Applications demonstrating the benefits and power of incorporating embedded operating systems in Chipkit applications.
Note: Applications will not necessarily be confined to Chipkit boards, although these are, currently, the only PIC32 based Arduino boards available. Competitors will be able to submit entries using non Arduino format PIC32 boards, providing the PIC32 on the board uses an Arduino IDE compatible bootloader to download compiled sketches. The rationale is that some of these applications may demonstrate the use of devices and peripherals for which the corresponding “shields” have not yet been developed. It may also be that some of these applications may be the forebears of next generation “stackable” Arduino technologies. These may, for example, be along the lines of the PICTail interconnect mechanisms used by Microchip, or, the connectors used in Digilentinc's PMod devices or , connectors using stackable USB.
However, any such entries must contain a description of how they might be realised using the classical Arduino format, including designs of corresponding shields where appropriate.
Currently there are three main prizes to be won.
If more sponsors can be found then it should be possible to increase the values of the top prizes and to provide further prize categories.
£1500 - First Prize
£500 - Second Prize
£250 - Third Prize
Three runner up prizes of £100 each.
The competition is looking for sponsors who might be interested in sponsoring prizes in particular categories ,or, in increasing the amounts for the first, second, third, and runner up prized.
Possible Prize Categories might include:
Best Smart Sensor Network application
Best Home Automation application
Best Environmental Monitoring application
Best Assisted Living application
Best Animatronic application
Best Robotic application
Best Under 18 individual entry
Best Under 18 team entry
Best Undergraduate individual entry
Best Undergraduate team entry
Best Interactive Art entry
Entry fee for the competition is
£20.00 for individual entries
£40.00 for team entries [the maximum size of a team is 5 team members]
Sponsorship levels are
Platinum - £1000
Gold - £500
Silver - £250
The deadline for submission of entries will be Tuesday March 31st 2012
Winners will be announced on April 16th 2012
Entrants to the competition will have free entry to a “mini” Maker Faire to be held in South London on the May Bank Holiday weekend i.e. May 5th to May 7th. The creators of the best entries will be encouraged to give a presentation and demonstration of their work.
All entries will be published on the web, and it is hoped to collect together the best entries and to publish them as a book.