XinCheJian has several pcDuino and LinkSprite sensor packs. Using the pcDuino, in the TheSpaceProjectS. shows that the pcDuino really delivers and gives great first impressions:
- First power on – boots up to a preloaded Lubuntu with XBMC
- similar GPIO pins to an Arduino.
- GPIO pins can be controlled from many languages
- access Linux commands from your code
- Arduino “emulation” runs directly on the Linux hardware!
- internet shows good information and code samples
- looks like reasonable maturity with I2C and SPI support
- usage – it all just works nicely!
Arduino “emulation” – ie running Arduino GUI with Arduino code on the pcDuino hardware – just works.
This is a really big feature that does not seem to have had much attention! There are a few differences to “standard” Arduino and some BIG extra features:-
- compiled program is copied to /home/ubuntu/Arduino/YourCodeName.cpp
- …and you can then run the program outside of Ard gui, even have it run on startup.
- In an Arduino, you might not notice if your code crashes. In a pcDuino crashes can be more obvious! If you do something bad in your code (like going beyond array bounds) – the terminal running your Arduino code might crash!
- your code does NOT run all the time power is applied like on Arduino, but only when you run it.
- memory – code size limits – seem to have vanished! A simple sketch “Binary sketch size: 17,517 byes (of a 104,857,600 byte maximum) – 0% used”. Then adding MANY k of text, yet compiled code size only increased by about 1k!
- reset switch is just like Arduino – it resets the entire board, but with pcDuino – this means instantly rebooting your Linux environment!
- write data to SD card – no more loosing Arduino IO pins to an SD card shield (ditto for networking…)
- can run shell commands etc (after all Arduino code is C/C++), like curl, wget, echo, system, etc
Other notes:
- Found it necessary to to do a full system update via the F8 boot menu and that not all Arduino libraries are yet available/functional – eg SoftwareSerial.
- The physical header layout seems odd with a non-Arduino layout and most headers on one side. Maybe some background on their design decisions on those layout choices would explain this.
- Speed – guess it runs way faster than Arduino – but have not checked yet, although compilation process is quite slow.
Functionality tested so far from Arduino code:
- switches on GPIO to trigger running different Linux applications
- open web pages
- send emails
- log to file
- flashing LEDs
- several analogue sensors
The LinkSprite translation board (T board) shield provides a standard Arduino shield pin layout so you can use your existing Arduino 5v shields and code, run faster and access the added Linux capability!
That is actually very impressive! What other capability is there to discover? Guess need to explore this device some more – for example interrupts, sleep, timers.
Co-incidentally there is a lot of press about the new Arduino Yun, which is also an Arduino + Linux hardware. The Yun has both Arduino & Linux hardware (plus WiFi) and has a serial bridge and library that allows communication between the Arduino and Linux hardware. The pcDuino does not have the additional Arduino processor, but does provide almost the same IO pins with control via the same Arduino programming IDE.
So the Yun is an Arduino (Leonardo) and has direct control of all IO, plus has some control of the Linux WiFi and other functions, and the pcDuino has direct control of all IO and Linux functions, plus if programming via Arduino IDE provides significantly extended Arduino capability.
I don’t have a Yun to try so I can’t answer this posts title question, but I can definitely say the pcDuino really delivers and shows promise of improving further!
Summary: pcDuino is a highly functional mini-Linux system that also adds several BIG features to Arduino capability, plus everything works right out of the box!