Review of Microchip PIC32 LCC Graphics Kit

Table of contents

RoadTest: Microchip PIC32 LCC Graphics Kit

Author: mountaindude

Creation date:

Evaluation Type: Evaluation Boards

Did you receive all parts the manufacturer stated would be included in the package?: True

What other parts do you consider comparable to this product?: Various ARM products could have been options, for example some ARM Cortex-M3 based chip, possibly a NXP LPCXpresso Cortex M0/M3.

What were the biggest problems encountered?: The demos for the board simply don't work for me. This is pretty serious as it greatly raises the threshold for getting started with a new board, at least for those moving to a new platform/architecture.

Detailed Review:

Apologies for the extremely poor formatting below - but I just cannot figure out how to use this editor to format text properly...

 

 

-------------

-------------

Review coming once I've had time to play around with the board a bit more, some initial comments already now though:

 

- There was no notification I was selected to do the review. The notification from DHL was the first thing I heard about it. This is not a major problem per se, but maybe there is room for improvement in element14's process for handling roadtests (in particular notifications)?

 

- The boxes had been opened prior to being sent, and the devices (touch screen etc) had been used a fair amount already. Not a problem either - just interesting. The only minor issue I can think of is that it will be hard to estimate wear and tear on the display, without knowing how much it had been used before arriving here.

 

- The pre-flashed demo application was pretty nice. Basically a bunch of graphics demos (I'll upload a video later) showing off how fast the poor little PIC32 can move pixels around (it's quite capable!) and demos of UI elements.

 

- The tool chain installed quite nicely on a Mac with latest OS. Good to see manufacturers that realize that development today is not only done on Windows.

 

Allright, all for now. Will write more once I've played around with the board.

 

 

Edit: Full review follow.

----------------------------------

 

 

 

Review of Microchip PIC32 LCC Graphics Kit

 

 

Reviewed products

 

