Orange Pi One and Lite are H3 based development boards produced by Xunlong.

The One is clearly Orange Pi PC's little/smaller sibling. Compared to the PC the following is different: smaller size, 512MiB instead of 1GiB DRAM (still two DDR3L modules making use of the full 32 bit memory bandwidth), 2 USB host ports aren't exposed and the following is also missing: CIR receiver, microphone and TRRS jack for Audio/CVBS video.

The Lite features RTL8189FTV WiFi (shipping with a small external antenna connected to the u.FL connector between the USB ports), saves the Ethernet port but regains one more USB port, CIR receiver and microphone.

Xunlong chose a different voltage regulator on these two boards that requires software adjustments to get dynamic voltage frequency scaling (dvfs) working. Apart from that Xunlong tried to keep both small boards as compatible as possible to the PC so that all OS images for the PC work with One and Lite with just two drawbacks: Non functional dvfs without fex file adjustments and no WiFi without new drivers on the Lite.

Identification

OPi One PCB has the following silkscreened on it:

Orange Pi One V1.1

Orange Pi Lite shows:

Orange Pi Lite V1.1

Sunxi support

Current status

The H3 chipset support for Orange Pi One & Lite has been included in mainline kernels since 4.2. Most of the board functionality works out of the box, but support for many features has been added rather recently, which means that a fairly recent kernel version is required. Some features (hw accelerated crypto, graphics/video features, thermal, and DVFS) are still being worked on. For a more comprehensive list of supported features, see the status matrix for mainline kernels. In addition, legacy 3.4 kernels are available in various work-in-progress git branches.

Manual build

You can build things for yourself by following our Manual build howto and by choosing from the configurations available below.

U-Boot

Mainline U-Boot

Use the orangepi_one or orangepi_lite (supported since v2016.05/v2016.09) build target. The U-Boot repository and toolchain is described in the Mainline U-Boot howto.

The H3 boards can boot from SD, eMMC, NAND or NOR flash (if available), and via FEL using the OTG USB port. In U-Boot, loading the kernel is also supported from USB or ethernet (netboot). HDMI support in U-Boot is still WIP.

Use the .fex file for generating script.bin.
Armbian maintains a bunch of 3.4.x patches for H3 devices. There you can also find the necessary patch set to support the new 8189FTV WiFi chip on the Lite.

Since the manufacturer did not provide new fex files when Orange Pi One has been released in early 2016 you might want to use Armbian's (community developed) fex files: orangepione.fex and orangepilite.fex since they support the different voltage regulator on these boards, the new WiFi chip on the Lite and implement community derived improved THS settings (dynamic voltage frequency scaling and optimized thermal/throttling settings -- look at the dvfs_table and cooler_table sections in the fex files above).

When booting the legacy 3.4 kernel with the mainline U-Boot, add the following line to boot.cmd:

Mainline kernel

The H3 SoC is supported by the mainline kernels. For cpufreq, thermal, and HDMI, a) third party patches or b) a pre-patched distro (e.g. Armbian) is needed. Although the ethernet port is accessible in U-Boot, the kernel support has stabilized only recently in kernel 4.15.

The development process, links to patches and links to kernel fork repositories are listed on the Linux mainlining effort page. Patches can also be found from the arm-linux mailing list.

Use the sun8i-h3-orangepi-one.dtb or sun8i-h3-orangepi-lite.dtb device-tree binary.

Expansion Port

The Orange Pi One & Lite both have a Raspberry Pi model B+ compatible 40-pin, 0.1" connector with several low-speed interfaces. Warning: The header's orientation on these 2 boards is 180°, please check 'pin 1' marking carefully (especially if you plan to insert power through GPIO header)

2x20 Header

1

3.3V

2

5V

3

PA12 (TWI0_SDA/DI_RX/PA_EINT12)

4

5V

5

PA11 (TWI0_SCK/DI_TX/PA_EINT11)

6

GND

