IRremoteESP8266 icon indicating copy to clipboard operation
IRremoteESP8266 copied to clipboard

Feature Request: Support for esp32 Arduino 3.0.0

Open Jason2866 opened this issue 1 year ago • 34 comments

Espressif Arduino 3.0.0 alpha for ESP32, ESP32-S2, ESP32-S3, ES32C3 and ESP32-C6 is released. IRremoteESP8266 does not work with. Compile errors

Jason2866 avatar Oct 06 '23 15:10 Jason2866

Can you be more specific? What exactly don't work?

NiKiZe avatar Oct 06 '23 20:10 NiKiZe

Trying to compile IRrecvDumpV3 with Espressif Arduino 3.0.0 alpha is generating this compile errors The Timer API has changed. Arduino 3.0.0 is based on IDF 5.1. We (Tasmota crew) tried to adopt to the new API It does compile, but it seems there are now timing issues. The recognition result are terrible.

/Volumes/T7-Mac/IRremoteESP8266/src/IRrecv.cpp: In function 'void gpio_intr()':
/Volumes/T7-Mac/IRremoteESP8266/src/IRrecv.cpp:218:10: warning: '++' expression of 'volatile'-qualified type is deprecated [-Wvolatile]
  218 |   params.rawlen++;
      |   ~~~~~~~^~~~~~
/Volumes/T7-Mac/IRremoteESP8266/src/IRrecv.cpp:246:3: error: 'timerAlarmEnable' was not declared in this scope; did you mean 'timerAlarm'?
  246 |   timerAlarmEnable(timer);
      |   ^~~~~~~~~~~~~~~~
      |   timerAlarm
/Volumes/T7-Mac/IRremoteESP8266/src/IRrecv.cpp: In member function 'void IRrecv::enableIRIn(bool)':
/Volumes/T7-Mac/IRremoteESP8266/src/IRrecv.cpp:362:21: error: too many arguments to function 'hw_timer_t* timerBegin(uint32_t)'
  362 |   timer = timerBegin(_timer_num, 80, true);
      |           ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
In file included from /Users/hans/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal.h:84,
                 from /Users/hans/.platformio/packages/framework-arduinoespressif32/cores/esp32/Arduino.h:36,
                 from /Volumes/T7-Mac/IRremoteESP8266/src/IRrecv.h:10,
                 from /Volumes/T7-Mac/IRremoteESP8266/src/IRrecv.cpp:6:
/Users/hans/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal-timer.h:35:14: note: declared here
   35 | hw_timer_t * timerBegin(uint32_t frequency);
      |              ^~~~~~~~~~
/Volumes/T7-Mac/IRremoteESP8266/src/IRrecv.cpp:371:3: error: 'timerAlarmWrite' was not declared in this scope; did you mean 'timerWrite'?
  371 |   timerAlarmWrite(timer, MS_TO_USEC(params.timeout), ONCE);
      |   ^~~~~~~~~~~~~~~
      |   timerWrite
/Volumes/T7-Mac/IRremoteESP8266/src/IRrecv.cpp:375:23: error: too many arguments to function 'void timerAttachInterrupt(hw_timer_t*, void (*)())'
  375 |   timerAttachInterrupt(timer, &read_timeout, false);
      |   ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/hans/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal-timer.h:50:6: note: declared here
   50 | void timerAttachInterrupt(hw_timer_t * timer, void (*userFunc)(void));
      |      ^~~~~~~~~~~~~~~~~~~~
Compiling .pio/build/esp32dev/lib0e3/src/IRutils.cpp.o
/Volumes/T7-Mac/IRremoteESP8266/src/IRrecv.cpp: In member function 'void IRrecv::disableIRIn()':
/Volumes/T7-Mac/IRremoteESP8266/src/IRrecv.cpp:401:3: error: 'timerAlarmDisable' was not declared in this scope
  401 |   timerAlarmDisable(timer);
      |   ^~~~~~~~~~~~~~~~~
/Volumes/T7-Mac/IRremoteESP8266/src/IRrecv.cpp: In member function 'void IRrecv::pause()':
/Volumes/T7-Mac/IRremoteESP8266/src/IRrecv.cpp:416:3: error: 'gpio_intr_disable' was not declared in this scope; did you mean 'esp_intr_disable'?
  416 |   gpio_intr_disable((gpio_num_t)params.recvpin);
      |   ^~~~~~~~~~~~~~~~~
      |   esp_intr_disable
