Optimus Embedded Systems

Optimus Embedded Systems is here to embed your life!

Introducing one of the smallest, most upgradable, most complete SOM + carrier board combinations, featuring Raspberry Pi HAT expansion plus HDMI, MIPI, I2C, SPI, UART, GPIO, eMMC, and an onboard crypto chip. NOW sporting the Rockchip RK3399---the power you demand!

RK3399 Carrier Board & SOM
($175)
Single & Mass quantity units will now be available for pre-order as early as 09/02/19!

Introduction

We at Optimus Embedded would like to present the upcoming release of our Prime series line of embedded systems. We strive to deliver the best board configuration for a variety of levels in the embedded industry; whether it’s IOT based, Smart home, Smart Grid, Agriculture, Video Capture/Surveillance or Audio, Environmental Monitoring / Alarms, Stationary or Mobile. We include the base frameworks for industrial, military, agricultural, transport and many other industries in a compact board sized design that incorporates a variety of embedded peripheral attachments to allow you to build your applications upon for any given deployment scenario.

The RK3399 6-Core SOM’s (System on a Modules) in our dev kit is perfect for makers and developers.

The RK3399 SOM’s is loaded with features and the complete kit makes those features easier to access. The RK3399 SOM is powered by a Dual-core ARM Cortex-A72 MPCore processor and Quad-core ARM Cortex-A53 MPCore processor. It has 4GB DDR4 RAM and 64GB eMMC storage.  We found it hard to find a board with support for greater than one (1) MIPI/CSI camera so we included three (3) mipi csi camera ports. This means no multiplexed cameras or additional hardware to provide 360 degrees visibility. For connectivity, we found most systems only had Wi-Fi/Bluetooth or it was an add-on, so there are a plethora of wired and wireless options available. For wireless needs, the system rocks an Atheros 802.11 b/g/n/ac and Bluetooth 4.0 dual-mode BLE all with the built-in antenna, and a GSM/LTE Global services modem with GPS/GLONASS (on module).

The development board also adds a MicroSD slot for more storage, a GMAC 10/100/1000M Ethernet Controller; so whether wired and/or wireless, we have you covered. The SOM module itself is UPGRADE-ABLE, and in our future plans we will release more configurations. 

In today’s environment, we can’t forget about security. The system comes with the ATECC508A Secure Element for storing cryptographic keys, unique IDs, and supports the creation of FIPS random numbers. So you can provide crypto based security. You only find this in add-on boards from other vendors, and we understand today’s needs so we included it by default.

The OES Design

Prime S1 (Top w-SOM)
Prime Series 1 Top View
oes prime s1 angled
Prime Series 1 Angled Top View
oes prime s1 angled bottom
Prime Series 1 Angled Bottom View
Prime S1 Dimensions

Features

Software

The Prime Series 1 comes standard with Yocto and an up to date Linux kernel, but we also support: Ubuntu, Android, Windows Embedded ARM, & FreeBSD

Quad-core Processor

Built on the Rockchip RK3399 64-bit Dual-core ARM® Cortex-A72 MPCore processor and Quad-core ARM® Cortex-A53 MPCore processor

Security

Sporting a dedicated crypto chip that’s tamper-resistant and made for storing unique ID’s, FIPS random numbers, & cryptographic keys just to name a few

Extended Temperature Performance

The Prime Series is manufactured to perform in some of the harshest of temperatures; from -20 to +70 degrees Celsius

Storage & Performance

4 GB DDR4 RAM and an 64 GB eMMC (Note: The SOM itself is upgrade-able, and we have additional models coming available)

Connectivity

Why settle when you can have a complete Carrier Board & SOM like the Prime Series that rocks a:

  • Atheros 802.11 b/g/n/ac
  • Bluetooth 4.0 dual-mode BLE with the built-in antenna
  • GMAC 10/100/1000M Ethernet Controller
  • GSM/LTE Global services modem with GPS/GLONASS (on module)

