NB-IoT | More details required

  • Hello All,

    Have multiple queries regarding NB-IoT. I have a vodafone sim NB-IoT purchased via PyCom.

    1. My region does have NB-IoT coverage (SIM got connected once). However, when trying to connect again, it does not connect. Is the connection over NB-IoT not consistent?

    2. Once we are connected over NB-IoT, how do we send data over particular IP (Let's say any remote cloud machine AWS, Azure). As mentioned FAQ for Pycom Vodafone NB-IoT SIM and Airtime. There are restriction in Real-World Internet Access in NB-IoT: The hardware enables only UDP transport over IP and the destination IP is typically not a real world one.

      • Does that mean only UDP payload can be transferred over NB-IoT?
      • Destination IP is not real one? Is it private one? Does Vodafone provides any particular server? or via PyCom-Vodafone-NB-IoT sim we can only transfer data to Pybytes?
    3. Although, I am aware of the latency and througput in NB-IoT. For this, I did tried to ping google.com. It seems DNS request does not meant to be on NB-IoT as per this discussion NB-IoT - DNS not working

    4. Does lte.uecoverage() provides whether there is network coverage ? If Yes, can it be executed before lte.attach()

    Here are the details which might be required

    >>> print(lte.send_at_cmd('AT!="fsm"'))
        |            FSM           |        STATE       |
        | RRC TOP FSM              |CAMPED              |
        | RRC SEARCH FSM           |CAMPED              |
        | RRC ACTIVE FSM           |IDLE                |
        | PMM PLMN FSM             |NORM_CAMPED         |
        | EMM MAIN FSM             |NULL                |
        | EMM AUTH FSM             |NULL                |
        | EMM CONN FSM             |NULL                |
        | EMM TAU FSM              |NULL                |
        | EMM TEST FSM             |NULL                |
        | ESM BEARER FSM           |BEARER_NULL         |
        | SMS MT FSM               |IDLE                |
        | SMS MO FSM               |IDLE                |
        | LPP FSM                  |IDLE                |
        | HP MAIN FSM              |IDLE                |
        | HP USIM FSM              |READY               |
        | HP SMS MO FSM            |IDLE                |
        | HP SMS MT FSM            |IDLE                |
        | HP CAT FSM               |IDLE                |
    >>> print(lte.send_at_cmd('AT!="showphy"'))
        Synchro state                         : DRX_SLEEP
        PPU SIB1 ACQ watchdog                 : 0
        Frequency Hypothesis RF  (Hz)         : 0
        RSRP (dBm)                            : -81.89
        RSRQ  (dB)                            : -11.60
        Channel estimation state (Cell-spec.) : HIGH CINR
        Channel estimation state (UE-spec.)   : LOW CINR
        Channel estimation state (MBSFN)      : LOW CINR
        Channel estimation CINR               : 14.56
        Channel length                        : SHORT
        AGC RX gain (dB)                      : 44.78
        RX PSD BO (dBFs)                      : -21.12
        RX PSD (dBm)                          : -84.03
        Noise level RS (dBm)                  : -95.69
        Digital gain (dB)                     : 2.66
        CINR RS (dB)                          : 13.80
        Last DL NB                            : Central
        Last UL NB                            : 0
        Frequency offset RF  (Hz)             : -167
        Frequency offset BB  (Hz)             : 0
        MIB received quantity                 : 0
        MIB timeout quantity                  : 0
    >>> print(lte.send_at_cmd('AT!="showver"'))
        Bootloader0  : [41065]
        Bootloader1* : [41019]
        Bootloader2  : [41065]
        NV Info      : 1.1,0,0
        Software     : [41019] by robot-soft at 2018-12-13 21:41:15
        UE           :
        ZSP0         : 1.0.99-3171
        ZSP1         : 1.0.98-3170
    >>> print(lte.send_at_cmd('AT!="RRC:showcaps"'))
    == CAPS config =============================
      .Lock UE on SRV band    : false
      .MFBI support           : true
      .TM8 TDD support        : false
    == CAPS ====================================
      . access stratum: R13
      . catM          : 1
      . nb-IoT        : 1
    -- EUTRA bands --
      . supported     : 66/28/26/25/20/19/18/17/14/13/12/8/5/4/3/2/1
      . board         : 1/2/3/4/5/8/12/13/14/17/18/19/20/25/26/28/66
      . admin         : 
      . pending admin : 
    -- EUTRA carriers --
      . admin         : 
      . pending admin : 
    (sysname='FiPy', nodename='FiPy', release='1.20.2.rc7', version='v1.11-6d01270 on 2020-05-04', machine='FiPy with ESP32', lorawan='1.0.2', sigfox='1.0.1', pybytes='1.4.0')

  • Hi, to answer your questions:

    1. Im not too sure about iperf3 and the ESP32 and LTE, but there is probably something out there. According to the modem datasheet
    – LTE UE category M1 (1.4 MHz bandwidth) up to 300 kbps DL/375 kbps UL in HD-FDD, and 1 Mbps in FD-FDD
    – LTE UE category NB1 (200 kHz bandwidth) up to 40 kbps DL/55 kbps UL in HD-FDD
    1. You are able to use a socket to send data, however connections through a Pycom Vodafone simcard are limited as discussed before
    2. From what Ive seen a lot is possible here. You can send strings, integers, floats etc. Not sure about the size limit. You are also able to send custom signals with formats etc.
    3. send_signal uses MQTT in the background to mqtt.pybyts.pycom.io

  • @Gijs Hope you are doing well and had a good weekend. Thank you for your support. Have few more queries regarding NB-IoT.

    1. Is there a way to figure the bandwidth, throughput in NB-IoT. Usually, we can do it use iperf3 running remotely and running iperf3 on FiPy? However, not sure how we can do it in NB-IoT.

    2. What are the different ways to send data using NB-IoT? I believe currently there is only one way Send Signal pybytes.send_signal(pin, value) ? Are there any other?

    3. What the max size of the value? Is it string, int, float or anything? Kind of what's the max payload / max message size for NB-IoT?

    4. What does pybytes.send_signal use? At FAQ-Vodafone-Pycom-NB-IoT says only UDP transport over IP is available. What happens in the background? http, socket, mqtt? etc.

    Thank You :)

  • Hi,
    To answer your questions

    1. It should connect again. Of course, due to variations in the environment and other users, a connection cannot be guaranteed, similar to WiFi and cellular connections

    2. The Vodafone cards sold by Pycom are meant to only communicate through Pybytes. Now it might resolve other DNS addresses, but connections will generally not work

    3. I am not exactly sure what you mean here.. NB-IoT should support DNS, see point 2.

    4. the command should indeed tell you whether there is network coverage. You can check the at!="fsm" command during the attaching process, against the guide here: https://docs.pycom.io/tutorials/networks/lte/

Log in to reply

Pycom on Twitter