As the field of embedded electronics gets more advanced, hobbyists and professionals are both in need of smaller and more powerful computers. We've been looking for awhile and now we've found one that we really like, not only because it's small and fast but because it's also Arduino shield compatible! The pcDuino is a high performance, cost effective mini PC platform that runs full-featured operating systems such as Ubuntu and Android ICS.
It's easy to hook up, just connect 5V power and a keyboard and mouse. The pcDuino outputs video to any HDMI enabled TV or monitor via the built in HDMI interface. It was specifically designed to make it easy for the open source community to develop computationally demanding projects using the vast, existing catalog of Arduino Shields.
An API has been developed for the pcDuino that allows the user to access all of the functions that you would expect using simple Arduino-style language.
Note: The pcDuino has trouble connecting to certain DVI monitors. There is a fix available on the pcDuino wiki page. Check the documents below!
If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.
Skill Level: Competent - The toolchain for programming is a bit more complex and will examples may not be explicitly provided for you. You will be required to have a fundamental knowledge of programming and be required to provide your own code. You may need to modify existing libraries or code to work with your specific hardware. Sensor and hardware interfaces will be SPI or I2C.
See all skill levels
If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.
Skill Level: Noob - You don't need to reference a datasheet, but you will need to know basic power requirements.
See all skill levels
No reviews yet.
Looking for answers to technical questions?
We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.
Log in or register to post comments.
Price and features look good. Sparkfun obviously plans on selling a few with 500+ in stock.
Is this open source? Can I build my own? Better yet, can I even source the parts to build my own --- particularly the processor? How long will this be available in this form factor?
If all you want is a toy, then you probably don't care about these things. But anyone looking to build a product around this will need answers before even considering it.
This is a problem with almost everything sourced from China --- there is no stability. It's here today, gone tomorrow.
Great comments, I looked at it and found a small amount of info at: http://www.allwinnertech.com/en/product/A10.html
I've never heard of the company and I didn't see a way to get a data sheet yet, everything sounds good on their website thus far. I wouldn't mind one to play around with but until you can get a datasheet (or find out that you can't like the broadcom on the RPi without a product line) I wouldn't bother with considering it for a product.
Quite a lot of info about it here which I cannot vouch for the validity of: http://rhombus-tech.net/allwinner_a10/
Actually I found a datasheet too which, judging by the confidential watermark all over it I probably shouldn't have been able to find but it's out there already: http://linux-sunxi.org/images/3/33/A10_Datasheet.pdf
The Allwinner A10 (and Allwinner processors in general) is very, very commonly used in low-cost Andriod devices from China. They're basically a Chinese bargain-basement SoC provider, but they make quality parts for the price-point.
Ever seen a KIRF iDevice? Odds are about 90% that it has an A10 in it.
Yes, I understand all that. But can I buy the processor is smallish quantities? If not, then what's the point of this "development board"? Am I developing a product that only works with this board?
If I build a product around this "development board", I'm totally at the mercy of some nameless, faceless company in China. When the board design changes 6 months from now, I'll have no choice but to stop production and re-design my product to match. Not good.
But of course, if all you're doing is playing around with it; none of this really matters.
The only reason you'd need to source the actual processor in small quantities is for prototyping... But if you're designing a Cortex-A8 board from scratch, just for prototyping purposes, you're doing it wrong.
Think about it. Rolling a custom, six-layer board with impedance-matched traces (for the DDR memory) and laser-drilled microvias for fanning out the BGA is going to be way more expensive than this board is. Why reinvent the wheel? Develop around this board, and when you get your product working, roll out the custom board for the production run.
Which comes first the chicken or the egg?
My first and primary concern is the availability of parts. If I can't source the parts, there may not be a production run. So why develop around this board?
Again, if you're just looking for a one off toy (which perhaps a lot of people are), then none of this really matters. But otherwise, it could be a show stopper.
Logic dictates that the egg came first.
funkathustra is right, they are used in thousands of products from china.
I'm not sure why you don't think you can source these processors. They're quite common (I see them in lots of designs). Contact your favorite Chinese IC broker and I'm sure he or she can get you it.
A google search turned this up immediately: http://www.aliexpress.com/store/product/the-cheapest-shipping-WHOLESALE-ALLWINNER-A10-IC-BGA-HD-video-processing-chip/700044_731173877.html
You may also be interested in the TQFP version -- the A13 (though it lacks some functionality the BGA version has).
"I’m not sure why you don’t think you can source these processors. They’re quite common (I see them in lots of designs)."
Yes, they're fairly common in products built in China; like the development board being sold here. No major supplier outside of China has any stock. The datasheet and other info seems to be a closely guarded secret.
The source you referenced just proves my point. It looks like a single individual in China selling a few units. Over the last 6 months, they list 3 orders for grand total of 7 units. Not what I would call a reliable production source.
I mean since this board exists you clearly must be able to get it in relatively small quantities (I imagine it's by the thousand). By like any ARM SoC almost 100% you'd have to sign an NDA to actually source the raw SoC, at least if you actually want a datasheet.
Since this board exists, someone in China must clearly be able to source small quantities of the raw SOC --- for now. But for everyone else, it's not quite so clear.
Thats a hard question to answer. Is it open.. Yes and no. The GPU has a open source driver being developed at http://limadriver.org/ You can source the chip from All winner http://www.allwinnertech.com/en/product/A10.html as you have pointed out. It is a chip found a lot of portable Android tablets. I have a few of them. I think it is a pretty snappy chip for its cost. There are a few issues that I have run into with the tablets. Most are issues with Read Write times with flash. These to me are all issues that can be fixed in the operating system with tweaking of the filesystem. All in all this is a pretty exciting product. I am going to purchase some for my small projects.
What is it with the trend of going for micro USB for power? What happened to the good old 2.1mm jacks? I have loads of 5v warts rated 1A and above. How about a jack to micro USB converter :oD
That'd be a handy cable. In the meantime 2.1mm female barrel to USB-A plus USB-A to Micro-B should do the trick.
Normal jacks are fine when you can take a variable voltage, or when the wall wart (you do want a wall wart and not, say, a car adapter instead, right?) is supplied with the device. Otherwise, take 5V, slap on some sort of USB B port, and let the engineers do their job.
All I was thinking is that I have a load of 5V wall warts from old devices that I no longer use, many of which have a jack connection. Micro usb connectors are quite tricky to solder to given the pin pitch. Having a quality molded adapter is much more preferable to some hack I could put together, with less risk of having shorts or breaks. Not to mention it is much easier getting a wall wart with 1 amp+ (as most of mine are) compared to most micro usbs that I get with phones rating a paltry 500mA.
It is just a thought what with the rPi going micro usb as well. Come to think of it, I have a few older mini-usb warts - time to check their power output and ebay some adapters.
BTW - I am typing this on my pcDuino :o) It is great, more than fast enough to do a little web browsing!
A bit late, but you can get about 2A out of one of these: http://www.priceangels.com/F=16169&reurl='Quality-10W-USB-Powered-Adapter-Charger-for-iPad-iPad-2-100-240V-AC--s87545.html'
To those who designed this board: To get a 1GHZ processor, 1GB of ram, and a large collection of I/Os in this small a package is really quite an achievement.
I mean, realistically, is it? Cell phones all have better processors and often more RAM, usually in a smaller package. This is certainly a nice design, and a clearly reflects good skills on the part of the designer, but I'm not sure if I'd call it "quite an achievement" so much as good application of their skills.
You make a good point. IMHO, however, companies like Samsung and Apple for example who make those kinds of phones have unlimited funds to work with, have the equipment to work with exceedingly small BGA packages, and, most importantly, employ on the order of hundreds of designers specifically suited to this kind of high-frequency work. I would be quite surprised if there were 10 designers assigned to this. Not to mention the fact that the technology available to large companies is far, far more advanced than a small manufacturer would be able to get. Also: Most high-tech companies work with custom ICs, tailor made to the size and package required, often multi-function SoCs that house GPU, CPU and other peripherals in one small package.
If you want a small embedded Linux board running a Cortex A8 designed by a small team of engineers then the 17 x 58 mm Gumstix Overo boards are hard to beat. There is also a dual-core A9 version (requires a heatsink) too. Sure, they cost more than an Allwinner-powered pcDuino but if you want a small, well-supported and well-documented, board to build your design around these are hard to beat. There is also a Gumstix-like board here.
I was always looking for a way to pay almost three times what this board costs - perfect!
You people may want to check out the BeagleBone Black. Opensource. All hardware seems to be source-able in small quantities.
Wowza! Over 500 units in less than a week! That's some serious selling right there!
Any idea when the next batch will be available?
Hey, Sparkfun. You know what the pcDuino needs to make it a runaway bestseller? A conversion kit or set of cables to enable it to interface with a Motorola Atrix lapdock, just like the Raspberry Pi can do. Yeah, so for under 100 bucks extra, you can get a single-unit HDMI display, with keyboard and trackpad to hook up to the pcDuino. Is this doable, or what?
Amen to this -- but it begs a different question. If you've got the Lapdock, you'll probably know that it is somewhat limited in the resolution (presents 1366x768 as its only resolution); if the source device doesn't support it, no luck. The RPi specifically supports something like 17 HDMI resolutions -- including 1366x768 -- but this one specifically only mentions HDMI 720p or 1080p 60Hz. If that is true, it probably won't work with the Lapdock.
So can someone at Sparkfun confirm which actual resolutions are supported, if any, beyond the mentioned 720p/1080p?
Aside from that, this is a killer idea -- and would be the deal maker/breaker in my decision to get one of these.
The atrix lapdock could support 720p resolution input although its native resolution is 1366x768. You could use the pcDuino with the lapdock without problem.
A great idea - but unfortunately, the Atrix Lapdock can't support actual 720p resolution (I know, because I've tried with multiple devices that can only output 720p). If you connect it to a PC and check, it only presents the EDID profile for 1366x768... So unless the pcDuino is actually configured (kernel compiled) to support that resolution, the laptop would be a no-go. That is really why this is an important question, because it is not mentioned at all in the manual.
It actually works, I just tried. Used the same cables I had to use with the Raspberry Pi and it worked. This was actually my first successful boot, tried first with a hdmi to dvi adapter to my monitor but that didn't work as my monitor didn't like it at all. Even successfully powered it by the standard USB port, didn't have anything connect to the micro USB power port. Had left my EDiMAX WiFi dongle in the LapDock and it even recognized it and I was able to get online. Over all in the five minutes of use, it is better then the Raspberry Pi as a cheap laptop. See pictures of it running here pic1 and pic2
Granted since the display output is 720p I get some black bars around the image but I am sure with a little tweaking that can be corrected, but it works. Off to install the hdmi to dvi fix so I can use it on my larger monitor.
Wow -- Glad I came back here! This pretty much sells it for me. Thank you for taking the time to test & post!!
Could be wrong, but I'm pretty sure resolution is something handled by software, so it's pretty safe to assume any GNU/Linux you run on this would support it. Android most likely would as well.
It's aslo dependent on the GPU, but since it's a Mali-400 it should have no problems.
Hey all, just uploaded a pcDuino Fritzing part at the fritizing user parts page. Direct link.
Hey all, if you're interested, I've started a Node.js module for the pcDuino at: https://github.com/jheising/node.pcduino
Right now it supports both digital and analog read/write to the GPIO pins. Enjoy!
If anyone is interested, I have been testing the pcDuino I2C interface via Python. You can get more information on my blog at pcDuino - I2C Test.
The User Guide above is at revision 0.2, while the current user guide is at 0.4 on the pcDuino site. According to the change history it has been updated for the HDMI fix and chapter 5 has been rewritten for installing software to the NAND flash. You can get the latest updated manual from the pcDuino Downloads page. Here are the direct download links for the User Guide Rev. 0.4 and OS Installation.
OMG people with all the whining about Arduino form factor. Nowhere does it say it matches the form factor, in fact there is a note in the features text (you did read that right?) that says you will need an adpater to fit the form factor. This is DIY, quit whining, roll up your sleeves and get to work. Otherwise go back to your Lego Mindstorms kit :P.
That being said, what IS awesome about the arduino compatibility is that the pcDuino includes a porting layer which allows you to easily port existing arduino code. So you can take that really cool CAN code you wrote for the Ardunio and port it fairly easily over to the pcDuino.
Finally, and most importantly, the pcDuino is designed to operate a complete operating system. Arduino IDE runs ON an operating system. That's a profound difference and if you don't understand that there are plenty of CS 101 classes that you can take so you can understand the difference between an OS and an application.
Got my doubts on this claim of “all of the functions that you would expect using simple Arduino-style language “. I’ve been looking at the pcduino website, in particular the download page. It has a link to the source code for the “arduino compatible” features. Has anyone else looked at this github source code? From what I could glean from the github posting, there isn’t support for anything other than:
void delay(unsigned long ms); void delayMicroseconds(unsigned int us); void pinMode(int pin, unsigned int mode); void digitalWrite(int pin, int value); int digitalRead(int pin); int analogRead(int pin); void analogWrite(int pin, int value);
Looks pretty weak grounds for claiming all the arduino functions I would expect. Maybe I’m missing something?
I did see some code which appeared to work like an arduino SPI library. There looked to be a demo program related to I2C but it wasn’t a wire library.
Doesn’t appear to be any “arduino” support for the Uart pins as of yet. You can substitute printf (which will go to the linux terminal where you start execution) but that’s about it.
Plus, within the arduino “core” all the digital I/O is implemented as “system” commands. So, for every digital I/O it’s calling a shell command to execute it. Can’t imagine that to be very fast. A2d’s look even more strange and seem to be handled as file I/O. I2c appears to use the same file I/O approach.
Do the units that ship have more arduino capability? I don’t yet have one to experiment with.
Nevertheless, an interesting platform and I purchased 2. I wouldn’t want to do any critical real-time control with it but it could have some useful applications with all the features linux provides.
Also appears that the GPU portion has enough proprietary features that I doubt the open source community will ever see any official documentation on it, including any linux related source code. At least that’s been my experience in the past with these video playback capable SOC’s that are used in media players – which this closely resembles. Hope I’m wrong. Even so, that does not detract from it being an interesting/useful product.
Thanks for the great comments. The final goal is to provide "all of the functions using simple Arduino style language", unfortunately, it is still work in progress at this moment. We will have a major release by the end of this week that will touch many of the issues that you kindly pointed out. We modified the digital I/O implementation from "shell command" to API calling from driver. The result is big speed improvement. We have most of arduino functions implemented for ADC, GPIO, UART and SPI ports. Stay tuned!
The GPU is based on Mali 400 core. There are great efforts on the open source development among the community. We plan to release some more details on GPU portion "unofficially" in future, hopefully, it is not too late for your applications.
Thanks for the useful response. Good to hear that you are working to improve the concerns that I noted and I'll be looking forward to the updates.
If you have the time, why is it the GPU's on these SOC devices always seem to be shrouded in such secrecy? I've run into this before on similar SOC's from other manufacturers.
I don't think they were going for an arduino replacement. They wrote C wrappers for certain functions to make it easier for those who are used to arduino style code.
Really surprised at the time comments. Arduino RTOS? Not that I know of.
GPU should be supported under android. There is an open source driver in development for linux.
Is there audio out? Or only video out, but no sound?
There is no dedicated audio out port. However, audio is output via HDMI interface.
Two Webcams?? Could anyone please who has this could try to hook 2 webcams up to this? I am able to run "motion" or "camserv" on the raspberry, but only with one camera and with a 5s lag (not suitable for location of moving objects - what I want with it). As soon as a second camera is attached, pretty much everything gets shaky. So can this support 2 webcams with USB bandwidth and processor/mem? (proc/mem, probably).
Thanks in advance!
This is a really exciting combo - can't wait for Sparkfun's pcDuino Pro (edge connector, please)
How does it compare with the Raspberry Pi ??
I think it's wrong to call it 'duino unless it can be programmed using the Arduino IDE. In this case it isn't even "Arduino shield compatible". If I read the comments correctly it might be possible use the Arduino IDE to program it someday. Likewise the board will be Arduino shield compatible someday in the future when an adapter board is released.
This sounds like a bunch of marketing gobbledegook hoping to confuse people. Come on guys, Sparkfun is better than that.
Check out http://www.pcduino.com/?p=105 where they show an example of hooking up an arduino shield...effectively making their own adapter. A bit of a rats nest, but it works until somebody cobbled together a nice plug-n-play PCB. Also, the pre-flashed OS comes with a number of ready to run samples using the Arduino compatibility layer and the arduino GPIO and other pins. The tutorials on pcDuino.com will run you through accessing them.
There is an adaptor to allow you to attach shields, and a library provided to let you program using a similar set of commands. Which is more than the RaspPi has going for it.
Remember there's nothing actually requiring you to use the Arduino IDE to program Ardunios... All that IDE does is provide a text editor and the standard WinAVR compiler + AVRDude for programming, and automatically link the Aruino library for you.
But actually, if you read Arudino's literature, they flat out say it's wrong to call ANYTHING 'duino because it is really bad Italian :p No one seems to pay much attention to that one.
Can this run/play (Adobe) Flash files then? or does this suffer from same problem as DroidX and Pi...etc.. no ARM based Flash Player plug-in that 'really' works? (Please no bashing Flash... keep it to facts about getting it to run/work)
I think some have gotten YouTube to work (hardly sums up Flash based apps/movies though)..but was slow?.. still not even sure if that worked.. just random comments on it.
Id would be to have a web cam connected to this 'board'.. run/play a flash file (locally?) that in turns plays/shows whatever the flash animation/movie does.. (along with turn on/use the Webcam...and put its flash animation over the web cam feed)
on a PC this is a no brainer.... but un-clear about getting it to work of this hardware/board??
Anybody got some ideas/suggestions?
The board supports Flash in both Ubuntu and Android ICS.
(this is all new to me/out of my comfort zone for now still....but,..)
Can you (anyone) explain how this works and for the PI or ODroidX (which also supports Ubuntu and Android) it does not?
(again noob speaking here so this may be incorrect).. but I thought those other boards, while supporting Android/Ubuntu, needed an ARM based Flash Player plug-in? Is that not the case here for the pcDuino? (Im missing something here? a bridge why ones works and not the other?)
to be clear.. I am NOT talking about being able to load a a web browser and use YouTube..
Id like to be able to load/display/run a true .swf file (embedded into an HTML doc or not).. and have this also 'use/communicate' with a web cam hat is also hooked up to the pcDuino..
(the flash code/document will handle all camera control..etc... if it works like a PC does)
unfortunately.. most of my experience is with Windows and PC.. not hardware like this and Ubuntu/Android (so Im not fully aware of the limitations/restrictions I'll be facing?)
The user guide says that it can run Flash (pg6).
In the notes it says that USB keyboard is REQUIRED in order to boot. Is there any way around this? It would be great to just add VNC and be able to remote in rather than having to tie up a keyboard..
The keyboard is NOT required in the bootup process for pcDuino. You could install SSH or TigerVNC into pcDuino and remote control the board.
I read it as it is needs to boot with the HDMI output, it will still boot without keyboard, so should be possible to run vnc headless. At least that's how I understood it :)
I watched the video again and from what he says it sounds like If there's no keyboard plugged in when the device boots the HDMI port is disabled, but the device still boots and you should have access through the serial terminal or ssh ( Once you've setup a password of course ). Although for anyone who was thinking of taping one of these to the back of a TV and trying to use it as a media center, that would be very annoying.
You might consider a Teensy as a possible alternative to a physical keyboard.
There are Debian hacking efforts underway for the A10 here: http://forum.doozan.com/list.php?6 Perhaps it won't be too hard to get regular Debian running on it.
According to the data sheet, the board has onboard H264 encoder and decoder. Any idea what the API/interface to these are ?
The API will be released in a week. The decoder will come first. Stay tuned!
Please check it out from http://www.pcduino.com/?p=208.
Same complaint here that I have with the RaspPi.
It just needs one native SATA port, then I'd be happy.
The AllWinner A10 SoC actually has a SATA controller built into the chip, but very few board designers make use of it. ( http://en.wikipedia.org/wiki/Allwinner_A1X )
The Mele A1000 / A2000 is one such device that actually does break it out to a port. http://rhombus-tech.net/allwinner_a10/hacking_the_mele_a1000/
On page 6 of the schematic, you can see that they just didn't bother connecting anything to those pins on the SoC.
Since the SoC supports SATA ports, why not ask the developers of the board to include a SATA header on the next revision of the board. If it had a SATA port, I would buy a PILE of em!!
On the pcDuino.com forum, there is thread they started with next rev feature requests....I think somebody already mentioned SATA access, but you can check anyway and voice more interest...
A USB 3.0 port would be just about as fast.. and could probably provide enough power if you were using a small HDD or an SSD. SATA/eSATA on the otherhand have no provisions for powering a device. That's why I would imagine not including SATA.. that and the microcontroller probably isn't fast enough to even fully utilize it anyway
What is the speed on the network interface ? Everything just says "RJ45", but it doesn't state it it is a 10/100 or a 1Gig port
It uses the RTL8201 Ethernet chip, so the hardware is capable of 10/100 (but not gigabit).
This thing is basically a souped up Raspberry Pi. Sadly, there is a huge lack of technical details. No one knows if the GPU is more open than the RPi's. It apparently runs a "customized" version of Ubuntu Linux, but I can't find a source tree for that. Also, it requires 2 AMPS at 5VDC. That's a lot more than the RPi, but I bet it isn't plaguaed by their USB problems if you give it the appropriate amount of power.
Also, it the 3D portion of the graphics card seems to be closed and proprietary, but there appears to be a good reverse engineering effort going on. See http://en.wikipedia.org/wiki/Mali_%28GPU%29
It's actually running Lubuntu, so that gives you a place to start.
It does not require 2A of power (I'll get that changed)- I just booted one at my desk to check, and it peaked around 700mA during boot and then settled into about 500mA once it was up and running. Sample size one, YMMV, etc, but that's a fair sight better than 2A.
I've been running mine off a USB port on my computer since I got it, and no worries there.
Running Android it should require even less power than that, this processor is in numerous cell phones. Ubuntu just doesn't have very aggressive power settings because it's designed to run worst case on a laptop with ten's of Wh of power, not one with less than 2.
it's got 2 USB host ports, you need up to 1A just to power what's plugged into them.
the Mali is not very open, but there are binary blobs with wrapper code for it so that you can compile your own kernel (or maybe there will be soon? swear I read it on the CubbieBoard list).
1A if both USB ports are drawing maximum power, which probably won't be the case. If you use a powered HUB then the current will be drawn from the line rather than from the board itself. If you use any kind of power hungry perephrial, e.g. Harddrive, camera, then you should use a powered hub anyway.
I'm interested when we have a working node.js stack with compatibility with events from the pins.
I don't see why Node wouldn't run on here and allow access to pin interrupts either through sysfs or memory mapped IO. That being said take a look at the BeagleBone (or, the soon to be released and perhaps less expensive BeagleBone Black) - it comes out of the box running Node with an online IDE and the BoneScript library provides attachInterrupt and other Arduino API commands.
If anyone is interested, I've started a node.js module for the pcDuino at: https://github.com/jheising/node.pcduino
Well, synaptic installed nodejs without fussing. There's some C examples of pin I/O installed in the default user account on the pcDuino that are pretty basic; I can't imagine it would take more than a weekend to adapt this Raspberry Pi GPIO module to the pcDuino: https://github.com/EnotionZ/GpiO using the examples as a template. Mind you, I haven't verified that the example code works yet.
As soon as I get mine, I'll let you know. I was able to get a node stack running on my raspberry pi 256 (the Model A). I was able to compile Mongo as well (though it took a couple of hours). I can't imagine that the pcDuino is much different (1Ghz and 1Gb of memory means it's actually MORE capable than the Pi). If it supports the basic building tools (gcc,binutils,etc...) then you should be able to bootstrap anything onto it and if it doesn't then it's not a real Linux operating system and some kind of toy Linux.
What are Sparkfun's plans, now that the v1 boards are sold out? Will Sparkfun just restock the v1 boards, or replace it with the v2 board, or eventually stock both boards?
This is a great board with a rock solid Linux Distro, great Ubuntu repository to get whatever apps you want, has a nice inexpensive enclosure available for it, HD graphics and performance as good as any netbook. I use it as an arduino host computer/development system and as a gateway for my CS3 XBee networks. http://184.108.40.206//cs3prod.htm I have 5 of them running as gateways for 8 months now and they never miss a beat. I've tried Raspberry Pi, CubieTruck, Lenovo Q150 and even Intel Galileo and none of them come close. It doesn't run arduino sketches itself but it does run standard C++ and Python code which can control the arduino pins on the board. It does run the arduino IDE and provide download to USB attached arduino boards. 4GB version is out of fab and due soon I've heard.
What does it mean, in practice, that the PCduino supports Linux and Ubuntu? Does it require that you use a Linux flavor OS in the computer with which you program it? Do you need to know Linux features in order to program and use the board? Or is the embedded OS transparent?
There is a Rev 2 of this board now available that has the Wifi module onboard rather than as a USB dongle. It seems to be identical otherwise as it runs the same OS code. I would guess they just mapped the onboard Wifi so it appears to be USB connected but if anyone knows for sure please comment.
Does anyone know if SF is going to sell these, and if so, when? They are only a few dollars more than the Rev 1 version and appear to be available now on competitive websites.
So can this thing be programmed using LabVIEW? It does work with Linux and at least some ARM processors.
Hey guys, where is the V2, its been out for a while, is $5 more, has the proper Arduino headers pinout, wifi and all that jazz. It been being sold on other sites for a while, been waiting for it to come in here.. is it coming soon?
We are working on getting them in! Hopefully it won't be too much longer.
It would be nice to get the V2 in stock since it has WiFi built in!... pcDuino V2 $66
For next version please route all I2S signals to some header...
Sparkfun: please update or mark the "Changing the OS" page as deprecated. The archive that you link to for the image doesn't have the files that you claim will be in there, Livesuit doesn't compile on a current Ubuntu and the PCDuino home page has instructions that conflict with yours.
as I can from scratch pcduino reset??? some combination of keys???, I want to load the linux lineman 12.04!!! anyone can help me!!!
as I can from scratch pcduino reset??? some combination of keys???, I want to load the linux lineman 12.04!!! anyone can help me!!!
Any one getting this error for reading analog pin infos? /sys/class/leds/pwm0/max_brightness that the directory is empty.
can anyone help me with reading any analog pins off python?
using Linaro 12.07 (GNU/Linux 3.4.29+ armv71)
Yep- someone posted the same complaint on the programming tutorial a couple of days ago.
I'm working on an update to the tutorial to cover the new methods of analog I/O. In the meantime, if you're feeling adventurous, you can dig into the C environment and see how they did it in C. It shouldn't be too hard to port that over to Python.
In the "Programming the pcDuino" tutorial (in "Serial Communications" section) in C++ code the serial_test.h header file is mentioned. What is this file and where is situated? And how we can get it?
This board is great! its faster than a Raspberry pi, and everything works out of the box unlike the bbbk. I did a small comaprison benchmark on Rpi vs bbbk vs pcduino see it here http://www.marchdvd.com/pcduino/pi.php very well designed, and function SD images too.
I really recommend using this link for your GPIO access in python http://www.pcduino.com/?p=269
The example in the "Programming Tutorial" uses some weird File IO method where you are filling an array and seeing if there is a value in that array. The link above has stuff closer to what Arduino code would be
This is such a cool Linux board, compared to the other I had it just works and they did a great job writing the drivers unlike some device tree problems I had with the big names. This board is a keeper!!!
I was thinking of making a compact little workstation with this. However, I would prefer to not have to power it by a wall plug, if I am using it in an area where there is no plug. Is there anyway this is even possible with a rechargeable battery for at least four hours of usage?
I see the power requirements state 2A @ 5VDC. So would I need to be looking for greater than a 8000mAh (4hrs x 2Ah) rechargeable battery that runs at 5VDC to account for overall drainage loss from the battery and the usb inputs I would be using? I would like to put the keyboard on one usb slot then off of a 4-port usb hub add in a mini usb wifi dongle, wireless mouse dongle, and a mini bluetooth dongle.
Thanks for your help.
Got to try my pcDuino today. It works as expected. I have been excited about it for a while. Below are a few points/questions I'd like to make/ask:
1) I was able to power it with my cell phone charger which is marked 5V/700mA. I had keyboard/mouse/HDMI/ethernet all hooked up. Not clear when is 2 A needed.
2) Not happy about the fact that adobe flash player does not install here, thus Youtube cannot be watched. I was planning to use it to replace the smart TV's "smart" functions where key in a web address can take 30 min.
3) Could not figure out the root password. I failed with several obvious tries including empty and ubuntu.
Anybody can help? Thanks.
1> 2A is needed whenever you operate this board - if you don't use it, the OS on the NAND chips will get corrupted and the device won't boot anymore without an MicroSD with an OS on it. 2> Flash is an immense resource hog, and this little computer just doesn't have the raw horsepower to handle windowing, multitasking, and flash all at the same time - sorry. 3> Use sudo, root is -never- meant to log into directly. Using sudo, you only need to remember the default password for the ubuntu user - ubuntu.
Hmm...methinks it has DRM...I bought the whole kit but used an HDMI to VGA converter (active converter) and NO videos will play through that converter despite the fact they are encoded correctly for this board. I have not tried it on a full HDMI w/HDCP connection yet...if it requires HDCP that's a no go for me. The videos start and play for 5 seconds with the XBMC port and then stop (the videos were SD...so it should have been able to do that even in software.) Too bad...was hoping to use a bunch of these for media distribution in my home.
I am looking for examples where I can read from the arduino compatible headers using android. Does anybody know if these examples or can point me in the right direction?
Does anyone know the operational temperature range for the pcDuino? I can't find it in the documentation or on the pcduino site.
In the absence of better information, I'd go with commercial temperature grade- 0-35C or so. It will probably survive as a car PC just fine, temperature wise, but the vibrations may be an issue.
How long does it take to boot the device to a shell prompt with USB drivers?
In my experience, about 10 seconds out of the box. I'm reasonably sure you could pare that down a bit if you tried.
Can this board send an email using Yahoo or Gmail as the SMTP server? I want to just have to enter my gmail email address and password...
New evidence suggests yes: I have my script up and running, and the pcDuino is mailing via Gmail just fine.
I don't see why not- I have a script running in Python that can send an e-mail via Gmail, and Python runs just fine on the pcDuino.
The CAB-11604 OTG cable will not fit in the OTG connector of this board.
So I plugged the pcDuino in the other day, and everything worked fine. But I tried starting it up today, and it just boots to a black screen that I can't get out of. I moved to a new monitor, and it worked again. But then I shut it off and tried to boot, and it's on the black screen again. I know there is the display issue fix, but that involves being able to get to the desktop, I believe.
Please create one bootable SD card from the following link: http://www.pcduino.com/?page_id=14
Find this one: [•Ubuntu SD Boot Image, Release Note, 04-04-2013]
You can setup one SD card to make sure the hardware is OK. It already includes the display issue fix.
Arch Linux ARM now has support. Patches sent to linux-sunxi for u-boot support as well. http://archlinuxarm.org/platforms/armv7/pcduino
Great! Can we have link to this on pcDuino.com?Thanks!
Very pleased with the PCduino! What I need now is a case/enclosure. Any recommendations?
Am using the PCduino because my Raspberry Pi(s) have problems corrupting the SD card file system when power is switched off and then will not fully boot up. I need a device more reliable for embedded systems.
Here are some observations: 1. I tried the XBMC boot card and it looks good for video, but it hangs during a picture slide shows, so I'll stick with feh. 2. Installed the arduino SDK package and found you get a Java JVM too, so PCduino has Java without Android OS. 3. No problems converting to 1080P display resolution, thanks Bill! 4. Using ssh, lighttpd, git, feh, wireless USB adapter realtek, autostart feature, screen saver turned off.
The problem with corruption of your SD card file-system is not the fault of the Raspberry-Pi. For all embedded systems that use SD cards for the root file-system, one should always mount it read-only. All of the temporary and run time files should be in a tmpfs.
Hi, I recently received my pcDuino and I just wanted to ask something. Are there any other proven to work OS's available other that the Android and Lubuntu distros's on SparkFun? The stock Lubuntu seems to be a Linaro distro (http://www.linaro.org/), does this mean I can install any of the others on the downloads page on linaro? Basically I want to install a plain ubuntu server on to it, is there any way of getting a version compatible with the A10?
Yes, there is the cubieboard.org which was crowd sourced and made it into production via community payments. It is a very impressive piece of kit and has quite a following. Essentially, this is the same machine, except the cubieboard has a SATA socket for hard disk drives. The A10 chip as everyone says is used a lot in this kind of computer and the cubieboard forum has a lot of useful information about booting and boot images etc. It is open source so the plans are there for all to see along with the schematics. I have a feeling it is around the same price but physically it is squarer. The only problem with the cubieboard is that it does not have the same pin headers as the arduino which this does have, but it has the same pin outs I think.
People are already making breakout boards and pcbs for it even though it only started to ship properly in late February.
Anyway, just another board which people may not have heard of and one which is similar to Rasberry Pi too but a higher spec processor etc.
The Sparkfun "Getting started with pcduino" show a GPIO and two SPI headers not listed on the pcDuino user guide, but does not give the pin-out them. Does one exist and how do we find it? Thanks
At the PCDuino.com site you can download a schematic and board layout.
Okay, for those who don't have time to do an exercise for the reader, location of pin 1 for each connector as displayed on the "Getting Started..." page is as follows: GPIO lower right, SPI2 J6 upper right, and SPI0 J7 upper left.
I can't tell from the drawings what the counting order is, but generally it is left to right top to bottom with pin i in the upper left. This results in the odd number on the left and the even numbers on the right.
Information on how to set up your / root file system for Ubuntu on a micro-SD card is available at pcDuino U-Boot - Parts 1,2,3. This is an easy method for increasing the available storage beyond the 2GB NAND flash already available.
I'd really appreciate it if someone could provide a step-by-step on how to get flash player on this thing.
Has anyone tried to play an h.264 movie on this thing? Rasperry Pi uses omxplayer (as does xbmc) curious how one of these little guys would perform tethered to a TV and playing movies. 720p? 1080p? Can someone who has one try?
Use XBMC, pcDuino could play 1080p video without problem.
Well it seems like it's hit or mis with the DVI to HDMI patch. I applied the patch and it didn't work for me. I have an older monitor and that probably has a lot to do with it. However the same monitor works for my RaspberryPI's. The fix also made the settings for wacky when connecting it to the TV It's now spilling over both on the height and the width.
It could be an overscan issue for your TV. Please use $sudo setwindow 95 1 0 0 . Please see detailed usage of setwindow in user guide of pcDuino. BTW, what is the native resolution of your monitor?
When I first plugged it into the TV it didn't have the overscan issue. Only when I applied the "dvi fix" . The monitor that didn't work as best I can tell has a native resolution of 1280 x 1024.
The BeagleBone (https://www.sparkfun.com/products/11605) looks capable of real-time processing, webcam interfacing -- however spec-wise the pcduino seems more powerful. Has anyone tried both and can give some thoughts on relative strengths?
Curious how it compares to the new beaglebone: https://docs.google.com/file/d/0B80aJokrBccAMjNPRDBoMkUwWXc/view
This board has the same issue the Raspberry Pi does! The video drivers SUCK!
The Mali-400 driver seems to just wrap the fbdev at /dev/fb0! This means NO hardware acceleration!
What the hell!? This is the downfall of ALL of these boards in my opinion! Why can't these companies just give us solid device drivers!?!?
Everyone runs X! Everyone wants hardware acceleration in the UI! There is no point in having GNOME MPlayer on the desktop because it WILL NOT play video!!
What a let down!
We will release the XBMC as the default media playback app. XBMC is fully optimized with hardware acceleration for video and graphics. It lets you playback 1080p video without problem. BTW, I understand your frustration on video driver support. Actually there is no standard API interface for video playback and encoding in Ubuntu unlike the DXVA in windows or media framework in Android. So you have to optimize the video application individually. Unfortunately, there is no hardware optimization for GNOME MPlayer in this case. But you get it right, we will remove GNOME MPlayer in the next release and put the XBMC instead.
Hardware accelerated XBMC would be interesting. Any chance at an accelerated VLC?
You talk about "releasing" accelerated applications. Does this mean that only you have ability to build hardware accelerated applications and an end user does not? I share the concerns of jamis when it comes to video. This always seems to be a stumbling block with these restricted GPU designs.
We will release the API document of the hardware video decoder and some examples to show the usage next week. You are definitely more than welcome to leverage this and apply to any project you like.
Thank you so much for the quick responses! It really does mean a lot!
Please check it out for video driver from http://www.pcduino.com/?p=208.
I'll check it out! Thank you!
Further, this thing defaults to 720p! There is no way (as of yet) to get the board to run at 1080p. I've modified the hell out of the xorg.conf and it fails because the /dev/fb0 is set somewhere in the (difficult to modify) boot configuration to be 1280x720!
Back to hammering away at the Raspberry Pi I guess... at least until the lima driver (http://limadriver.org/) guys bend over backwards to reverse engineer ARM's stupid, proprietary silicon...
I have found how to set the default video mode to other resolutions. I am currently running at 1920x1080, 60Hz.
Available HDMI video modes:
If anyone is interested, I can document the method for setting the video mode. Currently, these are set at boot time and can not be changed dynamically.
That would be great. Thanks Bill.
Instructions for setting the default display resolution are posted on my blog at Setting pcDuino Display Resolution.
Hey, link seems to be broken. Any chance of a fix or a re-link? Thanks in advance... it may save my board from the bin...
This is great! Thank you so much for the work! Your tutorial is really helpful!
This is also in our to-do-list. We will release a small script file that let's configure the board to run 1080p instead. It is available in early next week.
I just received my board. Very exciting!
Looking at the Schematic, there are only 9 pins labeled GPIO, but a bunch of other pins that have designations for I2C, SPI, PWM on them. Can I use all of these pins as GPIO... in fact how many GPIO pins are available on this board for me to use?
Also, how quickly can I access these pins from my C-code: for instance, if I wanted to implement a software I2C or something like that?
Sigh... were my questions stupid or something? It seems like most of these others posts were answered.
I looked ay the GitHub Arduino stuff and still it says that the GPIO ability is in the range of 100hz, and it seems that low level I/O isn't really an option... this greatly reduces the usefulness of this board. I hope that this isn't the end of the I/O development. Without low-level I/O drivers bit-banging is not really a good option.
Also my question of the redirection of pins wasn't addressed. Thanks in advance or you responses on these questions.
My bad. You have the really good questions for pcDuino. The support of low level I/O programming is a very important aspect to this product. We need a little bit time to collect information and give you an accurate answer on GPIO performance. But it is definitely more than 100HZ as stated by previous document.
Mine was working great, so easy to set up and get running, and then I decided to go put in an sd card - there is a slot right? So after about an hour of playing with my new shiny pcDuino I stuck in that card. After that my pcDuino refuses to boot. It initializes the HDMI, because my monitor tells me when it gets a signal, but the screen stays blank after that. My power light is lit, the RX light is on steady and the TX light blinks with a pretty steady rhythm (some kind of heartbeat I would guess). I also know that SSH and Apache are not being initialized (because I can't connect and my router tells me what machines have what ports open).
I asked on the forums but they suggest updating my firmware and the software that comes doesn't run well at all on win 7 64 bit. I don't have an XP machine, nor do I have an XP install disk to put one on a machine. I'm not hopeful at this point and now I have a $60 paperweight. So beware of the sd card port. The card I used was just a regular 16GB sdhc card and it's not offbrand or anything (I used the same card previously on a RPi with no problem). :(
Please eject the TF card and power on the pcDuino again. If the device doesn't boot up to Ubuntu, it indicates that the preinstalled Ubuntu in the board flash is somehow modified by accident. At this point, you could use livesuit or phenixcard to reinstall the Ubuntu. There is known issue for livesuit with certain 64 bit Win7. If this is your case, please use the phenixcard to reinstall the OS.
Alright, last update. Thanks to a very helpful person on the pcDuino forums with the username of gwaland (I owe him a beer), I was finally able to get back to my lunbuntu state.
Okay, another update. It looks like the image on the pcDuino site for unbuntu has something wrong with it. So the link at https://s3.amazonaws.com/pcduino/Images/ubuntu-2013-0203.rar contains two files named a10_kernel_20130203.img and ubuntu_20130203.img respectively. There are a few other files on there as well, one with a .fex extension and another that looks like an update shell script.
Okay, so using LIveSuit (I found an XP machine) I was able to connect and update with the a10_kernel_20130203.img file (it complained about the other being an invalid image). The update took all of 30 seconds on a fairly slow machine. So far so good. Reboot, SAME thing. RX light lit steady, TX light blinking about 2Hz.
Okay, so I download the Android image located here: https://s3.amazonaws.com/pcduino/Images/android_20130115.img. Following the same procedure as before I was able to get the android image installed. This one took several minutes - very different from the original image. I boot that one up and Success! Only problem is, I don't want Android, I want my original Lunbuntu back.
Does anyone know of where a valid image I can burn onto my pcDuino is?
You are so closed. So please give one more try as follows: 1. Use livesuit to burn a10_kernel_20130203.img to the board. It takes about one minutes. 2. Get one clean TF card ( if you already apply Phonixcard on your TF card, please restore it to normal by using the restore button in PhonixCard software), and copy the other three files: ubuntun_xxx.img, .sh, .fex files to your CLEAN TF card. 3. Plug the card to pcDuino and power on the device. 4. Have a cup of coffee and wait for 12 minutes (not kidding, please wait for long enough). 5. Eject the TF card, then power the device again. 6. Now the device should up running.
I read these instructions right after I finally got my lunbuntu back. A person on the forums was very helpful and basically gave me these same steps. Thank you so much for all your help, the pcDuino community is great! I'm a happy camper again. I don't mind solving problems, it's when I spin my wheels with the same result when I get frustrated. Thank you so much, now I get to work with this fine product!
Here's a thought: Can I just use dd to burn the a10_kernel_20130203.img file directly to the NAND flash once its mounted via the OTG port? It seems like it's the tools that are getting in my way here and once I can just get a valid image onto the NAND I think I will be okay. BTW - I can totally see the boot partition and all the files on it. Maybe there is something manual I can do? Maybe an config file got corrupted or something?
Thanks again for any help pcDuinoer
Sorry for the inconvenience and thanks for your patience. We are working very hard to come up the complete documentation to show how to flash the internal NAND. I need another four hours to finish it. At this point, I will suggest you wait for my documentation to come up and reformat the whole flash to be sure. And so far the effort of reformatting is not so trivial. It involves two steps: 1. Update the Linux kernel; 2. Update the Ubuntu image. The file of a10_kernel_20130203.img is the image file used to burn the Linux kernel to on board flash before burning the Ubuntu.
Update: I tried with phoenixcard with no success. I plug the device into my computer just using the otg port and it recognizes the drive. I can press Disk Check and it returns DeviceOK, the size of the device is 1 5M. Then when I do anything to it, if I try to burn either product or startup mode, or I click Format To Normal I get the same result:
The words Formatting the card... are printing into the Option list. Then a pop up dialog gives the error Card Preprocess Failed !497. Nothing in the erorr log, just that message. Once I dismiss the dialog I can no longer see the NAND flash and when I click DiskCheck I get the error NOT Found Removable Disk !.
I'm usually very patient but I'm getting frustrated with this. I had it working for all of two hours last night and I've spent the last 8 hours or so of my free time (and some not so free) on this. I don't mind figuring things out, but lack of documentation (and documentation in the wrong language) is a HUGE barrier to DIY.
How do I use phoenixcard to install the OS? Do I plug the pcDuino in using the otg port and boot normally? I did notice that it does see the NAND flash when I use the OTG port and boot normally (or I assume, since there are several files on there that look like they belong on a boot partition).
BTW - I'm using Win7 64 Ultimate if that helps at all.
Have you tried monitoring the jtag port to see if you are getting boot up? Are the LED's normal?
My SD card has been in and out a few times without issue.
Has anyone managed to get a rtl8187 based usb dongle to work? If so, please advise.
While the description says it supports Ubuntu 12.10, it appears to ship with 12.04 which doesn't have libuvc installed and therefore doesn't support most webcams. Does 12.10 have libuvc?
I am curious about this as well, because i purchased this unit primarily for use with with openCV, the computer vision libraries. I haven't received the system yet to try out any webcams. Anyone used the pcduino yet with a webcam?
For those that are interested. The update mentioned aobve has been released. It works great and it's easy to install. The only crux is that you must have access to another machine that can decompress rar files. Hopefully they will fix that soon.
We will update the kernel to support UVC. It will be released early next week.
So I just glanced at the "Arduino" directories that come on this thing... and here's an example of what it's doing behind the scenes:
Say you want to call digitalWrite(0, HIGH). This is what the libraries do:
system("echo 1 > /sys/devices/virtual/misc/gpio/pin/0");
Basically, it's using the system() function from stdlib.h (http://linux.die.net/man/3/system) to echo a 1 into that GPIO pins file. All of the "Arduino" library stuff works this way.
Will it work? I guess so... Is it clean? Well...
Yes, we are working on the new implementation of digital I/O. It uses the call from the Arduino library instead of using shell command that you discovered. It will be released this weekend. Please stay tuned!
Weekend is almost over.
Not for several more hours in American Samoa. Plus, if they post it, I dunno, come Wednesday.. that's still cool, right?
No, its not cool.
and I guess that's why most reps have ceased giving actual time frames :)
.....because they never keep them.
yep, whether intentional or otherwise - better to play it safe with a "done when it's done".
My fault. I was travelling, and found I lost my laptop's wall adapter. Now the new Arduino code is in github. Please enjoy.
Thank you. Let the fun begin. ;-)
since replies to replies don't generate notifications (iirc) - looks like it's available now: https://www.sparkfun.com/products/11712#comment-513e8ba6757b7f4965000000 ... https://github.com/pcduino/arduino
Oh, nevermind. scroll scroll scroll.
Thank you. I appreciate the update.
We kept out promise. Please check the GitHub for the new code update. We are still working on the document, hopefully it will be released today. Please note we may be in different time zone.
Looks like a new github for the Arduino sketches on the pcDuino has been released. Electron Hobbies have also created a simple tutorial on how to compile and run Arduino sketches on the pcDuino.
github.com/pcduino was last updated on March 7th. Perhaps I have the wrong site. Could you provide a link to this new code update?
So far, I am LOVING this board! It is SO much easier to get up and running then the Raspberry Pi. Plus, it's faster and it's headers make a hell of a lot more sense.
Yes, I had to do the HDMI fix. Once done, I can use an Apple HDMI-to-DVI adaptor on an old Samsung SyncMaster 243T LCD with no problem.
I'm running it off of the same power supply I was using with the Raspberry Pi, an iPhone USB wall charger and a Sparkfun Cerberus USB cable. No problems so far
Yes, I can play video in youtube... but it's a bit jerky... Though I'm not sure if that's my internet connection or not. I'll be doing a bit more research over the next day or so.
To power cycle the thing, you can run sudo shutdown -h now ... and then press the reset button to reboot the board. This is a LOT nicer then the Raspberry Pi's power solution. Once you drop the Pi to halt, you can't get it back unless you physically power cycle the thing. Bleh. 10 second shutdown or so.... pretty nice :)
A little less then 30 seconds for a cold boot. And at least 10 seconds of that looks like X getting off the ground. I haven't actually checked that though... It would be nice if we could figure out how to get textual boot on these things... anyone?
SSH is NOT running by default! dnsmasq (on port 53) is the only thing running on it by default.
I suggest getting some standoffs for this thing... It's got a good number of chips on the bottom of it... and having it up off the table is probably a pretty good idea. It'd be great if someone could throw together a simple Thingiverse plexiglass case/bottom plate for the thing...
[EDIT] THIS IS WRONG: "Hitting the reset button seems to do an APCI reboot. Not just a cold reset like the Arduino's reset button does... So that's good!"
The Reset button DOES do a hard reset! Don't press it unless your system hangs!
The screensaver on mine doesn't start "very quickly" after first boot... so I don't know why people are seeing that but whatever.
And, finally, YES it will boot all the way to a desktop with JUST an HDMI and power cable plugged in!
I love this thing! Now if only sparkfun had a "car computer power supply" that would run off of 12 volts and not fry during a starter motor crank...
Sorry! I was wrong about the reset button! I'm editing the previous post now...
First impressions.... Hmmm... Boots quickly to a very purple screen. If it were VGA I'd think my connector was loose or I had a bent pin.. Same cable/monitor works great on another device...=/ Mine also came with tons of fingerprints all over it?? I try to do a shutdown from the menu, a prompt comes up for root pswd,which goes away before you have a chance to type anything and it never shuts down... works from the cli though...
I'll also note that with just hdmi plugged in, no usb devices.... the power led is on about half brightness...??
Are you using HDMI to DVI converter to connect your monitor to pcDuino?If so, it is known issue, we have a software fix for this.
As a matter of fact, yes. I should have thought about that, I think I actually read something about that too.. I'll try a normal hdmi cable..
Ok, even worse! A regular hdmi cable plugged in lights the power light even brighter, and this time having a keyboard/mouse plugged doesn't matter, it stays lit.. Plug the device into power via usb and no display... It looks like it's booting, the leds for rx/tx sequence... but no display.. Tried the hdmi from my PS3 and I get the same.. =( I'm going to try the patch on the hmdi to dvi that at least gave me some display..
btw- I'm using a regular usb/mouse from a desktop pc...mouse is in 'CN1' and keyboard is in'CN3'.. :)
DVI patch fixed it.. =D I'll stray from the normal DVI cable for the time being...
Anyone else looked at the sample provided for uart?
This looks like a bash script and nothing like arduino C style code. I posted on the pcDuino forum and waiting for a reply.
What am I missing? Maybe Sparkfun knows something?
Definitely a bash script. My linux is quite rusty but it looks to be setting up the serial port on the "arduino compatible" header and writing $msg to it in an infinite loop.
The reply was that it should be out by the end of the week.
is there an audio out for this? maybe via any of the pins? Thanks
I asked the same question above, and was told that audio does come out in the hdmi connector (but not anywhere else separately). So playing videos, etc should have sound.
RE can't plug and play with arduino shields - I think its better that the headers are laid out the way they are right now on the pcduino... Imagine if we use more than one arduino shield, and those shields just so happen to both plug into one same pin, then we would need another shield the go-between shield to line them up
But if it's laid out like this, we can manually connect one of the conflicting pin to another free pin on the pcduino board... the shields wont have structural attachment to the pcduino, but we can always remedy this when designing the enclosure container
Could someone verify: this theoretically could run simple openCV libraries with some real speed, correct?
Not sure if this helps but it is an A10 device running openCV.
I ordered one on impulse....I'm not a big fan of the allwinner cores but I'm gonna give it the benefit of the doubt. BTW a new lower cost beaglebone board is about to be released.....I'll be saving some cash for one of those as well! http://beagleboard.org/unzipped
I asked Google and also decided to RTFM.
So A10 is the encompassing System on a Chip, and A8 is the actual processor core.
In the description it states that the pcDuino has a "1GHz ARM Cortex A8 CPU", but the main chip in the picture and pcDuino_V01_Schem.pdf is shown as an A10.
Is it a typo or am I missing something?
A10 is the name of Allwinnner's SoC platform (So like Samsung's Exynos 4, or Apple's A5/6, or what have you), so CPU+GPU+RAM+supporting electronics. Cortex A8 is the actual ARM CPU, and Mali-400 is the GPU.
The more I learn, the less daunting it is getting.
Thanks for the info. :-)
What an AMAZING product!
I am not sure why this product has not knocked the socks of everyone that use Arduinos in their development. I suppose some people are comparing it to something it is not. I am comparing it to an Arduino, in particular, the Arduino Ethernet that is selling for same price!
CHALLENGE: There are a lot of people in the comments section who are not thrilled with this product, so the first person that can post a link to a development board that has at least all of the specs and features of the pcDuino at a cheaper price, then I will buy one for you! (And a few for me).
PS: It is great that SparkFun has changed text "Arduino shield compatible" to "Arduino-Style Peripheral Headers (Adapter Needed for Shield Form-Factor)" in the description. :-)
How about the Cubieboard (https://www.miniand.com/products/Cubieboard%20Developer%20Board)? There are a lot of these Allwinner A10 development boards popping up. IMO, documentation and support are lacking for all of them, but that will surely change as they become more popular.
Great looking board, and has a SATA connection too. Nice.
I didn't see that it was able to use Arduino sketches and Arduino shields (with adapter), which is the biggest draw card of the pcDuino for me.
Unfortunately I am time poor right now and can't justify converting all my Arduino sketches and waiting for the community of code contributors to catch up.
I will look forward to buying one when it gets a little less hectic at work. These are amazing times! Thanks for the link. :-)
Would you be able to program with Processing on this?
There is one tutorial here to discuss how to install processing and Java on pcDuino. http://pcduino.com/forum/index.php?topic=3634.0
5V or 3.3V?
The I/O is 3.3V.
Looks like a fun board. I am glad its not trying to replicate arduino shield platform. Time to grow beyond arduino shields and arduino limitation in general.
I would have bought it if it was an intel processor...:) With arm processors development becomes much more difficult. Languages like c/c++ are needed. I know the wiring language from arduino, that's nothing usefull if you don't have control over the apps created. My interest is more into SBC (with intel processor) or Intel micro computers.
First off, the Arduino is programed in C++. What they call a 'language' is just a library API, but they want to make it sound less daunting for newcomers to programming. It is and always has been C++.
As for the Odriod, it runs a Samsung Exynos 4 Prime, which is quad-core ARM Cortex A9 and a Mali-400 GPU.
You may laugh or turn up your nose, but as you seem to know quite a bit about this, is there a decent BASIC around that could be run on this? Something along the lines of PowerBasic would be awesome on this, though I know that is only for Windows on Intel. Would programs produced with MikroBasic for ARM run on this for instance?
Sorry it's all about the documentation and how to learn c++. Arduino is easy because it has great tutorials, documentation and lots of resources. I'm using RealBasic to develop cross platform applications (win, mac, linux) but i can't build for ARM.
That's why i should buy an intel based processor board. Also because linux and windows have many arduino stuff already around.
Have you checked out the Intel NUC (Next Unit of Computing) series yet? Amazing SBC with Intel chipsets and great specs in a tiny form factor....though expect to pay for this kind of technology. The ODROID X2 bears some looking into as well, though I don't believe it is Intel-based.
Yes i've seen the NUC. It's interesting but still a full blown pc..;)
I mean Intel doesn't make an x86 processor that isn't a full-blow PC. You get close with Atom, but the cost of an Intel SoC is prohibitive to making a small development board. It would wind up costing just as much as buying a low-end PC.
Intersting board is there a way to communicate with the I/O using pureData with the "serial" object like you would with an arduino plugged into usb? or is it a totaly different method
Not exactly what you are asking for but it would be kind of cool to run PD on the thing and wrap the IO API (which is written in c) into a pd external of some sort.
Come on folks. Give them a break with the arduino shield compatibility squawking. You can make your own adapter board with a crude copper etched hack and some header pins. In fact, it would be a great project for you hardware/soldering challenged peeps.
"because it's also Arduino shield compatible"? Well, it's NOT! It requires an adapter for the standard Arduino shields. But then, anything with an adapter is Arduino compatible. Anything!
It is just like saying "because it's also making coffee"... with an adapter.
Please show some respect to our intellect.
Seriously, if there is ever a v2, please consider breaking out the second row of shield pins on the opposite side of the board. Then we'll take another look.
It makes Coffee with an adaptor??!! Oh wow, I think I'll get one then :D
I would define Ardunio-compatibility much more by the programming interface than the electrical one. It's not like you can use Shields directly on things like the Pro-Micro, Lillypad, etc. Form factor is actually about the last thing that defines compatibility in my mind, because anyone with even halfway decent soldering skills (or a breadboard) can attach a shield to just about anything.
And it clearly states there is going to be/is a library that will let you interface with hardware using similar Ardunio API calls. So I'd say that makes it certainly a lot closer to Ardunio compatible than just about anything else that isn't an Arduino out there.
Well, the next version of this board will probably be a killer. Here's what the pcDuino needs.
1) Get rid of the semi-compatible Arduino headers and instead have a socket for plugging in an ATM328 coprocessor daughter board that accepts Arduino shields with no adapter needed.
2) More video output options, including RCA jacks for NTSC/Pal monitors, a VGA jack, more HDMI video modes supported, etc.
3) Socket the SOIC chip, so it can be replaced if blown.
Well, hey, I can always dream.
1) ? Why would this be an advantage? At that point you might as well just attach an Ardunio to it via a USB port.
2) HDMI output is much more diverse than just 1080p/720p. As for analog signals, the SoC lacks the physical hardware to do it so that's not going to happen. You could add additional processors to handle the conversion, but that would add cost and the whole point of this thing is to be as cheap as possible.
3) The SoC is a PBGA PoP processor with something like 300 pins, so you can't socket it and even if you could it would be a socket like on a PC motherboard, pretty much defeating the whole low-cost and small form-factor thing. Beyond that it's not like you can just order an A10 processor from Digikey. So where are you going to get a replacement? The SoC is 90% of the cost of the board anyway, so you might as well just buy a new one at that point.
^ this man makes alot of sense!
RCA is a century old tech, takes up way too much valuable estate on PCB's, you can have whole switching power supply in place of one receptacle, VGA bulky, but can't go wrong with that one. Would be nice to remove "must have kbd to boot" thing, say running it headless or just display, Socketable SOIC would make sense, I'd stash up on few and start running experiments haven't dared before. Now ATM328 daughter board would be nice thing to have, but there must be way to have faster bus and jitter free execution.
I was wrong about the keyboard boot thing. Turns out, it just dumps into a blank screen saver REALLY fast after boot, and without a keyboard, you're just kind of stuck there. The change to stop that happening is really easy, though, and I'll go into that in the tutorial I'm writing.
Only 60 dollars for A thing like this? Wow, that's pretty impressive. If only I had money...
I wonder if this thing will run Windows Singularity...
But will it come in red?
I am trying to find out who designed it and makes it. The pcDuino website says powered by Cutedigi, which I think is Chinese. Does anyone know?
Most of the content on the pcDuino.com site consists of....well....broken English....and if you dig into the user guides, you eventually run across some Asian character sets mixed in. So, I may not have an exact answer for you, but it probably gives you a general idea of where this is being sourced.
That's a good question for a lot of products SFE carries ;)
CuteDigi is just an outlet for the (North) American market. ezMCU is the global one. They're both owned by JuneTrading(.com) which describes itself as "group of hackers that love the open hardware." (About page).
However, given the name and the rather dissimilar designs of boards and fabrication of boards (these are probably made in the same place that makes the IOIO, which JuneTrading also sells, but was designed by Ytai, from Israel), I wouldn't be surprised if there were other parties involved.
It says it will run Ubuntu 12.1. Does this mean it could by setup as a Dansguardian filter for my home network?
Does it run flash in web broser?
Is there a real time clock? Please let there be an RTC. Please, oh please, oh please . . .
Sorry to say, no, there's not. You could add one pretty easily, though!
The mechanical drawing of the bottom of the board in the zip file linked above (Mechanical Drawings) contains a 231 byte empty PDF. The mechanical drawing of the top of the board seems fine.
I'm wondering if this will have the same amount of /more power to process MAME than the rPi? I need to have some sensors going to the IOs and would love to have them be beefier than the rPis.
My 2 cents in the jar, having dealt with arduino, rasbpi and beaglebone I have noticed that later two, have considerable "walk" in their GPIO timing, especially if there's few cycle hungry processes running side by side. It is definitely interesting product, but sometimes you can't replace arduino and it's simple rock solid 1 thread - 1 task underworkings with timeshare model of ARM cpu, unless of course they have atmel chip somewhere there (that I missed) doing all heavy lifting. On the side note, Beaglebone FPGA cape looks like an interesting marriage of technology.
Yeah, with garbage collection happening here and there you can't really count on real time interrupts like you can on the arduino but you can always build up a raspberry pi a la mode type of an arrangement where the heavy lifting is done on the ARM board and have it task a UART connected arduino to provide the rock solid pulse for time critical tasks.
My buddy in defense industry pointed me towards expensive toy, CoreMP7 by Actel, FPGA+ARM on chip fusion, might worth wile to explore, but last time they quoted me 800 for barebones demo. idea with Arduino doing IO and ARM doing processing have crossed my mind, only if they would have all that on 1 PCB with resonable price and some documentation... I had to hunt down memory mapping for my beaglebone's IO's all over web and github.
...other food for thought: It occurs to me that a couple of guys I went to school with were developing a real-time implementation of linux call RTOSLinux for robotics and plant control applications where timing was critical. I guess it would solve the io jitter problem as well. Who knows what sort of pain would be required to get something like that running on an arm. Without an out of the box distribution handy I don't know that I could figure that out at my current skill level though.
It's way above my skill level even to think about using it, but logic is sound, Atmel architecture implemented on FPGA would make it extremely fast, precise and versatile. now I bet there's techniques that allow for cleaner implementation. at this moment I can only drool-n-dream, so back to realistic prices and known products, I've heard of RTOS versions of linux, but timeshare model rears it's ugly head even there, now theoretically you can have dual core or more core chip running OS on one core and use second core just for IO and timing, that would be fairly easy and overall jitter-less design, but even that way out of my league. So for now it's ARM>UART>ARDUINO
You would have to have a VERY high end FPGA to implement an ARM chip. I'm talking top line - I seriously don't think you could fit a modern 32 bit ARM architecture on a mid level 500-1000 gate chip. I could be wrong, but remember, the ARM is a fully optimized pipelined processor. Those are not trivial to implement and take up a LOT of silicon. As a comparison, you can barely fit an AVR core on a 500 gate chip and AVR cores are much less complex than ARM's.
That is pretty interesting. So what you are thinking is that you implement a micro (like Atmel, etc) on the FPGA portion of the chip and have your cake and eat it too? And probably with a pretty quick buss between the two parts.
I don't have a HDMI cable/adapter... can this boot to SSH?
You'll probably have to use the hardware UART with a e.g. PL2303 for serial access to get it going. From there you can tell it to start SSH on boot.
This little guy seems great! What language is the API for the GPIO in and is the API open? Guessing c but just want to confirm that before I make an impulse buy.
Never mind. Checked for myself at their github: https://github.com/pcduino/arduino API is in c. Guess that means I should be able to call the API from python as well. Neato. -- Impulse buy away!
If only it had on-board FPGA it'd be awesome.
There is an FPGA sheild for the Arduino. See, https://tindie.com/shops/majolsurf/amani-f2-fpga-shield/
Right there, dead damn on! btw look in to FPGA cape for BeagleBone, that's where I'm looking right now.
For what it's worth, the Olimex guys have gone down the A10 way and probably have more info on "where is the datasheet", "is the GPU open" and other stuff along that line.
The good news is whatever they discover/fix goes into the Sunxi Linux patches for everyone else to enjoy, so there is hope.
Hope this helps.
The Olimex folks have an A10S-powered board with LOTS (116 supposedly) of I/O here. Price is likely to be around $65 according to the Mouser website. Could be a good alternative?
As always, it depends on what you're trying to do with it. The Olimex board does not/will not have anything to do with the Arduino shield pinout (this is not to say an Arduino shield could never be connected to it, at all -- but not so easy). Both of them (any Allwinner-based design, actually) will suffer greatly from the lack of openness (and interest towards same) of the board support package.
Olimex had to fight to get past the "we gave you a board that runs Android, WTF do you need anything else?!?" initial stance of the Chinese manufacturer. They are still fighting them in a bid to persuade them to release most of the critical code in a GPL-compatible manner.
For DIY, it's probably just as good as the board above, here at SparkFun. For commercial products/projects, it's a much longer and painful story.
Is that full HDMI or a micro/mini/compact/whatever they call the smaller HDMI?
I see SATA on the schematic. Is it pinned out? Can I connect a hard drive to it? Can I boot from that drive? This would be huge.
I agree -- this would be another major advantage vs. the RPi...
My AHRC friends are saying the SATA pins on the chip on this board are not connected to anything and this was probably done to reduce board layers/size/cost. Oh well. Maybe next version? Would be great for video and other things that need storage volume and speed.
Looking through the documentation and I didn't see a JTAG port. Is there any information on on the 3 pin debug port(JP5) that is to the upper left of the cpu, right next to the menu button.
It's a 3.3V serial port, 115200 8-n-1. When it's done booting, that port allows you to connect via serial to a logged in root session and do whatever's needful.
So if I understand it correctly arduino style pins have been brought out (are they the right voltage?) but they are right next to each other, so mechanically it's not a match for the arduino shields. So to make it work you'll need some messy, ugly conversion board to split the pins. Please tell me I'm wrong and that the board designer didn't mess it up this badly.
it's not ideal. BUT, we're working on an adapter board so you can use standard arduino shields with the pcDuino.
Call me old fashioned, but I would have hoped for plug compatability with Arduino shields, without having to deal with anything else. As it is the BeagleBone still looks pretty good. ie- more IO pins with better connectors (and none of that non-0.1 inch space mess).
how about this? = http://smartduino.com/
...and also level-shift some signals, it sounds like, based on SFUptownMaker's responses to my inquiry above. Based on those answers, doesn't stating "Compatible with Arduino Shields!" sound like a bit of an outside stretch? Something like saying a small-block Chevy engine is "Compatible" with a Suzuki Samurai, as long as you deal with the issues of "mechanics" and the other "electrical issues"... (Though I have seen people do that, too!)
pcduino_mechanic_bottom.pdf inside the Mechanical Drawings document is corrupt according to my Foxit Reader v220.127.116.110
Download from the PCduino site doesn't work either.
same here, let me check into it. might have just been a bad upload.
The bottom layout still seems to be bad when extracted from the zip file. The file is really tiny...like 231 BYTES, so it doesn't seem like a valid PDF at all. I'd appreciate it if you could still check in on this, Robert. Thanks!
Can i program this with arduino IDE (atleast in the future)..?
Arduino 1.5 adds support for multiple build targets, so it should be possible to write code in the Arduino IDE on the pcDuino itself, hit "Upload" and have the code compile and immediately start running on the native hardware! I'm working on that, but since it's definitely not the only thing I'm working on, it's possible that some community member may solve it before me.
It comes with Python 2.7 installed, too, so if you're more comfortable with Python, there's always that option.
Looks like a guard trace to eliminate cross-talk. Also surrounds the processor and DRAM the "fast" stuff.
They are working on an IDE similar to Arduino. Right now though you will have to do command line compiling. There are helper scripts and an example makefile to help you out, but if you don't want to deal with that they will have an IDE out soon (they claim so at least). The "compatibility" with arduino is basically a porting layer so you can take existing arduino code, compile it on the pcDuino (using GCC, which is what Arduino IDE uses under the wraps as well) and just run it on the pcDuino like any other program you would run on a computer. There is no upload phase like an Arduino.
** Edit ** It's important to note that on the pcDuino your code is compiled in situ, whereas on with the Arduino you compile it on another platform and upload to the Arduino.
ho hooo noooo. Arduino isn't even in the same league as this bad boy. No, you use the IDEs that are on the pcDuino website. There are two I think. I haven't extracted them but in the tools section, it lists a Livesuit and a PhoenixCard program. I'm assuming those are some sort of IDE
EDIT. Okay now i'm confused, they say that it is compatible with arduino. So confused. Sparfkun help!
Livesuit and PhoenixCard are different programs for loading an operating system image into the onboard Flash. They both have to be run on a normal PC, and if I'm remembering correctly Livesuit requires you to connect the board over USB whereas PhoenixCard writes an SD card you can use to load the OS on. (I've got a Cubieboard which uses the same hardware and software.)
it is kinda confusing. it appears the pin headers can be compatible with arduino shield, but will require a conversion system to actually plug in the shield?
for programming, they have a framework that's arduino/wiring-like, and will probably be mostly compatible, but it's not going to be 1:1 drop in compatible for all code and libraries.
I assume the funny gold trace on the top and bottom are for RF shielding or something? (Isn't that a requirement in Canada?)
Canada, the US, the EU...most countries have some EMI suppression requirements. Compliance verified via testing.
Looks like a guard trace to eliminate cross-talk. Also surrounds the processor and DRAM the “fast” stuff.
Whaaaaaaaa? I was expecting it to be £60 or something!!! I'm definitely getting one of these!
oh heck, why not get 2?
Nice sales technique! :)
(let's hope it works...)
Sure will for me!! But other than different operating systems, DRAM, style, etc., what's the difference between this and the RPI? Is there a better one? I would assume this one just by looking at the specs, but what's the performance like?
The biggest benefit to the pcDuino over the Pi is the hardware support. pcDuino has ADC inputs, SPI, I2C, PWM outputs, GPIO, and hardware serial ports. We're working on a conversion shield that should allow you to drop on any Arduino shield you like- look for that in coming weeks.
id be interested in if the GPU is more open, so i can take advantage of the entire chip
ive run into some ideas with the RPI that couldnt be done because the pins i wanted could only be accessed by the GPU
Ok -- some confusion here: Above, in the product description and bullet points, it mentions that it is Arduino shield compatible... if that is so, what is the nature of this "Conversion Shield" which you are mentioning?
Hope you can clarify!
Early days, right now- it'll be at least a couple of months before it hits.
It will probably take the form of a shield that plugs onto the various headers on the pcDuino, routing the various signals through to the pins on the shield where they would be on a normal Arduino. We're also likely to include a level shifter to render the signals 5V compatible, although the ADC channels will be left 3.3V only.
So it sounds like what you are saying is that it isn't really "compatible," but more appropriately, "able to be made compatible" if you mechanically route the right signals to the right pins, and also level-shift some of the signals. Does that accurately sum it up?
Just trying to get things 100% clear, because this product is very genuinely interesting! =)
See http://www.pcduino.com/?p=105 for how you can use an Arduino shield with the pcDuino TODAY....before any "official" adapter hardware is released.
The pcDuino appears to have the same 4 headers as the Arduino, except they are on one side of the board instead of on both edges as in the Arduino. It also looks like the pcDuino header signal names are the same as the Arduino, pin for pin.
Yes- the issue is one of mecahnics rather than electronics.
Anyone thinking of buying should bear in mind that, unless I'm mistaken, the ADCs are a lot slower and lower-resolution than the ones on the Arduino - 6 bits and 250 Hz sampling rate max (no, that's not a typo). Probably OK for reading a potentiometer or maybe monitoring battery levels if you don't care much about resolution but not much use for faster or higher-precision applications.
The ADC2~5 is actually 12 bit. The maximal sample rate is 2MHz. Considering all the software overhead, you could get more than 50KHz by using Anduino type sketch such as analogRead() function.
You are at least partly mistaken. Only two of the ADC channels are 6-bit: channels 0 and 1. The other four are 10-bit.
I haven't yet checked out the sampling rate, so I'm not sure what it is across the board. 250 Hz is more than fast enough for a lot of applications, up to and including things like motion feedback.
Ah, right - are you using the resistive touch panel controller for the other 4 ADC channels then? Only just noticed that the A10 user guide mentioned it could be configured as standalone ADC.
I'm not entirely familiar with everything that's out there, but this is one of the most versatile boards out there. the pi is cheaper, but this has more hardware. performance is quite good, better than the pi. we will have a video demonstration tomorrow. check back and if you still have questions, let us know.