Skip to content

die_temp: STM32: add capability to ask for die_temp#516

Open
KurtE wants to merge 3 commits into
arduino:mainfrom
KurtE:die_temp
Open

die_temp: STM32: add capability to ask for die_temp#516
KurtE wants to merge 3 commits into
arduino:mainfrom
KurtE:die_temp

Conversation

@KurtE

@KurtE KurtE commented Jun 16, 2026

Copy link
Copy Markdown

Enabled the die_temp sensor code for the STM32 boards, which include: Uno Q, Portenta H7, Giga, Nicla Vision.

There is an issue that this requires an ADC to be "Ready", and some of our boards are setup that these are defer-init. Two easy possible fixes, remove the defer-init form the correct ADC object(s). Or I patched the zephyr drivers:

        modified:   drivers/sensor/st/stm32_temp/stm32_temp.c
        modified:   drivers/sensor/st/stm32_vref/stm32_vref.c

Where if the ADC object device is not ready I call device_init on it.

I have run the sketch:


  IF_ENABLED(DT_NODE_EXISTS(DIE_TEMP_ALIAS(i)), (DEVICE_DT_GET(DIE_TEMP_ALIAS(i)), ))

/* support up to 16 cpu die temperature sensors */
static const struct device *const sensors[] = { LISTIFY(16, DIE_TEMPERATURE_SENSOR, ()) };

static int get_die_temperature(const struct device *dev) {
  struct sensor_value val;
  int rc;

  //printk("get_die_temperature: %p\n", dev);
  /* fetch sensor samples */
  rc = sensor_sample_fetch(dev);
  //printk("sensor_sample_fetch: %d\n", rc);
  if (rc) {
    printk("Failed to fetch sample (%d)\n", rc);
    return rc;
  }

  rc = sensor_channel_get(dev, SENSOR_CHAN_DIE_TEMP, &val);
  //printk("sensor_channel_get: %d\n", rc);
  if (rc) {
    printk("Failed to get data (%d)\n", rc);
    return rc;
  }

  printk("CPU Die temperature[%s]: %.1f °C\n", dev->name, sensor_value_to_double(&val));
  return 0;
}

double CPUTemperature(uint8_t sensor_index = 0) {
  if (sensor_index >= ARRAY_SIZE(sensors)) return 0.0 / 0.0;
  const struct device *dev = sensors[0];

  struct sensor_value val;
  int rc;

  //printk("get_die_temperature: %p\n", dev);
  /* fetch sensor samples */
  rc = sensor_sample_fetch(dev);
  //printk("sensor_sample_fetch: %d\n", rc);
  if (rc) return 0.0 / 0.0;

  rc = sensor_channel_get(dev, SENSOR_CHAN_DIE_TEMP, &val);
  if (rc) return 0.0 / 0.0;

  return sensor_value_to_double(&val);
}

void setup() {
  Serial.begin(115200);

  while (!Serial && millis() < 5000) {}
  delay(2000);
  Serial.print("Test DIE_TEMP count: ");
  Serial.println(ARRAY_SIZE(sensors));

  for (size_t i = 0; i < ARRAY_SIZE(sensors); i++) {
    int rc = get_die_temperature(sensors[i]);
    if (rc < 0) {
      return;
    }
  }
}

void loop() {
  double temp = CPUTemperature();
  Serial.print("CPU Temp C:");
  Serial.print(temp, 2);
  if (!isnan(temp)) {
    Serial.print(" F:");
    Serial.print(temp * 1.8 + 32.0, 2);
  }
  Serial.println();
  delay(5000);
}

On all of these boards mentioned:
Last one I tried was Nicla Vision:

Serial Monitor window:

Test DIE_TEMP count: 1
CPU Temp C:33.59 F:92.47
CPU Temp C:33.59 F:92.47
CPU Temp C:33.27 F:91.88
CPU Temp C:32.94 F:91.29
CPU Temp C:32.94 F:91.29
CPU Temp C:32.61 F:90.70
CPU Temp C:32.61 F:90.70
CPU Temp C:33.27 F:91.88
CPU Temp C:33.27 F:91.88
CPU Temp C:32.61 F:90.70
CPU Temp C:32.94 F:91.29

Debug Window:

WLAN MAC Address : FC:84:A7:FA:A9:85
WLAN Firmware    : wl0: Jan 30 2020 21:41:53 version 7.45.98.95 (r724303 CY) FWID 01-5afc8c1e
WLAN CLM         : API: 12.2 Data: 9.10.39 Compiler: 1.29.4 ClmImport: 1.36.3 Creation: 2020-01-30 21:30:05
WHD VERSION      : 3.3.2.25168 : v3.3.2 : GCC 12.2 : 2024-12-06 06:53:17 +0000
CPU Die temperature[dietemp]: 33.3 °C

@github-actions

Copy link
Copy Markdown

Built 0.56.0-rc1.pr.516.13+56302d1e

CI run PASSED 🟢

ArtifactBoardCoreTestsRAMSketchesWarningsErrors
✅* zephyr_contrib ek_ra8d1 📗 ✅*

11.9%

22-
frdm_mcxn947 7 🏷️ ✅*

58.0%

22-
frdm_rw612 2 🏷️ ✅*

83.0%

22-
✔️* zephyr_main giga 5 🏷️ ✅*

39.4%

6826-
nano33ble 1 🏷️ ✅*