/Volumes/T7-Mac/IRremoteESP8266/src/IRrecv.cpp: In member function 'void IRrecv::resume()':
/Volumes/T7-Mac/IRremoteESP8266/src/IRrecv.cpp:429:3: error: 'timerAlarmDisable' was not declared in this scope
  429 |   timerAlarmDisable(timer);
      |   ^~~~~~~~~~~~~~~~~
Archiving .pio/build/esp32dev/libcbb/libESPmDNS.a
/Volumes/T7-Mac/IRremoteESP8266/src/IRrecv.cpp:430:3: error: 'gpio_intr_enable' was not declared in this scope; did you mean 'esp_intr_enable'?
  430 |   gpio_intr_enable((gpio_num_t)params.recvpin);
      |   ^~~~~~~~~~~~~~~~
      |   esp_intr_enable
/Volumes/T7-Mac/IRremoteESP8266/src/IRrecv.cpp: In member function 'void IRrecv::crudeNoiseFilter(decode_results*, uint16_t)':
/Volumes/T7-Mac/IRremoteESP8266/src/IRrecv.cpp:506:37: warning: compound assignment with 'volatile'-qualified left operand is deprecated [-Wvolatile]
  506 |         results->rawbuf[offset - 1] += addition;
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
Indexing .pio/build/esp32dev/libcbb/libESPmDNS.a
*** [.pio/build/esp32dev/lib0e3/src/IRrecv.cpp.o] Error 1

Jason2866 avatar Oct 07 '23 09:10 Jason2866

I made a Platform to use Arduino 3.0.0 alpha1 with Platformio. Just use this for esp32 devices

platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.10.10/platform-espressif32.zip

Jason2866 avatar Oct 07 '23 09:10 Jason2866

The compilation issues above are already solved in the Tasmota development branch and I'm working on patching these in #2040

Not yet testing with hardware, just 'making it work' first 😅

tonhuisman avatar Oct 07 '23 11:10 tonhuisman

The gpio_intr_enable and gpio_intr_disable issues are with the 2023.10.10 platform release, and don't occur when using 2023.10.03.

tonhuisman avatar Oct 07 '23 11:10 tonhuisman

@tonhuisman Platform 2023.10.10 uses the code base of Arduino 3.0.0 alpha1 release. Every other(platform) builds before are not relevant. The are WiP builds and do not align with anything official. Platform 2023.10.03 is NOT Arduino 3.0.0! it is Arduino core 2.0.14

Jason2866 avatar Oct 07 '23 11:10 Jason2866

@tonhuisman Now the fun starts, it does compile now with your open PR. Try to receive something. EDIT: Does not work. Crashes. In earlier build it did not crash. So more work

Jason2866 avatar Oct 07 '23 16:10 Jason2866

Now the fun starts

Not sure if that's to blame on my work, as I just copied the mods made at Tasmota 😄 It crashes at calling timerAlarm, so I'd expect that to crash on Tasmota as well when using Arduinoe 3.0, but as Tasmota is still using Arduino 2,0.14 it'll probably work as before...

tonhuisman avatar Oct 07 '23 19:10 tonhuisman

It crashes with Tasmota too. Earlier WiP builds (before alpha1) did not crash. Don't know if the introduced a bug or more changes where done which needs adopting. But the non crashing are not useable either since most of the time decoding fails. Ground work / investigation needs to be done.

Jason2866 avatar Oct 07 '23 20:10 Jason2866

I have fixed the crash and the timer issues here https://github.com/arendst/Tasmota/pull/19904

s-hadinger avatar Nov 01 '23 21:11 s-hadinger

I have fixed the crash and the timer issues here arendst/Tasmota#19904

Thanks! I'll apply those changes in my PR soon.

tonhuisman avatar Nov 01 '23 22:11 tonhuisman

I've applied the latest fixes by @s-hadinger and also added an extra NULL-check so it won't crash and burn when disableIRIn() is called multiple times.

tonhuisman avatar Nov 02 '23 20:11 tonhuisman

I'm also getting the same error on the ESP32 38-pin Development Board. Is there any update regarding this issue? What should I do? Could you please guide me on this problem?

