Skip to content

Commit

Permalink
Merge branch 'main' of github.com:umts/embedded-departure-board into …
Browse files Browse the repository at this point in the history
…stop_414
  • Loading branch information
bandogora committed Jan 29, 2025
2 parents aac325a + 4d3ad39 commit 4b1706b
Show file tree
Hide file tree
Showing 18 changed files with 288 additions and 255 deletions.
12 changes: 11 additions & 1 deletion app/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,19 @@ set(EXTRA_CONF_FILE ${CMAKE_CURRENT_SOURCE_DIR}/sign.conf)
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
project(embedded-departure-board)

# Generate hex files from pem files
set(gen_dir ${ZEPHYR_BINARY_DIR}/include/generated/)
zephyr_include_directories(${gen_dir})

generate_inc_file_for_target(
app
keys/public/jes-contact-root-r4.pem
${gen_dir}/jes-contact-root-r4.pem.hex
)

target_include_directories(app PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
FILE(GLOB_RECURSE app_sources src/*.c)
target_sources(app PRIVATE ${app_sources})
target_compile_definitions(app PRIVATE _POSIX_C_SOURCE=200809L)

target_compile_definitions(app PRIVATE _POSIX_C_SOURCE=200809L)
SET_SOURCE_FILES_PROPERTIES( ${app_sources} APPEND PROPERTIES COMPILE_FLAGS -fanalyzer )
77 changes: 63 additions & 14 deletions app/Kconfig
Original file line number Diff line number Diff line change
@@ -1,58 +1,107 @@
menu "Embedded Departure Board"
source "Kconfig.zephyr"

#### LED DISPLAY TEST SETTINGS ####
config LED_DISPLAY_TEST
bool "Select to run LED display test instead of main application"

#### STOP SETTINGS ####
config STOP_ID
string "Bus stop ID"

config STOP_MAX_ROUTES
int "Maximum number of routes expected at the configured stop"
default 6

config ROUTE_MAX_DEPARTURES
int "Maximum number of departures expected for EACH route"
default 4

#### SIGN SETTINGS ####

config UPDATE_STOP_FREQUENCY_SECONDS
int "The frequency at which stop departure times are updated in seconds"
default 30

config NUMBER_OF_DISPLAY_BOXES
int "The number of display boxes connected to the sign"
default 6

config MAX_TIME_INACTIVE_BEFORE_RESET_MS
int "Maximum amount of time the system can remain inactive before it resets in milliseconds"
default 60000

config STOP_REQUEST_INFOPOINT
bool "Select if JSON feed is directly from InfoPoint servers"
#### LIGHT_SENSOR SETTINGS ####

config STOP_REQUEST_HOSTNAME
string "Hostname used to retrieve stop data"
config LIGHT_SENSOR
bool "Enable I2C ambient light sensor"
default y

config STOP_REQUEST_PATH
string "Path used to retrieve stop data"
#### HTTP stop request settings ####

config STOP_JSON_BUF_SIZE
int "Defines the max size for stop JSON response body receive buffer"
default 20480

## BUSTRACKER ##
config STOP_REQUEST_BUSTRACKER
bool "Use BusTracker InfoPoint servers to fetch JSON feed"

config STOP_REQUEST_BUSTRACKER_USE_TLS
bool "Use TLS (HTTPS) when connecting to BusTracker InfoPoint servers"
depends on STOP_REQUEST_BUSTRACKER
default y if STOP_REQUEST_BUSTRACKER

config STOP_REQUEST_BUSTRACKER_HOSTNAME
string "BusTracker server hostname used to retrieve stop data"
depends on STOP_REQUEST_BUSTRACKER

config STOP_REQUEST_BUSTRACKER_PATH
string "BusTracker server path used to retrieve stop data"
depends on STOP_REQUEST_BUSTRACKER

## JES ##
config STOP_REQUEST_JES
bool "Use JES servers to fetch JSON feed"

config STOP_REQUEST_JES_HOSTNAME
string "JES server hostname used to retrieve stop data"
depends on STOP_REQUEST_JES

config STOP_REQUEST_JES_PATH
string "JES server path used to retrieve stop data"
depends on STOP_REQUEST_JES

#### NTP SETTINGS ####

config PRIMARY_NTP_SERVER
string "Primary NTP server used to synchronize system time"
default "time.nist.gov"

config FALLBACK_NTP_SERVER
string "Fallback NTP server used to synchronize system time if the primary server is unavailable"
default "us.pool.ntp.org"

config NTP_REQUEST_TIMEOUT_MS
int "Max amount of time allowed waiting for a single NTP query response for in milliseconds"
# The NIST time servers should never be queried more frequently than once every 4 seconds.
default 4000

config NTP_FETCH_RETRY_COUNT
int "Max attempts to fetch time from NTP server before changing to fallback server"
default 2

config OTA_HOSTNAME
string "HTTP hostname used to download firmware upgade file"
#### FOTA SETTINGS ####

config OTA_PATH
string "HTTP path used to download firmware upgade file"
config JES_FOTA
bool "Enable FOTA downloads from JES servers"

config LIGHT_SENSOR
bool "Enable I2C ambient light sensor"
config JES_FOTA_HOSTNAME
string "HTTP hostname used to download firmware upgade file"
depends on JES_FOTA

config LED_DISPLAY_TEST
bool "Select to run LED display test instead of main application"
config JES_FOTA_PATH
string "HTTP path used to download firmware upgade file"
depends on JES_FOTA

endmenu
2 changes: 1 addition & 1 deletion app/VERSION
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
VERSION_MAJOR = 0
VERSION_MINOR = 9
PATCHLEVEL = 1
PATCHLEVEL = 2
VERSION_TWEAK = 0
EXTRAVERSION = stable
61 changes: 28 additions & 33 deletions app/boards/circuitdojo_feather_nrf9160_ns.conf
Original file line number Diff line number Diff line change
Expand Up @@ -3,28 +3,32 @@ CONFIG_STACK_SENTINEL=n
CONFIG_HW_STACK_PROTECTION=y
CONFIG_MPU_STACK_GUARD=y

# NRF Modem
CONFIG_MODEM_INFO=y
# External SPI Flash
CONFIG_NVS=y
CONFIG_SETTINGS_NVS=y
CONFIG_PM_EXTERNAL_FLASH_BASE=0x0
CONFIG_SPI_NOR=y
CONFIG_SPI_NOR_FLASH_LAYOUT_PAGE_SIZE=4096
CONFIG_PM_EXTERNAL_FLASH_MCUBOOT_SECONDARY=y
CONFIG_PM_OVERRIDE_EXTERNAL_DRIVER_CHECK=y

# Allow writing to the flash at runtime
CONFIG_MPU_ALLOW_FLASH_WRITE=y

# Neopixels over SPI
CONFIG_SPI=y
CONFIG_LED_STRIP=y

# NRF Modem configurations
CONFIG_NRF_MODEM_LIB=y
CONFIG_NRF_MODEM_LIB_FAULT_STRERROR=y
CONFIG_NRF_MODEM_LIB_ON_FAULT_APPLICATION_SPECIFIC=y
CONFIG_MODEM_KEY_MGMT=y
CONFIG_PDN=y
CONFIG_NRF_MODEM_LIB_ON_FAULT_APPLICATION_SPECIFIC=y
CONFIG_NRF_MODEM_LIB_FAULT_STRERROR=y

# Align the max FD entry to NRF_MODEM_MAX_SOCKET_COUNT(8)
CONFIG_POSIX_MAX_FDS=8

# NRF net options
CONFIG_NET_NATIVE=n
CONFIG_NET_SOCKETS=y
CONFIG_NET_SOCKETS_OFFLOAD=y
CONFIG_NET_IPV4=y
CONFIG_NET_IPV6=y

# Disable Duplicate Address Detection (DAD)
# due to not being properly implemented for offloaded interfaces.
CONFIG_NET_IPV6_NBR_CACHE=n
CONFIG_NET_IPV6_MLD=n
CONFIG_ZVFS_OPEN_MAX=8
CONFIG_NET_SOCKETS_POLL_MAX=8

# NRF LTE link control library
CONFIG_LTE_LINK_CONTROL=y
Expand All @@ -37,30 +41,21 @@ CONFIG_LTE_PSM_REQ_RPTAU="00101100"
# Set Requested Active Time (RAT) to 10 seconds.
CONFIG_LTE_PSM_REQ_RAT="00000101"

# Neopixels over SPI
CONFIG_SPI=y
CONFIG_LED_STRIP=y
# NRF net configurations
CONFIG_NET_NATIVE=n
CONFIG_NET_SOCKETS_OFFLOAD=y
# Disable Duplicate Address Detection (DAD), not properly implemented for offloaded interfaces
CONFIG_NET_IPV6_NBR_CACHE=n
CONFIG_NET_IPV6_MLD=n

# TFM options
# TFM configurations
CONFIG_BUILD_WITH_TFM=y
CONFIG_TFM_CMAKE_BUILD_TYPE_RELEASE=y

# TFM logging requirements
CONFIG_TFM_SECURE_UART0=y
CONFIG_TFM_SECURE_UART_SHARE_INSTANCE=y

# External SPI Flash
CONFIG_NVS=y
CONFIG_SETTINGS_NVS=y
CONFIG_PM_EXTERNAL_FLASH_BASE=0x0
CONFIG_SPI_NOR=y
CONFIG_SPI_NOR_FLASH_LAYOUT_PAGE_SIZE=4096
CONFIG_PM_EXTERNAL_FLASH_MCUBOOT_SECONDARY=y
CONFIG_PM_OVERRIDE_EXTERNAL_DRIVER_CHECK=y

# Allow writing to the flash at runtime
CONFIG_MPU_ALLOW_FLASH_WRITE=y

# Debugging
# CONFIG_NRF_MODEM_LIB_LOG_LEVEL_DBG=y
# CONFIG_NRF_MODEM_LIB_MEM_DIAG=y
Expand Down
61 changes: 28 additions & 33 deletions app/boards/circuitdojo_feather_nrf9160_ns_release.conf
Original file line number Diff line number Diff line change
Expand Up @@ -3,28 +3,32 @@ CONFIG_STACK_SENTINEL=n
CONFIG_HW_STACK_PROTECTION=y
CONFIG_MPU_STACK_GUARD=y

# NRF Modem
CONFIG_MODEM_INFO=y
# External SPI Flash
CONFIG_NVS=y
CONFIG_SETTINGS_NVS=y
CONFIG_PM_EXTERNAL_FLASH_BASE=0x0
CONFIG_SPI_NOR=y
CONFIG_SPI_NOR_FLASH_LAYOUT_PAGE_SIZE=4096
CONFIG_PM_EXTERNAL_FLASH_MCUBOOT_SECONDARY=y
CONFIG_PM_OVERRIDE_EXTERNAL_DRIVER_CHECK=y

# Allow writing to the flash at runtime
CONFIG_MPU_ALLOW_FLASH_WRITE=y

# Neopixels over SPI
CONFIG_SPI=y
CONFIG_LED_STRIP=y

# NRF Modem configurations
CONFIG_NRF_MODEM_LIB=y
CONFIG_NRF_MODEM_LIB_FAULT_STRERROR=y
CONFIG_NRF_MODEM_LIB_ON_FAULT_APPLICATION_SPECIFIC=y
CONFIG_MODEM_KEY_MGMT=y
CONFIG_PDN=y
CONFIG_NRF_MODEM_LIB_ON_FAULT_APPLICATION_SPECIFIC=y
CONFIG_NRF_MODEM_LIB_FAULT_STRERROR=y

# Align the max FD entry to NRF_MODEM_MAX_SOCKET_COUNT(8)
CONFIG_POSIX_MAX_FDS=8

# NRF net options
CONFIG_NET_NATIVE=n
CONFIG_NET_SOCKETS=y
CONFIG_NET_SOCKETS_OFFLOAD=y
CONFIG_NET_IPV4=y
CONFIG_NET_IPV6=y

# Disable Duplicate Address Detection (DAD)
# due to not being properly implemented for offloaded interfaces.
CONFIG_NET_IPV6_NBR_CACHE=n
CONFIG_NET_IPV6_MLD=n
CONFIG_ZVFS_OPEN_MAX=8
CONFIG_NET_SOCKETS_POLL_MAX=8

# NRF LTE link control library
CONFIG_LTE_LINK_CONTROL=y
Expand All @@ -37,26 +41,17 @@ CONFIG_LTE_PSM_REQ_RPTAU="00101100"
# Set Requested Active Time (RAT) to 10 seconds.
CONFIG_LTE_PSM_REQ_RAT="00000101"

# Neopixels over SPI
CONFIG_SPI=y
CONFIG_LED_STRIP=y
# NRF net configurations
CONFIG_NET_NATIVE=n
CONFIG_NET_SOCKETS_OFFLOAD=y
# Disable Duplicate Address Detection (DAD), not properly implemented for offloaded interfaces
CONFIG_NET_IPV6_NBR_CACHE=n
CONFIG_NET_IPV6_MLD=n

# TFM options
# TFM configurations
CONFIG_BUILD_WITH_TFM=y
CONFIG_TFM_CMAKE_BUILD_TYPE_RELEASE=y

# TFM logging requirements
CONFIG_TFM_LOG_LEVEL_SILENCE=y
CONFIG_TFM_EXCEPTION_INFO_DUMP=n

# External SPI Flash
CONFIG_NVS=y
CONFIG_SETTINGS_NVS=y
CONFIG_PM_EXTERNAL_FLASH_BASE=0x0
CONFIG_SPI_NOR=y
CONFIG_SPI_NOR_FLASH_LAYOUT_PAGE_SIZE=4096
CONFIG_PM_EXTERNAL_FLASH_MCUBOOT_SECONDARY=y
CONFIG_PM_OVERRIDE_EXTERNAL_DRIVER_CHECK=y

# Allow writing to the flash at runtime
CONFIG_MPU_ALLOW_FLASH_WRITE=y
13 changes: 13 additions & 0 deletions app/keys/public/jes-contact-root-r4.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
-----BEGIN CERTIFICATE-----
MIICCTCCAY6gAwIBAgINAgPlwGjvYxqccpBQUjAKBggqhkjOPQQDAzBHMQswCQYD
VQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIG
A1UEAxMLR1RTIFJvb3QgUjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAw
WjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2Vz
IExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjOPQIBBgUrgQQAIgNi
AATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzuhXyi
QHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvR
HYqjQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW
BBSATNbrdP9JNqPV2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D
9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/Cr8deVl5c1RxYIigL9zC2L7F8AjEA8GE8
p/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh4rsUecrNIdSUtUlD
-----END CERTIFICATE-----
13 changes: 0 additions & 13 deletions app/keys/public/jes-contact.pem

This file was deleted.

Loading

0 comments on commit 4b1706b

Please sign in to comment.