Skip to content
On this page

SoM (System On Module)

Overview

olive™ SOM is a robotics optimized System on Module (SOM) that weighs only 5 grams, is capable of running both ROS and ROS 2 simultaneously and is the key to building high-performance, industry-leading software-defined robot hardware components.

Key features

  • 5 grams
  • 32 mm x 32 mm footprint
  • ROS and ROS 2-support
  • Debian-based. Production-grade software stack and OS included

Components

som1!

som2!

Layout

som4!

Technical Specification

TECH SPECSDETAILS
FORM FACTOR
Dimensions32mm x 32mm x 4mm
Weight5 grams
PROCESSOR UNIT
Application ProcessorDual Cortex-A7 up to 800 MHz
Real-Time ProcessorCortex-M4 MPU up to 200 MHz
MEMORY
On Chip (SoC)512 MB RAM
On Chip EEPROM (SoC)512 Bytes x 8
On SOMUp to 512 GByte SD Flash
CONNECTIVITY
High-Speed Connectivity1x Virtual Ethernet over USB-C (up to 0.5 Gbps)
Other I/O1x USB 2.0 Host, 2x UART, 2x I2C, 1x SPI, 8x ADC, 8x PWM
SOFTWARE
Yocto BSP available for batch purchasesLinux Kernel - Linux 5.10
Operating SystemDebian 11
Communication middlewareeProsima Fast DDS and Apache Cyclone DDS
Robotic Operating SystemsROS Noetic Ninjemys, ROS 2 Humble Hawksbill
POWER AND THERMAL
Power Consumption<1W (1.5 W max)
VoltageSingle 5.0v
Max Current300mA
Temperature RangeCommercial 0°C to 85°C / Industrial -40°C to +85°C

Hardware Quick Setup

SD card

Locate the 3-pos DIP switch on the SOM module. Before proceeding, it must be set to the 101 position. This configuration allows the SOM to boot from the SD card. Ensure the SD card is properly seated and secured.

som5!

som6!

Connect the SOM with a USB-C cable to your computer.

LEDs

Your System-on-Module (SOM) is equipped with five LEDs, designed to provide critical information about the system's status.

The two LEDs located on the sides are voltage indicators, which remain lit to signal the availability of power to the system. They provide assurance that the system is receiving adequate power supply.

Centrally located are three more LEDs, serving as the software status of the system.

The middlemost LED acts as the heartbeat of your system. Think of it as a health check; when it's flashing, you can be sure your system is alive and well.

Flanking this heart-beat LED on the sides are two user-related status indicators. You can control them according to your application.

These five LEDs, working together, ensure you always have a clear picture of your SOM's status and health.

som6!

Pin Description

som3!

Software Quick Setup

SSH

The main user of the SOM is "olive" and the password is "one". You can SSH to you SOM Virtual

ssh olive@10.42.0.7

Scan for I2C sensors

sudo i2c detect -y 1 is the first IMU sensor

0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- 28 -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- 28 -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

sudo i2c detect -y 2 is the second IMU sensor

0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

sudo i2c detect -y 3 is the Power Managment System + EEPROM + Barometer

0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- UU -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- 76 --
0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- UU -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- 76 --

USB Connection check

on you main computer try

ls usb

you should see the device in your USB connected device list as follows:

Bus 001 Device 010: ID 1d6b:0104 Linux Foundation Multifunction Composite Gadget
Bus 001 Device 010: ID 1d6b:0104 Linux Foundation Multifunction Composite Gadget

GPIO Scan

You can use this command to do GPIO Scan

sudo gpioinfo

gpiochip3 line 10: "led-dcm"  output  active-high [User]
gpiochip8 line 9: "led-heartbeat" output  active-high [Kernel]
gpiochip9 line 7: "led-user"  output  active-high [User]
gpiochip7 line 8: "reset button"  input  active-high [User]
gpiochip3 line 10: "led-dcm"  output  active-high [User]
gpiochip8 line 9: "led-heartbeat" output  active-high [Kernel]
gpiochip9 line 7: "led-user"  output  active-high [User]
gpiochip7 line 8: "reset button"  input  active-high [User]

sudo gpiodetect

gpiochip0 [GPIOA] (16 lines)
gpiochip1 [GPIOB] (16 lines)
gpiochip2 [GPIOC] (16 lines)
gpiochip3 [GPIOD] (16 lines)
gpiochip4 [GPIOE] (16 lines)
gpiochip5 [GPIOF] (16 lines)
gpiochip6 [GPIOG] (16 lines)
gpiochip7 [GPIOH] (16 lines)
gpiochip8 [GPIOI] (16 lines)
gpiochip9 [GPIOZ] (16 lines)
gpiochip0 [GPIOA] (16 lines)
gpiochip1 [GPIOB] (16 lines)
gpiochip2 [GPIOC] (16 lines)
gpiochip3 [GPIOD] (16 lines)
gpiochip4 [GPIOE] (16 lines)
gpiochip5 [GPIOF] (16 lines)
gpiochip6 [GPIOG] (16 lines)
gpiochip7 [GPIOH] (16 lines)
gpiochip8 [GPIOI] (16 lines)
gpiochip9 [GPIOZ] (16 lines)

Network Connection

Now you should see the SOM as a new network interface. To ensure connectivity try to ping the default ip address "10.42.0.7".

Additional examples

We have prepared several examples which you can see in our github page:

https://github.com/olive-robotics/olv_som_playground_py