In function 'void gpio_intr()':
error: 'timerAlarmEnable' was not declared in this scope; did you mean 'timerAlarm'?
  246 |   timerAlarmEnable(timer);
      |   ^~~~~~~~~~~~~~~~
      |   timerAlarm

In member function 'void IRrecv::enableIRIn(bool)':
error: too many arguments to function 'hw_timer_t* timerBegin(uint32_t)'
  362 |   timer = timerBegin(_timer_num, 80, true);
      |           ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
note: declared here
   35 | hw_timer_t *timerBegin(uint32_t frequency);
      |             ^~~~~~~~~~

error: 'timerAlarmWrite' was not declared in this scope; did you mean 'timerWrite'?
  371 |   timerAlarmWrite(timer, MS_TO_USEC(params.timeout), ONCE);
      |   ^~~~~~~~~~~~~~~
      |   timerWrite

error: too many arguments to function 'void timerAttachInterrupt(hw_timer_t*, void (*)())'
  375 |   timerAttachInterrupt(timer, &read_timeout, false);
      |   ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
note: declared here
   50 | void timerAttachInterrupt(hw_timer_t *timer, void (*userFunc)(void));
      |      ^~~~~~~~~~~~~~~~~~~~

In member function 'void IRrecv::disableIRIn()':
error: 'timerAlarmDisable' was not declared in this scope
  401 |   timerAlarmDisable(timer);
      |   ^~~~~~~~~~~~~~~~~

In member function 'void IRrecv::pause()':
error: 'gpio_intr_disable' was not declared in this scope; did you mean 'esp_intr_disable'?
  416 |   gpio_intr_disable((gpio_num_t)params.recvpin);
      |   ^~~~~~~~~~~~~~~~~
      |   esp_intr_disable

In member function 'void IRrecv::resume()':
error: 'timerAlarmDisable' was not declared in this scope
  429 |   timerAlarmDisable(timer);
      |   ^~~~~~~~~~~~~~~~~

error: 'gpio_intr_enable' was not declared in this scope; did you mean 'esp_intr_enable'?
  430 |   gpio_intr_enable((gpio_num_t)params.recvpin);
      |   ^~~~~~~~~~~~~~~~
      |   esp_intr_enable

Using library IRremoteESP8266 at version 2.8.6
exit status 1

Compilation error: exit status 1

avinashboy avatar May 30 '24 15:05 avinashboy

We have made all the fixes in Tasmota but I lost track of which ones were backported here

s-hadinger avatar May 30 '24 18:05 s-hadinger

@avinashboy Are you compiling #2040 with IDF 5.1? As only that branch (PR) is adjusted and (somewhat) tested with IDF 5.1, the main 2.8.6 release doesn't have that (yet).

tonhuisman avatar May 30 '24 19:05 tonhuisman

I am a teacher, 4 days ago, arduino-esp32 was officially updated to version 3.0.0 Release, then I found that IRremoteESP8266 compiler error, currently I can only let students use arduino-esp32 version 2.0.17. Will you update the library in the future to make it compatible with 3.0.0?Wish you a happy life.

Zhentao-Lin avatar May 31 '24 06:05 Zhentao-Lin

@avinashboy Are you compiling #2040 with IDF 5.1? As only that branch (PR) is adjusted and (somewhat) tested with IDF 5.1, the main 2.8.6 release doesn't have that (yet).

Yes, I do

avinashboy avatar May 31 '24 06:05 avinashboy

Thank you very much. Looking forward to your update.

Zhentao-Lin avatar May 31 '24 06:05 Zhentao-Lin

I am a teacher, 4 days ago, arduino-esp32 was officially updated to version 3.0.0 Release, then I found that IRremoteESP8266 compiler error, currently I can only let students use arduino-esp32 version 2.0.17. Will you update the library in the future to make it compatible with 3.0.0?Wish you a happy life.

Thank you so much. It works if we downgrade the ESP32 board manager to 2.0.17.

avinashboy avatar May 31 '24 07:05 avinashboy

Hi Guys! First at all, congratulations by IRremoteESP8266!

By the way, I tried esp32-arduino-libs-3.0.2@idf-release_v5.1 and I would like you let know the compile problems:

Using library IRremoteESP8266 version 2.8.6 by David Conran, Mark Szabo, Sebastien Warin, Roi Dayan, Massimiliano Pinto, Christian Nilsson in folder "C:\Users\phmota\Documents\Arduino\libraries\IRremoteESP8266" "c:\Users\phmota\AppData\Local\Arduino15\packages\esp32\tools\esp-x32\2302/bin/xtensa-esp32-elf-g++" -MMD -c "@c:\Users\phmota\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.1-bd2b9390ef\esp32/flags/cpp_flags" -w -Os -DF_CPU=240000000L -DARDUINO=108010 -DARDUINO_ESP32_DEV -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD="ESP32_DEV"" "-DARDUINO_VARIANT="esp32"" -DARDUINO_PARTITION_default "-DARDUINO_HOST_OS="windows"" "-DARDUINO_FQBN="esp32:esp32:esp32:UploadSpeed=921600,CPUFreq=240,FlashFreq=80,FlashMode=qio,FlashSize=4M,PartitionScheme=default,DebugLevel=none,PSRAM=disabled,LoopCore=1,EventsCore=1,EraseFlash=none,JTAGAdapter=default,ZigbeeMode=default"" -DESP32 -DCORE_DEBUG_LEVEL=0 -DARDUINO_RUNNING_CORE=1 -DARDUINO_EVENT_RUNNING_CORE=1 -DARDUINO_USB_CDC_ON_BOOT=0 "@c:\Users\phmota\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.1-bd2b9390ef\esp32/flags/defines" "-ID:\Google Drive\PROGRAMAÇÃO\Arduino\3 - WiFi\ESP32 - DS18B20 PIR Fancoletes" -iprefix "c:\Users\phmota\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.1-bd2b9390ef\esp32/include/" "@c:\Users\phmota\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.1-bd2b9390ef\esp32/flags/includes" "-Ic:\Users\phmota\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.1-bd2b9390ef\esp32/qio_qspi/include" -I"c:\Users\phmota\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.2\cores\esp32" -I"c:\Users\phmota\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.2\variants\esp32" -I"C:\Users\phmota\Documents\Arduino\libraries\OneWire" -I"C:\Users\phmota\Documents\Arduino\libraries\DallasTemperature" -I"c:\Users\phmota\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.2\libraries\WiFi\src" -I"c:\Users\phmota\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.2\libraries\Network\src" -I"c:\Users\phmota\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.2\libraries\HTTPClient\src" -I"c:\Users\phmota\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.2\libraries\NetworkClientSecure\src" -I"C:\Users\phmota\Documents\Arduino\libraries\NTPClient" -I"C:\Users\phmota\Documents\Arduino\libraries\OneWire\utility" -I"C:\Users\phmota\Documents\Arduino\libraries\DallasTemperature\utility" -I"C:\Users\phmota\Documents\Arduino\libraries\NTPClient\utility" -I"C:\Users\phmota\Documents\Arduino\libraries\IRremoteESP8266\src" -I"c:\Users\phmota\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.2\libraries\EEPROM\src" -I"C:\Users\phmota\Documents\Arduino\libraries\WebServer\src" -I"c:\Users\phmota\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.2\libraries\FS\src" "@C:\Users\phmota\AppData\Local\Temp\VMBuilds\Fancoletes ESP32\esp32_esp32\Release/build_opt.h" "@C:\Users\phmota\AppData\Local\Temp\VMBuilds\Fancoletes ESP32\esp32_esp32\Release/file_opts" "C:\Users\phmota\Documents\Arduino\libraries\IRremoteESP8266\src\IRac.cpp" -o "C:\Users\phmota\AppData\Local\Temp\VMBuilds\Fancoletes ESP32\esp32_esp32\Release\IRremoteESP8266\IRac.cpp.o" "c:\Users\phmota\AppData\Local\Arduino15\packages\esp32\tools\esp-x32\2302/bin/xtensa-esp32-elf-g++" -MMD -c "@c:\Users\phmota\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.1-bd2b9390ef\esp32/flags/cpp_flags" -w -Os -DF_CPU=240000000L -DARDUINO=108010 -DARDUINO_ESP32_DEV -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD="ESP32_DEV"" "-DARDUINO_VARIANT="esp32"" -DARDUINO_PARTITION_default "-DARDUINO_HOST_OS="windows"" "-DARDUINO_FQBN="esp32:esp32:esp32:UploadSpeed=921600,CPUFreq=240,FlashFreq=80,FlashMode=qio,FlashSize=4M,PartitionScheme=default,DebugLevel=none,PSRAM=disabled,LoopCore=1,EventsCore=1,EraseFlash=none,JTAGAdapter=default,ZigbeeMode=default"" -DESP32 -DCORE_DEBUG_LEVEL=0 -DARDUINO_RUNNING_CORE=1 -DARDUINO_EVENT_RUNNING_CORE=1 -DARDUINO_USB_CDC_ON_BOOT=0 "@c:\Users\phmota\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.1-bd2b9390ef\esp32/flags/defines" "-ID:\Google Drive\PROGRAMAÇÃO\Arduino\3 - WiFi\ESP32 - DS18B20 PIR Fancoletes" -iprefix "c:\Users\phmota\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.1-bd2b9390ef\esp32/include/" "@c:\Users\phmota\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.1-bd2b9390ef\esp32/flags/includes" "-Ic:\Users\phmota\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.1-bd2b9390ef\esp32/qio_qspi/include" -I"c:\Users\phmota\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.2\cores\esp32" -I"c:\Users\phmota\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.2\variants\esp32" -I"C:\Users\phmota\Documents\Arduino\libraries\OneWire" -I"C:\Users\phmota\Documents\Arduino\libraries\DallasTemperature" -I"c:\Users\phmota\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.2\libraries\WiFi\src" -I"c:\Users\phmota\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.2\libraries\Network\src" -I"c:\Users\phmota\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.2\libraries\HTTPClient\src" -I"c:\Users\phmota\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.2\libraries\NetworkClientSecure\src" -I"C:\Users\phmota\Documents\Arduino\libraries\NTPClient" -I"C:\Users\phmota\Documents\Arduino\libraries\OneWire\utility" -I"C:\Users\phmota\Documents\Arduino\libraries\DallasTemperature\utility" -I"C:\Users\phmota\Documents\Arduino\libraries\NTPClient\utility" -I"C:\Users\phmota\Documents\Arduino\libraries\IRremoteESP8266\src" -I"c:\Users\phmota\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.2\libraries\EEPROM\src" -I"C:\Users\phmota\Documents\Arduino\libraries\WebServer\src" -I"c:\Users\phmota\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.2\libraries\FS\src" "@C:\Users\phmota\AppData\Local\Temp\VMBuilds\Fancoletes ESP32\esp32_esp32\Release/build_opt.h" "@C:\Users\phmota\AppData\Local\Temp\VMBuilds\Fancoletes ESP32\esp32_esp32\Release/file_opts" "C:\Users\phmota\Documents\Arduino\libraries\IRremoteESP8266\src\IRrecv.cpp" -o "C:\Users\phmota\AppData\Local\Temp\VMBuilds\Fancoletes ESP32\esp32_esp32\Release\IRremoteESP8266\IRrecv.cpp.o"