Github

Access all the software we support on the OES Prime Series through our Github.  We offer a multitude of software options for you to get things going in our online repositories.

OTA

Our Over-The-Air Update (OTA) strategy is compatible with Mender, Balena, RUAC, and OSTree. We are also capable of running with our chosen OTA platform Uptane. To learn more about the various deployments for the previous mentioned methods, you will find the recipes for them in the various git repositories.

To provide a brief explanation of Uptane, Our implementation is based on OStree and Aktualizr, both open source projects, and we have started our commercial implementation for use, or you can deploy your own solution as with any of the methods previously discussed.

We have github repositories of the required recipes to integrate with our platform distribution.

Our Hardware

SPECIFICATIONS

CPU:

  • Rockchip RK3399
  • Dual-core ARM Cortex-A72 MPCore processor and Quad-core ARM Cortex-A53 MPCore processor, both are high-performance, low-power and cached application processor.
  • Two CPU clusters. Big cluster with dual-core Cortex-A72 is optimized for high-performance and little cluster with quad-core Cortex-A53 is optimized for low power.
  • Full implementation of the ARM architecture v8-A instruction set, ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerating media and signal processing
  • CCI500 ensures the memory coherency between the two clusters
  • Each Cortex-A72 integrates48KB L1 instruction cache and 32KB L1 data cache with 4-way set associative. Each Cortex A53 integrates 32KB L1 instruction cache and 32kB L1 data cache separately with 4-way set associative
  • 1MB unified L2 Cache for Big cluster, 512KB unified L2 Cache for Little cluster
  • Trustzone technology support

GPU:

  • ARM Mali-T860MP4 GPU, support OpenGL ES1.1/2.0/3.0, OpenCL1.2, DirectX11.1 etc
  • Embedded 4 shader cores with shared hierarchical tiler

Max Frequency: over 1.8GHz (Big cluster)

Memory:

  • Dynamic Memory Interface (DDR3/DDR3L/LPDDR3/LPDDR4): Compatible with JEDEC standard DDR3-1866 /DDR3L-1866 /LPDDR3-1866 /LPDDR4 SDRAM. Support 2 channels, each channel is 16 or 32bits data width. Support up to 2 ranks (chip selects) for each channel; totally 4GB(max) address space. Maximum address space of one rank in a channel is also 4GB, which is software-configurable
  • eMMC Interface: ully compliant with JEDEC eMMC 5.1and eMMC 5.0 specification. Supports HS400, HS200, DDR50 and legacy operating modes.
  • SD/MMC Interface: There are 2 MMC interfaces which can be configured as SD/MMC or SDIO. Compatible with SD3.0, MMC ver4.51, in which MMC2 (eMMC controller) supports full disk encryption

Storage: 64 GB eMMC
Wi-Fi: 802.11 b/g/n
Bluetooth: 4.0 dual-mode BLE

Supply Voltage: VDD-IO: 3-6 V | Core: 1.1-1.3 V
Operating Temp: -20…+70 °C
Storage Temp: -40…+85 °C
GPIO: x40
Internal Antenna: Onboard ceramic
External Antenna: U.FL connector (optional)

Product brief (PDF) – Coming Soon

Prime Series 1 Carrier Board I/O

OES Documentation

OES Prime S1 Carrier Board & SOM made for DIY enthusiasts, and embedded hardware startups/companies.


Developer kits

Included in each Prime Series Development kit is:

  • Prime Carrier Board
  • Prime SOM
  • Heatsink
  • microUSB to USB 2.0 Type A cable
  • USB 2.0 OTG to microUSB 

To get started with the OES Prime S1, you’ll need to flash it with a Linux image.  You can download our latest development image by clicking the Github icon below:


!!! IMPORTANT

Do not wait for the OES Prime S1 tests when using the flasher; instead, unplug your Prime S1 after you see the flashing progress bar.