7

PA6 (SIM_PWREN/PWM1/PA_EINT6)

8

PA13 (SPI1_CS/UART3_TX/PA_EINT13)

9

GND

10

PA14 (SPI1_CLK/UART3_RX/PA_EINT14)

11

PA1 (UART2_RX/JTAG_CK/PA_EINT1)

12

PD14

13

PA0 (UART2_TX/JTAG_MS/PA_EINT0)

14

GND

15

PA3 (UART2_CTS/JTAG_DI/PA_EINT3)

16

PC4

17

3.3V

18

PC7

19

PC0 (SPI0_MOSI)

20

GND

21

PC1 (SPI0_MISO)

22

PA2 (UART2_RTS/JTAG_DO/PA_EINT2)

23

PC2 (SPI0_CLK)

24

PC3 (SPI0_CS)

25

GND

26

PA21 (PCM0_DIN/SIM_VPPPP/PA_EINT21)

27

PA19 (PCM0_CLK/TWI1_SDA/PA_EINT19)

28

PA18 (PCM0_SYNC/TWI1_SCK/PA_EINT18)

29

PA7 (SIM_CLK/PA_EINT7)

30

GND

31

PA8 (SIM_DATA/PA_EINT8)

32

PG8 (UART1_RTS/PG_EINT8)

33

PA9 (SIM_RST/PA_EINT9)

34

GND

35

PA10 (SIM_DET/PA_EINT10)

36

PG9 (UART1_CTS/PG_EINT9)

37

PA20 (PCM0_DOUT/SIM_VPPEN/PA_EINT20)

38

PG6 (UART1_TX/PG_EINT6)

39

GND

40

PG7 (UART1_RX/PG_EINT7)

Tips, Tricks, Caveats

FEL mode

Both boards will fail over to FEL mode if it doesn't detect a card present in the µSD slot. There is no dedicated FEL button.

Compatibility

Since Xunlong didn't provide new OS images with Orange Pi One's release users try to use images/settings for Orange Pi PC. While this seems to work and Ethernet and USB are functional on the One the logs get flooded with "ARISC ERROR" messages due to a different voltage regulator (full log):

On the Orange Pi PC the SY8106A is accessible through I2C and the H3's AR100 OpenRISC core tries to adjust the CPU core voltage (VDD_CPUX) this way. On One and Lite a different voltage regulator is used: the SY8113B (datasheet) is a step-down converter that can adjust its output voltage driven by two resistors. According to Xunlong staff on OPi One this is used to switch between 1.1V at 624 MHz and 1.3V at every cpufreq above. Users that looked a little bit closer discovered that the similar AX3833 is used on the first batch of boards instead (see Gallery and link to datasheet below).

To get reliable performance/thermal behaviour with OS images that use legacy 3.4.x kernels adopted fex settings are needed. Please have a look in the aforementioned fex files from Armbian that implement this correctly. Same regarding WiFi: Please see above where to get the necessary patches to get RTL8189FTV up and running (the good news: since OpenELEC team who fixed the drivers relied on 8189es driver already ported to mainline the necessary fixes can be easily used to get WiFi working with kernel 4.x too)

CPU clock speed limit

Xunlong advertises both boards as being only capable of running at 'up to 1.2GHz'. Since the SY8113B/AX3833 voltage regulator should only be able to switch between 1.1V and 1.3V this would prevent clocking the SoC higher than 1200MHz according to the common comments in the FEX files from various H3 SDK variants:

DRAM clock speed limit

DRAM is clocked at 672 MHz by the hardware vendor. But the reliability still needs to be verified. One of the ways of doing reliability tests may be https://github.com/ssvb/lima-memtester/releases/tag/20151207-orange-pi-pc-fel-test (developed for Orange Pi PC). An adoption of this using a fex file suited for Orange Pi One's/Lite's different voltage regulator is available here (md5sum: e600db41f94446bb77224223fc1dc2a0 fel-boot-lima-memtester-on-orange-pi-one-v3.tgz). Use the fel-boot-lima-memtester-on-orange-pi-one script inside to test both boards.

