Closed
Description
Hello,
purpose of this issue is to cover problems related to migration from 2.X (at the moment of writing the latest version is 2.0.14) to 3.X version.
💥 If you have any problems, please add comment to this issue. 💥
3.0.0 version introduces breaking changes in those APIs:
- ADC
- BLE
- Hall Sensor
- I2S
- LEDC
- RMT
- SigmaDelta
- TIMER
- UART
- WiFi
🎉 For more details plese take a look on MIGRATION GUIDE FROM 2.X TO 3.X. 🎉
List of all related issues: (will be updated)
Please take a look on those issue before adding comment to this ticket.
- V3.0.0 alpha2 Issues with esp32-hal-timer "update" #8776
- Arduino 3.0.0 alpha1 missing entries for
gpio_intr_enable
andgpio_intr_disable
#8737 - SDK is missing on 3.0.0-alpha1 #8746
- Compiling problem - Is 3.0.0.alpha2 more fussy about the source code configuration? #8765
- esp32 board 3.0.0-alpha2: The legacy RMT driver is deprecated #8780
- Board Manager esp32 version 3.0.0-alpha2 does not support MCPWM #8783
- [IDF5.x] Client remoteIP incorrect #8774
- 3.0.0 Alpha2 :: Serial + RMT doesn't work. #8809
- ledcAttach is undefined #9169
Metadata
Metadata
Assignees
Type
Projects
Status
Done
Relationships
Development
No branches or pull requests
Activity
[-]3.0.0 version Migration Related issues[/-][+]3.0.0 version Migration related issues[/+]TD-er commentedon Oct 23, 2023
I think this is also related: #8774
everslick commentedon Oct 27, 2023
The OneWire lib does not compile anymore, because
GPIO
is not defined.This can be fixed by including:And then using the functions:rtcio_ll_get_level, rtcio_ll_set_level, rtcio_ll_input_enable and rtcio_ll_output_enablewhere appropriate.Real fix is:
me-no-dev commentedon Oct 27, 2023
Probably needs particular include. Some have changed in IDF5
everslick commentedon Oct 28, 2023
I have difficulty porting the following code to IDF5. Please look at the line below FIXME! HELP NEEDED!.
Snippet:
Are
wifi_interface_t
andesp_netif_t
incompatible types or can I just take the address of the former and cast it to the latter?lbernstone commentedon Oct 28, 2023
@everslick https://github.com/espressif/esp-idf/blob/v5.1/examples/protocols/http_server/captive_portal/main/dns_server.c#L152
everslick commentedon Oct 29, 2023
One VERY peculiar thing I just witnessed: Calling
yield()
in a very tight loop seems to crash with exception 29 (LoadProhibited), while PC points to a few lines above the call toyield()
which makes it especially difficult to debug. Luckily I haveyield()
wrapped in my ownsystem_yield()
so I can switch codepaths between versions (and work around the bug). Like:When the tight loop,
yield()
is called in, gets slowed down enough (with e.g. debug prints) it does not crash.me-no-dev commentedon Oct 30, 2023
@everslick I am rewriting/restructuring the whole network stack in order to decouple WiFi from the rest of the network functions. Many things have changed and will be fixed/rewritten to work. Some APIs will change/get deprecated, but it's for the better.
everslick commentedon Oct 30, 2023
Yes, I've seen the issue for it. I'm very much looking forward to it!
While we are at it. One of the things I do not really like about the Arduino API is the omnipresent instantiation of singleton like APIs. We have NO_GLOBAL_INSTANCES for that, but this is not always implemented for all interfaces. In case of
WiFi
, it is so baked in, that nothing works anymore if the globalWiFi
object is not there. Maybe, if possible, this is something to consider, when reworking the API.223 remaining items