Difference between revisions of "PineCube"

From PINE64
Jump to navigation Jump to search
(added categories)
 
(10 intermediate revisions by 5 users not shown)
Line 39: Line 39:
 
== PineCube board information, schematics and certifications ==
 
== PineCube board information, schematics and certifications ==
 
* PineCube mainboard schematic:
 
* PineCube mainboard schematic:
** [http://files.pine64.org/doc/PineCube/PineCube%20MainBoard%20Schematic%20ver%201.0-20200727.pdf PineCube mainboard Released Schematic ver 1.0]
+
** [https://files.pine64.org/doc/PineCube/PineCube%20MainBoard%20Schematic%20ver%201.0-20200727.pdf PineCube mainboard Released Schematic ver 1.0]
 
* PineCube faceboard schematic:
 
* PineCube faceboard schematic:
** [http://files.pine64.org/doc/PineCube/PineCube%20FaceBoard%20Schematic%20ver%201.0-20200727.pdf PineCube faceboard Released Schematic ver 1.0]
+
** [https://files.pine64.org/doc/PineCube/PineCube%20FaceBoard%20Schematic%20ver%201.0-20200727.pdf PineCube faceboard Released Schematic ver 1.0]
 
* PineCube certifications:
 
* PineCube certifications:
 +
** [https://files.pine64.org/doc/cert/PineCube-FCC-SDOC%20certification%20S20072502302001.pdf PineCube FCC Certificate]
 +
** [https://files.pine64.org/doc/cert/PineCube-CE-EMC%20certification%20S20072502301001.pdf PineCube CE RED Certificate]
 +
** [https://files.pine64.org/doc/cert/PineCube-ROHS%20Test%20Report.pdf PineCube ROHS Test Report]
  
  
Line 48: Line 51:
 
== Datasheets for components and peripherals ==
 
== Datasheets for components and peripherals ==
 
* Allwinner (Sochip) S3 SoC information:
 
* Allwinner (Sochip) S3 SoC information:
** [http://files.pine64.org/doc/datasheet/pinecube/S3_Datasheet_V1.1-20180123.pdf Sochip S3 SoC Data Sheet V1.1]
+
** [https://files.pine64.org/doc/datasheet/pinecube/S3_Datasheet_V1.1-20180123.pdf Sochip S3 SoC Data Sheet V1.1]
  
 
* X-Powers AXP209 PMU (Power Management Unit) information:
 
* X-Powers AXP209 PMU (Power Management Unit) information:
** [http://files.pine64.org/doc/datasheet/pinecube/AXP209_Datasheet_v1.0en.pdf AXP209 PMIC datasheet]
+
** [https://files.pine64.org/doc/datasheet/pinecube/AXP209_Datasheet_v1.0en.pdf AXP209 PMIC datasheet]
  
 
* CMOS camera module information:
 
* CMOS camera module information:
** [http://files.pine64.org/doc/datasheet/pinephone/OV5640_datasheet.pdf OV5640 5MP CMOS Image Sensor SoC datasheet]
+
** [https://files.pine64.org/doc/datasheet/pinecube/CH-5A-DV-V2.0%20Specification.pdf PineCube Camera Module Specification]
 +
** [https://files.pine64.org/doc/datasheet/pinephone/OV5640_datasheet.pdf OV5640 5MP CMOS Image Sensor SoC datasheet]
  
 
* LCD touch screen panel information:
 
* LCD touch screen panel information:
Line 61: Line 65:
  
 
* WiFi/BT module information:
 
* WiFi/BT module information:
** [http://files.pine64.org/doc/datasheet/pinecube/rtl8189es.pdf RTL8189ES specification]
+
** [https://files.pine64.org/doc/datasheet/pinecube/rtl8189es.pdf RTL8189ES specification]
  
 
* GPIO Header Pinout: ([[:File:PineCube_GPIO.pdf|PDF]], [https://pine64.gami.ee/pinecube/gpio-pinout.html HTML])
 
* GPIO Header Pinout: ([[:File:PineCube_GPIO.pdf|PDF]], [https://pine64.gami.ee/pinecube/gpio-pinout.html HTML])
Line 70: Line 74:
 
=== Mainlining Efforts ===
 
=== Mainlining Efforts ===
  
 +
Please note:
 +
 +
* this list is most likely not complete
 +
* no review of functionality is done here, it only serves as a collection of efforts
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 85: Line 93:
 
| https://lkml.org/lkml/2020/9/22/1243
 
| https://lkml.org/lkml/2020/9/22/1243
 
| 5.9
 
| 5.9
 +
|-
 +
| Additional Fixes for AXP209 driver
 +
| https://lore.kernel.org/lkml/20201031182137.1879521-8-contact@paulk.fr/
 +
| ??
 +
|-
 +
| 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/
 +
| ??
 
|-
 
|-
 
!colspan="3"|U-boot
 
!colspan="3"|U-boot
 
|-
 
|-
|
+
| Type
|
+
| Link
|
+
| Available in version
 +
|-
 +
| PineCube Board Support
 +
| https://patchwork.ozlabs.org/project/uboot/list/?series=210044
 +
| expected in v2021.01
 
|-
 
|-
 
!colspan="3"|Buildroot
 
!colspan="3"|Buildroot
 
|-
 
|-
|
+
| No known mainlining efforts yet
 
|
 
|
 
|
 
|
 
|}
 
|}
 +
 +
 +
=== NixOS ===
 +
 +
* [https://github.com/danielfullmer/pinecube-nixos danielfullmer's Github]
 +
 +
 +
 +
=== Buildroot ===
 +
[https://elimo.io 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 [https://github.com/elimo-engineering/buildroot Elimo's GitHub account] and build instructions in the [https://github.com/elimo-engineering/buildroot/tree/pine64/pinecube/board/pine64/pinecube 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 [https://github.com/danielfullmer/pinecube-nixos 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.
  
  
Line 108: Line 146:
  
 
==== Stock Linux ====
 
==== Stock Linux ====
* [http://files.pine64.org/SDK/PineCube/PineCube%20Stock%20BSP-SDK%20ver1.0.7z Direct Download from pine64.org]
+
* [https://files.pine64.org/SDK/PineCube/PineCube%20Stock%20BSP-SDK%20ver1.0.7z Direct Download from pine64.org]
 
** MD5 (7zip file): efac108dc98efa0a1f5e77660ba375f8
 
** MD5 (7zip file): efac108dc98efa0a1f5e77660ba375f8
 
** File Size: 3.50GB
 
** File Size: 3.50GB
 
===== How to compile =====
 
===== How to compile =====
 +
 +
You can either setup a machine for the build environment, or use a Vagrant virtual machine provided by [https://elimo.io Elimo Engineering]
 +
 +
====== On a dedicated machine ======
  
 
Recommended system requirements:
 
Recommended system requirements:
Line 151: Line 193:
 
7z x 'PineCube Stock BSP-SDK ver1.0.7z'
 
7z x 'PineCube Stock BSP-SDK ver1.0.7z'
 
mv 'PineCube Stock BSP-SDK ver1.0' pinecube-sdk
 
mv 'PineCube Stock BSP-SDK ver1.0' pinecube-sdk
 +
cd pinecube-sdk/camdroid
 +
source build/envsetup.sh
 +
lunch
 +
mklichee
 +
make -j3
 +
pack
 +
</pre>
 +
 +
====== 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 [https://github.com/elimo-engineering/pinecube-sdk-vagrant Elimo Engineering repo] and follow the instructions in the [https://github.com/elimo-engineering/pinecube-sdk-vagrant/blob/main/README.md readme file]
 +
 +
After spinning up the VM, you just need to run the build:
 +
<pre>
 
cd pinecube-sdk/camdroid
 
cd pinecube-sdk/camdroid
 
source build/envsetup.sh
 
source build/envsetup.sh

Latest revision as of 19:49, 2 December 2020


PAGE UNDER CONSTRUCTION, INFO SUBJECT TO CHANGE


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


Datasheets for components and peripherals

  • LCD touch screen panel information:
  • Lithium battery information:

PineCube GPIO Pinout.png

Operating Systems

Mainlining Efforts

Please note:

  • this list is most likely not complete
  • no review of functionality is done here, it only serves as a collection of 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
Additional Fixes for AXP209 driver https://lore.kernel.org/lkml/20201031182137.1879521-8-contact@paulk.fr/ ??
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
No known mainlining efforts yet


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

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