The OES Prime S1 Dev Kit includes a heat-sink; which can be attached to the bottom left corner of the SOM.

Flash Your Prime S1

To flash your Prime S1 you’ll need to boot it in a flashing (FEL) mode.

Entering flashing (FEL) mode

  • Plug your Prime S1 into your PC using the provided (or any) microUSB USB to provide power
  • Press and hold the UBOOT button
  • Press and release the RESET button
  • Release the UBOOT button

You can also enter flashing mode by holding the UBOOT button and plugging in the microUSB cable at the same time.

OES Prime S1 Flasher

The OES Prime S1 Manufacturing Flash Tool will be available for use by the time your Prime S1 arrives, via the OES Github.

Rockchip RK3399 is a Dual-core ARM Cortex-A72 MPCore processor and Quad-core ARM Cortex-A53 MPCore processor that is currently used on OES Prime S1.

RK3399 Features

CPU:

  • Dual-core ARM Cortex-A72 MPCore processor and Quad-core ARM Cortex-A53 MPCore processor, both are high-performance, low-power and cached application processor.
  • Two CPU clusters. Big cluster with dual-core Cortex-A72 is optimized for high-performance and little cluster with quad-core Cortex-A53 is optimized for low power.
  • Full implementation of the ARM architecture v8-A instruction set, ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerating media and signal processing
  • CCI500 ensures the memory coherency between the two clusters
  • Each Cortex-A72 integrates48KB L1 instruction cache and 32KB L1 data cache with 4-way set associative. Each Cortex A53 integrates 32KB L1 instruction cache and 32kB L1 data cache separately with 4-way set associative
  • 1MB unified L2 Cache for Big cluster, 512KB unified L2 Cache for Little cluster
  • Trustzone technology support

GPU:

  • ARM Mali-T860MP4 GPU, support OpenGL ES1.1/2.0/3.0, OpenCL1.2, DirectX11.1 etc
  • Embedded 4 shader cores with shared hierarchical tiler

Max Frequency: over 1.8GHz (Big cluster)

Memory:

  • Dynamic Memory Interface (DDR3/DDR3L/LPDDR3/LPDDR4): Compatible with JEDEC standard DDR3-1866 /DDR3L-1866 /LPDDR3-1866 /LPDDR4 SDRAM. Support 2 channels, each channel is 16 or 32bits data width. Support up to 2 ranks (chip selects) for each channel; totally 4GB(max) address space. Maximum address space of one rank in a channel is also 4GB, which is software-configurable
  • eMMC Interface: ully compliant with JEDEC eMMC 5.1and eMMC 5.0 specification. Supports HS400, HS200, DDR50 and legacy operating modes.
  • SD/MMC Interface: There are 2 MMC interfaces which can be configured as SD/MMC or SDIO. Compatible with SD3.0, MMC ver4.51, in which MMC2 (eMMC controller) supports full disk encryption

Documentation

Rockchip RK3399
Download Data sheet

What is flashing (FEL) mode?

FEL is a low-level subroutine that implements a special USB protocol for initial programming and recovery of devices. It is stored in the BootROM, write-protected flash inside the chip.  BootROM contains the very first code which is executed by the Rockchip devices.

Note: Your device needs to be attached to a host by using a USB cable, connected to a port where your device appears as a USB slave (USB-OTG port on your OES Prime S1).

How to make the Rockchip boot into FEL mode?

When your device boots up, it first executes the very first instructions in BROM. It jumps to eGON.BRM address where some low-level procedures are performed to set up CPU, clocks, etc. After that the FEL pin is checked:

  • If it is low, then your device enters FEL mode.
  • If the pin is high, it tries to boot from the media devices.

Note: If a device fails to boot from the media device (MMC or internal NAND flash), FEL mode is also triggered.

There are many ways of entering FEL mode:

  • By pressing a special button.
  • Using a special SD card image which just jumps to FEL.
  • By having no valid boot image.

