GSM Scanning



  • I was wondering, is it possible to scan for GSM activity with one of the PyCom boards?
    What we basically want to achieve is scan for the presence of cell-phone activity within a range of 1-2 km. We have created a prototype with the a LoRa devboard and use the LoRa radio to scan on the uplink of the GSM900 band or LTE band 20. We are using this board https://www.st.com/en/evaluation-tools/b-l072z-lrwan1.html

    We can successfully see phone activity up to 1km.

    I was wondering if we could do the same with either the LoPy or the GPy. I took a look at the firmware documentation but I could not find any methods related to scanning.

    alt text



  • @Thijs-Suijten said in GSM Scanning:

    Ok, so for the LoPy it's not possible because I can't use the C api? Or is there a work around for that?

    No. You would have to add an API call to modlora.c, which calls Radio.Rssi(), which returns the activity in the selected channel. No rocket science, you can use one of the existing API calls as template, but some work.

    I looked into the list of Sequans Proprietary commands, which you can run with (watch out for the different string quotes):
    lte.send_at_cmd('AT!="<command>"')
    Start with:
    lte.send_at_cmd('AT!="help"')
    Once attached, you could for instance call:
    print(ltetest.lte.send_at_cmd('AT!="showPhyStats"'))

    A while ago I collected the short help for all of these commands. List below:

        WARNING: output of the function are limited by display buffer size.
        Please specify which part of HELP output is needed by parameters startIdx and qty.
    
    COMMAND HELP
    ============
        CMD   help                   Get help on commands
        CBE   setThreadedMode        Next CBE commands will (not) be executed on a newly spawned thread
        DBG   infoOie                Dump OIE Event
        LOG   logOutput              Configure log output
        LOG   logLevel               Configure log level
        STATS show                   Show current stats
        STATS reset                  Reset current stats
        DC    dcWakeLock             Dump DC WakeLock
        ATF   channels               show config
        ATF   psm                    show psm ctx
        EVT   showEvent              Show a registered event
        EVT   resetEvent             Reset events statistics
        EVT   disableAllEvent        Disable all events
        EVT   setEventEnable         Enable or disable an event
        EVT   setEventInternalEnable   Enable or disable an event(internal buffer)
        EVT   flushEvent             Flush events that are saved in the reserved buffer
        UCI   show                   Show UCI options
        UCI   get                    Get UCI option
        UCI   set                    Set UCI option
        UCI   delete                 Delete UCI option
        RRC   showStat               Display overall statistics
        RRC   resetStat              Reset the overall statistics
        RRC   showInitCellSelConfig   Display the initial cell selection configuration
        RRC   showIc                 Display RRC ICs
        RRC   showItf                Display some info about the RRC interface
        RRC   showSiConfig           Display the System Information config of the current serving cell
        RRC   showRlfConfig          Display info about PLMNs
        RRC   showPlmn               Display info about PLMNs
        RRC   showCsg                Display info about CSGs
        RRC   showReselInfo          Display info about the cell reselection
        RRC   showDetectedCell       Display info about the detected cells dedicated to reselection
        RRC   showRequiredCells      Display info about the required cells configured by the user
        RRC   showCellBanishment     Display info about the carriers and cells banished from reselection
        RRC   showMeasCfgObject      Display the 'reporting' dedicated objects config
        RRC   showMeasCfgReport      Display the measurement reports config
        RRC   showMeasCfg            Display the measurement config
        RRC   showMeas               Display the 'reporting' dedicated measurements
        RRC   showMeasReports        Display info about the measurement reports
        RRC   showReportFilter       Display info about the meas filters used to trigger report tx
        RRC   showSearchContext      Display info about the SEARCH FSM context
        RRC   showActiveContext      Display info about the ACTIVE FSM context
        RRC   showSrb                Display the Signalling Radio Bearers configuration
        RRC   showDrb                Display the Data Radio Bearers configuration
        RRC   showScells             Display Secondary cells config
        RRC   showMaxTxPower         Display the max Tx Power
        RRC   showCaps               Display some param related to the UE capabilities
        RRC   showMbmsUnicastSessionList   show the list of unicast MBMS sessions
        RRC   showMbmsTmgiBroadcastedList   show the list of broadcasted MBMS sessions
        RRC   showMbmsAreaConfig     Display the MBMS Area config of the current serving cell
        RRC   showMbmsUserSessionList   show the list of user MBMS sessions
        RRC   showUeAssist           Display the UE Assistacne info
        RRC   showChannelTable       ...
        RRC   showKvs                Display a group of permanent stored info
        RRC   setIc                  Set some RRC ICs
        RRC   setCaps                Set some parameters used while transmitting UE capabilities to the network
        RRC   forceReestab           Force a reestablishment (UE must be in a proper state)
        RRC   forceSibRenewal        Force the whole SIBx renewal (UE must be in a proper state)
        RRC   forceCell              Force the cell identity used for cell selection
        RRC   forceConnectionRelease   Force the release of the current RRC connection (use with caution)
        RRC   forceAllCellsBarred    ...
        RRC   forceRegFailure        Force a registration failure (must be called in CONNECTED state)
        RRC   forceResel             Force a blind cell reselection
        RRC   askNasMeasReport       ...
        RRC   addScanBand            Add a band dedicated to the initial cell selection
        RRC   addScanFreq            Add a carrier dedicated to the initial cell selection
        RRC   addScanFreqRange       Add a carrier range dedicated to the initial cell selection
        RRC   addCmdScanBand         Add a band scan command dedicated to the initial cell selection
        RRC   addCmdScanDelay        Add a delay scan command dedicated to the initial cell selection
        RRC   setPlmnSelectParam     Set some parameters used while searching for an initial cell to camp on
        RRC   removeScanFreq         Remove a carrier dedicated to the initial cell selection
        RRC   clearScanConfig        Reset the config dedicated to the initial cell selection
        RRC   clearPersist           Clear the MRU used in 'init & drop scan'
        RRC   setDbgPerm             Set access to the debug commands
        RRC   scanCell               Start/stop the detection an report of visible cells
        RRC   setRequiredCells       Set a bunch of cells the UE is expected to camp on
        RRC   setAdminBands          Define the set of supported bands
        RRC   setAdminCarriers       Define the set of supported carriers
        RRC   setStoredCellParam     Set some parameters dedicated to the management of the cells' stored info
        RRC   setIotMode             Set a customer dedicated mode
        RRC   setBandDesc            Change a band description
        RRC   resetKvs               Reset a group of permanent stored info
        RRC   setMbmsService         Set the MBMS service
        RRC   setMbmsContinuityService   Set the continuity mode of the MBMS service (MBMS interest proc, SIB15)
        RRC   setMbmsSessionActivation   activate/deactivate a MBMS session to receive
        RRC   setMbmsSessionUnicastIndication   indicate the state of a MBMS unicast session
        RRC   setLogPch              Allows to display PCH messages
        RRC   forceMeasReportFilter   take into account SRV cell CINR to change the TimeToTrigger for meas reports
        RRC   blockCellResel         No Cell reselection
        RRC   blockMeasReport        No Meas reporting
        RRC   suspend                ...
        RRC   restore                ...
        RRC   clearPStorage          Clear the persistent storage
        USIM  efShow                 Show EF info
        USIM  efOverwrite            OverWrite the flash usim content
        USIM  usim                   USIM var
        USIM  set                    Set usim parameters
        USIM  openChannel            Send OPEN CHANNEL proactive command
        USIM  setupMenuGsm           Send SETUP MENU proactive command
        USIM  setupMenuGsmSpecialChar   Send SETUP MENU proactive command
        USIM  selectItem             Send SELECT ITEM proactive command
        USIM  setupMenuUcs2          Send SETUP MENU proactive command
        USIM  receiveData            Send RECEIVE DATA proactive command
        USIM  refresh                Send REFRESH (USIM application reset) proactive command
        USIM  refreshUiccReset       Send REFRESH (USIM application reset) proactive command
        USIM  runAtCommand           Send RUN AT COMMAND proactive command
        USIM  sendProactiveCommand   Send SAT A-PDU
        USIM  SendSms                Send SEND SMS
        EMM   ClearPersistentTimers  Clear persistent timers. To be called before power on
        EMM   SetVzRoamingMode       Disables/enables Verizon specific roaming requirements
        EMM   ShowVzRoamingMode      Show the current Verizon roaming mode
        EMM   Show                   Show the current Verizon roaming mode
        EMM   SetRoamingSupport      Disables/enables roaming
        EMM   ShowRoamingSupport     Show the current roaming support
        EMM   ShowVz                 Show EMM specific Vz context
        EMM   ShowT3412              Show T3412
        ESM   showEpsBearers         Show EPS bearers
        PDCP  showStats              Show pdcp statistics
        PDCP  setPduLogLevel         Set the PDU dump level
        PDCP  setBatchValue          Set PDCP DL PDU Batch Value
        PDCP  getBatchValue          read PDCP DL PDU Batch Value
        RLC   setBatchValue          Set RLC DL PDU Batch Value
        RLC   getBatchValue          read RLC DL PDU Batch Value
        PDCP  ignoreDiscardTimer     Set discard timer to infinity for subsequent DRB establishment
        MAC   showStats              Show mac statistics
        MAC   setPduLogLevel         Set the PDU dump level
        RLC   showStats              Show rlc statistics
        RLC   setPduLogLevel         Set the PDU dump level
        RLC   listInfo               Show SLE/RLE lists info
        RLC   listStats              Show RLC lists usage statistics
        RLC   maxRetrans             Trigger or not RRC re-establishment procedure in case of max retransmission counter reached
        MBMS  showMbmsThroughputStats   Show the last computed MBMS throughput statistics
        MBMS  configureThroughputPeriodReport   set the MBMS throughput period
        LPP   NotifyAswLppMsg        Send the notification LppRxMessage to ASW
        QKI   poolsStats             Show pools statistics
        QKI   timersStats            Show timers statistics
        QKI   checkPoolCorrupt       check pool corruption
        CBE   zspFftMeas             Quick FFT measurement (spectrum analayzer)
        CBE   zspFftProb             FFT dump
        CBE   zspProb                Probe dump
        CBE   rsSymbDump             Dump of symboles with RS
        zsp0  log                    Enables / Disables a log
        zsp0  fatal                  Enables / Disables a fatal error
        zsp0  getTpc                 Returns the trapped Program counter
        zsp0  logCache               Enables / Disables the log cache dump feature
        zsp0  memCpy                 Copy data around using DMA. Returns 666 if the command is invalid
        zsp0  fftDump                Dumps the FFT data into an SDRAM circular buffer starting at a given address. Returns 666 if the command is invalid
        zsp0  dbgMode                Enables/Disable the ZSP0 debug mode : warnings are turned into fatal errors.
        zsp0  powSavMode             Enables/Disable the ZSP0 power saving mode
        zsp0  npeSetWindowLength      Change window length for averaging 
        zsp0  profEnable              Enable tasks profiling log 
        zsp0  setDlTimOffset          LTE Timing offset update 
        zsp0  probe                  Probes a buffer into memory. Returns 666 if the command is invalid
        zsp0  getWbSinr               last computed WB SINR 
        zsp0  getWbNpe                last computed WB NPE 
        zsp0  cteSetAlpha             CTE alpha settings 
        zsp0  excludeSymb0            Exclude symbol 0 
        zsp0  setMpdcchLimitations    Set MPDCCH limitations 
        zsp0  setTdcConfig            Set TDC configuration 
        zsp0  reportHPower            Report H power 
        zsp0  nscsMemcopy            Use memcopy for SCS samples fetch and NPSS contextes store/load in psram
        zsp0  nscsDumpSamples        Dump SCS buffer samples to PSRAM.
        zsp0  nscsControl            Control NSCS
        zsp1  log                    Enables / Disables a log
        zsp1  fatal                  Enables / Disables a fatal error
        zsp1  getTpc                 Returns the trapped Program counter
        zsp1  logCache               Enables / Disables the log cache dump feature
        zsp1  memCpy                 Copy data around using DMA. Returns 666 if the command is invalid
        zsp1  dbgMode                Enables/Disable the ZSP1 debug mode : warnings are turned into fatal errors.
        zsp1  powSavMode             Enables/Disable the ZSP1 power saving mode
        zsp1  profEnable              Enable tasks profiling log 
        zsp1  pssThres               Configure pss Threshold
        zsp1  halfFrame              Configure pss Threshold
        zsp1  probe                  Probes a buffer into memory. Returns 666 if the command is invalid
        ETM   show                   Show details
        ETM   dhcp4                  Show DHCPv4 proxy details
        ETM   dhcp6                  Show DHCPv6 proxy details
        ETM   icmp6                  Show ICMPv6 proxy details
        ETM   showRb                 Show Radio Bearer
        ETM   showTft                Show Traffic Flow Template
        ETM   showPdn                Show PDN Info
        ETM   config                 Network configuration
        ETM   pdnConfig              PDN configuration
        ETM   multiPdnConfig         Multi PDN configuration
        ETM   filter                 PDN traffic filter
        ETM   addDlRouteRule         Add a DL routing rule to a PDN
        ETM   clearDlRouteRule       Remove all the DL routing rules dedicate to a PDN
        ETM   reqRouterAdv           Start/stop soliciting the Network to send a new 'Router Advert'
        ETM   nsiPrintMiiStats       Print Mii driver stats
        ETM   nsiResetAllocStats     Reset Mii alloc stats
        ETM   nsiPrintAllocStats     Print Mii alloc stats
        ETM   injectDlPkt            ...
        ETM   dbgEstPdn              (debug) Establish a PDN
        ETM   dbgRelPdn              (debug) Release a PDN
        ETM   sniffPackets           (debug) Sniff and dump packets
        HP    nvramOverwrite         OverWrite the flash HP content
        HP    setPeriodOnOff         set LED periods
        HP    ledLog                 get logs for LED
        HP    setT3324               configure T3324
        HP    setExtendedT3412       configure extended T3412
        HP    setPlcMode             set plc mode
        HP    getPlcMode             get plc mode
        HP    setPlcProfile          set plc profile
        HP    getPlcProfile          get plc profile
        HP    resetPlcProfile        reset plc profile
        HP    StoreFs                store FS
        HP    GetFs                  get FS
        HP    ShowHpFs               show FS
        HP    ShowEmmFs              show FS
        HP    ShowEsmFs              show FS
        HP    ShowFsLen              show FS length
        HP    ShowVz                 show vzw
        THSP  DumpGroup              Displays THP groups
        THSP  Debug                  Displays stats
        THSP  MsgStats               Displays messages stats
        THSP  NtfOnList              Displays enabled notification list
        THSP  setRxDropRate          Set debug THP RX drop rate
        THSP  setTxDropRate          Set debug THP TX drop rate
        THSP  showDropRates          Displays drop rates
        THSP  setRxDropCount         Set debug THP RX drop count
        THSP  setTxDropCount         Set debug THP TX drop count
        THSP  showDropCounts         Displays drop counts
        THSP  setPayloadDump         Enable dump of THP command payload
        THSP  showPayloadDump        Displays current state of THP command payload dump
        THSP  setLogEnabled          Enable log of THP commands
        THSP  showLogState           Displays current state of THP commands log
        CBE   showVersion            Show the system version
        CBE   showResetReason        Show the reason of the SoC
        CBE   showApiVersion         Shows version of SIDLs
        CBE   filterLog              filter logging. Syntax is '(+/-)MOD[/SUB]'. '*' is supported at the end.
        CBE   showLogs               Show the system logs
        CBE   showTime               Display internal state
        CBE   forceDebug             force system to switch in debug/release mode
        CBE   getAssert              create an assert
        CBE   showBootRegisterVersion   Shows revision of bootloader registers configuration
        CBE   getCrystalCount        get 32kHz counter
        CBE   showPacketFlow         Show the packet flow statistics
        CBE   resetPacketFlow        Reset the packet flow statistics
        CBE   closeLoopB             Activate test mode and close the mode B test loop
        CBE   fsmShow                Display internal state
        CBE   resetPersistentData    Reset NAS persistent data
        CBE   msgFromPsp             Show tasks messages stats
        CBE   showTestList           Show test list
        CBE   startTest              Start test execution
        CBE   epsAttach              Request to attach EPS service
        CBE   epsDetach              Request to detach EPS service
        CBE   powerOn                Request to power on
        CBE   powerOff               Request to power off
        CBE   sendAt                 Send a transparent AT command
        CBE   activateRb             Activate a default or dedicated radio bearer
        CBE   deactivateRb           Deactivate a default or dedicated radio bearer
        CBE   configureDefaultRb     Configure PDN type and APN for a default radio bearer
        CBE   configureDedicatedRb   Configure linked default bearer cid
        CBE   configureQos           Configure Qos
        CBE   configureTft           Configure TFT
        CBE   enterAirPlaneMode      Request to start air plane mode
        CBE   sendSmsPdu             Send SMS in PDU mode
        CBE   writeSmsPdu            Write and store SMS
        CBE   setIotMode             set IOT mode
        CBE   setUeUlCat             Set a customer dedicated mode
        CBE   showIotMode            show the current IOT mode
        CBE   setConformanceTestsMode   set conformance tests mode
        CBE   showConformanceTestsMode   show the conformance tests status
        CBE   setUsimMode            set USIM mode
        CBE   showUsimMode           show the current USIM mode
        CBE   efReadFromPath         Read USIM EF given the path
        CBE   efReadFromIndex        Read USIM EF given the EF index (see efListIndex)
        CBE   efListIndex            Give the internal index related to an EF
        L1P   showPhyStats           Retrieve DL synchronization statistics
        L1P   getDlDrvStatistics     Retrieve DL driver statistics
        L1P   resetDlDrvStatistics   Reset DL DRV statistics
        L1P   getLpmStatistics       Retrieve LPM statistics on L1 side
        L1P   resetLpmStatistics     Reset LPM statistics
        L1P   resetPhyProcessTimers  Reset physical Process timers fifo
        L1P   dumpPhyProcessTimers   Return physical Process timers
        L1P   getMacDrvStatistics    Retrieve MAC driver statistics
        L1P   resetPhyStatistics     Reset L1 statistics
        L1P   getUlDrvStatistics     Retrieve UL driver statistics
        L1P   getDebug               Retrieve debug informations
        L1P   getUlSchedulerStatistics   Retrieve UL scheduler statistics
        L1P   getFc                  Retrieve frame configuration
        L1P   getPerMcs              Retrieve PER statistics per MCS index
        L1P   setSpkParams           Change spur killer default params
        L1P   resetPer               Reset PER statistics
        L1P   getProfiling           Retrieve profiling statistics
        L1P   resetProfiling         Reset profiling statistics
        L1P   setUlParams            Set UL parameters
        L1P   setDlParams            Set DL parameters
        L1P   setCheSwitchConfig     Set CHE switch configuration
        L1P   setAnrConfig           Set Anr configuration
        L1P   setMpuState            Start Mpu (only for Mtool)
        L1P   setRlmParam            Set RLM parameters
        L1P   setFastscanCfg         Set fastscan config
        L1P   setL1IotParams         Set PHY IOT secret parameters
        L1P   setLpm                 Enable/disable LPM
        L1P   getDlHarqStats         Get DL HARQ statistics
        L1P   resetDlHarq            Reset DL HARQ statistics
        L1P   resetUlHarq            Reset UL HARQ statistics
        L1P   getCqiParams           Get CQI reporting parameters
        L1P   getCqiStats            Get CQI statistics
        L1P   resetCqiStats          Reset CQI statistics
        L1P   getDrxConfig           Get DRX config and state
        L1P   getRepetStats          Get repetition statistics for BL/CE UE
        L1P   getMacMbmsStats        Get MBMS statistics at MAC level
        MBMS  getPhyMbmsStats        Get MBMS PMCH statistics at PHY level
        CBE   lpuFifos               Show lpu fifos stats
        L1P   setMbmsMeasReport      Set MBMS RSSI meas report parameters
        L1P   setMbmsRsrpMeasReport  Set MBMS RSRP meas report parameters
        L1P   disableScanPattern     Disable scanning pattern
        L1P   forceDlFilters         Force CS and UE specific filters
        L1P   setCustomBandPower     Custom parameters for TxPower and MPR
        L1P   setNBSynchroParam      Custom parameters for NB synchro
        IP    ifconfig               displays network configuration
        IP    ping                   send ICMP ECHO_REQUEST to network hosts
        IP    netstat                print network connections
        ARC   SendCommand            Sends an ARC command
        hps   getLogs                show logs configuration
        hps   setLog                 set log level, '*' for all logs
        hps   printLogs              print hps logs on the console
        mcu   cli                    Debug Cli
        NCAT  sldomain               Show prefered domain type(ipv4 or ipv6) for listening sockets.
        eapps setDnsTimeout          Set timeout between requests to primary/secondary DNS servers.
        eapps resolve                Resolve host name using general/alternate DNS resolver.
        eapps scanJson               scan json config files
        lwm2m setCustomDeviceValue   Set a custom value to one of the resources in Device (/3/0) instance
        lwm2m setCustomCapMgmtValue  Set a custom value to one of the resources in CapMgmt (/15/0) instance
        APP   startapp               Start app ELF.
        HWID  hwid                   Display hardware ID.
        FS    find                   Display file tree.
        FS    ls                     List directory content.
        FS    sync                   Synchronize file system on disk.
        FS    format                 Format file system.
        FS    mount                  Mount file system.
        FS    umount                 Unmount file system.
        FS    gc                     Force fs garbage collecting.
        FS    mv                     Rename file.
        FS    stat                   Stats on filesystem.
        FS    rm                     Delete file
        FS    mkdir                  Create a directory
        FS    cat                    Print file contents
        FS    hexdump                Print file contents in hexadecimal
        FS    echo                   Display a word [redirected to 'path']
        FS    tree                   List contents of directories in a tree-like format
        FS    lsof                   List open files
        FS    cp                     Copy files and directories
        FS    factoryreset           Factory reset
        FS    users                  Print the current user name
        FS    su                     Become superuser for newly created threads only
        FS    chmod                  List directory content.
        PSI   saveCurrentConfig      Save current PSI configuration
        PSI   restoreConfig          Save previously saved PSI configuration, system should berestarted to take the action into account
        CRASHDUMP l1Exception        Raise Exception on LPU
        CRASHDUMP l1Assert           Assert on LPU
        USIM  setT0LogsMode          Activate T0 logs
        DBG   display                Display memory 
        DBG   modify                 Modify memory 
        DBG   infoAllTask            Dump eCos tasks
        DBG   infoIrq                Dump eCos IRQ informations
        DBG   dumpStack              Dump a given eCos task stack trace
        DBG   dumpAllStack           Dump eCos tasks stack trace
        switchBoot switchBoot        Select boot mode: FFF, FFH, UPDATER, RECOVERY, ECOPAGING
        PERFC addCounter             Add and start performance counter
        PERFC deleteCounter          Stop and delete performance counter
        PERFC showCounters           Show performance counters
        PERFC addL1pCounter          Add and start l1p performance counter
        PERFC delL1pCounter          delete l1p performance counter
        PERFC getL1pCounter          delete l1p performance counter
        TRACE showTrace              Show Trace
        TRACE addTrace               add Trace
        CBE   dumpCoop               Display internal state
        CBE   resetCoop              Display internal state
        EE    resetStats             Reset EE stats
        EE    state                  Displays current state
        EE    wakeLocks              Displays active wakelocks
        EE    quartz                 Displays information related to quartz calibration
        EE    disable                Prevents the system from sleeping forevermore
        EE    setLock                configure lock on platform side
        EE    disableLog             disable lpm log
        EE    setExtWake             configure external wake
        EE    setExtPolarity         configure external wake polarity
        EE    setPspmThresh          configure pspm threshold (in min)
        EE    getTimer               Get Timers Listed in TLA
        EE    ptime                  Show all POSIX time debug API
        EE    tuTimer                test unit Timers Listed in TLA
        EE    expTimer               Get next Timer expires remaining
        EE    wakeUpEvent            Send WakeUp Event to shift 
        WDT   show                   Displays monitor statistics
        WDT   disable                Disable modem wdg
        WMALLOC stats                  Displays statistics
        DCP   mem                    displays memory status
        DCP   stats                  displays uart stats
        EVT   evtClientFs            Store events into filesystem.
        CPU   cpuinfo                Print cpu information
        SW    get_sw_version         Displays software versions
        CBE   showSpurs              Show configured spurs
        CBE   clearSpurs             Clear configured spurs
        CBE   SpursResetdisable      Disable spurs estimator reset on timing update. For DEBUG
        CBE   addSpurLockedToLo      Add spur locked to LO
        CBE   addSpurNotLockedToLo   Add spur not locked to LO
        THSP  SetMc                  Set media connection state
    


  • @robert-hh Ok, so for the LoPy it's not possible because I can't use the C api? Or is there a work around for that?

    Looking at the GPy it has a lte.send_at_cmd(cmd, [delay=10000]) function, so I could communicate with the modem in that way. Then I have to figure out how to "scan" on a frequency using the AT commands.

    Edit: I took a look at this document: https://docs.pycom.io/gitbook/assets/Monarch-LR5110-ATCmdRefMan-rev6_noConfidential.pdf I don't see a way to scan on the uplink frequency there.



  • @Thijs-Suijten You cannot directly call these internal functions. The way is through the MicroPython API.

    esp32/mods/modlora.c (API) uses a call table in:
    esp32/lora/sx1276_board.c (or esp32/lora/sx1272_board.c) with the functions located in:
    drivers/sx127x/sx1276/sx1276.c (or drivers/sx127x/sx1276/sx1272.c`)

    For GPY all calls go through an API to the GSM modem using AT commands. So if the modem supports that, you can issue these AT commands directly.



  • @robert-hh ok, and can I access these internal calls? Once I have an idea this might be possible I can order a board and just try it out.

    Additionally I would like to know if something similar is also possible with the GPy, because that might allow me to also scan bands that are in the higher frequency ranges.



  • @Thijs-Suijten ischannel_free() calls internal ReadRssi() and checks the value against the supplied threshold and time. So the approach is pretty similar.



  • @jcaron thanks for the suggestion! What we do right now on the LoRa board is basically loop through all the frequencies we want to scan and request the RSSI per frequency and then analyse the data. So we do a sweeping scan. We are aware of the fact we are "missing" data then, but as long as we see activity its fine.

    Would something like that be possible with the LoPy? It seems lora.ischannel_free almost does what I want, only I want to get the raw RSSi value instead of getting a boolean.



  • @Thijs-Suijten That's an interesting concept...

    On the LoPy, you could probably look into lora.ischannel_free (after configuring the board for raw LoRa and selecting a channel).

    Note of course that there are many different bands, and not all phones/networks use the same bands, so you may be missing on quite a bit of activity if it falls outside the range supported by the LoRa modem.

    No idea if the GPy could do anything like that.


Log in to reply
 

Pycom on Twitter