78.8%

308-
nano_matter 1 🏷️ ✅*

⚠️ 86.1%

228-
nicla_sense 2 🏷️ ✅*

⚠️ 87.6%

188-
nicla_vision 5 🏷️ ✔️*

41.7%

5216(2*)
opta 5 🏷️ ✅*

42.4%

6218-
portentac33 3 🏷️ ✅*

80.6%

6616-
portentah7 4 🏷️ ✅*

43.2%

8022-
✅* zephyr_unoq unoq 📗 ✅*

43.6%

568-
Legend

BoardTestStatus description
🔥 🔥 Test run failed to complete.
🔴 Test completed with unexpected errors.
⁉️ ⁉️ Test was expected to fail but passed; exception entry is outdated.
✔️* 🚫 Test completed with errors, but all are known/expected.
✅* 🟡 Test completed with some warnings; no errors detected.
🟢 Test passed successfully, with no warnings or errors.
🌑 🌑 Test was skipped.

@KurtE

KurtE commented Jun 17, 2026

Copy link
Copy Markdown
Author

This relies on the changes made to arduino/zephyr
arduino/zephyr#21

@KurtE

KurtE commented Jun 17, 2026

Copy link
Copy Markdown
Author

@facchinm @pennam - I am marking this as ready for review, ditto for the change for Zephyr where it tries to recover the die-temp and the like object if the underlying ADC is marked as deferred-init.

So far I have not created a library to call it, only the sketch, although could easily extract the stuff from the test sketch
to do so and define API like:

double CPUTemperature(uint8_t sensor_index = 0) {
  if (sensor_index >= ARRAY_SIZE(sensors)) return 0.0 / 0.0;
  const struct device *dev = sensors[0];

  struct sensor_value val;
  int rc;

  //printk("get_die_temperature: %p\n", dev);
  /* fetch sensor samples */
  rc = sensor_sample_fetch(dev);
  //printk("sensor_sample_fetch: %d\n", rc);
  if (rc) return 0.0 / 0.0;

  rc = sensor_channel_get(dev, SENSOR_CHAN_DIE_TEMP, &val);
  if (rc) return 0.0 / 0.0;

  return sensor_value_to_double(&val);
}

@KurtE KurtE marked this pull request as ready for review June 17, 2026 13:18
@github-actions

Copy link
Copy Markdown

Built 0.56.1-0.pr.516.3+f1f8d6b3

CI run PASSED 🟢

ArtifactBoardCoreTestsRAMSketchesWarningsErrors
✅* zephyr_contrib ek_ra8d1 📗 ✅*

11.9%

22-
frdm_mcxn947 7 🏷️ ✅*

58.0%

22-
frdm_rw612 2 🏷️ ✅*

83.0%

22-
✔️* zephyr_main giga 5 🏷️ ✅*

39.4%

6826-
nano33ble 1 🏷️ ✅*

78.8%

308-
nano_matter 1 🏷️ ✅*

⚠️ 86.1%

228-
nicla_sense 2 🏷️ ✅*

⚠️ 87.6%

188-
nicla_vision 5 🏷️ ✔️*

41.7%

5216(2*)
opta 5 🏷️ ✅*

42.4%

6218-
portentac33 3 🏷️ ✅*

80.6%

6616-
portentah7 4 🏷️ ✅*

43.2%

8022-
✅* zephyr_unoq unoq 📗 ✅*

43.6%

568-
Legend

BoardTestStatus description
🔥 🔥 Test run failed to complete.
🔴 Test completed with unexpected errors.
⁉️ ⁉️ Test was expected to fail but passed; exception entry is outdated.
✔️* 🚫 Test completed with errors, but all are known/expected.
✅* 🟡 Test completed with some warnings; no errors detected.
🟢 Test passed successfully, with no warnings or errors.
🌑 🌑 Test was skipped.

KurtE added 2 commits June 18, 2026 09:42
Enabled the die_temp sensor code for the STM32 boards, which include:
Uno Q, Portenta H7, Giga, Nicla Vision.

There is an issue that this requires an ADC to be "Ready", and some
of our boards are setup that these are defer-init.  Two easy possible
fixes, remove the defer-init form the correct ADC object(s). Or
I patched the zephyr drivers:
```
        modified:   drivers/sensor/st/stm32_temp/stm32_temp.c
        modified:   drivers/sensor/st/stm32_vref/stm32_vref.c
```
Where if the ADC object device is not ready I call device_init on it.

