]> vault307.fbx.one Git - micorpython_ir.git/blobdiff - README.md
micropython_ir projects
[micorpython_ir.git] / README.md
index 2eb3a47f35bbe7760bbc3cb6288f4ea8538efd5e..0e3201a4913cd77fe2b0d0634d6548a93fe61be5 100644 (file)
--- 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,42 @@ 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
+
+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.
 
-Sources of information about IR protocols.  
+# 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/)
 
+Also [IRMP](https://www.mikrocontroller.net/articles/IRMP_-_english)
+
 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)