Recently I have participated in CIKU contest held by Cytron Technologies. The requirement to participate in this contest is to share a photo/video on your project using the PIC development board, SK40C. Get more than 50 likes and win yourself a CIKU. So what is a CIKU? CIKU is a PIC18F4550 based Arduino Form Controller, a product by Cytron Technologies. For more info about CIKU, check out its official product page. I would also like to mention that CIKU is a product of Malaysia. Oh, by the way, CIKU is named after a tropical fruit, Sapodilla, which is called ciku in Malay. In this article, I am going to give an overview on CIKU together with its feature before hands on with it.
After my entry was eligible for the contest, I was excited, hoping to get my CIKU as soon as possible. I received the CIKU on the next day my entry was qualified. In the parcel received, there is a packaging box containing CIKU and also a small note from Cytron.
First look on CIKU, it has the same shape and dimension as Arduino Uno. All the pin headers are designed exactly the same as standard Arduino Uno. This feature allows the user to use most of the existing Arduino shield with CIKU. The microcontroller used for CIKU is PIC18F4550 from Microchip. The chip is provided together with the CIKU. Besides that, there is also a pin labelling on top of the PIC18F4550 microcontroller.
The board comes with a mini USB connection, a power jack and PICkit header. On the top layer of PCB, each pin is labelled in a similar manner as Arduino Uno. On the other side, each pin is labelled to its respective pin as specified in datasheet.
Some of the features of CIKU:
- Pre-programmed PIC18F4550 with USB bootloader
- On board 5V 800mA (Max 1A) voltage regulator
- On board 3.3V 500mA (Max 500mA) voltage regulator
- 20 digital I/O pins (of which 6 provide analog input, 2 provide PWM output)
- Standard Arduino Uno R3 Header, compatibility with standard Arduino shield
- Program with MPLAB X IDE and XC8 compiler
- Has PICkit standard ICSP 6 way pads
A comparison between CIKU and Arduino Uno on several aspects are summarized as the table below.
Now let us focus more into details on the microcontroller used in CIKU. As mentioned previously, it uses Microchip PIC18F4550 microcontroller. This microcontroller support full speed USB 2.0 (12Mbit/s) interface, and since CIKU pre-programmed with Microchip USB HID Bootloader, no external programmer is required. Unlike Arduino, CIKU does not require any FTDI USB-to-serial driver chip (in older version of Arduino) or Atmega16U2 as USB-to-serial converter (in current version of Arduino).
For CIKU, it has 14 digital I/O pins which allows you to use digitalRead() and digitalWrite() functions. Two of the 14 digital I/O (pin 5&6) can be used for PWM output (analogWrite() function). Another six pins (A0-A5) allow you to use AnalogIn() function. However, it is also possible to use the analog input pin as standard digital I/O.
Besides that, PIC18F4550 has four Timer modules which consists of one 8 bit Timer and three 16 bit Timer. As compared to Atmega328P used in Arduino Uno, Atmega328P only has two 8 bit Timer and one 16 bit Timer. This could be one of the advantage of using CIKU for project that requires more Timer for precise timing control.
Another feature that I would like to highlight for the microcontroller used in CIKU is that it has three external interrupt pins. More interrupt pins are useful to handle time critical input such as rotary encoder or monitoring other I/O modules. However, if you are using I2C bus (SDA and SCL), you are going to lose two external interrupt pins as they are sharing the same pin with I2C bus. This can’t be helped as the architecture is designed by Microchip to share the functions on the same pin.
While looking through the datasheet of PIC18F4550, I noticed that it has up to 13 channel, 10 bit Analog-to-Digital Converter (A/D). Six of them are wired as Analog In (A0-A5), which makes me wonder if the user could use the other seven channels A/D available. But probably user would have to configure themselves as the provided library might not include this.
So far I have cover on the hardware and microcontroller of CIKU, how about programming the CIKU? In order to use CIKU, you need to install MPLAB X IDE and XC8 compiler. For those of you who are not familiar with MPLAB X IDE, it is a software program created by Microchip to develop applications on Microchip microcontroller. Besides that, you also need to download CIKU library developed by Cytron to fully utilize its function. The library allows you to use functions such as pinMode, digitalWrite, digitalRead and etc. In my opinion, I think these functions make it easier for new starters to get familiarize with Microchip microcontroller.
I guess I have covered most of the basics of CIKU and probably will take some free time to play around with CIKU.