Devzone posts

From Wiki at Neela Nurseries
Revision as of 16:51, 14 April 2022 by Ted (talk | contribs) (new doc section "Zephyr and External Flash" and initial link to post added.)
Jump to: navigation, search

Keywords: Nordic Segger python script :: create_nordic_project.py :: create Nordic project dot py

 

This page a starting point for references (links) to Nordic Devzone posts and additional notes on their respective issues. This page also contains posts from Jared Wolff Community forum, an excellent technical resource for design matters IoT related, and also Zephyr RTOS related.

On this page indentation of URLs highlights when one post refers or links to another.


^ Nordic Semi Guides


^ Low Current Related

0408 -
At Nordic Devzone issuing search string "nRF9160 configure PSM and eDRX" . . .

Developers Shital, Hoang, Erik posting about modem PSM and eDRX modes, mention of asset_tracker nRF9160 sample app:

Need to asure Secure Partition Manager not using UART for any logging or other purpose:

AT modem commands to set power saving mode parameters and eDRX params:

Cerca 2019 Q2, as of ncs v1.3.1 the enabling of PSM and eDRX does not leave a way for application firmware to be notified when modem wakes from power savings mode:

Cerca 2021 Q2, GPS use where PSM and eDRX are not available. Plus AT commands to return whether eDRX can be used, whether PSM can be used:

Mention in third or fourth reply about SIM card minimum interval needed to deactivate, with respect to eDRX setting:

To set the CONFIG_MQTT_KEEPALIVE equal to your polling interval . . .

nRF9160 maximum device sleep period and maximum device reachable period:

Only necessary to set PSM and eDRX values once, LTE modem retains them, honors what values it can given mobile network provider:


0407

0405

