Skip to content

u-blox NINA-W10 WiFi and Bluetooth module Arduino example

License

Notifications You must be signed in to change notification settings

ldab/Arduino-u-blox-NINA-W10

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Arduino-u-blox-NINA-W10

u-blox NINA-W10 Arduino example + SHT31 temperature and humidity + Bluetooth BLE

GitHub version Build Status License: MIT

GitHub last commit

EVK-NINA-W10

How to build PlatformIO based project

  1. Install PlatformIO Core
  2. Download development the repository with examples
  3. Extract ZIP archive
  4. Run these commands:
# Change directory to example
> cd Arduino-u-blox-NINA-W10

# Build project
> platformio run

# Upload firmware
> platformio run --target upload

# Build specific environment
> platformio run -e nina_W10

# Upload firmware for the specific environment
> platformio run -e nina_W10 --target upload

# Clean build files
> platformio run --target clean

TODO

  • Assing defined PIN for connection;
  • Stop advertising;

Why?

This example tries to implement some key functions and key PIN atributes in order to get you started with using Arduino and the Multiradio board u-blox NINA-W10.

BLE Server, Client, Central, Peripheral ????? 😕

BLE roles are a bit confusing, at least to me, Neil Kolban the same person behind the ESP32 BLE Lib has made some material available on his YouTube Channel

Basicaly:

  • Peripheral -> Advertises
  • Central -> Scans for Peripherals
  • GATT Server -> Device which has the database and provide resources to the Client. PS. Server does not send data, unless Client requests.
  • GATT Client -> Access remote Server resources.

Generally, Peripheral = Server. Therefore if you're working on a end device, an activity tracker for example, it's likely to be set as a Peripheral.

Examples

  • Two examples are provided:
    • Client, connecting to a Peripheral GATT Server;
    • Server, connecting to a Central GATT Client;

Using with s-center

  • In order to test this example, NINA-W10 (Central/Client) connects to NINA-B1 (Peripheral/Server) via s-center and write the SHT31 temperature to the FFE1 characteristics and humidity to 2A6F.

Partition Table and Flash size

  • You can create a custom partitions table (CSV) following ESP32 Partition Tables documentation.

  • Partitions examples are available at GitHub arduino-esp32

  • minimal.csv is the default defined on nina_w10.json however I changed it in order to free some space up used by spiffs found on partitions_custom.csv here

    • No OTA;
    • No SPIFFS;
    • No EEPROM;

Erase Flash

pio run -t erase - > all data will be replaced with 0xFF bytes.

Bluetooth iOS and Android app

  • The nRF Connect for Mobile App from Nordic Semiconductor can alse be used in order to communicate and learn more about BLE and its details:

nRF Connect

App example

Credits

Github Shields and Badges created with Shields.io

Adafruit SHT31 Library

ESP32 BLE Arduino Library