I have run the sketch:
```

  IF_ENABLED(DT_NODE_EXISTS(DIE_TEMP_ALIAS(i)), (DEVICE_DT_GET(DIE_TEMP_ALIAS(i)), ))

/* support up to 16 cpu die temperature sensors */
static const struct device *const sensors[] = { LISTIFY(16, DIE_TEMPERATURE_SENSOR, ()) };

static int get_die_temperature(const struct device *dev) {
  struct sensor_value val;
  int rc;

  //printk("get_die_temperature: %p\n", dev);
  /* fetch sensor samples */
  rc = sensor_sample_fetch(dev);
  //printk("sensor_sample_fetch: %d\n", rc);
  if (rc) {
    printk("Failed to fetch sample (%d)\n", rc);
    return rc;
  }

  rc = sensor_channel_get(dev, SENSOR_CHAN_DIE_TEMP, &val);
  //printk("sensor_channel_get: %d\n", rc);
  if (rc) {
    printk("Failed to get data (%d)\n", rc);
    return rc;
  }

  printk("CPU Die temperature[%s]: %.1f °C\n", dev->name, sensor_value_to_double(&val));
  return 0;
}

double CPUTemperature(uint8_t sensor_index = 0) {
  if (sensor_index >= ARRAY_SIZE(sensors)) return 0.0 / 0.0;
  const struct device *dev = sensors[0];

  struct sensor_value val;
  int rc;

  //printk("get_die_temperature: %p\n", dev);
  /* fetch sensor samples */
  rc = sensor_sample_fetch(dev);
  //printk("sensor_sample_fetch: %d\n", rc);
  if (rc) return 0.0 / 0.0;

  rc = sensor_channel_get(dev, SENSOR_CHAN_DIE_TEMP, &val);
  if (rc) return 0.0 / 0.0;

  return sensor_value_to_double(&val);
}

void setup() {
  Serial.begin(115200);

  while (!Serial && millis() < 5000) {}
  delay(2000);
  Serial.print("Test DIE_TEMP count: ");
  Serial.println(ARRAY_SIZE(sensors));

  for (size_t i = 0; i < ARRAY_SIZE(sensors); i++) {
    int rc = get_die_temperature(sensors[i]);
    if (rc < 0) {
      return;
    }
  }
}

void loop() {
  double temp = CPUTemperature();
  Serial.print("CPU Temp C:");
  Serial.print(temp, 2);
  if (!isnan(temp)) {
    Serial.print(" F:");
    Serial.print(temp * 1.8 + 32.0, 2);
  }
  Serial.println();
  delay(5000);
}
```
On all of these boards mentioned:
Last one I tried was Nicla Vision:

Serial Monitor window:
```
Test DIE_TEMP count: 1
CPU Temp C:33.59 F:92.47
CPU Temp C:33.59 F:92.47
CPU Temp C:33.27 F:91.88
CPU Temp C:32.94 F:91.29
CPU Temp C:32.94 F:91.29
CPU Temp C:32.61 F:90.70
CPU Temp C:32.61 F:90.70
CPU Temp C:33.27 F:91.88
CPU Temp C:33.27 F:91.88
CPU Temp C:32.61 F:90.70
CPU Temp C:32.94 F:91.29
```

Debug Window:
```
WLAN MAC Address : FC:84:A7:FA:A9:85
WLAN Firmware    : wl0: Jan 30 2020 21:41:53 version 7.45.98.95 (r724303 CY) FWID 01-5afc8c1e
WLAN CLM         : API: 12.2 Data: 9.10.39 Compiler: 1.29.4 ClmImport: 1.36.3 Creation: 2020-01-30 21:30:05
WHD VERSION      : 3.3.2.25168 : v3.3.2 : GCC 12.2 : 2024-12-06 06:53:17 +0000
CPU Die temperature[dietemp]: 33.3 °C
```
To correspond to the marking of the underlying
ADC modules
@KurtE KurtE force-pushed the die_temp branch 3 times, most recently from 07f6242 to a8b7b36 Compare June 18, 2026 21:56
@per1234 per1234 added the enhancement New feature or request label Jun 18, 2026
Not sure the best place for this.
Could be a library included like this, or could be
built-in or external library.

But Added it here, as for testing and review.
Tested it so far with:
UnoQ, Nicla Vision, Giga.  WIll recheck again on
Portenta H7, but worked before
@github-actions

Copy link
Copy Markdown

Built 0.56.1-0.pr.516.4+473958d8

CI run PASSED 🟢

ArtifactBoardCoreTestsRAMSketchesWarningsErrors
✅* zephyr_contrib ek_ra8d1 📗 ✅*

11.9%

22-
frdm_mcxn947 7 🏷️ ✅*

58.0%

22-
frdm_rw612 2 🏷️ ✅*

83.0%

22-
✔️* zephyr_main giga 5 🏷️ ✅*

39.4%

7026-
nano33ble 1 🏷️ ✅*

78.8%

3210-
nano_matter 1 🏷️ ✅*

⚠️ 86.1%

2410-
nicla_sense 2 🏷️ ✅*

⚠️ 87.6%

2010-
nicla_vision 5 🏷️ ✔️*

41.7%

5416(2*)
opta 5 🏷️ ✅*

42.4%

6418-
portentac33 3 🏷️ ✅*

80.6%

6818-
portentah7 4 🏷️ ✅*

43.2%

8222-
✅* zephyr_unoq unoq 📗 ✅*

43.6%

588-
Legend

BoardTestStatus description
🔥 🔥 Test run failed to complete.
🔴 Test completed with unexpected errors.
⁉️ ⁉️ Test was expected to fail but passed; exception entry is outdated.
✔️* 🚫 Test completed with errors, but all are known/expected.
✅* 🟡 Test completed with some warnings; no errors detected.
🟢 Test passed successfully, with no warnings or errors.
🌑 🌑 Test was skipped.

@github-actions

Copy link
Copy Markdown

Memory usage change @ 473958d

