Gripes on ESP32/ESP-IDF
Posted: Fri Jul 20, 2018 3:45 pm
(Mod note: Changed the title of this topic; it was 'ESP32 not ready for production')
Hello guys,
I've been working with ESP32 for about one year. I have built quadcopter firmware based on ESP-IDF but soon understood that it will be impossible to make it fully working.
Whole IDF is written inefficient and it is quite unreadable. Everything is based on FreeRTOS which makes it really heavy. It would make better sense to write low level drivers without FreeRTOS and make an optional higher level api with FreeRTOS - something like ESP-IDF.
There are no naming conventions. Drivers for peripherals are written very differently come with many assumptions. There are two types of files decribing registers (*_reg and *_struct). And many many more...
There are so many bugs reported on github. ESP-IDF is released for public since august 2016 and there are still bugs in drivers for SPI or I2C.
Because of this I started working on my own SDK. Unfortunatelly docs are so incomplete that it is nearly impossible to do that.
Debugging tools (openocd and gdb) are incomplete - in my opinion it should be the first thing that should be done (before starting working on IDF).
There are also so many hardware bugs that Espressif probably does not want to admit (and maybe because of that docs are not complete). Some of them are not critical but they still exist and should be easily discovered by tests before market launch.
As a conclusion I would rather pay more than have partially working hardware with incomplete docs.
Hello guys,
I've been working with ESP32 for about one year. I have built quadcopter firmware based on ESP-IDF but soon understood that it will be impossible to make it fully working.
Whole IDF is written inefficient and it is quite unreadable. Everything is based on FreeRTOS which makes it really heavy. It would make better sense to write low level drivers without FreeRTOS and make an optional higher level api with FreeRTOS - something like ESP-IDF.
There are no naming conventions. Drivers for peripherals are written very differently come with many assumptions. There are two types of files decribing registers (*_reg and *_struct). And many many more...
There are so many bugs reported on github. ESP-IDF is released for public since august 2016 and there are still bugs in drivers for SPI or I2C.
Because of this I started working on my own SDK. Unfortunatelly docs are so incomplete that it is nearly impossible to do that.
Debugging tools (openocd and gdb) are incomplete - in my opinion it should be the first thing that should be done (before starting working on IDF).
There are also so many hardware bugs that Espressif probably does not want to admit (and maybe because of that docs are not complete). Some of them are not critical but they still exist and should be easily discovered by tests before market launch.
As a conclusion I would rather pay more than have partially working hardware with incomplete docs.