Review: Sparkfun Olimex PIC-MT Dev Board Author: s1axter
Written: August 24th 2007, 7:45 pm PST
Getting started in embedded software development is a fun and exciting endeavor with an expanding number of possibilities; however, embedded software development comes with the requirement of owning the hardware and systems to support it. Even a simple blinking LED example using a PIC microcontroller requires a compiler, programming software, programming hardware and the final LED circuit. Obviously the more complex the project, the more complex the supporting hardware needs to be. The ideal platform to develop your skills is a circuit that has enough hardware to be functional, simple enough to learn on and electrically sound.

Sparkfun Electronics is a web based company that sells embedded development boards, electronic components and communications circuits. One of the many companies Sparkfun sells products of is Oilmex Ltd. A European company, Olimex produces development boards aimed at the scenario discussed before, software development and learning. Their boards have commonly found hardware and are perfect for those looking to take the plunge in embedded software. One of these development boards is the Olimex PIC-MT for 28 pin PIC microcontrollers from Microchip Inc.

The PIC-MT contains a number of great features including a 16 character by two row LCD, six input buttons using only three pins, PIC controlled LED, buzzer, 10A/250V AC relay, buffered ADC input, TTL RS232 header and full RS232 DB9 connector. With all these features the PIC-MT is a great platform to develop solutions.


Olimex datasheet

Recently I received a PIC-MT from Sparkfun Electronics and developed a numeric memory game to test out some of the features on this board. The memory game is much like the classic Simon, minus the colors and sounds. This application allowed me to interface a PIC with the LCD, buttons and buzzer.

The PIC-MT is well designed and is focused on embedded development using the hardware on the board. Measuring only 120mm by 36mm it can be held in one hand with all six buttons located under the right thumb, giving a game controller feel. Further, right behind the six buttons is the relay which provides a nice way of holding the board and not touching or damaging any components.



Pin headers for TTL RS232, ADC and Dallas touch button port are located right on the top edge of the board, easy access for attaching to some peripheral hardware. The screw terminals for the relay are also conveniently located on the top edge for easy access. Mounting holes on the corners allow a designer to easily mount the board in a project box, but if you do you might need stand offs for the buttons.

Software development is very straight forward since each hardware control line is mapped directly to an IO line on the PIC. This is very nice since it doesnít burden the developer with switching the functions of a pin mid application.

Click here for schematic

The LCD on the board is connected to the PIC via a 4bit interface on PORTC with control lines on PORTA. An example of LCD initialization routines can be found on either Oilmex's or Sparkfun's website. Using their routines as a base, getting the LCD working takes no time at all. In fact if you download the Sparkfun assembly and replace the hard coded characters with a quick look-up table using MPLAB's 'dt' command you can get multiple strings with relative ease. No more movlw 'A'



There are six buttons on the PIC-MT in a 'D-pad' arrangement which just screams 'make a game'. The six buttons are wired in an interesting way that only uses three IO lines on PORTB. To read the buttons the PIC runs a polling routine which runs through a sequence and determines if a button is pushed. This is very nice since it saves IO lines and, with a good routine, eliminates bounces and double hits.

The PIC-MT was designed with an ICSP header allowing an external programmer to write the chip while still in the board. This is nice since you donít have to take the chip out of the board to download the next revision of your program. It is a bit of a trade off since the pins required for programming (4) are only wired to the connector and not any other hardware. However this saves the developer from accidentally frying anything but the PIC should the attached programmer have a problem. The ICSP saves a lot of time spent moving the PIC from board to programmer and back. (Trust me, try prying it out every time and you will soon be building or buying an ISCP cable)

The controller like form factor of the board is also a big plus. The guessing game I developed was always about interfacing some of the hardware, but when I got it working I found myself really enjoying this little compact game.



While the PIC-MT was a delight to program there are some slight short comings that could be addressed. First, there is not reset button. Since the MCLR pin is used for ISCP programming no reset button is on the board, requiring anyone using it to cycle power. A simple diode, resistor, button setup would allow MCLR to act as both the reset and programming pin. Not a really big deal, but if you are developing something make sure you remember there is no reset.

I also wasn't a big fan of the 28pin socket used to hold the PIC. The socket on the PIC-MT is a standard solder tail socket. Thus if you plan on taking your PIC out for re-programming it can get quite frustrating prying it out if you sat it in deep. Plus the ICSP connector is right up against the PIC making an IC puller next to impossible. My advice, use a programmer with an ICSP port, it saves a world of trouble.

Overall the PIC-MT is an excellent development board for those who want to learn about programming PIC microcontrollers. There are a bunch of hardware features in a compact game controller like form factor. There is also C code on the Olimex page and assembly code on the Sparkfun page for interfacing the hardware. Using these examples you should get up and running in no time. If you have always wanted to work with microcontrollers this is an excellent board to start with.

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

If you are interested in this or other micocontroller development boards, swing by Sparkfun.com. They have lots of different boards for different processors. Also, here is a direct link to Sparkfun's PIC development board page: http://www.sparkfun.com/commerce/categories.php?cPath=2_9

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

I have posted the source assembly and 16f872 HEX file for Numeric Simon. It should be rather straight forward and, as long as all the files are in the same directory, it should compile on MPLAB no problem. Take, use, learn, make!
Source assembly
PIC 16F872 HEX
Video

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

Please feel free to leave a comment about this review.
If someone else has an application for the PIC-MT drop us a tip! (Link in right menu)

*s1axter is the main poster for the technology blog Geeksinside.com
*s1axter can be reached at s1axter@geeksinside.com
*Geeksinside.com and s1axter have no affiliation with Sparkfun Electronics or Olimex Ltd
Max on Feb 29th, 2008 10:16pm
Numeric Simon, what a great idea! That dev board looks really handy, seems to have almost everything you need in a really small form factor.
Leave a comment:

Comments have been taken down, too much spam. Sorry :-/
Name
Website (optional)

bold[TEXT] - italic[TEXT] - underline[TEXT] - big[TEXT]
Enter Number