View Source ODYSSEY - STM32MP157C Support
This is the base Nerves System configuration for the ODYSSEY - STM32MP157C.
This image is from Seeed.
Feature | Description |
---|---|
CPU | 650MHz Dual-core Arm-Cortex-A7 with Cortex-M4 integrated |
Memory | 512MB DDR3 RAM |
Storage | 4GB EMMC and MicroSD |
Linux kernel | 5.10 w/ RCN patches |
IEx terminal | UART ttySTM0 |
GPIO, I2C, SPI | Yes - Elixir Circuits |
ADC | No |
PWM | Yes, but no Elixir support |
UART | ttySTM0, ttySTM2 |
Display | MIPI DSI display interface, not supported yet |
Camera | DVP camera interface, not supported yet |
Ethernet | Yes (eth0) |
WiFi | Yes (wlan0) |
Bluetooth | Yes (hci0), not confirmed yet |
Audio | 3.5mm audio interface, not supported yet |
RTC | 3VRTC battery interface |
using
Using
This port currently only runs off a SD card.
The most common way of using this Nerves System is create a project with mix nerves.new
and add stm32mp157c_odyssey
references where needed and in a similar way
to the default systems like bbb
, etc. Then export MIX_TARGET=stm32mp157c_odyssey
.
See the Getting started guide
for more information.
If you need custom modifications to this system for your device, clone this repository and update as described in Making custom systems.
networking
Networking
The board has one 1 Gbps Ethernet interface and one WiFi interface. Here's an example :vintage_net
configuration that enables both of them:
For WiFi configuration, see. https://hexdocs.pm/vintage_net/cookbook.html#normal-password-protected-wifi-wpa2-psk
config :vintage_net,
regulatory_domain: "US",
config: [
{"eth0", %{type: VintageNetEthernet, ipv4: %{method: :dhcp}}},
{"wlan0", %{type: VintageNetWiFi}}
]
serial
Serial
This board has one uart and two usart.
name as tty | name as serial | dts info | dts info | for what |
---|---|---|---|---|
ttySTM0 | serial0 | 0x40010000 | uart4 | for debug uart besides barrel jack |
ttySTM1 | serial1 | 0x5c000000 | usart1 | for AP6236, so can't be used |
ttySTM2 | serial2 | 0x4000e000 | usart2 | for raspi compatible uart |
gpio
GPIO
GPIO pins for circuits_gpio can be calculated according to the following formula,
pin number = <gpio chip name> * 16 + offset
# gpio chip name is A as 0, B as 1 ...
So pin number of below image GPIO_H12 is 124, 7 * 16 + 12.

known-limitations
Known limitations
eth0-mac-address-changes-at-each-boot
eth0 MAC address changes at each boot
This is because the vendor does not provide it.
can-t-read-input-when-using-circuits_gpio
Can't read input when using circuits_gpio
See below issue.
Can't read input until after the output has been configured once when using circuits_gpio
can-t-use-gpio_b2
Can't use GPIO_B2
This is because uart4 rx uses it. See below issue.