I am going to withhold this post from my SciFI Your Pi project. I have to admit, this ChipKit stuff is really poorly supported. The two versions I have read up on are the uno32 and the Pi version. I have been using the Pi version for a week now. Its been problem after problem!
I had an arduino pro mini coded and completely working. It took about 2 weeks to convert my code over the to the ChipKit Pi. Honestly, I am still not sure it is going to work.
-The Servo Library is broken when using I2c
-The I2c only receives 1 byte at a time, or rather the callback function is called for each byte received in a block.
-There are7 missing I/O pins, but they are present on the breakout board. After some research I realized they are just duds.
-Some of the pins are there but require jumpers to be set.
-It connects to the RPi and eats up half the pins on the pi, and yet its not using any of them except power. However they are not all exposed on the top of the unit either.
-The serial pins of the Pi are completely covered and required me to solder wires on the break out to be able to use the serial pins.
-A few GPIO pins are just simply covered, and not used.
-The MPIDE doesn't detect the Pi's serial port and requires a symbolic link /dev/ttyS0 to be created
-The MPIDE recompiles ALL the code regardless of what changed, and this includes all the internal libraries. (lots of fun on the Pi).
-Honestly, other than getting power and form factor, I see no reason this thing should connect up to the Pi, it should just be stand alone.
All you are getting is the serial ports are connected up for you, wow.
The last point, there is little support. Many of the issues have been tossed around online since 2012 and in the Uno32 case, 2011. Its almost like the support is the open source community but there only seem to be a few people working on it.
Currently it can only be programmed with an IDE, no command line. I love the command line.
Ok I am done complaining, let me talk about some good stuff.
Its FAST, I mean really fast. relative to the arduino.
It has a task scheduler which is a really nice way to think of interrupts. You don't have this issue of interfering with timers etc like you do in the Arduino world.
The ISRs run much faster so have more room to code instead of optimizing.
Its 32 bit, this is good and bad. Be careful if you expect the registers to roll over during calculations.
It does attach nicely to the pi, and the pi can still be inside a case. It makes a great real time component to the Pi.
The overhead in the calls and timer functions is much smaller. Making timing more accurate.
It has 2 uarts (serial ports).
The arduino struggles with working servos and reading PWM. You have to get down to the AVR level coding to really get it smooth if you have lots of servos. The chipkit pi handles servos and reading PWM like a champ with no real efficiency in the coding.
Today will be a real test if it all works together. I plan to fly the my QuadCopter with the chipkit Pi relaying my controls to the flight controller via the SoftwarePWMServo library.
I would be 2 week ahead of my project instead of 2 weeks behind but I wanted to use this to give it some spot light. I really think it is usable and once the issues are spelled out its not so bad. If I knew about the issues up front it may of saved some time. I do like it but I think marketing it towards arduino users for anything complex is misleading. It does have a small bridge between the two but it diverges quickly.
Honestly I may consider just switching to pic 32 and ditching arduino in the long run. However there is now a C compiler for the Parallax propeller. I've had a start kit for 3 years and I refused to learn spin or assembler for that processor. Now that there is C it may be the king of real time. Now they need a Propeller Pi! A multi-core real time device with lots of I/O attached to a multi-core device with a OS and lots of IO. Now that's power!
PS I did a speed compare between Arduino and the ChipKit Pi in my project block.
Top Comments