Today it’s review day. I have on my workbench the newest Curiosity HPC board from Microchip. With two DIP sockets on board (28 and respectively 40 pins) and two mikroBUS sockets, the new Curiosity High Pin Count board (part no. DM164136) looks as a nice development board for those who want a bit more than the Xpress and the Curiosity boards can offer, but still at a low cost.
Choice of microcontroller
If you are familiar with the first Curiosity board, that with part no. DM164137 you already know that it supports only 8, 14 and 20 pin devices.
The Curiosity High Pin Count (HPC) Development Board supports 28 and 40 pin, 8-bit PIC MCUs. Initially, it comes with a PIC16F18875, a microcontroller from the Enhanced Mid-range Core family, with 14kb of FLASH memory for program code, and with 1024 bytes of data memory. Other 28 or 40-pin 8-bit PIC microcontrollers with low voltage programming capability can be used too. A complete list of the supported microcontrollers can be found on the Curiosity HPC design center page:
- PIC16F151X (PIC16F1512, PIC16F1513, PIC16F1516, PIC16F1517, PIC16F1518, PIC16F1519)
- PIC16F171X (PIC16F1713, PIC16F1716, PIC16F1717, PIC16F1718, PIC16F1719)
- PIC16F178X (PIC16F1783, PIC16F1784, PIC16F1786, PIC16F1787, PIC16F1788, PIC16F1789)
- PIC16F188XX (PIC16F18854, PIC16F18855, PIC16F18856, PIC16F18857, PIC16F18875, PIC16F18876, PIC16F1887)
- PIC16F193X (PIC16F1933, PIC16F1934, PIC16F1936, PIC16F1937, PIC16F1938, PIC16F1939)
- PIC18FXXK20 (PIC18F23K20, PIC18F24K20, PIC18F25K20, PIC18F26K20, PIC18F43K20, PIC18F44K20, PIC18F45K20, PIC18F46K20)
- PIC18FXXK40 (PIC18F24K40, PIC18F25K40, PIC18F27K40, PIC18F47K40)
In total, there are 42 supported microcontrollers, 30 from different PIC16F families, and 12 from PIC18F families.
Two side notes regarding the supported microcontrollers:
First, when working with microcontrollers from the PIC16F188XX range, one might find that PKOB cannot be selected under hardware tools. This issue is fixed in the latest MPLABX-v2016-11-09 build. Also, it works fine with MPLAB Xpress.
Second, when working with PIC18FXXK20 devices, you will receive “Invalid Device” ID & “Failed to program device” errors. This happens because these microcontrollers cannot work with PKOB. The solution is to use a PICkit 3 to program the K20s devices.
Considering the range of supported microcontrollers, I view this board as a complement to the older Curiosity. If you own both boards you can explore a wider range of microcontrollers, and certainly you can do a lot more with two mikroBUS sockets.
And if you look closely at the PIC16F18875, it’s from the same family as the PIC16F18855 featured on the Xpress board. The differences are in the number of I/O pins (36 vs 25) and the number of A/D channels (35 vs 24). This means that all code written for the Xpress demo board can run on the Curiosity HPC with only minor changes in the pin configuration.
Here comes the fun part. The Curiosity HPC comes with two mikroBUS sockets, so this board can be used in projects with increased complexity. Of course, one can take a look at my tutorial on stacking click boards – it applies to the Curiosity HPC too, if you feel that two mikroBUS sockets are not enough.
Another nice thing is the presence of solder jumpers (solder blobs) for the connection between the PIC microcontroller and the different hardware on the board. One can disable the LEDs, the buttons, the potentiometer, and, very important, it can reconfigure the connections to the mikroBUS sockets. That is a nice feature, especially for older microcontrollers without PPS (Peripheral Pin Select). Newer microcontrollers with PPS can be configured from software, so you can leave your soldering iron to cool down.
PKOB (PICkit On Board)
Same as in the older Curiosity board, programming is done via the PKOB, or PICkit On Board. That’s nothing else but a stripped down version of a PICkit 3. No circuits to generate the target voltage and a different firmware.
A big difference here as compared to the Xpress board: the PKOB doesn’t provide any USB-UART functionality. You will need a USB-UART click, plus a second USB port in your computer. Also, you will have to sacrifice one of the mikroBUS sockets (not funny).
Powering the Curiosity HPC board
The Curiosity HPC board is designed to receive power only from the USB bus. There’s a 500mA thermal protection, so this board offers some degree of protection for your precious USB ports. Nevertheless, using a USB powered hub is always a good idea. If things go wrong, it’s much cheaper to throw a USB hub in the garbage bin (OK, be nice to the environment, recycle it) rather than replacing your motherboard.
The Curiosity HPC board offers the choice of 5V or 3.3V power for the target microcontroller, via a selection jumper. The 3.3V power supply is implemented with an MCP1703 LDO regulator, able to provide up to 250mA. I’d say this is enough for most click™ boards.
You will have to use some external power supply for click™ boards that perform motor control – regardless of the type of motor. All other click™ boards should work fine with just the USB power.
One more thing, if you look closely on the schematic of the PKOB, you’ll notice that it uses a PIC 24FJ256GB106, same as in PICkit 3. That microcontroller works on 3.3V only; thus you will find a pair of SN74LVC1T45DCKR between the PKOB and the target microcontroller. With this approach, it will work fine, regardless of the voltage selection of the target microcontroller.
Code examples for each of the supported microcontrollers are provided on the Curiosity HPC page. Some examples are common to all supported microcontrollers: Hello World (turns one LED on), Blink, Rotate, Analog to Digital Conversion, Variable Speed Rotate, Timers, Interrupts and Sleep/Wakeup.
Some code examples are specific to certain microcontroller families:
- High Endurance Flash – on PIC16F151X
- EEPROM – on PIC16F178X, PIC16F193X, PIC18FXXK20, PIC16F188XX, PIC18FXXK40 microcontrollers
- Pulse Width Modulation – on PIC16F188XX, PIC18FXXK40
I took the time and run all the code examples on a PIC16F18875. I think that one can easily run a microcontroller lab using only the provided code examples, without anything else. And there are the mikroBUS sockets waiting for more complex applications…
Besides this, many of the Xpress board code examples will work with the Curiosity HPC too. All you need is a little reconfiguration in MCC to match the new pin settings. There is also some code in MPLAB Xpress examples area, so it’s also a good place to start.
Curiosity HPC vs. other development boards
OK, let’s see how the Curiosity HPC compares against some older development boards.
Curiosity HPC vs. Xpress board
The Xpress board doesn’t offer the possibility to change the microcontroller. It comes with a PIC16F18855, while the Curiosity HPC comes with a PIC16F18875, but you can remove it and replace it with whatever you choose (including the 28-pin 16F18855).
The main difference is in the programming mode. The Xpress board features a simpler programmer that emulates a USB drive, and it provides USB-UART functionality too. Very, very good for absolute beginners.The Curiosity HPC has the PKOB, which is closely related to the PICkit 3 programmer. Beginners might find it intimidating, but it’s easy to work with it. Still, there’s no USB-UART functionality. Debugging must be performed via MPLAB IDE (or MPLAB Xpress IDE), or you will need a USB-UART click board.
The Curiosity HPC has the PKOB, which is closely related to the PICkit 3 programmer. Beginners might find it intimidating, but it’s easy to work with it. Still, there’s no USB-UART functionality. Debugging must be performed via MPLAB IDE (or MPLAB Xpress IDE), or you will need a USB-UART click board.
On the other hand, the Curiosity HPC comes with two mikroBUS sockets so that you can develop projects with increased complexity. The range of click™ boards is expanding almost daily, so you have plenty options.
Curiosity HPC vs the older Curiosity
The mTouch™ button is gone. The footprint for the RN4020 Bluetooth module is gone too. Instead, we find two mikroBUS sockets.
The connector for external power is also gone, and the Curiosity HPC can be powered only from the USB port.
Both boards use PKOB, nothing special here.
Curiosity HPC vs Clicker2 for PIC18FJ
The only thing in common is the presence of the two mikroBUS sockets. Otherwise, a full comparison is quite difficult to make.
The Clicker2 can be powered from a battery, and it comes preprogrammed with MikroElektronika bootloader. It has a different form factor, that of Mikromedia boards, and there are compatible Mikromedia shields too. My personal choice goes towards the mikroBUS Shield for mikromedia, which adds two more mikroBUS sockets.
PIC16F18XXX microcontrollers are not supported in MikroC for PIC at the present moment, but a compiler update is expected for the end of 2016. The latest update of mikroC comes with support for the PIC16F188XX range of microcontrollers. However, you have to configure the microcontroller without the benefits of Microchip’s Code Configurator. That is, you have to do everything at the register level.
I have to admit that I’ve become very fond of MCC, it’s a great tool and I don’t like to make a step back and to write directly to the special registers.
On the other hand, the PIC18F87J50 microcontroller onboard the Clicker2 for PIC18FJ is not supported by the Microchip Code Configurator. I think I will wait for a future update and hope that support for the PIC18F87J50 will be added to MCC.
A few final thoughts
This board is a step forward from the Xpress development board and a nice complement to the older Curiosity board.
USB power only. In my opinion, the Curiosity HPC is better suited for a microcontroller lab, rather than being used in standalone projects. On the other hand, I could use an external battery (that type used for charging smartphones when you run out of juice).
And speaking of microcontroller labs, the provided code examples are great for beginners in PIC microcontrolers. Digital I/O pins, ADC, Timers, PWM, power management, EPROM, all those are covered.
PKOB might sound intimidating, but it’s easy to use. However, I miss the USB-UART function in the Xpress board. Being able to send data to PC would make for some interesting projects. I know, there’s the USB-UART click from MikroElektronika, but I have to sacrifice a mikroBUS socket for that.
Solder blobs! I think this is the first time when I see those on a Microchip development board. The Curiosity HPC is highly configurable, and I hope to see some interesting projects made with this board.
My own code projects and contributions? Coming soon!