@Géza-Husi Yes! I've tested with some code from different repositories and it works, I'll prepare some sample code and post here.
I'm neither makefile nor esp-idf expert, so my current procedure is to use ThomasWaldmann py-esp32-ulp on my local computer with micropython v1.12 in order to compile .S file to .ulp and then upload to pycom module via FTP, this allowed me to quick test if ULP works but has some downsides (some of them because my lack of knowledge):
You have to load and run the ulp file at every boot
py-esp32-ulp converter doesn't take into account Espressif ULP macros/helpers issue#19 (READ_RTC_REG, WRITE_RTC_REG, and so on...)
I'm still figuring out how to do I/O manipulation from ULP (read digital input accomplished, but figuring out how digital output works)
I don't know how to signal main processor to wake up from ULP.
I think the best way to implement ULP is to flash or generate binary file with esp-idf (in order to make use of macros) Maybe someone at pycom (Géza ;-) ) or people with more esp-idf knowledge than me can shed us some light.
My use case with ULP is more or less the same as @Calvin-Foo but for water metering, counting pulses while asleep and waking up the module every 'N' pulses in order to take actions or save values.
Regards and thanks for chiming in!