Board flash % RAM for global variables %
arduino:zephyr:unoq:link_mode=dynamic 🔺 +244 - +244 0.0 - 0.0 🔺 +16 - +16 0.0 - 0.0
arduino:zephyr:unoq:link_mode=static 🔺 +16 - +16 0.0 - 0.0 ❔ -368 - +656 -0.13 - +0.32
arduino:zephyr_contrib:ek_ra8d1:link_mode=dynamic 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:zephyr_contrib:ek_ra8d1:link_mode=static 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:zephyr_contrib:frdm_mcxn947:link_mode=dynamic 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:zephyr_contrib:frdm_mcxn947:link_mode=static 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:zephyr_contrib:frdm_rw612:link_mode=dynamic 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:zephyr_contrib:frdm_rw612:link_mode=static 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:zephyr_main:giga:link_mode=dynamic 🔺 +244 - +244 0.0 - +0.01 🔺 +16 - +16 0.0 - 0.0
arduino:zephyr_main:giga:link_mode=static 🔺 +16 - +16 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:zephyr_main:nano33ble:link_mode=dynamic 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:zephyr_main:nano33ble:link_mode=static 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:zephyr_main:nano_matter:link_mode=dynamic 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:zephyr_main:nano_matter:link_mode=static 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:zephyr_main:nicla_sense:link_mode=dynamic 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:zephyr_main:nicla_sense:link_mode=static 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:zephyr_main:nicla_vision:link_mode=dynamic 🔺 +244 - +244 0.0 - +0.01 🔺 +16 - +16 0.0 - 0.0
arduino:zephyr_main:nicla_vision:link_mode=static 🔺 +16 - +16 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:zephyr_main:opta:link_mode=dynamic 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:zephyr_main:opta:link_mode=static 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:zephyr_main:portentac33:link_mode=dynamic 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:zephyr_main:portentac33:link_mode=static 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:zephyr_main:portentah7:link_mode=dynamic 🔺 +228 - +244 0.0 - +0.01 🔺 +16 - +16 0.0 - 0.0
arduino:zephyr_main:portentah7:link_mode=static 🔺 +16 - +16 0.0 - 0.0 0 - 0 0.0 - 0.0
Click for full report table
Board ArduinoCore-zephyr/libraries/CPUTemperature/examples/CPUTemperature
flash
% ArduinoCore-zephyr/libraries/CPUTemperature/examples/CPUTemperature
RAM for global variables
% RTC AlarmRTC
flash
% RTC AlarmRTC
RAM for global variables
% RTC SimpleRTC
flash
% RTC SimpleRTC
RAM for global variables
% RTC CalibrationRTC
flash
% RTC CalibrationRTC
RAM for global variables
% CAN CANWrite
flash
% CAN CANWrite
RAM for global variables
% CAN CANEvent
flash
% CAN CANEvent
RAM for global variables
% CAN CANRead
flash
% CAN CANRead
RAM for global variables
% Arduino_LED_Matrix Basic
flash
% Arduino_LED_Matrix Basic
RAM for global variables
% Arduino_LED_Matrix Reflash_Bootanimation
flash
% Arduino_LED_Matrix Reflash_Bootanimation
RAM for global variables
% Arduino_LED_Matrix Video
flash
% Arduino_LED_Matrix Video
RAM for global variables
% arduino-examples 01.Basics/Blink
flash
% arduino-examples 01.Basics/Blink
RAM for global variables
% arduino-examples 01.Basics/AnalogReadSerial
flash
% arduino-examples 01.Basics/AnalogReadSerial
RAM for global variables
% arduino-examples 04.Communication/SerialPassthrough
flash
% arduino-examples 04.Communication/SerialPassthrough
RAM for global variables
% Arduino_JSON JSONValueExtractor
flash
% Arduino_JSON JSONValueExtractor
RAM for global variables
% Arduino_JSON JSONObject
flash
% Arduino_JSON JSONObject
RAM for global variables
% Arduino_JSON JSONKitchenSink
flash
% Arduino_JSON JSONKitchenSink
RAM for global variables
% Arduino_JSON JSONArray
flash
% Arduino_JSON JSONArray
RAM for global variables
% M95M01 M95M01_test
flash
% M95M01 M95M01_test
RAM for global variables
% ArduinoBLE Central/LedControl
flash
% ArduinoBLE Central/LedControl
RAM for global variables
% ArduinoBLE Central/Scan
flash
% ArduinoBLE Central/Scan
RAM for global variables
% ArduinoBLE Peripheral/Advertising/EnhancedAdvertising
flash
% ArduinoBLE Peripheral/Advertising/EnhancedAdvertising
RAM for global variables
% ArduinoBLE Peripheral/ButtonLED
flash
% ArduinoBLE Peripheral/ButtonLED
RAM for global variables
% Arduino_RouterBridge client
flash
% Arduino_RouterBridge client
RAM for global variables
% Arduino_RouterBridge hci
flash
% Arduino_RouterBridge hci
RAM for global variables
% Arduino_RouterBridge monitor
flash
% Arduino_RouterBridge monitor
RAM for global variables
% Arduino_RouterBridge server
flash
% Arduino_RouterBridge server
RAM for global variables
% Arduino_RouterBridge udp_ntp_client
flash
% Arduino_RouterBridge udp_ntp_client
RAM for global variables
% Arduino_RPClite rpc_lite_client
flash
% Arduino_RPClite rpc_lite_client
RAM for global variables
% Arduino_RPClite rpc_lite_server
flash
% Arduino_RPClite rpc_lite_server
RAM for global variables
% Zephyr_SDRAM SDRAM_operations
flash
% Zephyr_SDRAM SDRAM_operations
RAM for global variables
% WiFi WiFiWebClient
flash
% WiFi WiFiWebClient
RAM for global variables
% WiFi WiFiWebClientTLS
flash
% WiFi WiFiWebClientTLS
RAM for global variables
% Camera CameraCaptureRawBytes
flash
% Camera CameraCaptureRawBytes
RAM for global variables
% Storage FlashFormat
flash
% Storage FlashFormat
RAM for global variables
% Storage ListFiles
flash
% Storage ListFiles
RAM for global variables
% Storage PartitionInfo
flash
% Storage PartitionInfo
RAM for global variables
% Arduino_SecureElement SelfSignedCertificate
flash
% Arduino_SecureElement SelfSignedCertificate
RAM for global variables
% Arduino_SecureElement RandomNumber
flash
% Arduino_SecureElement RandomNumber
RAM for global variables
% Arduino_SecureElement ConfigurationLocking
flash
% Arduino_SecureElement ConfigurationLocking
RAM for global variables
% Arduino_SecureElement CertificateSigningRequest
flash
% Arduino_SecureElement CertificateSigningRequest
RAM for global variables
% Arduino_GigaDisplayTouch Touch_Polling
flash
% Arduino_GigaDisplayTouch Touch_Polling
RAM for global variables
% Arduino_GigaDisplayTouch Touch_IRQ
flash
% Arduino_GigaDisplayTouch Touch_IRQ
RAM for global variables
% Arduino_Video ArduinoLogoDrawing
flash
% Arduino_Video ArduinoLogoDrawing
RAM for global variables
% Arduino_Video ArduinoLogo
flash
% Arduino_Video ArduinoLogo
RAM for global variables
% Arduino_Video LVGLDemo
flash
% Arduino_Video LVGLDemo
RAM for global variables
% ArduinoCore-zephyr/libraries/Camera/examples/CameraCaptureRawBytes
flash
% ArduinoCore-zephyr/libraries/Camera/examples/CameraCaptureRawBytes
RAM for global variables
% Ethernet UDPSendReceiveString
flash
% Ethernet UDPSendReceiveString
RAM for global variables
% Ethernet WebServer
flash
% Ethernet WebServer
RAM for global variables
% Ethernet WebClient
flash
% Ethernet WebClient
RAM for global variables
% Ethernet TelnetClient
flash
% Ethernet TelnetClient
RAM for global variables
% Ethernet AdvancedChatServer
flash
% Ethernet AdvancedChatServer
RAM for global variables
% Ethernet UdpNtpClient
flash
% Ethernet UdpNtpClient
RAM for global variables
% Ethernet LinkStatus
flash
% Ethernet LinkStatus
RAM for global variables
% Ethernet WebClientRepeating
flash
% Ethernet WebClientRepeating
RAM for global variables
%
arduino:zephyr:unoq:link_mode=dynamic N/A N/A N/A N/A 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0
arduino:zephyr:unoq:link_mode=static N/A N/A N/A N/A 16 0.0 656 0.32 16 0.0 656 0.32 16 0.0 656 0.32 16 0.0 -368 -0.06 16 0.0 656 0.09 16 0.0 -368 -0.06 16 0.0 -368 -0.1 16 0.0 -368 -0.1 16 0.0 656 0.32 16 0.0 656 0.32 16 0.0 656 0.32 16 0.0 656 0.32 16 0.0 656 0.32 16 0.0 656 0.32 16 0.0 656 0.32 16 0.0 656 0.32 16 0.0 -368 -0.08 16 0.0 656 0.15 16 0.0 656 0.15 16 0.0 656 0.15 16 0.0 656 0.15 16 0.0 -368 -0.13 16 0.0 656 0.32 16 0.0 656 0.32 16 0.0 656 0.32 16 0.0 656 0.1 16 0.0 656 0.32 16 0.0 -368 -0.08
arduino:zephyr_contrib:ek_ra8d1:link_mode=dynamic 0 0.0 0 0.0
arduino:zephyr_contrib:ek_ra8d1:link_mode=static 0 0.0 0 0.0
arduino:zephyr_contrib:frdm_mcxn947:link_mode=dynamic 0 0.0 0 0.0
arduino:zephyr_contrib:frdm_mcxn947:link_mode=static 0 0.0 0 0.0
arduino:zephyr_contrib:frdm_rw612:link_mode=dynamic 0 0.0 0 0.0
arduino:zephyr_contrib:frdm_rw612:link_mode=static 0 0.0 0 0.0
arduino:zephyr_main:giga:link_mode=dynamic N/A N/A N/A N/A 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.01 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0
arduino:zephyr_main:giga:link_mode=static N/A N/A N/A N/A 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0
arduino:zephyr_main:nano33ble:link_mode=dynamic N/A N/A N/A N/A 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:zephyr_main:nano33ble:link_mode=static N/A N/A N/A N/A 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:zephyr_main:nano_matter:link_mode=dynamic N/A N/A N/A N/A 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:zephyr_main:nano_matter:link_mode=static N/A N/A N/A N/A 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:zephyr_main:nicla_sense:link_mode=dynamic N/A N/A N/A N/A 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:zephyr_main:nicla_sense:link_mode=static N/A N/A N/A N/A 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:zephyr_main:nicla_vision:link_mode=dynamic N/A N/A N/A N/A 244 0.01 16 0.0 244 0.01 16 0.0 244 0.01 16 0.0 244 0.01 16 0.0 244 0.01 16 0.0 244 0.01 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.01 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.01 16 0.0 244 0.01 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 N/A N/A N/A N/A
arduino:zephyr_main:nicla_vision:link_mode=static N/A N/A N/A N/A 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 N/A N/A N/A N/A
arduino:zephyr_main:opta:link_mode=dynamic N/A N/A N/A N/A 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:zephyr_main:opta:link_mode=static N/A N/A N/A N/A 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:zephyr_main:portentac33:link_mode=dynamic N/A N/A N/A N/A 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:zephyr_main:portentac33:link_mode=static N/A N/A N/A N/A 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:zephyr_main:portentah7:link_mode=dynamic N/A N/A N/A N/A 244 0.01 16 0.0 244 0.01 16 0.0 244 0.01 16 0.0 228 0.0 16 0.0 228 0.0 16 0.0 228 0.0 16 0.0 244 0.01 16 0.0 244 0.01 16 0.0 244 0.01 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.01 16 0.0 244 0.0 16 0.0 244 0.01 16 0.0 244 0.01 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0 244 0.0 16 0.0
arduino:zephyr_main:portentah7:link_mode=static N/A N/A N/A N/A 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0
Click for full report CSV
Board,ArduinoCore-zephyr/libraries/CPUTemperature/examples/CPUTemperature<br>flash,%,ArduinoCore-zephyr/libraries/CPUTemperature/examples/CPUTemperature<br>RAM for global variables,%,RTC AlarmRTC<br>flash,%,RTC AlarmRTC<br>RAM for global variables,%,RTC SimpleRTC<br>flash,%,RTC SimpleRTC<br>RAM for global variables,%,RTC CalibrationRTC<br>flash,%,RTC CalibrationRTC<br>RAM for global variables,%,CAN CANWrite<br>flash,%,CAN CANWrite<br>RAM for global variables,%,CAN CANEvent<br>flash,%,CAN CANEvent<br>RAM for global variables,%,CAN CANRead<br>flash,%,CAN CANRead<br>RAM for global variables,%,Arduino_LED_Matrix Basic<br>flash,%,Arduino_LED_Matrix Basic<br>RAM for global variables,%,Arduino_LED_Matrix Reflash_Bootanimation<br>flash,%,Arduino_LED_Matrix Reflash_Bootanimation<br>RAM for global variables,%,Arduino_LED_Matrix Video<br>flash,%,Arduino_LED_Matrix Video<br>RAM for global variables,%,arduino-examples 01.Basics/Blink<br>flash,%,arduino-examples 01.Basics/Blink<br>RAM for global variables,%,arduino-examples 01.Basics/AnalogReadSerial<br>flash,%,arduino-examples 01.Basics/AnalogReadSerial<br>RAM for global variables,%,arduino-examples 04.Communication/SerialPassthrough<br>flash,%,arduino-examples 04.Communication/SerialPassthrough<br>RAM for global variables,%,Arduino_JSON JSONValueExtractor<br>flash,%,Arduino_JSON JSONValueExtractor<br>RAM for global variables,%,Arduino_JSON JSONObject<br>flash,%,Arduino_JSON JSONObject<br>RAM for global variables,%,Arduino_JSON JSONKitchenSink<br>flash,%,Arduino_JSON JSONKitchenSink<br>RAM for global variables,%,Arduino_JSON JSONArray<br>flash,%,Arduino_JSON JSONArray<br>RAM for global variables,%,M95M01 M95M01_test<br>flash,%,M95M01 M95M01_test<br>RAM for global variables,%,ArduinoBLE Central/LedControl<br>flash,%,ArduinoBLE Central/LedControl<br>RAM for global variables,%,ArduinoBLE Central/Scan<br>flash,%,ArduinoBLE Central/Scan<br>RAM for global variables,%,ArduinoBLE Peripheral/Advertising/EnhancedAdvertising<br>flash,%,ArduinoBLE Peripheral/Advertising/EnhancedAdvertising<br>RAM for global variables,%,ArduinoBLE Peripheral/ButtonLED<br>flash,%,ArduinoBLE Peripheral/ButtonLED<br>RAM for global variables,%,Arduino_RouterBridge client<br>flash,%,Arduino_RouterBridge client<br>RAM for global variables,%,Arduino_RouterBridge hci<br>flash,%,Arduino_RouterBridge hci<br>RAM for global variables,%,Arduino_RouterBridge monitor<br>flash,%,Arduino_RouterBridge monitor<br>RAM for global variables,%,Arduino_RouterBridge server<br>flash,%,Arduino_RouterBridge server<br>RAM for global variables,%,Arduino_RouterBridge udp_ntp_client<br>flash,%,Arduino_RouterBridge udp_ntp_client<br>RAM for global variables,%,Arduino_RPClite rpc_lite_client<br>flash,%,Arduino_RPClite rpc_lite_client<br>RAM for global variables,%,Arduino_RPClite rpc_lite_server<br>flash,%,Arduino_RPClite rpc_lite_server<br>RAM for global variables,%,Zephyr_SDRAM SDRAM_operations<br>flash,%,Zephyr_SDRAM SDRAM_operations<br>RAM for global variables,%,WiFi WiFiWebClient<br>flash,%,WiFi WiFiWebClient<br>RAM for global variables,%,WiFi WiFiWebClientTLS<br>flash,%,WiFi WiFiWebClientTLS<br>RAM for global variables,%,Camera CameraCaptureRawBytes<br>flash,%,Camera CameraCaptureRawBytes<br>RAM for global variables,%,Storage FlashFormat<br>flash,%,Storage FlashFormat<br>RAM for global variables,%,Storage ListFiles<br>flash,%,Storage ListFiles<br>RAM for global variables,%,Storage PartitionInfo<br>flash,%,Storage PartitionInfo<br>RAM for global variables,%,Arduino_SecureElement SelfSignedCertificate<br>flash,%,Arduino_SecureElement SelfSignedCertificate<br>RAM for global variables,%,Arduino_SecureElement RandomNumber<br>flash,%,Arduino_SecureElement RandomNumber<br>RAM for global variables,%,Arduino_SecureElement ConfigurationLocking<br>flash,%,Arduino_SecureElement ConfigurationLocking<br>RAM for global variables,%,Arduino_SecureElement CertificateSigningRequest<br>flash,%,Arduino_SecureElement CertificateSigningRequest<br>RAM for global variables,%,Arduino_GigaDisplayTouch Touch_Polling<br>flash,%,Arduino_GigaDisplayTouch Touch_Polling<br>RAM for global variables,%,Arduino_GigaDisplayTouch Touch_IRQ<br>flash,%,Arduino_GigaDisplayTouch Touch_IRQ<br>RAM for global variables,%,Arduino_Video ArduinoLogoDrawing<br>flash,%,Arduino_Video ArduinoLogoDrawing<br>RAM for global variables,%,Arduino_Video ArduinoLogo<br>flash,%,Arduino_Video ArduinoLogo<br>RAM for global variables,%,Arduino_Video LVGLDemo<br>flash,%,Arduino_Video LVGLDemo<br>RAM for global variables,%,ArduinoCore-zephyr/libraries/Camera/examples/CameraCaptureRawBytes<br>flash,%,ArduinoCore-zephyr/libraries/Camera/examples/CameraCaptureRawBytes<br>RAM for global variables,%,Ethernet UDPSendReceiveString<br>flash,%,Ethernet UDPSendReceiveString<br>RAM for global variables,%,Ethernet WebServer<br>flash,%,Ethernet WebServer<br>RAM for global variables,%,Ethernet WebClient<br>flash,%,Ethernet WebClient<br>RAM for global variables,%,Ethernet TelnetClient<br>flash,%,Ethernet TelnetClient<br>RAM for global variables,%,Ethernet AdvancedChatServer<br>flash,%,Ethernet AdvancedChatServer<br>RAM for global variables,%,Ethernet UdpNtpClient<br>flash,%,Ethernet UdpNtpClient<br>RAM for global variables,%,Ethernet LinkStatus<br>flash,%,Ethernet LinkStatus<br>RAM for global variables,%,Ethernet WebClientRepeating<br>flash,%,Ethernet WebClientRepeating<br>RAM for global variables,%
arduino:zephyr:unoq:link_mode=dynamic,N/A,N/A,N/A,N/A,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0
arduino:zephyr:unoq:link_mode=static,N/A,N/A,N/A,N/A,16,0.0,656,0.32,16,0.0,656,0.32,16,0.0,656,0.32,16,0.0,-368,-0.06,16,0.0,656,0.09,16,0.0,-368,-0.06,16,0.0,-368,-0.1,16,0.0,-368,-0.1,16,0.0,656,0.32,16,0.0,656,0.32,16,0.0,656,0.32,16,0.0,656,0.32,16,0.0,656,0.32,16,0.0,656,0.32,16,0.0,656,0.32,16,0.0,656,0.32,16,0.0,-368,-0.08,16,0.0,656,0.15,16,0.0,656,0.15,16,0.0,656,0.15,16,0.0,656,0.15,16,0.0,-368,-0.13,16,0.0,656,0.32,16,0.0,656,0.32,16,0.0,656,0.32,16,0.0,656,0.1,16,0.0,656,0.32,16,0.0,-368,-0.08
arduino:zephyr_contrib:ek_ra8d1:link_mode=dynamic,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0.0,0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
arduino:zephyr_contrib:ek_ra8d1:link_mode=static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0.0,0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
arduino:zephyr_contrib:frdm_mcxn947:link_mode=dynamic,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0.0,0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
arduino:zephyr_contrib:frdm_mcxn947:link_mode=static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0.0,0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
arduino:zephyr_contrib:frdm_rw612:link_mode=dynamic,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0.0,0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
arduino:zephyr_contrib:frdm_rw612:link_mode=static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0.0,0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
arduino:zephyr_main:giga:link_mode=dynamic,N/A,N/A,N/A,N/A,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,,,,,,,,,,,,,244,0.0,16,0.0,244,0.0,16,0.0,244,0.01,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0
arduino:zephyr_main:giga:link_mode=static,N/A,N/A,N/A,N/A,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,,,,,,,,,,,,,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0
arduino:zephyr_main:nano33ble:link_mode=dynamic,N/A,N/A,N/A,N/A,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
arduino:zephyr_main:nano33ble:link_mode=static,N/A,N/A,N/A,N/A,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
arduino:zephyr_main:nano_matter:link_mode=dynamic,N/A,N/A,N/A,N/A,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0.0,0,0.0,0,0.0,0,0.0,,,,,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
arduino:zephyr_main:nano_matter:link_mode=static,N/A,N/A,N/A,N/A,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0.0,0,0.0,0,0.0,0,0.0,,,,,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
arduino:zephyr_main:nicla_sense:link_mode=dynamic,N/A,N/A,N/A,N/A,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,0,0.0,0,0.0,0,0.0,0,0.0,,,,,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
arduino:zephyr_main:nicla_sense:link_mode=static,N/A,N/A,N/A,N/A,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,0,0.0,0,0.0,0,0.0,0,0.0,,,,,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
arduino:zephyr_main:nicla_vision:link_mode=dynamic,N/A,N/A,N/A,N/A,244,0.01,16,0.0,244,0.01,16,0.0,244,0.01,16,0.0,,,,,,,,,,,,,,,,,,,,,,,,,244,0.01,16,0.0,244,0.01,16,0.0,244,0.01,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,244,0.01,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,,,,,244,0.0,16,0.0,244,0.01,16,0.0,244,0.01,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,,,,,,,,,,,,,,,,,,,,,N/A,N/A,N/A,N/A
arduino:zephyr_main:nicla_vision:link_mode=static,N/A,N/A,N/A,N/A,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,,,,,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,,,,,,,,,,,,,,,,,,,,,N/A,N/A,N/A,N/A
arduino:zephyr_main:opta:link_mode=dynamic,N/A,N/A,N/A,N/A,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,,,,,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0.0,0,0.0,0,0.0,0,0.0,,,,,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0
arduino:zephyr_main:opta:link_mode=static,N/A,N/A,N/A,N/A,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,,,,,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0.0,0,0.0,0,0.0,0,0.0,,,,,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0
arduino:zephyr_main:portentac33:link_mode=dynamic,N/A,N/A,N/A,N/A,,,,,,,,,,,,,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,,,,,,,,,,,,,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,,,,,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0
arduino:zephyr_main:portentac33:link_mode=static,N/A,N/A,N/A,N/A,,,,,,,,,,,,,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,,,,,,,,,,,,,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,,,,,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0
arduino:zephyr_main:portentah7:link_mode=dynamic,N/A,N/A,N/A,N/A,244,0.01,16,0.0,244,0.01,16,0.0,244,0.01,16,0.0,228,0.0,16,0.0,228,0.0,16,0.0,228,0.0,16,0.0,,,,,,,,,,,,,244,0.01,16,0.0,244,0.01,16,0.0,244,0.01,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.01,16,0.0,244,0.0,16,0.0,244,0.01,16,0.0,244,0.01,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,,,,,,,,,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,,,,,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0,244,0.0,16,0.0
arduino:zephyr_main:portentah7:link_mode=static,N/A,N/A,N/A,N/A,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,,,,,,,,,,,,,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,,,,,,,,,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,,,,,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0