We need still more test results in the table above in order to have more accurate statistics and finally pick a safe default DRAM clock speed for U-Boot. Preferably there should be at least 10 entries in the table (more is always better). And there are no "good" or "bad" test results. Even if your result looks very similar to the already reported results from the other people, please still add yours to the table! Because if people don't feel like reporting their "boring" results, then "interesting" outliers will unfortunately skew the statistics. Thanks!

DRAM clock speed limit (automated statistical analysis)

Below is an intermediate analysis of the currently reported results, using the lima-memtester-genchart script (run the script using this page URL as the command line argument). Assuming that the Gaussian distribution is a good approximation, try to predict what percentage of boards is expected to pass the lima-memetser test at different DRAM clock frequencies. The lima-memtester page provides more information.

↑
If nothing is known about the distribution of samples, then at least
Chebyshev's inequality
can be used to get a rough idea about the probabilities of encountering reliability
problems at different DRAM clock speeds. But this method is very conservative
and substantially overestimates probabilities (being too generic has its price).

↑
We can assume that the Gaussian distribution
is a good approximation for our experimental data, calculate theoretical probabilities and do an
exact test of goodness-of-fit
to see if the experimental data does not contradict with the theory.
There is a nice XNomial
library for R, which can do the job:

P value (LLR) = 0.5308
P value (Prob) = 0.603
P value (Chisq) = 0.698

If the p-values listed above happen to be too low
(less than 0.05) and reject our null hypothesis
about having the Gaussian distribution, then Chebyshev's inequality estimates still can be used.

Camera module

Xunlong sells also a cheap 2MP camera (an attempt to fix the driver's limited resolutions can be found here). Unlike Orange Pi Plus/2 that can directly connect to the camera module for the Orange Pi PC/One/Lite an 'expansion board' is needed (see gallery below). If you order from Xunlong simply tell them that you need the camera for Orange Pi One or Lite and they ship camera together with the small board.

HDMI to DVI converters

When trying to use HDMI to DVI converters with Allwinner's 3.4.x kernel for H3/R16/A83T/H8/R58 a small fix has to be applied. The fex file has to be modified (and converted back to script.bin afterwards) so that the following has been added to the [hdmi_para] section:

hdcp_enable = 0
hdmi_cts_compatibility = 1

Orientation of the GPIO header

Due to the position of USB and/or Ethernet jacks Xunlong chose to rotate the 40 pin GPIO connector by 180° so RPi HATs can still be used but will project over the board in the opposite direction than intended. Keep this also in mind when you want to power the board through GPIO pins 2/4/6 (2/4 being connected directly with DC-IN and 6 being GND)

Adding ports/connectors that are missing

On the One the two missing USB ports, analog audio out, microphone, CIR receiver and TV out are still available for people with soldering skills. Have a look into the gallery below or in the aforementioned thread for details. Same applies to the one missing USB port, analog audio out and TV out on the Lite

Locating the UART

The UART pins are located next to Ethernet / USB jack on the boards. They are marked as TX, RX and GND on the PCB. Just attach some leads according to our UART Howto.

OS images

At the moment only OS images relying on Allwinner's 3.4.x BSP kernel are available for the boards. Most of them suffer from wrong settings for the different voltage regulator used on One and Lite, the only known exceptions are currently the Armbian images and OpenELEC for both boards and WiFi support for the Lite. Xunlong also released a new Android image for the Lite that should support the new WiFi chip and also work with the One (just based on assumptions and not tested).

In case you want to use other OS images with One and Lite be prepared to adjust fex settings to get thermal/performance settings right, that you need a kernel patch for the new WiFi module on the Lite and that all OS images except OpenELEC/Armbian use a horribly outdated kernel version 3.4.39 missing tons of fixes.