Note: The FEL pin by default is pulled high.  However, when you push ‘U-BOOT’ button on
your OES Prime S1 Devboard, the pin becomes low.

How do we flash software?

We’re loading a minimal Linux image through the FEL protocol. This image only exports eMMC as a mass storage device. This way we can flash eMMC.

Boot sequence

Generally, the Rockchip device tries to boot in the following order if FEL pin is high:

* SD Card0 also known as MMC0
* Internal NAND flash also known as eMMC
* SD Card2 also known as MMC2
* SPI connected NOR flash also known as SPI
* If all above fails to boot, FEL is executed

If Magic signature is found at the right location on either MMC or eMMC, the BROM will try to load U-Boot, which in turn loads the Linux kernel.

Connection with internal USB to UART converter

OES Prime devboard has a USB-Serial converter. To enable it set a jumper on UART pins (URX0 and UTX0) and plug in Micro-USB cable to POWER CONSOLE port on OES Prime.

Connection with external USB to UART converter

You can connect to OES Prime using an external USB to UART converter. This example covers connection with CP2102
controller, but any other applicable devices may be also used. You need to attach URX0 pin to TXD, UTX0 to RXD and GND to GND like it is demonstrated in the picture below.

To connect over serial and see Linux booting over the serial port you need to follow a couple of simple steps.

Linux/MacOS

Find the name of USB device

With a USB-Serial adapter plugged in, you can get a list of all available devices:

On Linux:


ls /dev/ttyUSB*

Example output:


/dev/ttyUSB0
/dev/ttyUSB1

On MacOS:


ls /dev/cu.*

Example output:


/dev/cu.Bluetooth-Incoming-Port
/dev/cu.SLAB_USBtoUART

Look for SLAB_USBtoUART on MacOS or ttyUSB on Linux.

Connect:


screen /dev/tty.SLAB_USBtoUART 115200

 

#### Login

At the login prompt, type “`root“` and press Enter.

### Windows

– Download and install PuTTy terminal emulator.
– In Device Manager find your COM port.

 

In this example it is “`COM1“`.

– Serial line __COM#__
– Speed __115200__
– Connection type __Serial__

 

Click open, at the login prompt, type “`root“` and press Enter.:

OES Prime Dev Board has a USB OTG port which allows connecting your PC to OES Prime using a USB cable.

You will see a new Ethernet interface, OES Prime IP address is “`192.168.2.15“`.

On Linux:

“`bash

enp0s20u1u4u1 Link encap:Ethernet HWaddr a6:4b:bf:d4:03:1b
inet addr:192.168.2.161 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::5228:9764:110d:2ec4/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:81 errors:0 dropped:0 overruns:0 frame:0
TX packets:43 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:12785 (12.7 KB) TX bytes:5780 (5.7 KB)
“`

On MacOS:

“`bash

en7: flags=8863<up,broadcast,smart,running,simplex,multicast> mtu 1500
options=4
ether c2:91:38:b8:e7:ac
inet6 fe80::4a6:5d6e:629c:ef67%en7 prefixlen 64 secured scopeid 0x10
inet 192.168.2.85 netmask 0xffffff00 broadcast 192.168.2.255
nd6 options=201<performnud,dad>
media: autoselect (100baseTX )
status: active</performnud,dad></up,broadcast,smart,running,simplex,multicast>

“`

On Windows:

Not supported yet.

### Connect

Now you can connect to OES Prime over ssh, use a terminal emulator for it:

