Skip to content

Commit 6d2da0a

Browse files
committed
sample: driver: modem: add hello_hl78xx sample
Add HL78xx driver sample application to show hl78xx user APIs & Configs Signed-off-by: Zafer SEN <zafersn93@gmail.com>
1 parent 3447c15 commit 6d2da0a

File tree

8 files changed

+438
-1
lines changed

8 files changed

+438
-1
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# editors
2+
*.swp
3+
*~
4+
5+
# build
6+
/build*/
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Sierra Wireless HL78XX driver driver options
2+
3+
# Copyright (c) 2025 Netfeasa
4+
# SPDX-License-Identifier: Apache-2.0
5+
6+
cmake_minimum_required(VERSION 3.20.0)
7+
8+
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
9+
project(hello_hl78xx)
10+
11+
target_sources(app PRIVATE src/main.c)
12+
13+
include(${ZEPHYR_BASE}/samples/net/common/common.cmake)
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Sierra Wireless HL78XX driver driver options
2+
3+
# Copyright (c) 2025 Netfeasa
4+
# SPDX-License-Identifier: Apache-2.0
5+
6+
source "samples/net/common/Kconfig"
7+
source "Kconfig.zephyr"
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
.. zephyr:code-sample:: hello_hl78xx
2+
:name: Hello hl78xx modem driver
3+
4+
get & set basic hl78xx modem information & functionality with HL78XX modem APIs
5+
6+
Overview
7+
********
8+
9+
A simple sample that can be used with only Sierra Wireles HL78XX series modems
10+
11+
Building and Running
12+
********************
13+
14+
This application can be built and executed on QEMU as follows:
15+
16+
.. zephyr-app-commands::
17+
:zephyr-app: samples/drivers/modem/hello_hl78xx
18+
:host-os: any
19+
:board: any with a hl78xx modem
20+
:goals: run
21+
:compact:
22+
23+
To build for another board, change "qemu_x86" above to that board's name.
24+
25+
Sample Output
26+
=============
27+
28+
.. code-block:: console
29+
```
30+
[00:00:18.368,000] <dbg> main: main: Manufecturer: Sierra Wi
31+
[00:00:18.368,000] <dbg> main: main: Firmware Version: HL7812.5.5.14.0
32+
[00:00:18.368,000] <dbg> main: main: APN: netfeasavodiot
33+
[00:00:18.368,000] <dbg> main: main: Imei: 351144441359727
34+
[00:00:18.368,000] <dbg> main: main: RAT: NB1
35+
[00:00:18.404,000] <dbg> main: main: RSRP : -110
36+
```
Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
# Sierra Wireless HL78XX driver driver options
2+
3+
# Copyright (c) 2025 Netfeasa
4+
# SPDX-License-Identifier: Apache-2.0
5+
6+
# The HL78xx driver gets its IP settings from the cell network
7+
CONFIG_NET_CONFIG_SETTINGS=n
8+
CONFIG_NET_DHCPV4=n
9+
CONFIG_DNS_SERVER_IP_ADDRESSES=n
10+
# NB-IoT has large latency, so increase timeouts. It is ok to use this for Cat-M1 as well.
11+
CONFIG_NET_SOCKETS_CONNECT_TIMEOUT=15000
12+
# Wait for the network to be ready
13+
CONFIG_NET_CONNECTION_MANAGER=y
14+
CONFIG_NET_SAMPLE_COMMON_WAIT_DNS_SERVER_ADDITION=y
15+
# Don't require device to have time/date
16+
CONFIG_MBEDTLS_HAVE_TIME_DATE=n
17+
18+
# Network management
19+
CONFIG_NET_MGMT=y
20+
CONFIG_NET_MGMT_EVENT=y
21+
22+
#PM
23+
CONFIG_PM_DEVICE=y
24+
CONFIG_PM_DEVICE_RUNTIME=y
25+
CONFIG_PM_DEVICE_POWER_DOMAIN=y
26+
CONFIG_POWER_DOMAIN=y
27+
28+
# Logging
29+
CONFIG_LOG=y
30+
CONFIG_LOG_MODE_DEFERRED=y
31+
CONFIG_LOG_BUFFER_SIZE=32768
32+
CONFIG_LOG_PROCESS_THREAD_STACK_SIZE=16384
33+
34+
# For extra verbosity
35+
CONFIG_MODEM_MODULES_LOG_LEVEL_DBG=y
36+
CONFIG_MODEM_LOG_LEVEL_DBG=y
37+
CONFIG_NET_CONFIG_LOG_LEVEL_DBG=y
38+
CONFIG_NET_IF_LOG_LEVEL_DBG=y
39+
CONFIG_NET_LOG=y
40+
CONFIG_NET_BUF_LOG=y
41+
CONFIG_NET_MGMT_EVENT_LOG_LEVEL_DBG=y
42+
CONFIG_NET_CONTEXT_LOG_LEVEL_DBG=y
43+
CONFIG_DNS_RESOLVER_LOG_LEVEL_DBG=y
44+
CONFIG_MODEM_CHAT_LOG_BUFFER_SIZE=1024
45+
CONFIG_NET_CORE_LOG_LEVEL_DBG=y
46+
CONFIG_NET_SOCKETS_LOG_LEVEL_DBG=y
47+
CONFIG_MODEM_HL78XX_LOG_CONTEXT_VERBOSE_DEBUG=y
48+
49+
CONFIG_STACK_SENTINEL=y
50+
CONFIG_THREAD_STACK_INFO=y
51+
CONFIG_STACK_SENTINEL=y
52+
CONFIG_THREAD_ANALYZER=y
53+
CONFIG_HW_STACK_PROTECTION=y
54+
CONFIG_STACK_CANARIES=y
55+
CONFIG_THREAD_STACK_INFO=y
56+
#system
57+
CONFIG_HEAP_MEM_POOL_SIZE=4096
58+
CONFIG_MAIN_STACK_SIZE=4096
59+
CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=4096
60+
CONFIG_IDLE_STACK_SIZE=4096
61+
CONFIG_ISR_STACK_SIZE=4096
62+
CONFIG_SHELL_STACK_SIZE=4096
63+
#uart
64+
CONFIG_UART_ASYNC_API=y
65+
CONFIG_UART_INTERRUPT_DRIVEN=n
66+
CONFIG_MULTITHREADING=y
67+
68+
69+
CONFIG_DEBUG=y
70+
CONFIG_DEBUG_OPTIMIZATIONS=n
71+
72+
73+
# Modem driver
74+
CONFIG_MODEM=y
75+
#hl78xx modem
76+
CONFIG_MODEM_HL78XX=y
77+
CONFIG_MODEM_HL7812=y
78+
# Statistics
79+
CONFIG_MODEM_STATS=y
80+
CONFIG_SHELL=y
81+
82+
# Testing
83+
CONFIG_MODEM_AT_SHELL=n
84+
CONFIG_PM_DEVICE_SHELL=y
85+
CONFIG_SHELL_WILDCARD=n
86+
CONFIG_KERNEL_SHELL=y
87+
CONFIG_DEVICE_SHELL=y
88+
CONFIG_FILE_SYSTEM_SHELL=y
89+
CONFIG_NET_SHELL=y
90+
CONFIG_MODEM_HL78XX_APN_SOURCE_NETWORK=n
91+
#apn source
92+
# GET APN from KCONFIG
93+
# CONFIG_MODEM_HL78XX_APN_SOURCE_KCONFIG=y
94+
# CONFIG_MODEM_HL78XX_APN="netfeasavodiot"
95+
96+
# GET APN from ICCID / IMSI
97+
CONFIG_MODEM_HL78XX_APN_SOURCE_ICCID=y
98+
# CONFIG_MODEM_HL78XX_APN_SOURCE_IMSI=y
99+
CONFIG_MODEM_HL78XX_APN_PROFILES="em=8988303, netfeasavodiot=8988239"
100+
101+
# CONFIG_MODEM_HL78XX_APN_SOURCE_NETWORK=y
102+
103+
CONFIG_MODEM_HL78XX_AUTO_RAT=n
104+
# CONFIG_MODEM_HL78XX_AUTORAT_OVER_WRITE_PRL=y
105+
# CONFIG_MODEM_HL78XX_AUTORAT_PRL_PROFILES="2,1,3"
106+
CONFIG_MODEM_HL78XX_BOOT_IN_FULLY_FUNCTIONAL_MODE=y
107+
108+
CONFIG_MODEM_HL78XX_RAT_NB1=y
109+
110+
CONFIG_MAIN_STACK_SIZE=4096
111+
CONFIG_ENTROPY_GENERATOR=y
112+
CONFIG_TEST_RANDOM_GENERATOR=y
113+
CONFIG_INIT_STACKS=y
114+
CONFIG_HW_STACK_PROTECTION=y
115+
CONFIG_REQUIRES_FULL_LIBC=y
116+
CONFIG_JSON_LIBRARY=y
117+
CONFIG_POSIX_API=y
118+
119+
# DNS
120+
CONFIG_DNS_RESOLVER=y
121+
CONFIG_DNS_RESOLVER_ADDITIONAL_BUF_CTR=2
122+
CONFIG_DNS_RESOLVER_MAX_SERVERS=1
123+
CONFIG_NET_SOCKETS_DNS_TIMEOUT=5000
124+
CONFIG_DNS_RESOLVER_LOG_LEVEL_DBG=n
125+
126+
# Generic networking options
127+
CONFIG_NETWORKING=y
128+
CONFIG_NET_UDP=y
129+
CONFIG_NET_TCP=y
130+
CONFIG_NET_IPV6=n
131+
CONFIG_NET_IPV4=y
132+
CONFIG_NET_SOCKETS=y
133+
CONFIG_NET_SOCKETS_SOCKOPT_TLS=y
134+
135+
# Logging
136+
CONFIG_LOG=y
137+
138+
# Network buffers
139+
CONFIG_NET_PKT_RX_COUNT=32
140+
CONFIG_NET_PKT_TX_COUNT=16
141+
CONFIG_NET_BUF_RX_COUNT=64
142+
CONFIG_NET_BUF_TX_COUNT=32
143+
144+
CONFIG_NOCACHE_MEMORY=y
145+
CONFIG_DCACHE=n
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
sample:
2+
description: Hello HL78XX sample, the simplest Zephyr Sierra HL78XX modem
3+
application
4+
name: hello hl78xx
5+
common:
6+
min_ram: 2
7+
min_flash: 16
8+
tags: introduction
9+
integration_platforms:
10+
- native_sim
11+
harness: console
12+
harness_config:
13+
type: one_line
14+
regex:
15+
- "Hello HL78XX! (.*)"
16+
tests:
17+
sample.driver.modem.hellohl78xx:
18+
tags: introduction

0 commit comments

Comments
 (0)