Skip to content

Remote Peripheral Integration #113

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
Xplorer001 opened this issue Jan 2, 2017 · 22 comments
Closed

Remote Peripheral Integration #113

Xplorer001 opened this issue Jan 2, 2017 · 22 comments
Labels
Status: Stale Issue is stale stage (outdated/stuck)

Comments

@Xplorer001
Copy link
Contributor

Is there a plan to integrate ESP32 built-in Remote Peripheral? I am working on a Open Universal Remote. Was able to use the ESP-IDF examples with minor tweaks to test it on actual IR NEC Remote hardware. Wanted to know if you've planned for Arduino Library and high level APIs for the same, so that I could work on those lines and contribute?

@igrr
Copy link
Member

igrr commented Jan 2, 2017

If you are interested in contributing something like an IRRemote library port, that would be great!

@me-no-dev
Copy link
Member

I hope to have time for it in a few days. It's next in line for integration :)

@Xplorer001
Copy link
Contributor Author

@igrr IRRemote looks like a good template for the lib, will start on it.

@me-no-dev sounds cool, saw an WS2812 LED driver with RMT. A generic arduino lib for RMT will be great!

@igrr
Copy link
Member

igrr commented Jan 2, 2017

Well, RMT is a fairly simple peripheral... I just needed to use it to decode PPM signals from an RC transmitter, and ended up working with registers directly rather than with the ESP-IDF library. So I don't know how much of a HAL we need in Arduino. Probably less than what IDF provides.

@me-no-dev
Copy link
Member

As it is with most drivers so far :)

@Xplorer001
Copy link
Contributor Author

I will follow the IRRemote library structure like below, and port it. It can be later integrated with the same lib for ESP32.

Any suggestions for better function names, structure are welcome :)

IRremote.h
	--header for IR send and Recevice functions. 

irSend.cpp 
irSend Class 
   |-- enableIRout() //For configure remote channel, assigned pin, IR frequency 	
   |
   |-- sendRaw(): Sends raw IR data from a buffer passed to it.
   |
   |-- mark()
   |
   |-- space()
   |
   |-- 
   

irRecv.cpp
irRecv Class
   |
   |-- enableIRIn() // configure and enable specific IR channel
   | 
   |-- decode() //calls protocol specific decode functions
   |
   |-- other functions as needed. 
   
  	

IRremote.cpp
   |
   |--  ISR()// to handle receive data and fill the buffer

IRremoteInt.h
   |
   |-- generic header  and defines for specific protocols.


ir_NEC.cpp, ir_RC5.cpp etc., will contain protocal specific functions
   |
   |--IRsend()
   |
   |--IRrecv()
