Confusing development process



  • For me is the large number for branches, which try and fix this and that, confusing. At the same time, simple bugs like the GPIO Pin swap for SiPy or the lte.attach() bug stay unfixed in the main line, even if some of the published branches contain fixes.
    So it would be helpful if you could agree on maintaining the master branch more frequently and include all the simple fixes as soon they are ready.
    You may be focused on all these shiny new products, but please do not forget support for the existing product and code base.
    One more thing: While the stable update version is 1.18.1.r4, the master branch of the repository still sticks at 1.18.1.r1.



  • @iwahdan There is another branch now called stable_update. I understand that this is the trial update to 1.18.1.rx. I left a note there on one of the newer commits. Having a note somewhere about the intention of each branch would be helpful.



  • I totally agree we could do a better job documenting what each release contains. and the correct versions to be running at any given point. If people have suggestions on the best way to communicate this info. I'd be more than happy to hear it.

    Drop me a forum PM or email me at paul@pycom.io I'm always happy to hear suggestions for improvement.



  • This post is deleted!


  • @robert-hh Good news!, I also pushed the support for bands 8,5 on the release candidate.



  • @iwahdan With a slight modification in lte_attach() (just adding band 8) I succeeded in attaching & connecting in band 8, T-Mobile Germany, 1nce.net. Good news!



  • @danielm libcore.a is also part of IDF /components/esp32/lib so you might need to do git submodule update after checking out idf_v3.1 branch as well



  • @danielm I'm using 5.2.0 too. Did you update the submodules AFTER checking out the proper branch in the IDF?



  • I am not able to successfully build the release candidate. Am I using the right compiler?

    .../xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld: cannot find -lcore
    collect2: error: ld returned 1 exit status
    


  • @iwahdan about point a) This exposing was part of the pull request, if you look into the link you gave. I know it since this PR was done by me. And it is the change to modmicropython.c, which is missing. But you might skip the change to the first file, esp32/fatfs/src/drivers/sflash_diskio.c, because that is unrelated and anyhow not needed.
    for point b) that's fine. Is it only the code in lte_attach(), or more?



  • @robert-hh ,

    for point b) I am now updating v1.20.0.rc0 to support this band along with other bands as well, will push it today to branch.
    for point a) I think Exposing this option in Micropython was not part of the pull request here https://github.com/pycom/pycom-micropython-sigfox/pull/139/files , that's why I think it was missed out.



  • @iwahdan I was pretty sure that I did, but doing it again changed the picture, and it build now. Thanks.

    Two other question:
    a) v1.20.0.rc1 (like 1.19.x) has a halfway implementation of controlling the behaviour of CTRL-F. All the lower level changes are implemented, but the API call from python is not. Is that for a specific reason?
    b) I got the replaced FiPy for band 8, but trying to use it tells be, that band 8 is not supported. And downloading the most recent sequans firmware requires an authorization. I know that I downloaded a version once, but cannot recall being asked for authorization. Found the password!



  • Hi @robert-hh , sorry didn't see that you already use idf_v3.1 , however, did you update IDF submodules git submodule update after checking out idf_v3.1 branch as libmesh.a is located in components/esp32/lib



  • @iwahdan Hello @iwahdan . Thanks for the swift response. If you look down the posts, you sse that I checked out the idf_v3.1 branch in the pycom-esp-idf & made a git pull for updating (and submodule update). And I removed that -lmesh from the linker list. At that point I got the linker error list and stopped trying.



  • Hello @robert-hh , we will be posting about a new release candidate v1.20.0.rc0 this weekend, for now I think the problem of -lmesh is because you are using IDF. master branch , for this build we are using idf_v3.1 branch.

    About the Dev process, I agree with you, that's why we are currently updating the process to make the master branch always up to date with our private Development repo, and that will take effect once we merge this v1.20.0 as an Official release and merge it to master, for Now we are keeping the branch v1.20.0.rc0 for evaluating this release candidate.



  • @robert-hh
    Yes I also got stuck at "-lmesh" error.
    Let's wait for @iwahdan until he releases it :)



  • @danielm after just removing -lmesh form the LIBS list in Makefile, the loader starts and spits out a huge error list.

    Use make SECURE=on [optionally SECURE_KEY ?= secure_boot_signing_key.pem] to enable Secure Boot and Flash Encryption mechanisms.
    Use make V=1 or set BUILD_VERBOSE in your environment to increase build verbosity.
    BASE Variant
    LINK build/FIPY/release/application.elf
    lib/libwpa_supplicant.a(eap.o): In function `eap_peer_get_eap_method':
    /Users/iwahdan/esp/pycom-esp-idf/components/wpa_supplicant/src/wpa2/eap_peer/eap.c:53: multiple definition of `eap_peer_get_eap_method'
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwpa2.a(eap.o):(.text.eap_peer_get_eap_method+0x4): first defined here
    lib/libwpa_supplicant.a(eap.o): In function `eap_peer_get_methods':
    eap.c:(.text.eap_peer_get_methods+0x0): multiple definition of `eap_peer_get_methods'
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwpa2.a(eap.o):(.text.eap_peer_get_methods+0x4): first defined here
    lib/libwpa_supplicant.a(eap.o): In function `eap_peer_get_type':
    eap.c:(.text.eap_peer_get_type+0x0): multiple definition of `eap_peer_get_type'
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwpa2.a(eap.o):(.text.eap_peer_get_type+0x8): first defined here
    lib/libwpa_supplicant.a(eap.o): In function `eap_get_phase2_type':
    eap.c:(.text.eap_get_phase2_type+0x0): multiple definition of `eap_get_phase2_type'
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwpa2.a(eap.o):(.text.eap_get_phase2_type+0x4): first defined here
    lib/libwpa_supplicant.a(eap.o): In function `eap_get_phase2_types':
    eap.c:(.text.eap_get_phase2_types+0x0): multiple definition of `eap_get_phase2_types'
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwpa2.a(eap.o):(.text.eap_get_phase2_types+0x8): first defined here
    lib/libwpa_supplicant.a(eap.o): In function `eap_peer_method_alloc':
    eap.c:(.text.eap_peer_method_alloc+0x0): multiple definition of `eap_peer_method_alloc'
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwpa2.a(eap.o):(.text.eap_peer_method_alloc+0x4): first defined here
    lib/libwpa_supplicant.a(eap.o): In function `eap_peer_method_free':
    eap.c:(.text.eap_peer_method_free+0x0): multiple definition of `eap_peer_method_free'
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwpa2.a(eap.o):(.text.eap_peer_method_free+0x4): first defined here
    lib/libwpa_supplicant.a(eap.o): In function `eap_peer_method_register':
    eap.c:(.text.eap_peer_method_register+0x0): multiple definition of `eap_peer_method_register'
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwpa2.a(eap.o):(.text.eap_peer_method_register+0x8): first defined here
    lib/libwpa_supplicant.a(eap.o): In function `eap_peer_unregister_methods':
    eap.c:(.text.eap_peer_unregister_methods+0x0): multiple definition of `eap_peer_unregister_methods'
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwpa2.a(eap.o):(.text.eap_peer_unregister_methods+0x8): first defined here
    lib/libwpa_supplicant.a(eap.o): In function `eap_peer_register_methods':
    eap.c:(.text.eap_peer_register_methods+0x0): multiple definition of `eap_peer_register_methods'
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwpa2.a(eap.o):(.text.eap_peer_register_methods+0x10): first defined here
    lib/libwpa_supplicant.a(eap.o): In function `eap_sm_build_identity_resp':
    eap.c:(.text.eap_sm_build_identity_resp+0x0): multiple definition of `eap_sm_build_identity_resp'
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwpa2.a(eap.o):(.text.eap_sm_build_identity_resp+0x28): first defined here
    lib/libwpa_supplicant.a(eap.o): In function `eap_get_config':
    eap.c:(.text.eap_get_config+0x0): multiple definition of `eap_get_config'
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwpa2.a(eap.o):(.text.eap_get_config+0x0): first defined here
    lib/libwpa_supplicant.a(eap.o): In function `eap_get_config_identity':
    eap.c:(.text.eap_get_config_identity+0x0): multiple definition of `eap_get_config_identity'
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwpa2.a(eap.o):(.text.eap_get_config_identity+0x0): first defined here
    lib/libwpa_supplicant.a(eap.o): In function `eap_get_config_password':
    eap.c:(.text.eap_get_config_password+0x0): multiple definition of `eap_get_config_password'
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwpa2.a(eap.o):(.text.eap_get_config_password+0x0): first defined here
    lib/libwpa_supplicant.a(eap.o): In function `eap_get_config_password2':
    eap.c:(.text.eap_get_config_password2+0x0): multiple definition of `eap_get_config_password2'
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwpa2.a(eap.o):(.text.eap_get_config_password2+0x0): first defined here
    lib/libwpa_supplicant.a(eap.o): In function `eap_get_config_new_password':
    eap.c:(.text.eap_get_config_new_password+0x0): multiple definition of `eap_get_config_new_password'
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwpa2.a(eap.o):(.text.eap_get_config_new_password+0x0): first defined here
    lib/libwpa_supplicant.a(eap.o): In function `eap_get_config_blob':
    eap.c:(.text.eap_get_config_blob+0x0): multiple definition of `eap_get_config_blob'
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwpa2.a(eap.o):(.text.eap_get_config_blob+0x4): first defined here
    lib/libwpa_supplicant.a(eap.o): In function `esp_wifi_sta_wpa2_ent_set_cert_key':
    eap.c:(.text.esp_wifi_sta_wpa2_ent_set_cert_key+0x0): multiple definition of `esp_wifi_sta_wpa2_ent_set_cert_key'
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwpa2.a(eap.o):(.text.esp_wifi_sta_wpa2_ent_set_cert_key+0x14): first defined here
    lib/libwpa_supplicant.a(eap.o): In function `esp_wifi_sta_wpa2_ent_clear_cert_key':
    eap.c:(.text.esp_wifi_sta_wpa2_ent_clear_cert_key+0x0): multiple definition of `esp_wifi_sta_wpa2_ent_clear_cert_key'
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwpa2.a(eap.o):(.text.esp_wifi_sta_wpa2_ent_clear_cert_key+0x18): first defined here
    lib/libwpa_supplicant.a(eap.o): In function `esp_wifi_sta_wpa2_ent_set_ca_cert':
    eap.c:(.text.esp_wifi_sta_wpa2_ent_set_ca_cert+0x0): multiple definition of `esp_wifi_sta_wpa2_ent_set_ca_cert'
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwpa2.a(eap.o):(.text.esp_wifi_sta_wpa2_ent_set_ca_cert+0x8): first defined here
    lib/libwpa_supplicant.a(eap.o): In function `esp_wifi_sta_wpa2_ent_clear_ca_cert':
    eap.c:(.text.esp_wifi_sta_wpa2_ent_clear_ca_cert+0x0): multiple definition of `esp_wifi_sta_wpa2_ent_clear_ca_cert'
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwpa2.a(eap.o):(.text.esp_wifi_sta_wpa2_ent_clear_ca_cert+0x8): first defined here
    lib/libwpa_supplicant.a(eap.o): In function `esp_wifi_sta_wpa2_ent_set_identity':
    eap.c:(.text.esp_wifi_sta_wpa2_ent_set_identity+0x0): multiple definition of `esp_wifi_sta_wpa2_ent_set_identity'
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwpa2.a(eap.o):(.text.esp_wifi_sta_wpa2_ent_set_identity+0x14): first defined here
    lib/libwpa_supplicant.a(eap.o): In function `esp_wifi_sta_wpa2_ent_clear_identity':
    eap.c:(.text.esp_wifi_sta_wpa2_ent_clear_identity+0x0): multiple definition of `esp_wifi_sta_wpa2_ent_clear_identity'
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwpa2.a(eap.o):(.text.esp_wifi_sta_wpa2_ent_clear_identity+0xc): first defined here
    lib/libwpa_supplicant.a(eap.o): In function `esp_wifi_sta_wpa2_ent_set_username':
    eap.c:(.text.esp_wifi_sta_wpa2_ent_set_username+0x0): multiple definition of `esp_wifi_sta_wpa2_ent_set_username'
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwpa2.a(eap.o):(.text.esp_wifi_sta_wpa2_ent_set_username+0x14): first defined here
    lib/libwpa_supplicant.a(eap.o): In function `esp_wifi_sta_wpa2_ent_clear_username':
    eap.c:(.text.esp_wifi_sta_wpa2_ent_clear_username+0x0): multiple definition of `esp_wifi_sta_wpa2_ent_clear_username'
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwpa2.a(eap.o):(.text.esp_wifi_sta_wpa2_ent_clear_username+0xc): first defined here
    lib/libwpa_supplicant.a(eap.o): In function `esp_wifi_sta_wpa2_ent_set_password':
    eap.c:(.text.esp_wifi_sta_wpa2_ent_set_password+0x0): multiple definition of `esp_wifi_sta_wpa2_ent_set_password'
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwpa2.a(eap.o):(.text.esp_wifi_sta_wpa2_ent_set_password+0x14): first defined here
    lib/libwpa_supplicant.a(eap.o): In function `esp_wifi_sta_wpa2_ent_clear_password':
    eap.c:(.text.esp_wifi_sta_wpa2_ent_clear_password+0x0): multiple definition of `esp_wifi_sta_wpa2_ent_clear_password'
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwpa2.a(eap.o):(.text.esp_wifi_sta_wpa2_ent_clear_password+0xc): first defined here
    lib/libwpa_supplicant.a(eap.o): In function `esp_wifi_sta_wpa2_ent_set_new_password':
    eap.c:(.text.esp_wifi_sta_wpa2_ent_set_new_password+0x0): multiple definition of `esp_wifi_sta_wpa2_ent_set_new_password'
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwpa2.a(eap.o):(.text.esp_wifi_sta_wpa2_ent_set_new_password+0x14): first defined here
    lib/libwpa_supplicant.a(eap.o): In function `esp_wifi_sta_wpa2_ent_clear_new_password':
    eap.c:(.text.esp_wifi_sta_wpa2_ent_clear_new_password+0x0): multiple definition of `esp_wifi_sta_wpa2_ent_clear_new_password'
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwpa2.a(eap.o):(.text.esp_wifi_sta_wpa2_ent_clear_new_password+0xc): first defined here
    lib/libwpa_supplicant.a(eap.o): In function `esp_wifi_sta_wpa2_ent_set_disable_time_check':
    eap.c:(.text.esp_wifi_sta_wpa2_ent_set_disable_time_check+0x0): multiple definition of `esp_wifi_sta_wpa2_ent_set_disable_time_check'
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwpa2.a(eap.o):(.text.esp_wifi_sta_wpa2_ent_set_disable_time_check+0x4): first defined here
    lib/libwpa_supplicant.a(eap.o): In function `wifi_sta_get_enterprise_disable_time_check':
    eap.c:(.text.wifi_sta_get_enterprise_disable_time_check+0x0): multiple definition of `wifi_sta_get_enterprise_disable_time_check'
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwpa2.a(eap.o):(.text.wifi_sta_get_enterprise_disable_time_check+0x4): first defined here
    lib/libwpa_supplicant.a(eap.o): In function `esp_wifi_sta_wpa2_ent_get_disable_time_check':
    eap.c:(.text.esp_wifi_sta_wpa2_ent_get_disable_time_check+0x0): multiple definition of `esp_wifi_sta_wpa2_ent_get_disable_time_check'
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwpa2.a(eap.o):(.text.esp_wifi_sta_wpa2_ent_get_disable_time_check+0x4): first defined here
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwps.a(wps.o): In function `wps_process_msg':
    (.text.wps_process_msg+0x8): multiple definition of `wps_process_msg'
    lib/libwpa_supplicant.a(wps.o):/Users/iwahdan/esp/pycom-esp-idf/components/wpa_supplicant/src/wps/wps.c:41: first defined here
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwps.a(wps.o): In function `wps_get_msg':
    (.text.wps_get_msg+0x8): multiple definition of `wps_get_msg'
    lib/libwpa_supplicant.a(wps.o):wps.c:(.text.wps_get_msg+0x0): first defined here
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwps.a(wps.o): In function `wps_is_selected_pbc_registrar':
    (.text.wps_is_selected_pbc_registrar+0x20): multiple definition of `wps_is_selected_pbc_registrar'
    lib/libwpa_supplicant.a(wps.o):wps.c:(.text.wps_is_selected_pbc_registrar+0x0): first defined here
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwps.a(wps.o): In function `wps_is_selected_pin_registrar':
    (.text.wps_is_selected_pin_registrar+0x14): multiple definition of `wps_is_selected_pin_registrar'
    lib/libwpa_supplicant.a(wps.o):wps.c:(.text.wps_is_selected_pin_registrar+0x0): first defined here
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwps.a(wps.o): In function `wps_is_addr_authorized':
    (.text.wps_is_addr_authorized+0x28): multiple definition of `wps_is_addr_authorized'
    lib/libwpa_supplicant.a(wps.o):wps.c:(.text.wps_is_addr_authorized+0x0): first defined here
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwps.a(wps.o): In function `wps_ap_priority_compar':
    (.text.wps_ap_priority_compar+0x18): multiple definition of `wps_ap_priority_compar'
    lib/libwpa_supplicant.a(wps.o):wps.c:(.text.wps_ap_priority_compar+0x0): first defined here
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwps.a(wps.o): In function `wps_get_uuid_e':
    (.text.wps_get_uuid_e+0xc): multiple definition of `wps_get_uuid_e'
    lib/libwpa_supplicant.a(wps.o):wps.c:(.text.wps_get_uuid_e+0x0): first defined here
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwps.a(wps.o): In function `wps_is_20':
    (.text.wps_is_20+0xc): multiple definition of `wps_is_20'
    lib/libwpa_supplicant.a(wps.o):wps.c:(.text.wps_is_20+0x0): first defined here
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwps.a(wps.o): In function `wps_build_assoc_req_ie':
    (.text.wps_build_assoc_req_ie+0x20): multiple definition of `wps_build_assoc_req_ie'
    lib/libwpa_supplicant.a(wps.o):wps.c:(.text.wps_build_assoc_req_ie+0x0): first defined here
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwps.a(wps.o): In function `wps_build_assoc_resp_ie':
    (.text.wps_build_assoc_resp_ie+0x20): multiple definition of `wps_build_assoc_resp_ie'
    lib/libwpa_supplicant.a(wps.o):wps.c:(.text.wps_build_assoc_resp_ie+0x0): first defined here
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwps.a(wps.o): In function `wps_build_probe_req_ie':
    (.text.wps_build_probe_req_ie+0x4c): multiple definition of `wps_build_probe_req_ie'
    lib/libwpa_supplicant.a(wps.o):wps.c:(.text.wps_build_probe_req_ie+0x0): first defined here
    /home/robert/Downloads/MicroPython/pycom-esp-idf//components/esp32/lib/libwps.a(wps.o): In function `wps_attr_text':
    (.text.wps_attr_text+0x60): multiple definition of `wps_attr_text'
    lib/libwpa_supplicant.a(wps.o):wps.c:(.text.wps_attr_text+0x0): first defined here
    lib/libbt.a(bt.o):(.iram1.literal+0x1c): undefined reference to `btdm_controller_get_sleep_mode'
    lib/libbt.a(bt.o):(.literal.esp_vhci_host_send_packet+0x0): undefined reference to `btdm_power_state_active'
    lib/libbt.a(bt.o):(.literal.esp_vhci_host_send_packet+0x4): undefined reference to `btdm_wakeup_request'
    lib/libbt.a(bt.o):(.literal.esp_bt_controller_init+0x28): undefined reference to `btdm_lpclk_select_src'
    lib/libbt.a(bt.o):(.literal.esp_bt_controller_init+0x30): undefined reference to `btdm_lpclk_set_div'
    lib/libbt.a(bt.o):(.literal.esp_bt_controller_init+0x38): undefined reference to `btdm_controller_set_sleep_mode'
    lib/libbt.a(bt.o):(.literal.esp_bt_controller_enable+0x4): undefined reference to `btdm_controller_get_sleep_mode'
    lib/libbt.a(bt.o):(.literal.esp_bt_controller_enable+0x8): undefined reference to `btdm_controller_enable_sleep'
    lib/libbt.a(bt.o): In function `semphr_take_wrapper':
    bt.c:(.iram1+0x223): undefined reference to `btdm_controller_get_sleep_mode'
    lib/libbt.a(bt.o): In function `btdm_sleep_exit_wrapper':
    /Users/iwahdan/esp/pycom-esp-idf/components/bt/bt.c:1018: undefined reference to `btdm_controller_get_sleep_mode'
    /Users/iwahdan/esp/pycom-esp-idf/components/bt/bt.c:1018: undefined reference to `btdm_controller_get_sleep_mode'
    lib/libbt.a(bt.o): In function `btdm_sleep_enter_wrapper':
    /Users/iwahdan/esp/pycom-esp-idf/components/bt/bt.c:1018: undefined reference to `btdm_controller_get_sleep_mode'
    lib/libbt.a(bt.o): In function `esp_vhci_host_send_packet':
    /Users/iwahdan/esp/pycom-esp-idf/components/bt/bt.c:1018: undefined reference to `btdm_power_state_active'
    /Users/iwahdan/esp/pycom-esp-idf/components/bt/bt.c:1018: undefined reference to `btdm_wakeup_request'
    lib/libbt.a(bt.o): In function `esp_bt_controller_init':
    /Users/iwahdan/esp/pycom-esp-idf/components/bt/bt.c:1018: undefined reference to `btdm_lpclk_select_src'
    /Users/iwahdan/esp/pycom-esp-idf/components/bt/bt.c:1018: undefined reference to `btdm_lpclk_set_div'
    /Users/iwahdan/esp/pycom-esp-idf/components/bt/bt.c:1018: undefined reference to `btdm_controller_set_sleep_mode'
    lib/libbt.a(bt.o): In function `esp_bt_controller_enable':
    /Users/iwahdan/esp/pycom-esp-idf/components/bt/bt.c:1018: undefined reference to `btdm_controller_get_sleep_mode'
    /Users/iwahdan/esp/pycom-esp-idf/components/bt/bt.c:1018: undefined reference to `btdm_controller_get_sleep_mode'
    /Users/iwahdan/esp/pycom-esp-idf/components/bt/bt.c:1018: undefined reference to `btdm_controller_get_sleep_mode'
    /Users/iwahdan/esp/pycom-esp-idf/components/bt/bt.c:1018: undefined reference to `btdm_controller_get_sleep_mode'
    /Users/iwahdan/esp/pycom-esp-idf/components/bt/bt.c:1018: undefined reference to `btdm_controller_enable_sleep'
    /Users/iwahdan/esp/pycom-esp-idf/components/bt/bt.c:1018: undefined reference to `btdm_controller_get_sleep_mode'
    /Users/iwahdan/esp/pycom-esp-idf/components/bt/bt.c:1018: undefined reference to `btdm_controller_get_sleep_mode'
    /Users/iwahdan/esp/pycom-esp-idf/components/bt/bt.c:1018: undefined reference to `btdm_controller_get_sleep_mode'
    lib/libbt.a(bt.o): In function `esp_bt_controller_disable':
    /Users/iwahdan/esp/pycom-esp-idf/components/bt/bt.c:1018: undefined reference to `btdm_controller_get_sleep_mode'
    /Users/iwahdan/esp/pycom-esp-idf/components/bt/bt.c:1018: undefined reference to `btdm_controller_get_sleep_mode'
    /Users/iwahdan/esp/pycom-esp-idf/components/bt/bt.c:1018: undefined reference to `btdm_controller_enable_sleep'
    /Users/iwahdan/esp/pycom-esp-idf/components/bt/bt.c:1018: undefined reference to `btdm_power_state_active'
    /Users/iwahdan/esp/pycom-esp-idf/components/bt/bt.c:1018: undefined reference to `btdm_wakeup_request'
    /Users/iwahdan/esp/pycom-esp-idf/components/bt/bt.c:1018: undefined reference to `btdm_power_state_active'
    /Users/iwahdan/esp/pycom-esp-idf/components/bt/bt.c:1018: undefined reference to `btdm_controller_get_sleep_mode'
    /Users/iwahdan/esp/pycom-esp-idf/components/bt/bt.c:1018: undefined reference to `btdm_controller_get_sleep_mode'
    build/FIPY/release/application.a(modwlan.o):(.literal.wlan_ctrl_pkt_filter+0x8): undefined reference to `esp_wifi_set_promiscuous_ctrl_filter'
    build/FIPY/release/application.a(modwlan.o): In function `wlan_ctrl_pkt_filter':
    /home/robert/Downloads/MicroPython/pycom-micropython-sigfox/esp32/mods/modwlan.c:2460: undefined reference to `esp_wifi_set_promiscuous_ctrl_filter'
    /home/robert/Downloads/MicroPython/pycom-micropython-sigfox/esp32/mods/modwlan.c:2474: undefined reference to `esp_wifi_set_promiscuous_ctrl_filter'
    lib/libesp32.a(phy_init.o):(.literal.esp_phy_rf_init$part$1+0x4): undefined reference to `wifi_osi_funcs_register'
    lib/libesp32.a(phy_init.o): In function `esp_phy_rf_init':
    /Users/iwahdan/esp/pycom-esp-idf/components/esp32/phy_init.c:128: undefined reference to `wifi_osi_funcs_register'
    collect2: error: ld returned 1 exit status
    application.mk:593: die Regel für Ziel „build/FIPY/release/application.elf“ scheiterte
    make: *** [build/FIPY/release/application.elf] Fehler 1
    r
    


  • @danielm Got a step further:

    • mpy-cross has to be build new too
    • compiling worked
    • linker failed: cannot find -lmesh


  • @danielm Doing git checkout idf_v3.1 in pycom-esp-idf changed the game



  • I tried but failed as well.

    I used this branch of IDF:
    https://github.com/pycom/pycom-esp-idf/tree/patch_fixing_crash_issue

    and "old" compiler:
    xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz



Pycom on Twitter