irrecv.cpp: In function void gpio_intr()

irrecv.cpp: 246:3: error: 'timerAlarmEnable' was not declared in this scope; did you mean 'timerAlarm'? 246 | timerAlarmEnable(timer) | ^~~~~~~~~~~~~~~~ | timerAlarm irrecv.cpp: In member function void IRrecv::enableIRIn(bool)

irrecv.cpp: 362:21: error: too many arguments to function 'hw_timer_t* timerBegin(uint32_t) 362 | timer = timerBegin(_timer_num, 80, true) | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~

esp32-hal.h:84: In file included from arduino.h:36: from IRrecv.h:10: from irrecv.cpp:6: from esp32-hal-timer.h:35: note declared here 35 | hw_timer_t *timerBegin(uint32_t frequency) | ^~~~~~~~~~

irrecv.cpp: 371:3: error: 'timerAlarmWrite' was not declared in this scope; did you mean 'timerWrite'? 371 | timerAlarmWrite(timer, MS_TO_USEC(params.timeout), ONCE) | ^~~~~~~~~~~~~~~ | timerWrite

irrecv.cpp: 375:23: error: too many arguments to function 'void timerAttachInterrupt(hw_timer_t*, void (*)()) 375 | timerAttachInterrupt(timer, &read_timeout, false) | ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ esp32-hal-timer.h:50: note declared here 50 | void timerAttachInterrupt(hw_timer_t *timer, void (*userFunc)(void)) | ^~~~~~~~~~~~~~~~~~~~ irrecv.cpp: In member function void IRrecv::disableIRIn()