PIC32 USB Starter Kit II (part # DM320003-2)

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en535536

 

Low-Cost Controllerless (LCC) Graphics PICtail Plus Daughter Board (part # AC164144)

http://www.microchip.com/lccg

 

 

Graphics Display Powertip 4.3” 480x272 board (part # AC164127-6)

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en548293

 

 

Summary

Nice evaluation kit for building USB connected gadgets with color displays. Very solid mechanical build quality. Software and tool chain has obvious gaps in it – the relatively new MPLAB X IDE is very nice, but the demos included in Microchip's application library just don't seem to work. This significantly increase the time and effort needed to get started developing your own applications.

 

Microchip's IDE is in fact among the best I've tried from any vendor, in the end I however have spent much more time just debugging things with this board, as compared to similar boards from other vendors. Room for improvement here, Microchip.

 

 

Unboxing

The kit came in a surprisingly small package, but was still properly protected by padded antistatic bags. A bit surprising that all the bags had been opened and re-sealed, the touch screen also showed obvious traces of previous use. Not a problem per se, there was no visible mechanical wear or tear.

The kit also included a couple of different USB cables, most people interested in this kind of kit probably already have these, but nice nonetheless to have everything needed in the box you get.

 

 

Setting up

 

Hardware

The board can be powered either via a 9V connector or the debug USB port. Given that I didn't have a powered USB hub around, I chose to connect a small adjustable power supply to the 9V input. The two voltage regulators on the board output +5V and +3.3V and I was a bit curious how low the input voltage could be taken while still maintaining proper operation. 6V was ok, below that things didn't work quite as expected. You can probably go higher than 9V too, but then heat dissipation will become an issue, as the regulators are SMD variants without any real heat sinks (except pads on the PCB).

A slight design flaw is that even if the board is connected to a real power supply (which supplies all the power needed by the board) and the USB cable is then connected to an unpowered USB hub (which in turn is connected to an iMac), there is a warning on the Mac that “A USB device needs more power”. Ideally the board should tell the iMac host that it's fine with respect to power, when it is connected to an external power supply. Connecting the board to a powered (500 mA) USB host removes the problem.

 

A very positive aspect of the board is the mechanical stability. The CPU board (“USB starter kit” plugs into the “LCC graphics PICtail Plus Daughter board” in a single socket, but thanks to some rubber pads under the former board, the connection between the two boards is very solid and without any noticeable flex.

The display board (“Graphics Display Powertip 4.3” 480x272 Board”) connects to the LCC board with a PCB-to-PCB connector. I had expected this to be a weak point and source of problems, but a combination of well designed PCBs, well aligned rubber pads under both boards and good quality connectors, I have noticed no problems what so ever. Very solid build quality in other words.

 

A nice touch is also the on-board programmer and debugger that is included in the USB Starter Kit. It eliminates the need for a separate programmer – nice – just connect the board to your desktop or laptop PC/Mac. Only downside is that this programmer is only recognized by MPLAB X, not by standalone programming tools (as those used to upload .hex files to a PIC). Not a major problem though, as most work is done in MPLAB X anyway. The application note AN1387 (see the references section below for link) describes this nicely.

 

Finally, the solution on the LCC board where a set of 15 jumpers are used to select whether to use internal RAM for the DMA access to the display (using 8 bits per pixel), or an external RAM chip (for 16 bits per pixel), is good – but it also becomes important to keep in mind which configuration you have, as the code needs to be adjusted accordingly.

 

 

Software

Several pieces of software need to be installed (all together >100 MBytes of downloads):

 

- MPLAB XC32 compiler: http://www.microchip.com/pagehandler/en_us/promo/mplabxc/

OSX installer at http://www.microchip.com/mplabxc32osx

There is a free version available, it's fully functional except that most optimizations are disabled (which causes issues later on, see below)

 

- MPLAB X ide: http://www.microchip.com/mplabx/

 

- Microchip Libraries of Applicarions: Includes the Graphics Library and its demos.

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2680&dDocName=en547784

 

 

I installed everything on an iMac with the latest version of Mountain Lion. Everything was painless, the only minor annoyance was that the applications were not properly signed by Apple, something I would expect Microchip to have done before releasing the software to the public.

 

 

After installing the graphics demos, it turns only a couple of the demos that have .hex (i.e. precompiled files that can be directly downloaded to the board) files for the PIC32 on the USB Starter Kit (which is a PIC32MX795F512L), namely the “Object Layer” and “Primitive Layer” demos. Unfortunately neither of them work on the board I got...

This is quite disturbing, as the documentation included in Microchip's application library states that most demos should work on the reviewed combination of hardware:

 

 

In fact, the only demo I have working so far is a new version of the LCC Demo, downloaded from http://www.microchip.com/lccg (the “PIC32 LCCG – New Demos” download).

 

When working with the source code for the demos in the Application Library, it compiles and uploads to the board just fine, but they only show blank screens of alternating colors and patterns. Nothing near the intended demos.

One thing needed to get the demos to compile was to tell MPLAB X where the include files are stored. Default settings for these paths used relative paths, which didn't work at all (at least not under OSX – maybe I installed things in the wrong place). Changing this as below made all compiler errors go away. 

 

 

Above is the configuration that worked for me.

 

 

After spending more than 20 hours so far on getting the demos to run on the board, I'll leave them for now and focus on writing some code from scratch. In my book this is however a real issue for Microchip.

 

 

 

 

Tool chain

The USB connection to the board (used for programming and debugging the board) consistently hangs after a few minutes, making uploads to the board impossible. Remove and re-insert the USB cable, upload the newly compiled project and it works as expected. Not a major problem, but after doing it for the 50th time, I cannot help wonder how long the USB connector will last.

 

The free version of the XC32 compiler does not support any but the most basic optimizations. As the default setting in MPLAB X is to enable optimizations, building the demo projects results in lots of warnings about optimizations being switched off/disabled. It's easy to get rid of these warnings though, just right click on the project in the browser view on the left, then select “Set Configuration – Customize...”. Under xc32-gcc select “Optimization” in the Option categories drop down box. Change optimization level to 0 (zero).

 

 

 

Future use – possible improvements

The kit as advertised as an evaluation kit for controllerless graphics. This is exactly what it is, albeit with some issues around the tool chain and included demos.

Still, from the first day of using the board I missed Ethernet connectivity. I know – this is not what the board is intended for, but hey – it's 2012 and Ethernet connectivity is pretty established and expected from products today. There are other starter kits for this (for example the PIC32 Ethernet Starter Kit, which could be used instead of the USB Starter Kit I reviewed), but as a next step I am planning to add a small ENC28J60 based board (plenty of cheap ones available on eBay) to the current setup. As that chip is also from Microchip there is good support libraries for it in the tool chain. The combination of a good color touch screen and Ethernet connectivity is pretty ideal for lots of applications, next projects here include

 

- a server monitor application (ping servers every minute or so, show nice dashboard of their uptime, alarms etc on the display, while also sending alert emails when a server goes down)

 

- dashboard for a home automation system, showing current and past power consumption (current vs yesterday vs a week ago vs a year ago) and environmental info (various temps, humidity etc). All the data is in place, the PIC display kit will act as a interactive dashboard. I expect that Microchip's rich UI library will simplify development of the application a lot.

 

 

References & documentation

 

PIC32 USB Starter Kit User's guide http://ww1.microchip.com/downloads/en/DeviceDoc/61158B.pdf

 

Application Note: “Using PIC32 MCUs to Develop Low-Cost Controllerless (LCC) Graphics Solutions”

http://ww1.microchip.com/downloads/en/AppNotes/01387A.pdf

 

MPLAB wiki

http://microchip.wikidot.com/mplab:_start

Anonymous
  • The demo is definitely nice, at least it shows you what you can do with reasonable speed.

     

    One thing I was a bit surprised with was the power consumption.  With LCD it's ~ 350mA @ 5V and without LCD it's ~ 220mA.

    So it's 1.5W.  An Arduino Mega consumes only 50mA without an LCD, although, Arduino is a lot slower.

     

    I just had a hobby project where I needed to measure data every second.  I wrote a "collector" program that I ran on a laptop

    attached to Arduino and saved all the data to a log file.  Thinking to do the same for this PIC32 and to display the data on

    the screen instead.