PineCube
Specifications
- Dimensions: 55mm x 51mm x 51.5mm
- Weight: 55g
- Storage:
- MicroSD slot, bootable
- 128Mb SPI Nor Flash, bootable
- Cameras: OV5640, 5Mpx
- CPU: Allwinner(Sochip) ARM Cortex-A7 MPCore, 800MHz
- RAM: 128MB DDR3
- I/O:
- 10/100Mbps Ethernet with passive PoE
- USB 2.0 A host
- 26 pins GPIO port
- 2x 3.3V Ouptut
- 2x 5V Output
- 1x I2C
- 2x UART
- 2x PWM
- 1x SPI
- 1x eMMC/SDIO/SD (8-bit)
- 6x Interrupts
- Note: Interfaces are multiplexed, so they can't be all used at same time
- Internal microphone
- Network:
- WiFi
- Screen: optional 4.5" RGB LCD screen
- Misc. features:
- Volume and home buttons
- Speakers and Microphone
- Power DC in:
- 5V 1A from MicroUSB Port or GPIO port
- 4V-18V from Ethernet passive PoE
- Battery: optional 950-1600mAh model: 903048 Lithium Polymer Ion Battery Pack, can be purchase at Amazon.com
PineCube board information, schematics and certifications
- PineCube mainboard schematic:
- PineCube faceboard schematic:
- PineCube certifications:
Datasheets for components and peripherals
- Allwinner (Sochip) S3 SoC information:
- X-Powers AXP209 PMU (Power Management Unit) information:
- CMOS camera module information:
- LCD touch screen panel information:
- Lithium battery information:
- WiFi/BT module information:
Operating Systems
Mainlining Efforts
Linux kernel | ||
---|---|---|
Type | Link | Available in version |
Devicetree Entry Pinecube | https://lkml.org/lkml/2020/9/22/1241 | expected in 5.10 |
Correction for AXP209 driver | https://lkml.org/lkml/2020/9/22/1243 | 5.9 |
Device Tree Fixes | https://lore.kernel.org/lkml/20201003234842.1121077-1-icenowy@aosc.io/ | expected in 5.10 |
Ethernet Alias for WiFi | https://lore.kernel.org/lkml/20201124225940.3750388-1-icenowy@aosc.io/ | ?? |
U-boot | ||
Type | Link | Available in version |
PineCube Board Support | https://patchwork.ozlabs.org/project/uboot/list/?series=210044 | expected in v2021.01 |
Buildroot | ||
NixOS
Buildroot
Elimo Engineering integrated support for the PineCube into Buildroot.
This has not been merged into upstream Buildroot yet, but you can find the repo on Elimo's GitHub account and build instructions in the board support directory readme. The most important thing that this provides is support for the S3's DDR3 in u-boot. Unfortunately mainline u-boot does not have that yet, but the u-boot patches from Daniel Fullmer's NixOS repo were easy enough to use on buildroot. This should get you a functional system that boots to a console on UART0. It's pretty fast too, getting there in 1.5 seconds from u-boot to login prompt.
Stock Linux
SDK
Stock Linux
- Direct Download from pine64.org
- MD5 (7zip file): efac108dc98efa0a1f5e77660ba375f8
- File Size: 3.50GB
How to compile
You can either setup a machine for the build environment, or use a Vagrant virtual machine provided by Elimo Engineering
On a dedicated machine
Recommended system requirements:
- OS: (L)Ubuntu 16.04
- CPU: 64-bit based
- Memory: 8 GB or higher
- Disk: 15 GB free hard disk space
Install required packages
sudo apt-get install p7zip-full git make u-boot-tools libxml2-utils bison build-essential gcc-arm-linux-gnueabi g++-arm-linux-gnueabi zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32z1-dev
Install older Make 3.82 and Java JDK 6
pushd /tmp wget https://ftp.gnu.org/gnu/make/make-3.82.tar.gz tar xfv make-3.82.tar.gz cd make-3.82 ./configure make sudo apt purge -y make sudo ./make install cd .. # Please, download jdk-6u45-linux-x64.bin from https://www.oracle.com/java/technologies/javase-java-archive-javase6-downloads.html (requires free login) chmod +x jdk-6u45-linux-x64.bin ./jdk-6u45-linux-x64.bin sudo mkdir /opt/java/ sudo mv jdk1.6.0_45/ /opt/java/ sudo update-alternatives --install /usr/bin/javac javac /opt/java/jdk1.6.0_45/bin/javac 1 sudo update-alternatives --install /usr/bin/java java /opt/java/jdk1.6.0_45/bin/java 1 sudo update-alternatives --install /usr/bin/javaws javaws /opt/java/jdk1.6.0_45/bin/javaws 1 sudo update-alternatives --config javac sudo update-alternatives --config java sudo update-alternatives --config javaws popd
Unpack SDK and then compile and pack the image
7z x 'PineCube Stock BSP-SDK ver1.0.7z' mv 'PineCube Stock BSP-SDK ver1.0' pinecube-sdk cd pinecube-sdk/camdroid source build/envsetup.sh lunch mklichee make -j3 pack
Using Vagrant
You can avoid setting up your machine and just use Vagrant to spin up a development environment in a VM.
Just clone the Elimo Engineering repo and follow the instructions in the readme file
After spinning up the VM, you just need to run the build:
cd pinecube-sdk/camdroid source build/envsetup.sh lunch mklichee make -j3 pack