Nomi

Quick description

The Nomi is a very tiny IoT board based on the DecaWave DWM1001 module, which implements an Ultra-Wide Band (UWB) transceiver and a Bluetooth Low Energy (BLE) transceiver. It also includes a LiPo-battery charger and an RGB LED. The Nomi supports two hardware options: either a MicroSD card reader or a LoRa transceiver can be mounted on the board. Thus the Nomi is an ideal hardware platform to combine short-range (UWB, BLE) and long-range (LoRa) protocols with a small form-factor.

Similar to the DecaWiNo and the Yahu, the Nomi enables wireless communication and ranging applications, i.e. distance evaluation over short to medium distances.

Nomi

The Nomi consists of:

  • The DecaWave DWM1001 module, i.e.:
  • A LiPo-battery charger,
  • An RGB LED,
  • A SWD programmation port,
  • Two optional footprints on the board: a LoRa and LoRaWAN-compatible transceiver (HopeRF RFM95), or a MicroSD card reader.

The Nomi can be used within either the Arduino or the DMOSDK framework.

The Nomi has been designed by the IRIT lab in Toulouse, France (Institut de Recherche en Informatique de Toulouse).

Ranging

Thanks to the UWB transceiver, the Nomi is a ranging capable device, i.e. it can estimate inter-node distance using precise message timestamping. Two Nomis can evaluate the distance between them, using the UWB wiress communication. The ranging precision is ~10cm in Line Of Sight (LOS) situations. To fully take advantage of the ranging capabilities, a ranging protocol such as Two-Way Ranging (TWR) must be implemented. Such a protocol implementation is available in the DecaDuino library examples.

Tutorials

In the Arduino context

In the DMOSDK context

Pinout

Nomi pinout

RGB LED

The RGB LED is direct polarized (common cathode) and uses the following pins numbers :

  • 5 (red), 0 (green) and 3 (blue) in the Arduino context,
  • 8 (red), 12 (green) and 13 (blue) using the nRF numbering (ie. under DMOSDK).

UWB transceiver

DecaDuino (Arduino)

When using the Nomi with the DecaDuino library, use the following pinmap:

1
2
// Singleton instance of the radio driver
DecaDuino decaduino(SS1, DW_IRQ);

LoRa and LoRaWAN capatibilites

LMIC (LoRaWAN/Arduino)

When using the Nomi with LMIC library (LoRaWAN), use the following pinmap for the optional RFM95 transceiver soldered onto the Nomi:

1
2
3
4
5
6
const lmic_pinmap lmic_pins = {
  .nss = SS,
  .rxtx = LMIC_UNUSED_PIN,
  .rst = LMIC_UNUSED_PIN,
  .dio = {4, 2, LMIC_UNUSED_PIN},
};
Radiohead (LoRa/Arduino)

When using the Nomi with Radiohead library (LoRa), use the following pinmap for the optional RFM95 transceiver soldered onto the Nomi:

1
2
// Singleton instance of the radio driver
RH_RF95 rf95(SS, 4);

Technical description

Libraries

Category Topic Library Adaptation Download
Networking DecaWave DW1000 DecaDuino Works out-of-the-box [git] [zip]
Sensors Accelerometer DFRobot_LIS2DH12 Add param to init() [git] [zip]
Networking LoRaWAN LMIC Pinmap Arduino IDE
Networking HopeRF RFM95b RadioHead rf95(31,7); [git] [zip]