The XIAO nRF54LM20A runs on nrf54-arduino-core

Seeed provided me with XIAO nRF54LM20A samples. One unit is mounted on the GPIO breakout board for XIAO. I soldered the battery connections and the JLink wiring.

If you’re using it as a hobby project, you can start writing sketches right away in the Arduino IDE without having to go through the trouble of setting up a Zephyr development environment.

Using the nrf54-arduino-core currently under development by @Loren_Bufamu, I wrote a sketch that might serve as a useful reference.

4 Likes

200-Byte Bidirectional Communication via BLE Notify/Write Using codedPHY

This sketch performs bidirectional communication of up to 244 bytes using 1M PHY, 2M PHY, and codedPHY. It uses the nPM1300 to measure battery voltage.

12:47:49.475 →
12:47:50.296 → conn_hdl = 0, PHY = 4, Data length = 251, MTU = 247, Interval =40
12:47:50.296 → Peripheral timestamp = 75, vbat = 0.019 V
12:47:50.296 → C4 27 01 00 E3 A5 9B 3C 08 09 0A 0B 0C 0D 0E 0F | .‘…<…
12:47:50.296 → 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F | …
12:47:50.296 → 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F | !"#$%&’()*+,-./
12:47:50.296 → 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F | 0123456789:;<=>?
12:47:50.296 → 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F | @ABCDEFGHIJKLMNO
12:47:50.296 → 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F | PQRSTUVWXYZ^_
12:47:50.296 → 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F | `abcdefghijklmno
12:47:50.296 → 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F | pqrstuvwxyz{|}~.
12:47:50.296 → 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F | …
12:47:50.296 → 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F | …
12:47:50.296 → A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF | …
12:47:50.296 → B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF | …
12:47:50.296 → C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF | …
12:47:50.296 → D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF | …
12:47:50.296 → E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF | …
12:47:50.296 → F0 F1 F2 F3 | …
12:47:50.494 → Central timestamp = 84, rssi = -27.70 dBm
12:47:50.494 →

nRF54LM_XIAO_NotifyWrite_Peripheral.zip (2.9 KB)

nRF54LM_XIAO_NotifyWrite_Central.zip (2.7 KB)

2 Likes

Attitude Monitor Using the Built-in IMU

This sketch calculates attitude based on data from the built-in IMU. The IMU is powered by the nPM1300’s LDO.

nRF54LM_XIAO_AttMonitor_AdaLib.zip (2.2 KB)

3 Likes

Hi there,

And Awesome as usual my Guy. :+1:

Can’t wait to see the ship and sleep currents on this as well as some battery reading and estimating SOC. Would have been nice to have the second LDO available but maybe in the LM20B version. :grin:

GL :slight_smile: PJ :v:

Battery Charge/Discharge Monitor Using the Built-in nPM1300

The nrf54-arduino-core has been updated to v0.9.206, and the nPM1300 library has also become more stable. Taking advantage of the built-in nPM1300, one of the key features of the XIAO nRF54LM20, I built a battery charge/discharge monitor.

Using the XIAO Expansion Board, measured data can be displayed on an I2C-connected SSD1306 OLED display and logged to an SD card. A user button switches the display between the measured values and the configuration settings.

As an example, the graph below shows the charging and discharging characteristics of a 100 mAh battery. The battery was charged with a VBUS input current limit of 500 mA, a charging current of 100 mA, and a charging voltage of 4150 mV, and then discharged through a 33 Ω resistor.

nRF54LM_XIAO_BatteryMonitor.zip (22.4 KB)

2 Likes

This is a great way of showing nPM1300 functionality!

Very neat sketches and display layout!

Unlike previous XIAO charging functions, I can set the charging current, so I can charge even small batteries with confidence.

1 Like

This is a bit off-topic, but have you considered entering this contest? @msfujino

I just found out about it. I didn’t think I had the right expertise for it.

Hi there,

Now we have REAL battery management on Xiao. :+1:
The PMIC is great!, I’m curious about the REAL sleep currents and the SHIP mode current (.33uA)
Then 2nd is the COIN Cell operation, 2032 or the larger one. LM20a should shine :crossed_fingers:
I think we will finally have the Xiao that SLEEPS like a baby.

I look forward to your findings, Awesome as per your Standards :+1:

GL :slight_smile: PJ :v:

0.5 μA Sleep Current in Hibernate Mode Using the Built-in nPM1300

By utilizing the built-in nPM1300, one of the key features of the XIAO nRF54LM20, I measured a sleep current of 0.5 μA in hibernate mode. This matches the value specified in Table 4: System Electrical Specifications of the datasheet.

nRF54LM_XIAO_HibernateMode.zip (964 Bytes)

3 Likes

After spending time with this board, I could say that yes, we finally got our “ board that could work for years on a coin-cell battery“. Nice work Xiao, Nordic, and the community !

1 Like