irrecv.cpp: 401:3: error: 'timerAlarmDisable' was not declared in this scope 401 | timerAlarmDisable(timer) | ^~~~~~~~~~~~~~~~~ irrecv.cpp: In member function void IRrecv::pause()

irrecv.cpp: 416:3: error: 'gpio_intr_disable' was not declared in this scope; did you mean 'esp_intr_disable'? 416 | gpio_intr_disable((gpio_num_t)params.recvpin) | ^~~~~~~~~~~~~~~~~ | esp_intr_disable irrecv.cpp: In member function void IRrecv::resume()

irrecv.cpp: 429:3: error: 'timerAlarmDisable' was not declared in this scope 429 | timerAlarmDisable(timer) | ^~~~~~~~~~~~~~~~~

irrecv.cpp: 430:3: error: 'gpio_intr_enable' was not declared in this scope; did you mean 'esp_intr_enable'? 430 | gpio_intr_enable((gpio_num_t)params.recvpin) | ^~~~~~~~~~~~~~~~ | esp_intr_enable

phphengenharia avatar Jun 25 '24 11:06 phphengenharia

@phphengenharia use the PR #2040 which adds the needed changes.

Jason2866 avatar Jun 25 '24 12:06 Jason2866

It compiled fine. Thanks.

phphengenharia avatar Jun 25 '24 13:06 phphengenharia

I need also the update for Espressif ver 3.x

Vorms avatar Aug 05 '24 14:08 Vorms

I need also the update for Espressif ver 3.x

Repeated answer: use the PR #2040 which adds the needed changes.

tonhuisman avatar Aug 05 '24 14:08 tonhuisman

Steps to use PR https://github.com/crankyoldgit/IRremoteESP8266/pull/2040 in Arduino IDE 2.3.2 under Linux (no IDE restart required):

##########
# prerequisites:
# * have Github "gh" cli tool installed, e.g. for Debian 12 with "sudo apt install gh" (while quite outdated, it works for these steps)
# * in Arduino IDE 2's Library Manager GUI, remove any currently installed "IRremoteESP8266" released library, e.g. remove the currently latest (as of this writing) release 2.8.6

##########
# clone *this* repository to Arduino IDE 2's library directory:
cd "${HOME}/Arduino/libraries/"
git clone https://github.com/crankyoldgit/IRremoteESP8266.git

# check out merge request #2040:
cd "${HOME}/Arduino/libraries/IRremoteESP8266/"
gh pr checkout 2040

# if this is the first time the gh command is used, follow setup instructions,
# e.g. "gh auth login"
# then execute "gh pr checkout 2040" again

# if everything went well, "git show --summary" should show the following latest commit:
# $ git show --summary
# commit db98aa001b8302ee827d1cd23367eb43480ba5ee (HEAD -> feature/C++20-compatibility)
# Author: Ton Huisman <[email protected]>
# Date:   Thu Nov 2 21:22:16 2023 +0100
#
#     [Lib] Add latest ESP32 fixes by @s-hadinger, add extra NULL safeguard, update Platform build
#

Abdull avatar Aug 07 '24 22:08 Abdull

Steps to use PR #2040 in Arduino IDE 2.3.2 under Linux (no IDE restart required):

Can someone provide a Windows solution?

mm5agm avatar Aug 09 '24 10:08 mm5agm

For Windows the git commands are the same, with the same requirement: having the Github tools installed. The only difference would be the directory names, but you should be able to open a command prompt from Windows Explorer to get there.

tonhuisman avatar Aug 09 '24 12:08 tonhuisman

Hello, Why the main branch doesn't support the version 3.x ?

Thierry

Le ven. 9 août 2024 à 08:49, Ton Huisman @.***> a écrit :

For Windows the git commands are the same, with the same requirement: having the Github tools installed. The only difference would be the directory names, but you should be able to open a command prompt from Windows Explorer to get there.

— Reply to this email directly, view it on GitHub https://github.com/crankyoldgit/IRremoteESP8266/issues/2039#issuecomment-2277871054, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA6QD4NX3RVBSLCASDNUFQLZQS3D3AVCNFSM6AAAAAA5V66ZQOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENZXHA3TCMBVGQ . You are receiving this because you commented.Message ID: @.***>

-- Thierry Vorms Québec Canada

Vorms avatar Aug 09 '24 12:08 Vorms