An interesting code excerpt stumbled upon during exam of Jared Wolff's nfed v1.7.1 `active_sleep` sample app:

 770 int lte_lc_normal(void)
 771 {
 772         return lte_lc_func_mode_set(LTE_LC_FUNC_MODE_NORMAL);
 773 }
 774 
 775 int lte_lc_offline(void)
 776 {
 777         return lte_lc_func_mode_set(LTE_LC_FUNC_MODE_OFFLINE);
 778 }
 779 
 780 int lte_lc_power_off(void)
 781 {
 782         return lte_lc_func_mode_set(LTE_LC_FUNC_MODE_POWER_OFF);
 783 }
 784 
 785 int lte_lc_psm_param_set(const char *rptau, const char *rat)
 786 {
 787         if ((rptau != NULL && strlen(rptau) != 8) ||
 788             (rat != NULL && strlen(rat) != 8)) {
 789                 return -EINVAL;
 790         }
 791 
 792         if (rptau != NULL) {
 793                 strcpy(psm_param_rptau, rptau);
 794                 LOG_DBG("RPTAU set to %s", log_strdup(psm_param_rptau));
 795         } else {
 796                 *psm_param_rptau = '\0';
 797                 LOG_DBG("RPTAU use default");
 798         }
 799 
 800         if (rat != NULL) {

0404 - To reduce GPIO current draw (~270uA) on nRF5340:

0315

^ To Configure Pins as Analog Inputs

0331


^ RTT Real Time Terminal Related

0322


^ nRF Radio Related

2022-04-12 TUE

2021-12-17 FRI

2021-12-05 SUN

2021-11-09 TUE Jared Wolff Community post: MQTT, MVNOs and minimal data use strategies and options for edge devices:

2021-10-23 SAT (SOLVED)


^ AT commands

0408


^ MQTT Related

2021-12-31 FRI

2021-12-22 WED

2021-12-17 FRI

https://devzone.nordicsemi.com/f/nordic-q-a/69077/nrf9160-aws_iot-sample-mqtt-topic-add-does-not-work/288602#288602

zephyr-based/nrf$ grep -nr CONFIG_MQTT_CLEAN_SESSION ./*
./applications/asset_tracker_v2/prj.conf:106:CONFIG_MQTT_CLEAN_SESSION=y
./applications/asset_tracker/prj.conf:54:CONFIG_MQTT_CLEAN_SESSION=n
./applications/asset_tracker/src/main.c:1638:#if !IS_ENABLED(CONFIG_MQTT_CLEAN_SESSION)
./applications/asset_tracker/prj_qemu_x86.conf:28:CONFIG_MQTT_CLEAN_SESSION=n
./applications/asset_tracker/prj_thingy91_nrf9160ns.conf:58:CONFIG_MQTT_CLEAN_SESSION=n
./doc/nrf/releases/release-notes-1.4.0.rst:181:    * Replaced ``CONFIG_CLOUD_PERSISTENT_SESSIONS`` usage with Zephyr's :option:`CONFIG_MQTT_CLEAN_SESSION`.
./samples/nrf9160/mqtt_simple/prj.conf:28:CONFIG_MQTT_CLEAN_SESSION=y
./subsys/net/lib/nrf_cloud/src/nrf_cloud_transport.c:577:#if !defined(CONFIG_MQTT_CLEAN_SESSION)
./subsys/net/lib/nrf_cloud/src/nrf_cloud_transport.c:591:#if !defined(CONFIG_MQTT_CLEAN_SESSION)
./subsys/net/lib/nrf_cloud/src/nrf_cloud_transport.c:604:#if !defined(CONFIG_MQTT_CLEAN_SESSION) || defined(CONFIG_NRF_CLOUD_FOTA)
./subsys/net/lib/nrf_cloud/src/nrf_cloud_transport.c:610:#if !defined(CONFIG_MQTT_CLEAN_SESSION)
./subsys/net/lib/aws_iot/src/aws_iot.c:684:                                !IS_ENABLED(CONFIG_MQTT_CLEAN_SESSION) &&
./subsys/net/lib/aws_iot/src/aws_iot.c:690:                 IS_ENABLED(CONFIG_MQTT_CLEAN_SESSION)) {


^ Zephyr and External Flash


^ Posts To Follow - not yet sorted

0329

0315


2021-12-13 Monday ( OPEN )


2021-11-30 ( OPEN )

2021-11-22

2021-11-19

2021-11-18

2021-11-11

Something of an answer to the first and newer post, explanation of nRF ring buffer and queue libraries:

2021-11-09


2021-11-04

Excerpt `./modules/hal/cmsis/CMSIS/DSP/Include/arm_math.h:3330:arm_status arm_rfft_fast_init_f32 (`


2021-11-03


How to import non-Segger projects into Segger:

TO DO : follow steps outlined in this post:

Post by Erez, bringing in existing nRF SDK project to Segger:


Two I2C, SPI and ADC APIs available in nRF9160 based projects:


Recent post regarding how to add driver to a minimal Zephyr project (not yet answered as of 2021-09-26):


Posts which mentions 'offsets.c.obj does not exist' error:

Board overlay file base names must match board called out in `west build ...` invocation:

Electrical and hardware related:


Sprintf C formatting:


How to integrate Zephyr drivers into custom Zephyr app:



^ To Set cmake Options In SES

As of 2021-09-24, using Segger version xxx Nordic's version, this Segger IDE offers an extra menu item to open, build, flash and debug nRF SDK sample apps. The initial dialog box which appears for this option is titled "nRF Connect Options". Just left of the title there is a Nordic colored icon showing two links of chain, white on blue.

There are five input boxes, a mix of text inputs and drop down menus, and two sets of radio buttons. The free form text input box titled "Extra CMake Build Options" is a key place to express custom configuration settings to `cmake`. To use, for example, Zephyr's latest stable arm cross compiling toolchain in place of Nordic's close but not quite as recent chosen release of GNU ARM cross compiler toolchain, the following `cmake` option needs be entered here:

-DZEPHYR_TOOLCHAIN_VARIANT=zephyr

The default value for 'ZEPHYR_TOOLCHAIN_VARIANT' with Nordic's SDK v1.6.1 is 'gnuarmemb'. It is not sufficient to set a variable by this name in the shell environment of Linux systems, nor is it sufficient to set a Segger global or project macro by this name equal to the string "zephyr". This change in toolchain name or branding must be passed to `cmake` on its command line. In Segger, we build with a button press, so the command line option is only accessible to us from certain limited place or places. This text input box is our place to express needed custom command line options to `cmake` when working within SES.


^ create_nordic_project.py

ted@localhost:~/projects/zephyr-based/z4-sandbox-kionix-work/nrf/samples/nrf9160/at_client$ python3 /opt/ses-nordic/arm_segger_embedded_studio_v560_linux_x64_nordic/html/create_nordic_project.py
Usage: create_nordic_project.py [-h] [--cmake-executable cmakeExecutable] [--cmake-option cmakeOption]
                                [--python-executable pythonExecutable] [--ninja-executable ninjaExecutable]
                                [--dtc-executable dtcExecutable]
                                zephyrBaseDir toolchainDir studioDir buildDir boardDir boardName sourceDir

Arguments:
  zephyrBaseDir      Zephyr base directory
  toolchainDir       GCC toolchain directory
  studioDir          Embedded Studio directory
  buildDir           Build directory
  boardDir           Board directory
  boardName          Board name
  sourceDir          Source directory

Optional arguments:
  --help                                  Show this help message and exit
  --ncs-toolchain-version versionNCS Toolchain version to use
  --cmake-executable cmakeExecutable      CMake executable to use
  --cmake-option cmakeOption              Add additional CMake option
  --python-executable pythonExecutable    Python executable to use
  --ninja-executable ninjaExecutable      Ninja executable to use
  --dtc-executable dtcExecutable          DTC executable to use
  --cmake-rerunRerun CMake in build folder
ted@localhost:~/projects/zephyr-based/z4-sandbox-kionix-work/nrf/samples/nrf9160/at_client$


^ Posts Underway

2022-03-02 Wed

Hello CircuitDojo Community,

In a [recent post](https://community.jaredwolff.com/d/222-nrf9160-sleep-and-low-power-control-areas/2) I inquired about low power configurations for the nRF9160 and boards based on this SiP. Jared Wolff shared code which dynamically turns off a given UART of the SiP's application processor. In his code there's a call to a routine named `uart_rx_disable().` I'd initially overlooked this. Today as I try to build my application I'm blocked on a link time error "undefined reference to `'".

Per Jared's code excerpt I have added `CONFIG_PM_DEVICE=y` to my prj.conf. My project is based on Nordic's aws_iot sample app. I am using the ncs SDK version 1.6.1. Nordic's fork of Zephyr in this SDK is Zephyr release 2.6.0.

Where should `uart_rx_disable()` be defined? Am I using a too old version of ncs or Zephyr RTOS?


^ Posts To Close

Must request Nordic Devzone engineers to close following tickets, issues answered: