FiPy with NB-IoT sim cards but no signal



  • Hi everyone,
    When I use the FiPy board without extension board in Taiwan, I found that the board can't get the signal, either using the NB-Iot card from Asia Pacific Telecom(亞太電信) or from Chunghwa Telecom(中華電信). The only thing that I connected to the board is a LTE antenna, VCC and GND, TX and RX.
    It is known that it's not the problem of cards since I can use another device to get the signal.
    I want to communicate with the Internet with NB-IoT and I just stuck with this problem.

    The following is the information about the firmware.

    <<< Welcome to the SQN3330 firmware updater [1.2.2] >>>
    >>> FiPy with firmware version 1.18.2
    Your modem is in application mode. Here is the current version:
    UE6.0.0.0
    LR6.0.0.0-41019
    

    The following code is the way I tested.

    from network import LTE
    lte = LTE()
    lte.send_at_cmd('AT+CPIN?') 
    lte.send_at_cmd('AT+CCLK?')
    lte.send_at_cmd('AT+COPS?')  
    lte.send_at_cmd('AT+CEREG=2') 
    lte.send_at_cmd('AT+CEREG?')  
    lte.send_at_cmd('AT+CEREG=0') 
    lte.send_at_cmd('AT+CSQ') 
    

    Surprisingly, I got different result from two cards while the board I used is the same one.

    1. Chunghwa Telecom:
      FiPy:
    >>> from network import LTE
    >>> lte = LTE()
    >>> lte.send_at_cmd('at+cpin?')
    '\r\nERROR\r\n'
    >>> lte.send_at_cmd('at+cclk?')
    '\r\n+CCLK: "70/01/01,00:46:45+00"\r\n\r\nOK\r\n'
    >>> lte.send_at_cmd('at+cops?')
    '\r\nERROR\r\n'
    >>> lte.send_at_cmd('at+cereg=2')
    '\r\nOK\r\n'
    >>> lte.send_at_cmd('at+cereg?')
    '\r\n+CEREG: 2,0\r\n\r\nOK\r\n'
    >>> lte.send_at_cmd('at+cereg=0')
    '\r\nOK\r\n'
    >>> lte.send_at_cmd('at+csq')
    '\r\n+CSQ: 99,99\r\n\r\nOK\r\n'
    

    Another device:

    [11:11:06.067] rx: AT+CLCK="SC",2
    [11:11:06.077] tx: AT+CLCK="SC",2
    [11:11:06.077] tx: +CLCK: 0
    [11:11:06.077] tx: OK
    [11:11:06.135] rx: AT+CPIN?
    [11:11:06.146] tx: AT+CPIN?
    [11:11:06.146] tx: +CPIN: READY
    [11:11:06.146] tx: OK
    [11:11:06.306] rx: AT+CCLK?
    [11:11:06.319] tx: AT+CCLK?
    [11:11:06.319] tx: +CCLK: "19/06/04,03:11:06"
    [11:11:06.478] rx: AT+COPS?
    [11:11:06.487] tx: AT+COPS?
    [11:11:06.487] tx: +COPS: 0,0,"466 92",8
    [11:11:06.487] tx: OK
    [11:11:06.565] rx: AT+CEREG=2
    [11:11:06.581] tx: AT+CEREG=2
    [11:11:06.581] tx: OK
    [11:11:06.635] rx: AT+CEREG?
    [11:11:06.644] tx: AT+CEREG?
    [11:11:06.644] tx: +CEREG: 2,1,"<tac>","<ci>",8
    [11:11:06.644] tx: OK
    [11:11:06.713] rx: AT+CEREG=0
    [11:11:06.730] tx: AT+CEREG=0
    [11:11:06.730] tx: OK
    [11:11:06.780] rx: AT+CSQ
    [11:11:06.789] tx: AT+CSQ
    [11:11:06.789] tx: +CSQ: 22,99
    [11:11:06.789] tx: OK
    
    1. Asia Pacific Telecom
      FiPy:
    >>> from network import LTE
    >>> lte = LTE()
    >>> lte.send_at_cmd('at+cpin?')
    '\r\n+CPIN: READY\r\n\r\nOK\r\n'
    >>> lte.send_at_cmd('at+cclk?')
    '\r\n+CCLK: "70/01/01,00:01:07+00"\r\n\r\nOK\r\n'
    >>> lte.send_at_cmd('at+cops?')
    '\r\n+COPS: 0\r\n\r\nOK\r\n'
    >>> lte.send_at_cmd('at+cereg=2')
    '\r\nOK\r\n'
    >>> lte.send_at_cmd('at+cereg?')
    '\r\n+CEREG: 2,0\r\n\r\nOK\r\n'
    >>> lte.send_at_cmd('at+cereg=0')
    '\r\nOK\r\n'
    >>> lte.send_at_cmd('at+csq')
    '\r\n+CSQ: 99,99\r\n\r\nOK\r\n'
    

    Another Device:

    [12:22:42.813] rx: AT+CLCK="SC",2
    [12:22:42.826] tx: AT+CLCK="SC",2
    [12:22:42.826] tx: +CLCK: 0
    [12:22:42.826] tx: OK
    [12:22:42.876] rx: AT+CPIN?
    [12:22:42.893] tx: AT+CPIN?
    [12:22:42.893] tx: +CPIN: READY
    [12:22:42.893] tx: OK
    [12:22:43.054] rx: AT+CCLK?
    [12:22:43.069] tx: AT+CCLK?
    [12:22:43.069] tx: +CCLK: "19/06/04,04:22:42"
    [12:22:43.069] tx: OK
    [12:22:43.230] rx: AT+COPS?
    [12:22:43.239] tx: AT+COPS?
    [12:22:43.239] tx: +COPS: 0,0,"GT IoT GT IoT",9
    [12:22:43.239] tx: OK
    [12:22:43.308] rx: AT+CEREG=2
    [12:22:43.317] tx: AT+CEREG=2
    [12:22:43.317] tx: OK
    [12:22:43.367] rx: AT+CEREG?
    [12:22:43.375] tx: AT+CEREG?
    [12:22:43.375] tx: +CEREG: 2,1,"<tac>","<ci>",9
    [12:22:43.375] tx: OK
    [12:22:43.447] rx: AT+CEREG=0
    [12:22:43.461] tx: AT+CEREG=0
    [12:22:43.461] tx: OK
    [12:22:43.511] rx: AT+CSQ
    [12:22:43.519] tx: AT+CSQ
    [12:22:43.519] tx: +CSQ: 20,99
    

    The other device I used is SARA-R410M from ublox.
    How can I fix this problem or find the cause?



  • @naveen No clue. When it did not work for me, I could not get a hand on debugging. I only purchased another LTE NBIoT module to verify, that the service was available and the SIM worked. It did. Module type SIM7020.



  • @robert-hh I waited for 25 minutes but still it is not attaching to NB-IOT network. I reverted the firmware to CATM1 again and it works flawlessly. How can I debug the issue?



  • @naveen I never tried that with the master branch before. I always used the release-candidate branch. But I loaded now the firmware 1.18.2.r7 from the web site and it works too. As far as I remember, the first attach took like 15 minutes. After that, it is down now to ~10 seconds.



  • @robert-hh I am using the latest stable v1.18.2.r7 (just updated few hours ago). I waited a minute or so.



  • @naveen That sounds not good. A few questions:

    • which firmware for the FiPy are you using?
    • how long did you wait for the attach?


  • @robert-hh @Xykon It took over a month and finally I received a new FiPy r1.2 board. I have tested the CAT-M1 firmware on this board using hologram sim and it was able to connect and send message using Softbank japan CAT-M1 LTE network.
    But when I upgraded the firmware with NB-IOT (41019), it is not attaching to any network. The Softbank supports CAT-M1 and NB-IOT both. I am in a good coverage area and it took just 2-3 seconds to attach the CAT-M1 network. What could be the reason?



  • @naveen They have sent new boards, and it took ~4 weeks. But at that time they were still searching for the best fix.



  • @robert-hh Thanks for your response. Did they send new board or fixed the same one. How long it took to send and get it back? And what was the shipping cost?



  • @naveen That was the case for my r1.0 boards too. I had to replace them by r1.2 boards.



  • @robert-hh I have updated the firmware. It shows more bands now but still not attaching to the network.

    SYSTEM VERSION
    ==============
      FIRMWARE VERSION
        Bootloader0  : 5.1.1.0 [41065]
        Bootloader1* : 5.1.1.0 [41065]
        Bootloader2  : 5.1.1.0 [41065]
        NV Info      : 1.1,0,0
        Software     : 5.1.1.0 [41065] by robot-soft at 2018-12-17 13:03:40
        UE           : 5.0.0.0d
      COMPONENTS
        ZSP0         : 1.0.99-13616
        ZSP1         : 1.0.99-12376
    
    == CAPS config =============================
      .Lock UE on SRV band    : false
      .MFBI support           : true
      .TM8 TDD support        : false
    ============================================
    == CAPS ====================================
      . access stratum: R13
      . catM          : 1
      . nb-IoT        : 0
    -- 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 : 
    ============================================
    

    Output:

    modem command: AT+CEREG=2
    response=['OK']
    modem command: AT+CFUN=1
    response=['OK']
    modem command: AT+CGDCONT=1,"IP","hologram"
    response=[]
    attempt to attach cell modem to base station...
    modem command: ATI
    response=['+SYSSTART']
    modem command: AT+SQNCCID?
    response=['+SQNCCID: "",""', 'OK']
    modem command: AT+CEREG?
    response=['+CEREG: 2,0', 'OK']
    tac=0
    modem command: AT+CSQ
    response=['+CSQ: 99,99', 'OK']
    modem command: AT+CEER
    response=['+CEER: lastEmmCause: NO CAUSE RECEIVED, lastEsmCause: NO CAUSE RECEIVED', 'OK']
    


  • @naveen Looking for the LTE bands used in Japan, it is not likely that a r1.0 device matches. Pycom has a replacement program for these devices. Look at the following link on how to use it. https://forum.pycom.io/topic/3843/important-news-regarding-cat-m1-and-nb-iot-cellular-range.
    You need a little patience, because Pycom seems very busy at the moment. Buying a new one, if not from Pycom, may not get you a r1.2 model. Vendors may still have r1.0 devices on stock and sell them in good faith.



  • @naveen your post shows an old modem firmware. You should update that as a first step.



  • I am facing the same issue. I am in Japan and using Fipy 1.0r with Hologram sim.
    The sim works with phone.
    How can I know if the supported band work here? @robert-hh, what do you mean by "It should be r1.2. r1.0 Versions have issues and must be replaced." You mean I need to buy a new one or I can ask Pycom to replace it?

    >>> print(lte.send_at_cmd('AT!="showver"'))
    
    SYSTEM VERSION
    ==============
      FIRMWARE VERSION
        Bootloader0  : 5.1.1.0 [33080]
        Bootloader1* : 5.1.1.0 [38638]
        Bootloader2  : 5.1.1.0 [39529]
        NV Info      : 1.1,0,0
        Software     : 5.1.1.0 [39529] by robot-soft at 2018-09-28 16:07:40
        UE           : 5.0.0.0d
      COMPONENTS
        ZSP0         : 1.0.99-13616
        ZSP1         : 1.0.99-12355
    
    OK
    
    >>> print(lte.send_at_cmd('AT!="setDbgPerm full"'))
    
    
    OK
    
    >>> print(lte.send_at_cmd('AT!="showCaps"'))
    
    == CAPS config =============================
      .Lock UE on SRV band    : false
      .MFBI support           : true
      .TM8 TDD support        : false
    ============================================
    == CAPS ====================================
      . access stratum: R13
      . catM          : 1
      . nb-IoT        : 0
    -- EUTRA bands --
      . supported     : 28/20/13/12/4/3
      . board         : 3/4/12/13/20/28
      . admin         : 
      . pending admin : 
    -- EUTRA carriers --
      . admin         : 
      . pending admin : 
    ============================================
    
    OK
    


  • @WalkerYun It is more intersting which EUTRA band are supported, like in my result:

    >>> from network import LTE
    >>> lte=LTE()
    >>> print(lte.send_at_cmd('AT!="showver"'))
    
    SYSTEM VERSION
    ==============
      FIRMWARE VERSION
        Bootloader0  : 5.1.1.0 [39529]
        Bootloader1* : 6.0.0.0 [41019]
        Bootloader2  : 6.0.0.0 [41019]
        NV Info      : 1.1,0,0
        Software     : 6.0.0.0 [41019] by robot-soft at 2018-12-13 21:41:15
        UE           : 6.0.0.0
      COMPONENTS
        ZSP0         : 1.0.99-3171
        ZSP1         : 1.0.98-3170
    
    OK
    
    >>> print(lte.send_at_cmd('AT!="setDbgPerm full"'))
    
    
    OK
    
    >>> print(lte.send_at_cmd('AT!="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 : 
    ============================================
    
    OK
    

    Version 1.0r supports only a small setg of EUTRA bands, and if your provider uses these, than the device will not work.



  • @robert-hh
    Thanks for replying. I've tried the script of you and it returned 1 in both nb-iot and cat-m1.
    I have checked the version of Fipy and discovered that it is V1.0r. However, what kind of issue would happen if I use V1.0r? Could it connect to LTE CAT-M1?



  • @WalkerYun If I use your script with my FiPy, I get the same results. However, the device connects fine to LTE NBIoT, using the test script @Xykon pointed at. I had a case yesterday that all by sudden the modem refused to connect. Re-Flashing the modem firmware in recovery mode solved the issue. Never happened before. Could you please try the following commands:

    from network import LTE
    lte=LTE()
    print(lte.send_at_cmd('AT!="showver"'))
    print(lte.send_at_cmd('AT!="setDbgPerm full"'))
    print(lte.send_at_cmd('AT!="showCaps"'))
    

    That shows the firmware version and the supported bans of the modem. Please check also the version of your FiPy. The number is at the bottom side of the module next to the SIM card. It should be r1.2. r1.0 Versions have issues and must be replaced.



  • @Xykon
    Thanks for replying.
    Yes, I have tried the example but every time I try the lte.isattached() step, I would always get "False" and I could not know what happened.
    Could you please give me some directions on how to enable the radio?


  • administrators

    @WalkerYun

    Have you actually tried the NB-IoT example in the docs?

    The output you have provided doesn't really help at this point because I don't see the radio being enabled.

    The LTE class documentation also has more details about commands to use for troubleshooting.



Pycom on Twitter