u-blox host library
Simplified developer experience for u-blox products and services
- Rapid application development through concise and easy-to-pick-up C APIs
- Portable open-source C libraries available on GitHub
- Seamless integration of product features and cloud services
- Supports commonly used processors and operating systems
- Enables module replacements without porting
APIs: the easy alternative to AT commands
The u-blox host library - ubxlib - provides C libraries to build embedded applications easily. It is delivered as an add-on to existing microcontroller and RTOS SDKs to facilitate integration of connectivity, security, and localization into your embedded applications. The easy-to-use APIs make best use of module features in your application and run on the most common embedded platforms and RTOSs. ubxlib provides libraries that expose C APIs with examples. It supports integration to any cloud provider (Thingstream, AWS, Azure, GCP or others) via the easy-to-use MQTT client API. This works independently of communication method, be it Wi-Fi or Cellular.
APIs and examples
The convenience of not having to study AT command manuals in-depth, and instead using high-level C-APIs saves precious development time and eliminates repetitive workloads. ubxlib offers various C APIs that are concise and uniform across multiple u-blox modules. High-level APIs handle network sockets over cellular or Wi-Fi connectivity while low-level APIs handle AT commands or the UBX protocol. The location API enables positioning with GNSS modules. The BLE API offers functions for configuration and data exchange over Bluetooth LE. With the MQTT client API a developer can connect and communicate to an MQTT broker. Corresponding ready-to-use examples demonstrate how the APIs are used together with u-blox cloud services to build solutions to many real-world problems.
Supported modules and development boards
ubxlib works with most u-blox cellular, short range, and positioning modules, and it supports u-blox CellLocate, CloudLocate, MQTT Now, and MQTT Anywhere services. To find out which u-blox modules support which APIs, check out the ubxlib GitHub page.
ubxlib can be used in various architecture senarios:
- It can run on a microcontroller with APIs that provide high-level functionality of a host-based module attached to the application.
- It can run on a u-blox stand-alone open CPU module, optionally also with a host-based module attached.
ubxlib is portable and not tied to specific RTOS or MCU platforms. ubxlib currently runs on ESP32, STM32 with FreeRTOS, and nRF5 microcontroller platforms with ZephyrOS as well as on Windows and Linux PCs. On the ESP32 platform it also supports Arduino core. All supported platforms, RTOSs, and instructions to add new ones are listed on the ubxlib GitHub page.