In my testing a 38KHz demodulator worked with 36KHz and 40KHz remotes, but this
is obviously neither guaranteed nor optimal.
+The TSOP4838 can run from 3.3V or 5V supplies. The former should be used on
+non-5V compliant hosts such as ESP32 and Raspberry Pi Pico and is fine on 5V
+compliant hosts too.
+
The pin used to connect the decoder chip to the target is arbitrary. The test
-program assumes pin X3 on the Pyboard, pin 23 on ESP32 and pin 13 on ESP8266.
-On the WeMos D1 Mini the equivalent pin is D7.
+program `acquire.py` uses the following pins by default:
+
+| Host | Pin | Notes |
+|:-------:|:---:|:-----:|
+| Pyboard | X3 | |
+| ESP32 | 23 | |
+| ESP8266 | 13 | |
+| D1 Mini | D7 | WeMos name for pin 13. |
+| Pico | 16 | |
A remote using the NEC protocol is [this one](https://www.adafruit.com/products/389).
This script waits for a single burst from the remote and prints the timing of
the pulses followed by its best guess at the protocol. It correctly identifies
supported protocols, but can wrongly identify unsupported protocols. The
-behaviour of the script exposed to an unknown protocol is unpredictable.
+report produced by the script exposed to an unknown protocol is unpredictable.
+The `test()` function returns a list of the mark and space periods (in μs).
# 3. The driver
1. These are constants defining the NEC repeat code and the error codes sent
to the error function. They are discussed in [section 4](./RECEIVER.md#4-errors).
-#### NEC classes
+#### NEC classes (includes Samsung)
-`NEC_8`, `NEC_16`
+`NEC_8`, `NEC_16`, `SAMSUNG`
Typical invocation:
```python
address: the complement is checked and the address returned as an 8-bit value.
A 16-bit address will result in an error.
+The `SAMSUNG` class returns 16 bit address and data values. The remote sample
+tested did not issue repeat codes - if a button is held down it simply repeated
+the original value. In common with other NEC classes the callback receives a
+value of 0 in the `ctrl` arg.
+
+Thanks are due to J.E.Tannenbaum for information about the Samsung protocol.
+
#### Sony classes
`SONY_12`, `SONY_15`, `SONY_20`
a Pyboard D SF2W at stock frequency. They were: NEC 1ms for normal data, 100μs
for a repeat code. Philips codes: RC-5 900μs, RC-6 mode 0 5.5ms.
+# 7. Unsupported protocols
+
+It is possible to capture an IR burst from a remote and to re-create it using
+the transmitter. This has limitations and is discussed in detail in
+[the transmitter doc](./TRANSMITTER.md#5-unsupported-protocols).
+
# Appendix 1 NEC Protocol description
A normal burst comprises exactly 68 edges, the exception being a repeat code