View Source ODYSSEY - STM32MP157C Support

This is the base Nerves System configuration for the ODYSSEY - STM32MP157C.

ODYSSEY - STM32MP157C This image is from Seeed.

FeatureDescription
CPU650MHz Dual-core Arm-Cortex-A7 with Cortex-M4 integrated
Memory512MB DDR3 RAM
Storage4GB EMMC and MicroSD
Linux kernel5.10 w/ RCN patches
IEx terminalUART ttySTM0
GPIO, I2C, SPIYes - Elixir Circuits
ADCNo
PWMYes, but no Elixir support
UARTttySTM0, ttySTM2
DisplayMIPI DSI display interface, not supported yet
CameraDVP camera interface, not supported yet
EthernetYes (eth0)
WiFiYes (wlan0)
BluetoothYes (hci0), not confirmed yet
Audio3.5mm audio interface, not supported yet
RTC3VRTC 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 ttyname as serialdts infodts infofor what
ttySTM0serial00x40010000uart4for debug uart besides barrel jack
ttySTM1serial10x5c000000usart1for AP6236, so can't be used
ttySTM2serial20x4000e000usart2for 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.

Can't use GPIO_B2