pcDuino runs ARM A10 with Arduino ports

I picked up a pcDuino Lite (the lite version has 512MB instead of 1GB) to see if it would run OpenCPN as I’m working on a project to collect NMEA GPS and other data for viewing position on electronic charts in marine environment. Sparkfun sells both types.

The pcDuino is similar to a Raspberry Pi but faster and has outputs that are (mostly) signal-comparable to an Arduino so it could run many Arduino shields and software. All this on one board (except that it does need a shield adapter). You get two USB ports, an Ethernet port and an HDMI port along with various header pins and shield-almost-ready connectors. The Lite version has enough horsepower for basic Arduino projects, but for OpenCPN, I had to add a swap file to get it working properly.

My main focus has been on getting OpenCPN to work on an ARM processor. So far the latest code has mostly worked, but the vector charts are causing crashes. Supposedly this is due to unaligned memory access that is not handled well on these cheaper processors (compared to Intel or AMD processors). Since OpenCPN is compiled C++ code and has a long history, some of the code doesn’t play well on an ARM platform, whether it be pcDuino or Raspberry Pi. But that’s for another article.

The cool thing that I really want to try is accessing the two additional serial ports on the header pins. This means that I could in theory run everything I need off a single board (no Arduino, no multi-UART board needed).

The other nice thing is that it will fit into these multi-cases that also hold the Arduino Mega 2560. In practice, I will likely create my own case to also hold the MAX232 interface driver chips and DC-to-DC converter, along with a mini-HDMI display, check out Seeed Studio for that.

I haven’t checked out the Arduino Yun yet, but it doesn’t have the level of functionality that I need.

Here is a comparison of the pcDuino and Raspberry Pi

Raspberry PI pcDuino
Requires additional board like Alamode All on one board (except for shield adapter)
Slower broadcom processor, but overclocking helps Faster A10 procesor; seems to run about 2-3 times faster than Raspberry Pi (not overclocked)
A modified Debian linux OS A nicely styled lubuntu linux OS
Has OpenGL, but had wxWidgets 3.0 build problems because of certain compatiblity issues OpenGL requires extra steps, but leaving it out made OpenCPN easier to compile
Requires install of decent browser Comes with Chromium which is quite usable
Good memory footprint Seems to require more memory for lubuntu, so swap file/partition of about 512MB is essential for compiling/running more sophisticated applications besides Arduino code
Most applications can get by with 4GB SD card, although I have run out of space with an 8GB when doing lots of compiling; uses regular-sized SDHC card which can take adapters for micro cards Recommend 8GB, for serious on-board C++ development, get 16GB; requires microSDHC
Requires about a 600 mA supply Requires 2A+ 5V supply, although I can get it to run fine with a 1A supply

One thought on “pcDuino runs ARM A10 with Arduino ports

  1. I have tried to get an answer to this question on pcDuino, shapeoko, and sythetos forums. I’m not bright when it comes to firmware solutions, I hadn’t worked with any since the late 70s, the Arduino concept is new to me now. I have an Arduino, run by an RPi and connected with a GRBLShield. I coincidentally came up with a couple of pcDuinov3 units for another project. Can the pcDuino, with voltage adaptor board, have the GRBLShield placed directly on it, and run the GRBL in software on the pcDuino rather than having to flash it to an Arduino? I’m fluent in C, C++ and most scripting languages, so software changes don’t worry me much, hardware compatibility and / or requirements for running in firmware do. Is it possible? Thanks for the patience with my lack of knowledge.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>