v1.4.0
ubxlib v1.4.0
In the 1.4 release of ubxlib
, we introduce three highlights ⚡: Geofencing, LENA-R8 and NORA-W3 Support. Also we would like to inform you of the deprecation of two platforms and we also made a number of improvements; see below.
Geofencing Support
A common uGeofence API is added to the set of common APIs, enabling the creation of multiple geofences in circular or polygon shape. Geofence violation can be tested using uCellGeofence
, uGnssGeofence
or uWiFiGeofence
, which were added to the respective GNSS, cell and WiFi APIs.
Add support for LENA-R8 LTE Cat 1bis modules
LENA-R8 is now supported. A few things to note:
-
LENA-R8001M10 does not support access to the internal GNSS chip via CMUX; the older
AT+UGUBX
message interface must be used and hence streamed position cannot be supported. If you require streamed position, please access the internal GNSS chip over the USB interface instead (i.e. calluCellCfgSetGnssProfile()
with the bitU_CELL_CFG_GNSS_PROFILE_USB_AUX_UART
set, connect your MCU also to the USB interface of LENA-R8 and open theubxlib
GNSS device, separately, on that USB port). -
LENA-R8 does not support HTTP properly, hence HTTP support is disabled for LENA-R8.
-
LENA-R8 does not support security on an MQTTSN connection.
-
LENA-R8 does not support reading any of the LTE-related RF parameters (RSRP, RSRQ, EARFCN or physical cell ID), just the 2G-related RF parameters (RSSI, CSQ and logical cell ID, though not ARFCN).
-
LENA-R8 does not support reading the DNS address set by the network or the APN currently in use.
GNSS 🛰️
Added auto baudrate support for GNSS.
Zephyr DTS fix for GNSS: correct default I2C address (thanks to djfurie for spotting this).
Fix for uGnssPosGetStreamedStart
: return zero on success (thanks to Alon Bar-Lev).
Device change for GNSS only: remove device from global list when no power-off (b3aa942) (thanks to Alon Bar-Lev).
WiFi 🌐 & BLE
Add support for the latest u-connectXpress for NORA-W3 product (95f8347, updated in 7261fd7).
Fix for WiFi when the SSID is set to NULL
.
Cellular 📶
Cellular API addition: support for multiple parameters with AT+UDCONF
.
Fix to cellular MQTT client: capture truncated messages correctly (928ee28).
HTTP fixes for cellular: timeout cannot be zero (0bf07df) (thanks to jamal-mouline for highlighting this).
Cellular network API addition: read EMM reject cause (thanks to eeFLis for suggesting this).
Cellular API addition: SIM FPLMN list delete (thanks to eeFLis for suggesting this).
Port API addition and cellular feature for ESP-IDF/Zephyr: PPP-level integration (f3eb8bf).
Cellular change only: add support for LARA-R6xxx-01B (ecc3f98).
Cellular helper function to set RF bands (69fe155).
Cellular feature addition: allow AT command delay to be overridden
Cellular uCPU change only: increase maximum thread stack size.
Cellular change: APN username/password fields. (362dc2f)
Cellular socket improvement (c315b4f) read/write exit on remote closure (thanks to arnoutdekimo for pointing this out).
Platforms
Auto-read out of module type through support for Module type: any
If you don’t know (or don’t want to know) which module is connected to the host MCU you can use module type "any" (U_CELL_MODULE_TYPE_ANY
for cellular, U_GNSS_MODULE_TYPE_ANY
for GNSS, U_SHORT_RANGE_MODULE_TYPE_ANY
for WiFi and BLE) and ubxlib
will take care of reading out and setting the module type.
This is especially useful for Zephyr users: if no module type is set in the device tree file (.dts
/.overlay
) it will default to module type "any" in ubxlib
. You still have the option to specify the exact module type for faster boot times and in scenarios where the code may not recognize the device type being used.
Zephyr: allow device and network configuration from the device tree
For Zephyr users, it is now possible to specify the device and network configuration structures in your device tree, see the README.md in the Zephyr directory for how to do this.
Deprecation of Arduino (non-PlatformIO Version) and nRF5SDK Platforms
The following platforms are deprecated from release 1.4:
port/platform/arduino, i.e. the version of Arduino where we supply a Python script which copies the ubxlib
files into a structure that Arduino understands,
port/platform/nrf5sdk, i.e. the previous generation of Nordic SDK, which Nordic have put into maintenance mode.
We will continue to support Arduino through port/platform/platformio; if you wish to continue to use ubxlib
with Arduino, please consider moving to the PlatformIO IDE.
We will continue to support nRF52/nRF53 through what is now the Nordic standard nRF Connect SDK (i.e. Zephyr 3). If you use ubxlib
with nRF52/nRF53 please consider moving to nRF Connect.
Support for Arduino (non-PlatformIO Version) and nRF5SDK will be entirely removed at release 1.5, likely before the middle of 2024.
Other
-
Fix for Zephyr platform: support I2C operations with STM32 series MCUs.
-
Fix for STM32F4 platform: improved IO reliability.
-
Device addition: add
U_DEVICE_TRANSPORT_TYPE_UART_USB
. -
Improvements around zephyr headers (thanks to Stephan Linz for this).
-
Expand range/handling of GPIOs, UARTs and I2C ports to support non-Nordic MCUs.