Firmware release 1.1.0.b1



  • @mohpor Hi, I have replied to your email a few minutes ago... we do have plans for supporting BLE in GATT server mode, we just chose to implement the client functionality first as this is what most people was requesting.



  • Hi @daniel
    As I have mentioned in my email, there is no BLE Peripheral in the current implementation, nor anything is planned for the near future. Do you have any plans for it?
    set_adv(), add_service(), add_characteristic()... would be a dream come true for me now. I have waited a few weeks, I'm losing hope.



  • @drnordstedt @daniel What may work "better" is if get_adv() returns an array of all currently known requests, resetting the queue. I can see too many race conditions otherwise.



  • @daniel Thanks for the info. Yes, I tried it in a loop. I'll run some more tests with other devices and sniff out the packets. I can send you the advertising packet data if you'd like when I run my captures.



  • @drnordstedt yes advertisements are queued and the FIFO behind has space for 8 advertisement messages.

    Have you tried on a for loop?

    while True:
        bt.get_adv()
    

    Yes, we do have plans to also offer a callback feature.



  • @daniel I am able to scan and get the advertisement from my TI Sensor Tag, but not my Eddystone Beacon. Not sure why... Do the advertisements get queued up and we retrieve them one by one with get_adv() method? Any plans to set up a callback feature for receiving advertisements instead of polling with get_adv()?



  • @Frida nothing, it's just a warning message that will be removed in future releases. Is the scan returning results?



  • @daniel
    Next week will be the perfect timeframe.
    Thanks again. Great job. And I wish you a lot of XxPy for 2017!!



  • What is wrong here?

    MicroPython v1.8.6-274-g9a2018f on 2016-12-29; WiPy with ESP32
    Type "help()" for more information.
    ">>>"
    paste mode; Ctrl-C to cancel, Ctrl-D to finish
    === from network import Bluetooth
    === import time
    === bt = Bluetooth()
    === bt.start_scan(-1)

    BTDM CONTROLLER VERSION: 010101
    btip start
    copy .data from 4000d890 to 3ffae6e0, len 00001830
    set .bss 0x0 from 3ffb8000 to 3ffbff70, len 00007f70
    BTDM ROM VERSION 0101
    BD_ADDR: 24:0A:C4:00:70:C6
    NVDS MAGIC FAILED
    RF Init OK with coex
    W (34905) wifi: post pm rx bcn failed
    ">>>"

    it is the first lines from here

    https://docs.pycom.io/pycom_esp32/library/network.Bluetooth.html



  • Place this under "desires:" My application could use a filtering BLE scan with a timeout that returns an array of the advertisement data. The addresses in my case will come in multiples of three (three sensors per bee hive). I cannot quite trace esp_ble_adv_filter_t through the IDF code, so I'm guessing this isn't implemented yet. The scan would be followed by a period of deep, deep sleep ideally.

    An alternative would be to collect all BLE advertisements from the whitelist into a FIFO queue while in "sleep", then wake up to process and send via LoRaWAN / whatever. But that likely would be less energy-efficient. There may be many BLE devices passing by, and I only want the data every 10-15 minutes.



  • @the_ned sorry to keep you waiting. We plan to add support to the SiPy on the updater tool next Tuesday.



  • Hi Daniel,

    I just received today my SiPY modules and I am trying to access the BLE stack and I am getting an import module error for Bluetooth.
    Is there a way to upgrade the SiPY firmware with that update? Currently the upgrade tool does not support it (not present in the firmware list).

    Thanks


Log in to reply
 

Pycom on Twitter