I have been experimenting and developing code for a cool little board made by a Serbian company called MikroElektronika. An absolute haven for embedded developers and hobbyists, they have a full range of development systems supporting Microchip’s PICs, dsPICs, PIC32s as well as 8051, ARM and other vendors chips. In addition, they support all of these processors with a full line of home-grown C, Basic and Pascal compilers that I hope to evaluate and write about soon.
The development system that I am currently using is the mikromedia for PIC32. This little gem of an SBC has a QVGA HiColor Touch Screen Display with a powerful PIC32MX460F512L processor. Also on board are a one megabyte SPI flash device, a micro-SD slot, a 3D Accelerometer, an MP3 decoder, access to unused processor pins, and many more features than I can possibly enumerate here.
Now this little wonder of a system is incredible, especially when compared to the typical development systems that were common in the bad old days. I mean it used to be that you got a couple of switches and an LED or two and that was it! Now we have this:
The only thing is that such a sophisticated little board requires a great deal of code to make it do anything useful. Consider something simple like the touch screen. The touch screen is read using the analog to digital converter. The thing is that converter is also needed for other things as well. An A2D manager was needed to manage that resource. The touch screen needs to be calibrated. That resulted in the creation of calibration code, and then there was the issue of storing the calibration data some place. All this while learning the new MPLAB-X programming environment and the latest C compiler from Microchip.
That’s why I started the emSystem project. This project aims to create a simple, frugal framework for embedded developments that will enable programmers to focus on application programming. emSystem will eventually be open-sourced, but it’s too incomplete to stand up to that sort of criticism just yet. In upcoming postings, I plan to review my progress and point out bits that you may find interesting.
A companion to the emSystem is the emGraphic program. Originally this was designed to be a tool for anyone doing embedded programming. As such it permits the programmer to create, import, and manipulate color palettes, bit-mapped images, fonts, Unicode strings, and Binary Large Objects (BLOBs) and have the results output as C source code for incorporation into an embedded system. As time went by, it became clear that these two components could not exist in isolation. So now I consider them to be two aspects of one whole system. emGraphic is currently written in C# under windows, but I am considering porting to Java to run under the Net Beans environment of MPLAB-X. Like emSystem, a fair bit more work is needed on emGraphic, so I think I better make up my mind before sinking too much more effort into C# and dot NET.
Peter Camilleri (aka Squidly Jones)