`

@kriswiner
Copy link

Please include examples when you commit to the Arduino core; I would like to learn how to use this as well. Thanks!

@Xplorer001
Copy link
Contributor Author

@kriswiner sure!
@me-no-dev Is rtc.h and rtc.c (pre-compiled) not updated to the latest IDF ? The library code I'm working works with the rtc.c from the latest version of ESP-IDF. So I'm including it locally in the library folder and continuing with the development. . . .

@me-no-dev
Copy link
Member

@Xplorer001 IDF libs were updated a day ago, so you should be fine

@copercini
Copy link
Contributor

@Xplorer001 Any update about it?

@Xplorer001
Copy link
Contributor Author

@copercini check the PR my colleague have created on the IRRemmote Arduino-IRremote/Arduino-IRremote#491 This need to be worked on a little more. However we doing a altogether different implementation using the builtin remote peripheral. I will post a link here once it is tested more.

@Vorms
Copy link

Vorms commented Jan 11, 2018

Hello,
I am very intersted for your work !
Definitively we need a library using RMT compatible with the IRRemote library.
Thanks a lot in advance !
Just a question, I see the IR send pin is by default on pin 5 of the ESP32. Is thatpossible to change that even UART pin ? Many thanks for your help.
Thierry

@Darryl-Scott
Copy link

Hi all
I spend a bit of time going through the RMT library and many examples out there.
I have created a library that might help people.
It basically gets the RAW IR receiver data and then resends it out via another pin to an IR LED.
Example library link: https://github.com/Darryl-Scott/ESP32-RMT-Library-IR-code-RAW

Thanks
Darryl

@malinoy
Copy link

malinoy commented Apr 5, 2019

https://github.com/Darryl-Scott/ESP32-RMT-Library-IR-code-RAW

I found that this is the only working library for ESP32 DevModule. However, it sends only the RAW code that it receives via the IR receiver. Is anyone able to edit or modify this library to send an IR code (eg NEC code when the switch is pressed).

@lbernstone
Copy link
Contributor

@malinoy
Copy link

malinoy commented Apr 8, 2019

I thank you for linking to the library.
Sorry, no examples work.

  1. RMTLib_Demo: "Error compiling for board ESP32 Dev Module"
  2. Loopback: "LG_timing was not declared in this scope"

@lbernstone
Copy link
Contributor

Ok, try again. Changed the function params, but not the example.

@malinoy
Copy link

malinoy commented Apr 10, 2019

Thank you very much for your help and effort. Now it can compile (Loopback) and load on a board , but unfortunately, they do not send any code via the IR diode. I went through other outputs pins, on GPI01 and GPI03, it sent a code on these two outputs, but each time the code is different and is not sent at the interval specified in the program, but randomly.

@lbernstone
Copy link
Contributor

Don't use gpio 1&3. Those are in use by Serial.

@malinoy
Copy link

malinoy commented Apr 10, 2019

I also used all the other pins, but unfortunately I could not send an IR code.
Before I used ESP8266 board and the IRsend.h library and I was able to send an IR codo easily. On the ESP32, however, no library seems to work the same way.

@stale
Copy link

stale bot commented Aug 1, 2019

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the Status: Stale Issue is stale stage (outdated/stuck) label Aug 1, 2019
@stale
Copy link

stale bot commented Aug 15, 2019

This stale issue has been automatically closed. Thank you for your contributions.

@stale stale bot closed this as completed Aug 15, 2019
Jason2866 added a commit to Jason2866/arduino-esp32 that referenced this issue Apr 19, 2022
* Tasmota changes (espressif#123)

* Initial S3 Support

Just so we can compile and test! Some things might/will not work. SPI and UART baud detect need to be looked at.

* Add S3 Toolchain

* Update Esptool and add some missing adjustments

* Add Dual-Core Support

* Fix bootloop issue and enable DSP optimization

* Run Arduino on Core1

* Rework USB selection

* Update HWCDC.cpp

* Update USB.cpp

* Update esp32-hal-tinyusb.c

* fix S3 flash image base (espressif#6208)

* Added my new Unexpected Maker ESP32-S3 boards (espressif#6211)

* Fixes UART_1 TX Pin setup

When passing the PR to this branch, it seems that the change to this line was forgotten.

* Initial SPI support and S3-Box variant

* Bootloader is at 0x0000 for S3 (espressif#6215)

* small adjustments for NVS and PSRAM init

* WIP: Initial support for PSRAM (QSPI and OPI)

* [FEATURE] Basic implementation of Arduino's I2S library (espressif#5304)

Basic version of Arduino's I2S library. We currently support only 16bps + 16000 Hz sampling frequency. Other bitrates and sample rates will print warning and continue to operate, however the resulting audio quality may be poor.
There will be further effort to fix these issues.

* [I2S] Fix lib-builder error

* Update idf_component.yml (espressif#6232)

took me a while

* Fixes RMT examples and adds ESP32-S3 config (espressif#6235)

* WIP: Initial OPI support

* Update Libs with the new lib-builder scripts

* Update board menu for ESP32-S3

* fix ethernet clock runtime setting (espressif#6340)

this was not possible anymore since the GPIO refactoring.

This superseeds espressif/esp32-arduino-lib-builder#60
(which works only for clock on GPIO17). A PR will provided to revert this.
@me-no-dev fyi

The fix is done from @arendst Credits go to him!

* Update IDF libs and fix missing BLE 4.2 features

* Update CI scripts

* script fixes

* Add guard to USB examples

* Disable some examples for ESP32-S3

* skip one more sketch and try again PIO

* Fox SPI example and add proper esptool for PIO CI

* Update ResetReason.ino

* Update IDF, Add ESP-SR and RainMaker

* Enable RainMaker on all chips

* Enable hardware test on ESP32-S3

* Adjust build dir for tests and sketches

* Update tests_build.sh

* Send event also if tests fail

* Add helper script for updating the core version

* [Docs] Added/Updated Lib builder docs (espressif#6401)

* [Docs] Added/Updated Lib builder docs

* [Docs] Fixes according to the PR review

* [Docs] Fixes according to the PR review

* SD_MMC: add ESP32-S3 support

* CmakeList + Rainmaker src files edit

* remove Rainmaker

* Tasmota change

* Fix Unicore WDT on HTTP OTA update

* Revert "ESP32-S3 SDMMC support" (#20)

* Fix reboot into download from TinyUSB on ESP32-S3

Requires manual reboot back into the new firmware after flashing has finished

* Fix psram crash pico d4 (espressif#110)

* Fix reboot into download from TinyUSB on ESP32-S3 (espressif#111)

Requires manual reboot back into the new firmware after flashing has finished

Co-authored-by: me-no-dev <[email protected]>

* Revert "Fix psram crash pico d4 (espressif#110)" (espressif#113)

This reverts commit 56cf555.

* Fix boot freeze when trying to init PSRAM on Pico D4

* revert tinyusb

* hal/usb_serial_jtag_ll.h only C3, H2, S3

* Fix sd mmc

* add wpa_supplicant as requirement

* Update platform.txt

* remove Rainmaker

* Update boards.txt

* Update HardwareSerial.h

* Update USBCDC.cpp

* Update esptool.py

* Update platformio-build-esp32.py

* Update platformio-build-esp32c3.py

* Update platformio-build-esp32s2.py

* Update platformio-build-esp32s3.py

* fix merge errors

* Reordering - HardwareSerial Constructor

* Update platformio-build-esp32.py

* Update platformio-build-esp32c3.py

* Update platformio-build-esp32s2.py

* Update platformio-build-esp32s3.py

* Update pins_arduino.h

* Update platformio-build-esp32.py

* Update platformio-build-esp32c3.py

* Update platformio-build-esp32s2.py

* Update platformio-build-esp32s3.py

Co-authored-by: me-no-dev <[email protected]>
Co-authored-by: Unexpected Maker <[email protected]>
Co-authored-by: Rodrigo Garcia <[email protected]>
Co-authored-by: Tomáš Pilný <[email protected]>
Co-authored-by: Me No Dev <[email protected]>
Co-authored-by: Pedro Minatel <[email protected]>
Co-authored-by: Ivan Grokhotkov <[email protected]>
Co-authored-by: Jan Procházka <[email protected]>

* Bugfix fs read+speed improvements (espressif#127)

* Revert "Edited VFSFileImpl::read to use both read/fread (espressif#6456)"

This reverts commit 7b89b39.

* Added default file buffer size + function to change it by user

Co-authored-by: Jan Procházka <[email protected]>

Co-authored-by: me-no-dev <[email protected]>
Co-authored-by: Unexpected Maker <[email protected]>
Co-authored-by: Rodrigo Garcia <[email protected]>
Co-authored-by: Tomáš Pilný <[email protected]>
Co-authored-by: Me No Dev <[email protected]>
Co-authored-by: Pedro Minatel <[email protected]>
Co-authored-by: Ivan Grokhotkov <[email protected]>
Co-authored-by: Jan Procházka <[email protected]>
brentru pushed a commit to adafruit/arduino-esp32 that referenced this issue Oct 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Stale Issue is stale stage (outdated/stuck)
Projects
None yet
Development

No branches or pull requests

9 participants