“`bash
user@PC:~# ssh root@192.168.2.15
Warning: Permanently added ‘192.168.2.15’ (ECDSA) to the list of known hosts.
Last login: Thu Jun 28 14:43:56 2018 from 192.168.2.25
root@OES Prime-S1:~#

Configuring and activating a network

OES Prime image comes with pre-installed NetworkManager so that you can use nmcli console tool to manage your wifi connections.

Firstly, log into your OES Prime via serial console or ethernet to add the network.

root@OES Prime-S1:~#

You can list all available networks by typing:


nmcli device wifi list

It produces the output similar to this:


*  SSID                   MODE   CHAN  RATE       SIGNAL  BARS  SECURITY
*  EML33T2                Infra  11    54 Mbit/s  79      ***   WPA2
   DIRECT-wBM2070 Series  Infra  11    54 Mbit/s  64      ***   WPA2
   MTS_FREE_SPB           Infra  6     54 Mbit/s  50      **

If your network is using WPA2 security, type:


sudo nmcli device wifi connect "NETWORK_SSID" password "NETWORK_PASSWORD"

If you need to connect to an open network, leave the password parameter empty:


sudo nmcli device wifi connect "NETWORK_SSID"

The more detailed information about nmcli tool, its parameters and connecting to the hidden or
802.1X networks is available on nmcli tool page.

After connecting to a network, the following message will appear:


Device 'wlan0' successfully activated with 'd6bd78ac-2ff9-42b5-96d1-d984fb4ee852'

You need to find OES Prime IP address:


ip addr show wlan0

Output:

3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel qlen 1000
    link/ether b0:f1:ec:02:17:4c brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.170/24 brd 192.168.1.255 scope global dynamic wlan0
       valid_lft 4235sec preferred_lft 4235sec
    inet6 fe80::b09a:b317:36e2:7608/64 scope link
       valid_lft forever preferred_lft forever

In this case, the IP address is 192.168.1.170.

You can connect to OES Prime via ssh, the internet connection is available now:

Connecting to OES Prime

On Linux/MacOS:

Use a terminal emulator to ssh:

user@PC:~# ssh root@192.168.1.170
Warning: Permanently added '192.168.1.170' (ECDSA) to the list of known hosts.
Last login: Thu Jun 28 14:43:56 2018 from 192.168.2.25
root@OES Prime-S1:~#

On Windows:

Download and install PuTTy terminal emulator.

Click open, at the login prompt, type “`root“` and press Enter.

OES Prime Developer Board has an internal 10/100 Ethernet PHY which allows connecting OES Prime to your PC using an Ethernet cable.

You need to set IP addresses to your PC and OES Prime.

Configuration

Linux/MacOS

OES Prime configuration:

MachineIP address
OES Prime192.168.10.1
Linux/MacOS PC192.168.10.2

Stop NetworkManager to release the Ethernet interface for configuration:

root@OES Prime-S1:~# systemctl stop Networkmanager

!!! warning
Connect to OES Prime via USB-console or USB-ethernet, WiFi is managed by NetworkManager

You need to set an IP address using ifconfig utility:

root@OES Prime-S1:~# ifconfig eth0 192.168.10.1

Linux/MacOS PC configuration:

Open a terminal emulator.

Linux:

Stop NetworkManager if this service is active:

user@your-PC:~# systemctl stop Networkmanager

You need to figure out the name of your Ethernet interface, enter ifconfig to display the list of network interfaces:

user@your-PC:~# ifconfig
enp3s0    Link encap:Ethernet  HWaddr f4:4d:30:63:66:cc
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:89634 errors:0 dropped:0 overruns:0 frame:0
          TX packets:255539 errors:2 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:6175002 (6.1 MB)  TX bytes:382632602 (382.6 MB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:1814 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1814 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:155499 (155.4 KB)  TX bytes:155499 (155.4 KB)

wlp2s0    Link encap:Ethernet  HWaddr b8:81:98:e1:31:b5
          inet addr:192.168.1.172  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::3dd3:120f:9b5d:cd14/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:28220 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2779 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3165893 (3.1 MB)  TX bytes:591665 (591.6 KB)

In this case, enp3s0 is the Ethernet interface. You need to assign an IP address.

user@your-PC:~# ifconfig enp3s0 192.168.10.2

MacOS:

user@your-PC:~# ifconfig
...
utun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 2000
    inet6 fe80::78ea:1df0:6885:51e1%utun0 prefixlen 64 scopeid 0xa
    nd6 options=201<PERFORMNUD,DAD>
en37: flags=8823<UP,BROADCAST,SMART,SIMPLEX,MULTICAST> mtu 1500
    options=3<RXCSUM,TXCSUM>
    ether 3c:1e:04:f3:a0:21
    nd6 options=201<PERFORMNUD,DAD>
    media: autoselect (<unknown type>)
    status: inactive
user@your-PC:~# ifconfig en37 192.168.10.2

Connection established, OES Prime and Your PC are in one local network.

user@your-PC:~# ping 192.168.10.1
64 bytes from 192.168.10.1: icmp_seq=1 ttl=64 time=7.03 ms
64 bytes from 192.168.10.1: icmp_seq=2 ttl=64 time=3.59 ms
64 bytes from 192.168.10.1: icmp_seq=3 ttl=64 time=3.47 ms
64 bytes from 192.168.10.1: icmp_seq=4 ttl=64 time=4.13 ms
...
root@OES Prime-S1:~# ping 192.168.10.2
64 bytes from 192.168.10.2: icmp_seq=1 ttl=64 time=3.56 ms
64 bytes from 192.168.10.2: icmp_seq=2 ttl=64 time=5.35 ms
64 bytes from 192.168.10.2: icmp_seq=3 ttl=64 time=6.24 ms
64 bytes from 192.168.10.2: icmp_seq=4 ttl=64 time=5.98 ms
...

Windows

Windows Settings -> Network & Internet -> Ethernet

Related settings -> Change adapter options

Choose your Ethernet interface and click twice. You need to figure out your IP address.

In this case, IP address is `169.254.146.210`. OES Prime address must be different, it could be `169.254.146.211`, for example.

OES Prime configuration:

Stop `NetworkManager` to release the Ethernet interface for configuration:
“`bash
root@OES Prime-S1:~# systemctl stop Networkmanager

