RoadTest: Microchip Curiosity Development Board
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?:
What were the biggest problems encountered?: Finding the example codes for the PIC i got with this board. Getting MPLABs LVP up and running.
My road test selection could not have come at a better time. I recently found myself wishing I had spent time looking at other microcontrollers rather than being infatuated by the Arduino for so long. The Arduino is a great eco system, but it can be restrictive with what it can offer if you ever feel like spreading your wings by looking into slightly higher end offerings for possible product development.
A quick glance at Microchips MCU offering will literally blow your mind. Name any combinations of peripherals and computation power and you are very likely to find what you exactly want; this is very promising if you plan on building a very specific product/project down to a cost; like I did a few months ago. Naturally, I wanted to get my hands dirty with MPLAB and microchips MCUs with an entry level dev board that didn’t require me to sell an arm or a leg! Pickit3 seems a bit too expensive a venture for hobbyist/student like me who hasn’t yet been convinced of its point (given all the cheap Arduinos available with 0 programming cost!) So in that aspect the curiosity board immediately ticked the box! Its very reasonably priced (compared to other Microchips dev boards/tools) and it lets you program in MPLAB! None of that Chipkit nonsense (more on that later )
At first glance, the board has more empty footprints than components, the mikro bus footprint seems a bit redundant to me, if anyone is using Curiosity, then chances are, they like me have dwelled into this field before and have seen/prefer cheaper external peripheral that are available for say the Arduino/Raspi.
Any hoo, the board comes with a brief quick start guide that basically tells you to go the website, I had to do a bit of digging around trying to find where the example codes were located for the PIC16f1619 that I got. The Curiosity product page had example codes to other PICs but not the one I exactly had! I was stumped, but eventually I found them in the software section of the exact PICs product page. The start guide could have been better here, I would expect the user guide to mention and vehemently instruct the user to download and explore the otherwise very well constructed “Labs” code examples.
The next problem came when I tried to program the board using the Low Voltage Programming (big thumbs for using LVP!) as opposed to the traditional PICkit programing. The problem is you need to configure the IDE to support LVP by clicking a few tick boxes outlined in the user manual, unfortunately it still wouldn’t program the board for me which was frustrating. At first I thought I accidently wrote the wrong CONFIG bits but this was impossible as the lab example project provided, successfully programmed the board (albeit it did threw the occasional error message about the LVP bit being set wrong) but my own projects would not! What was I doing wrong? I had followed the LVP setup as outlined in the quick start guide. I finally figured it out and it turned out be MPLAB code configurator, for some reason the MPLAB IDE lacks liaison with the MPLAB code configurator. I naturally assumed that setting the LVP tick box would allow me to use LVP, but when I fired up MCC it amiably offered to generate the CONFIG and Oscillator settings to which I said yes, unfortunately here it also set LVP to OFF by default. I don’t know whos fault it was here, but this is a common issue users of this board have encountered so perhaps an updated users doc? After setting the LVP to ON in the CONFIG bits it all works fine.
Now for the many good bits, there are quite a few!
A quick note about this board and the LVP programming capability: huge thumbs up here! I think this was a superb decision by the microchip to bring the cost of getting started with genuine PIC development down! Given the multitude of PIC offerings and the debugging capabilities of MPLAB hobbyists and students like me will automatically transition/want to transition to the PICkit 3 after playing around with the Curiosity board!
Now finally looking at the board itself, I am quite amazed by the hardware, price point and software; part of the reason I steered clear from PICs after initial Arduinos madness was the relative demanding peripheral configurations and difficulty in getting the “Hello world” up and running; a quick look at a datasheet for the peripheral configuration on a 16/32bit pic will scare you, it scared me and I just couldn’t justify the time and effort involved in leaving the spoon fed Arduino eco system I was used to. I was pleasantly surprised and excited by the MPLAB Code Configurator, it let me easily set up the relevant CONFIG bits, and peripherals. This is great and again a big thumbs up to the folks at microchip for introducing this! For a semi beginner like me it makes life so much easier and development a lot less daunting! Don’t get too excited as I did tho, the MCC code configurator only seems to be targeted at the lower level 8 bit pics and entry level users right now, for example it doesn’t support ant pic32 or dsPic where I feel something like this would be so sweet!; the good news is that the MCC beta 3 added support or a lot more chips which is a good sign! Additionally, the Code Configurator seems to serve as the “peripheral libraries” for these lower end pics (like the ones you get separately for higher end pics). MCC not only generates the relevant register configurations but also declares functions to use the peripherals!
Another really impressive and perhaps the most important point about these newer pics on the Curiosity are the crazy amount of peripherals at offer in this breadboardable DIP packaged footprint! Truly astonishing and exciting. The PIC16f1619 on my board costs about £1! I do not think any other breadboardable 5v micro comes close! Speaking of peripherals did I mention this PIC also has an 8 bit R2R DAC?!! Anyone who had to use PWM filtering to create a noisy DAC on the Arduino will feel my pain and share my excitement! Moreover, the DAC can also be programmed as a threshold voltage for the inbuilt comparator! Curiously, the DAC was not included in the LAB example code provided so this gave me a good chance to test out the MPLAB code configurator. The UI was pretty intuitive with a lot less jargon: I selected a voltage reference, an output pin and ran the code but…..nothing happened, I was sure the MCC set it up right but I only got a fixed full scale value of 1.3v when I was expected VDD( 3.3v). After a lot of head scratching I found out that the DACs output pin is also one of the programming pins so sadly you can’t use It whilst the PIC is in the dev board as it is loaded down by the programming circuitry L arghhhh this was frustrating, but the fact that is included in a PIC of this price point is exciting so I was forgave! (PS I first thought one of the LED on the board that was also connected to the DAC pins was interfering with its operation so I brutally desoldered it off the board to try and get a working DAC....im sorry LED)
Another really exciting peripheral was the configurable logic cell (CLC)in the Pic, 3 of them to be exact! Again all the above is easily configurable in MPLAB code configurator! Whilst playing with the MCC on this PIC I honestly lost track of the fact that this is a £1, 8 bit DIP MCU!
I would urge anyone interested to go and see the datasheet for the PIC16f1519 or even setup a dummy project for the Curiosity board in MPLAB to play around with MPLAB Code Configurator; the peripherals are truly amazing. Some other ones that stood out were the hardware math unit for PID implementations, the 2 comparators, the programmable logic blocks and the 4xPLL’d 32MHz internal oscillator. I honestly am convinced this is one of the best 8 bit micros to play with other there!
I think overall this is very a good way to get introduced into proper PIC microcontroller development or even check out these relatively newer range of PICs, from what I’ve looked at I would definitely recommend this to someone who wants to get started with PICs and MPLAB mainly because: I don’t need to convince them of buying a PICkit at the start, the devboard itself is cheap, the PICs on curiosity have lot of peripherals to make you curious and most importantly you use MPLAB which sets you up well for higher end PIC development. I am a believer to say the least, I am now saving up for the PICkit 3, until then I must sadly suppress my microchip madness
Its difficult, Arduino beautifully abstracts the hardware. With any PIC, be prepared, its nothing like that. You will have to get used to reading a lot (and i mean A LOT) of chip specific documentation and datasheets; even when moving from one PIC to another. On the bright side the documentation is pretty amazing and thorough! Filled with a lot of examples too. Most PICs also have peripheral libraries which help.
As to how you should get started, i would suggest, starting a simple project using a PIC, downloading the relevant sections of the datasheet and nice cup of coffee! If you havnt bought the hardware yet, as suggested in my review, the Curiosity board is a pretty good and cheap option to go with!
How did you find the experience of moving from the Arduino environment? are there any tips that could help others making the move?
There used to be a wealth of PIC related tutorials, libraries and resources around the internet that seem to have died off a lot, did you refer to any resources or find there is room for more?
Good style writing and excellent read. Hope you enter another road test.