@KurtE

KurtE commented Jun 19, 2026

Copy link
Copy Markdown
Author

@facchinm @per1234 @pennam

Yesterday, I updated this PR again. I removed the requirement for needing changes at the zephyr level. Instead
I updated the device tree data to now mark, the die_temp objects as deferred-init as well, and then had the
code that retrieved the temperature do the same thing as other objects to initialize the objects it depends on.

I also split out the test code to retrieve this information, to it's own library: CPUTemperature, which I added as another
commit on this as part of the libraries... Not sure sure in the end it would go there, or API added to core or independent library, but all of it is currently part of this PR, including the test sketch that retrieves and prints it out.

/*
 * Copyright (c) 2026 KurtE
 * SPDX-License-Identifier: Apache-2.0
 */
#include <CPUTemperature.h>

void setup() {
  Serial.begin(115200);

  while (!Serial && millis() < 5000) {
  }
}

void loop() {
  double temp = CPUTemperature();
  Serial.print("CPU Temp C:");
  Serial.print(temp, 2);
  if (!isnan(temp)) {
    Serial.print(" F:");
    Serial.print(temp * 1.8 + 32.0, 2);
  }
  Serial.println();
  delay(5000);
}

I have, updated and tested it on: Uno Q, Giga, Portenta H7, Nicla Vision.
Output from startup of Portenta H7

CPU Temp C:37.22 F:98.99
CPU Temp C:40.04 F:104.07
CPU Temp C:48.51 F:119.32
CPU Temp C:41.29 F:106.33
CPU Temp C:42.24 F:108.02
CPU Temp C:42.55 F:108.59

Not sure if there are any other Arduino Zephyr boards that have the die_temp support currently built in
at a lower level? Portenta C33 hardware manual suggests that there is possibility, but did not find any of the
frame work... But if others do support it, those could be added later.

@mjs513

mjs513 commented Jun 19, 2026

Copy link
Copy Markdown

@KurtE

Just rebuilt the core with this PR incorporated along with analog frequency updated both the IDE and on the Q4. Ran your CPU temp app that you posted and all seem to be working:

 Qualcomm C:36.80 F:98.24 STM32 C:32.47 F:90.45
 Qualcomm C:35.60 F:96.08 STM32 C:32.14 F:89.85
 Qualcomm C:35.30 F:95.54 STM32 C:32.47 F:90.45
 Qualcomm C:35.30 F:95.54 STM32 C:32.47 F:90.45
 Qualcomm C:36.20 F:97.16 STM32 C:32.47 F:90.45

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants