About Me Banner


Interesting pcDuino Videos



What is the pcDuino3?




pcDuino3 is a high performance, cost effective single board computer. It runs operation systems such as Ubuntu Linux and Android. pcDuino3 has HDMI interface to output its graphic desktop screen. It could support multi-format 1080p 60fps video decoder and 1080p 30fps H.264 and MPEG4 video encoder with its built-in hardware video processing engine. It targets specially the fast growing demands from the open source community. pcDuino3 provides easy-to-use tool chains and is compatible with the popular Arduino ecosystem such as Arduino Shields.


The specifications of this single board computer is impressive. I plan to use this SBC to run one of the Softrock Ensemble SDR tuners using the ghpsdr3-alex software. I discuss how to install the OS and the SDR server software on other pages.


Hardware Specifications






CPU AllWinner A20 SoC, 1GHz ARM Cortex A7 Dual Core
GPU OpenGL ES2.0, OpenVG 1.1, Mali 400 Dual Core
Onboard Storage 4GB Flash, microSD card (TF) slot for up to 32GB
Video Output HDMI 1.4 with HDCP support
  • Ubuntu 12.04
  • Android 4.2
Arduino extension interface Arduino sockets, same as Arduino UNO
14xGPIO, 2xPWM, 6xADC, 1xUART, 1xSPI, 1xI2C
Network interface
  • Built-in WiFi
  • Ethernet 10M/100Mbps
Audio out
  • 3.5mm analog audio interface
  • I2S stereo digital audio interface
IR IR receiver
SATA SATA Host socket
Camera MIPI
Battery Li-Poly Battery Interface
USB 1 x USB host, 1xUSB OTG
Power 5V, 2000mA
Overall Size 121mm x 65mm


Software Specifications






  • Ubuntu 12.04
  • Android 4.2
  • English
  • All the arduino shield pins are accessible with the provided API
  • It consists of API to access the following interfaces:
    • UART
    • ADC
    • PWM
    • GPIO
    • I2C
    • SPI
Programming language support
  • C, C++ with GNU tool chain
  • Java with standard Android SDK
  • Python


When I received my pcDuino3, LUbuntu was already factory installed in the NAND storage. My pcDuino3 also has the 4GB of NAND storage. My thinking is that this is more than enough memory to run the Softrock server software and the ghpsdr3-alex software.


One of the first tasks I performed was to check which version of the Kernal and Ubuntu was installed in the NAND flash. You can check the version currently installed on your pcDuino3 by opening a terminal and executing:


$ uname -a


The date on the output refers to the release date of that kernel. For example, the following output indicated that my pcDuino3 is running the kernel released on 10th March 2014:


Linux ubuntu 3.4.79+ #12 SMP PREEMPT Mon Mar 10 11:58:23 CST 2014 armv7l armv7l armv7l GNU/Linux


From time to time, the pcDuino team will release new kernel and Ubuntu rootfs images that contain new features or bugfixes, and it is a good practice to keep your pcDuino up to date. However, please ensure that all important data on your current nand storage has been backed up elsewhere, since the update will overwrite the NAND storage. This is very important, like in my case if I use the NAND storage to run the Softrock server and ghpSDR3-alex software. If I update the kernal and OS, I will have to reinstall all that software. Makes me think that I should probably use the MicroSD card I just bought to run the OS and the Softrock software instead!


You can find the latest kernel and rootfs images for pcDuino3 on: http://www.pcduino.com/images-pcduino3/. I am going to bring my pcDuino3 up to date as part of my learning here.


Updating is a two-stage process – first you update the kernel, and then the Ubuntu rootfs. We will use a Windows application called PhoenixCard to update the kernel, followed by plugging in a USB thumbdrive (or an SD card) containing the Ubuntu rootfs image and a shell script with special instructions. I am going to repeat the instructions here that are found here.


Before You Begin


You will need the following to perform an update:


1. A computer running Windows Vista or Windows 7


2. A power supply adaptor outputting 5V 2Amps (it’s important to have uninterrupted power throughout the process, so don’t use a powerbank or power your pcDuino3 via the computer’s USB port)


3. Two microUSB cables – one for connecting the pcDuino3 to the power supply, and the other for connecting the pcDuino3 to the Windows machine ( via the microUSB OTG port, located at the opposite side from the microUSB power port ).


4. A USB thumbdrive, OR an SD card with capacity of 4GB or more, for transferring the Ubuntu rootfs image


5. A USB hub (only needed if you are using a USB thumbdrive, since the pcDuino3 only has one USB port and you will need to plug in keyboard+mouse and the USB thumbdrive)


Also take note of the locations of two buttons on the pcDuino3 board: the “upgrade” button, located beside the short Arduino header, at the edge of the board; and the “reset” button, located beside the black SATA connector and power LED. On earlier versions of the board, the “reset” button was located between the HDMI port and the Ethernet port (newer boards now has a big capacitor sitting on that spot, for increased power stability). Here is an image of where the buttons are located:



So let's get started.


To update, simply do the following (in order):
WARNING: Make sure you have all of your data backed up and kept elsewhere. This will remove all of your data. Current settings will also be reset to defaults.


1. Download and install PhoenixSuit v1.0.6 on a Microsoft Windows Vista / Win7 machine (it MUST be v1.0.6, please do not accept invitation to upgrade).


2. Download kernel image file (e.g. pcduino3_a20_kernel_livesuit_20140721.img)


3. Download Ubuntu rootfs compressed file (e.g. pcduino3_ubuntu_20140430.7z) and extract it, you will get a folder named ubuntu, which contains two files:




4. Copy these two files to the USB thumbdrive (or SD card) main folder ( not in any subfolders ). NOTE: If the Ubuntu rootfs download link gives you a file with an earlier date (e.g. …20140430.7z), its OK, it simply means that there has not been any changes to the rootfs since the one released that date, what you are downloading is the latest version.


5. Power up pcDuino3 with a 5V 2A power supply via microUSB power port (the one beside the HDMI port)


6. Connect the powered pcDuino3 to the Windows machine using a microUSB cable. Plug the cable into the microUSB OTG port located on the opposite end of the board, beside the USB2.0 port. If Windows asked you to install drivers, just accept and install them.


7. Run PhoenixSuit. Check that pcDuino3 is powered and is still connected to Windows machine via microUSB cable. PhoenixSuit will show “No Device Connected” or "No Device Attached Yet". don’t worry about the inaccurate message, as long as your pcDuino3 is powered and is connected to the Windows machine it will be OK.


8. Click “Firmware” (top center), point PhoenixSuit to the downloaded kernel image file and click “Upgrade”. PhoenixSuit will say “No Device Connected”, and show a popup with 6 items in it. Again ignore the inaccurate messages and just follow the steps below.


9. Now press and hold the “upgrade” button on the pcDuino3 board ( beside the short Arduino header, at the edge of the board ). Keep holding that button and press the “reset” button ( beside the black SATA connector and the powerLED, OR, between HDMI port and Ethernet port for earlier version of the board ). PhoenixCard will ask if we would like to perform force-upgrade by showing a popup with the following message: “Tips: Does mandatory format?” Confirm the upgrade by clicking on “Yes” on PhoenixCard’s popup window. This will trigger the kernel update process.


10. Dismiss any open notification popups, a progress bar will show the burning progress, followed by a notification when completed:


"Upgrade Firmware Succeeded!"


At this point, the first stage of the update process is completed. Disconnect pcDuino3 from the Windows machine but leave the 5V 2A power plugged in. It will do some processing and when it reaches a certain point, it will pause. There will be a message blinking on the screen…


"Searching update.sh from usb disk..."
"Searching update.sh from sd card..."


pcDuino3 is waiting for the USB thumbdrive (or SD card) containing the Ubuntu rootfs and shell script that we prepared in step 3 earlier. Plug that USB thumbdrive in (use a USB hub so that you can also connect keyboard and mouse). Or, if using SD card, insert it into the microSD card slot under the board ( copper terminals on the microSD card facing up ). It will find the update.sh immediately and proceed to execute it. The monitor will show messages like the following:


mount udisk succeeded
update.sh found, updating rootfs from udisk, please wait....
writing pcduino3_ubuntu_20140430.img to nand flash
it will take about 8 minutes to finish...


On the board, 2 LEDs (RX TX) will blink together one sec on one sec off. This could take a while, just wait until you get something like:


400+0 records in
400_0 records out
update finished


Now unplug USB drive and restart the pcDuino3 by powering off and then powering on again. After successful boot up, open terminal and execute:


$ uname -a


and verify that the date matches with the pcDuino3 Ubuntu rootfs release date. Congratulations, you have updated your pcDuino3!


My upgrade was successful. Now you have to make a decision. Do you use the built-in NAND flash to run the OS or do you use a Micro SD card? That decision is yours!!


© 2022, Jonathan Tucker N8MDP. All Rights Reserved. Powered by cPanel.