“`

!!! warning
Connect to OES Prime via USB-console or USB-ethernet, WiFi is managed by NetworkManager

You need to set an IP address using `ifconfig` utility:

“`
root@OES Prime-S1:~# ifconfig eth0 169.254.146.211
“`

Connection established, OES Prime and Your PC are in one local network.

“`bash
root@OES Prime-S1:~# ping 169.254.146.210
64 bytes from 169.254.146.210: icmp_seq=1 ttl=64 time=6.03 ms
64 bytes from 169.254.146.210: icmp_seq=2 ttl=64 time=4.41 ms
64 bytes from 169.254.146.210: icmp_seq=3 ttl=64 time=5.37 ms
64 bytes from 169.254.146.210: icmp_seq=4 ttl=64 time=4.33 ms

“`

Access our example connections documentation using the associated links below:

Download your desired software image by clicking on the Github icon to the right.

Currently available software images

  • Linux-Debian / Ubuntu
  • Yocto
  • Armbian
  • Android
  • Windows Embedded 
  • FreeBSD / HardendBSD 

 

Support for additional software images is also available via the OES Github.  Check back frequently.

Manufacturing

Know The Prime Series Is Available!

The OES Team has got you covered!  The Prime Series is ready to be ordered, manufactured, and shipped to your destination.  No need to worry about the Prime Series being out of stock…we’ve planned support strategically to ensure we’re able to support our customers and their needs.

Get In Touch

OES Privacy Policy

Email: info@optimus-es.com

Address: 6564 Loisdale Ct., STE 600, Springfield, VA 22150

Subscribe

* indicates required

Please select all the ways you would like to hear from Optimus Embedded Systems:

You can unsubscribe at any time by clicking the link in the footer of our emails. For information about our privacy practices, please visit our website.

We use Mailchimp as our marketing platform. By clicking below to subscribe, you acknowledge that your information will be transferred to Mailchimp for processing. Learn more about Mailchimp's privacy practices here.