X-Git-Url: https://vault307.fbx.one/gitweb/micorpython_ir.git/blobdiff_plain/a5c58e92f187b72111774f417d82238ec7e3b6eb..d7ff5be7654ececde87be89f32a08986b5c3b5c7:/README.md?ds=sidebyside diff --git a/README.md b/README.md index 2eb3a47..f33feb5 100644 --- a/README.md +++ b/README.md @@ -5,8 +5,22 @@ a driver for IR "blaster" apps. The device drivers are nonblocking. They do not require `uasyncio` but are compatible with it, and are designed for standard firmware builds. -The receiver is cross platform and has been tested on Pyboard, ESP8266 and -ESP32. +The receiver is cross platform and has been tested on Pyboard, ESP8266, ESP32 +and Raspberry Pi Pico. + +In a typical use case the receiver is employed at the REPL to sniff the address +and data values associated with buttons on a remote control. The transmitter is +then used in an application to send those codes, emulating the remote control. + +Other use cases involve running the receiver in an application. This enables an +IR remote to control a device such as a robot. This may be problematic on some +platforms. Please see [section 4](./README.md#4-receiver-limitations). + +## Raspberry Pi Pico note + +Early firmware has [this issue](https://github.com/micropython/micropython/issues/6866) +affecting USB communication with some PC's. This is now fixed. Please ensure +you are using up to date firmware. #### [Receiver docs](./RECEIVER.md) @@ -38,6 +52,7 @@ The drivers support NEC and Sony protocols plus two Philips protocols, namely RC-5 and RC-6 mode 0. There is also support for the OrtekMCE protocol used on VRC-1100 remotes. These originally supported Microsoft Media Center but can be used to control Kodi and (with a suitable receiver) to emulate a PC keyboard. +The Samsung protocol (NEC variant) is also supported. Examining waveforms from various remote controls it is evident that numerous protocols exist. Some are doubtless proprietary and undocumented. The supported @@ -63,14 +78,14 @@ microcontroller. In my testing a 38KHz demodulator worked with 36KHz and 40KHz remotes, but this is obviously neither guaranteed nor optimal. -The transmitter requires a Pyboard 1.x (not Lite), a Pyboard D or an ESP32. -Output is via an IR LED which will need a transistor to provide sufficient -current. The ESP32 requires an extra transistor to work as a transmitter. +The transmitter requires a Pyboard 1.x (not Lite), a Pyboard D, an ESP32 or +Raspberry Pico (RP2). Output is via an IR LED which will need a transistor to +provide sufficient current. ## 3.1 Carrier frequencies -These are as follows. The Samsung and Panasonic remotes appear to use -proprietary protocols and are not supported by these drivers. +These are as follows. The Panasonic remote appears to use a proprietary +protocol and is not supported by these drivers. | Protocol | F KHz | How found | Support | |:---------:|:-----:|:-------------:|:-------:| @@ -78,25 +93,40 @@ proprietary protocols and are not supported by these drivers. | RC-5 RC-6 | 36 | Spec/measured | Y | | Sony | 40 | Spec/measured | Y | | MCE | 38 | Measured | Y | -| Samsung | 38 | Measured | N | +| Samsung | 38 | Measured | Y | | Panasonic | 36.3 | Measured | N | -# 4. References +# 4. Receiver limitations -Sources of information about IR protocols. +The receiver uses a pin interrupt and depends on a quick response to a state +change on the pin. This is guaranteed on platforms which support hard IRQ's +such as the Pyboard and the RP4 Pico. The ESP32 and ESP8266 only support soft +IRQ's. This means that, if code such as WiFi communication is running +concurrently, reliable reception may be problematic. + +# 5. References + +Sources of information about IR protocols. The `sbprojects.net` site is an +excellent resource. [General information about IR](https://www.sbprojects.net/knowledge/ir/) The NEC protocol: [altium](http://techdocs.altium.com/display/FPGA/NEC+Infrared+Transmission+Protocol) -[circuitvalley](http://www.circuitvalley.com/2013/09/nec-protocol-ir-infrared-remote-control.html) +[circuitvalley](http://www.circuitvalley.com/2013/09/nec-protocol-ir-infrared-remote-control.html) +[sbprojects.net](https://www.sbprojects.net/knowledge/ir/nec.php) + +The Samsung protocol: +[Rustic Engineering](https://rusticengineering.wordpress.com/2011/02/09/infrared-room-control-with-samsung-ir-protocol/) +[TechDesign Electronics](https://www.techdesign.be/projects/011/011_waves.htm) Waveforms of various protocols. + Philips protocols: -[RC5](https://en.wikipedia.org/wiki/RC-5) -[RC5](https://www.sbprojects.net/knowledge/ir/rc5.php) -[RC6](https://www.sbprojects.net/knowledge/ir/rc6.php) +[RC5 Wikipedia](https://en.wikipedia.org/wiki/RC-5) +[RC5 sbprojects.net](https://www.sbprojects.net/knowledge/ir/rc5.php) +[RC6 sbprojects.net](https://www.sbprojects.net/knowledge/ir/rc6.php) Sony protocol: -[SIRC](https://www.sbprojects.net/knowledge/ir/sirc.php) +[SIRC sbprojects.net](https://www.sbprojects.net/knowledge/ir/sirc.php) MCE protocol: [OrtekMCE](http://www.hifi-remote.com/johnsfine/DecodeIR.html#OrtekMCE)