Repository

Looks good to me!

User Tools

Site Tools


projects:electronics:tinkering:irremote:log

Log

2024-11-08 Friday

Used a clock recovery mechanism instead, and now it works pretty robustly:

Script

Data

2024-11-07 Thursday

At some point it dawned on me that IR remote controllers:

  • are probably pretty simple devices with minimal finite-states
  • has communication protocols that may or may not align with some industry standard
  • are pretty easy to measure the signal

A first pass involved measuring it with an IR powermeter directly, with voltage queries, but the call-and-response rate is much too slow to do anything useful (likely on the order of 1ms). The photodiode itself (FDG-50) likely has a large enough bandwidth for me to perform a measurement, so that's what I did.

Attached the two-pin header into the probe points directly from the photodiode, then latched onto crocodile clips before measurement with an oscilloscope, using a 10MR shunt resistor and 1MR measurement impedance:

Setup

Some key facts (for the aircon remote):

  • On-off keying is used
  • Baudrate measured around 1.15kHz (clock frequency probably twice that, so 2.3kHz)
  • Some internal modulation of the IR signal itself that is happening at 38kHz.
  • 25kS/s sampling rate is sufficient to discriminate signals to a high accuracy
  • The same signal is sent twice in succession.
  • States are maintained in the remote control, e.g. ON and OFF signals are different in length.

Measurement

Data is stored in lightstick/projects/_private/irremote. A simple fixed clock calculation doesn't seem to work though, perhaps may need to do clock estimation on an interval instead...?

Script

The remote control one is a little harder to understand, but is clearer once we zoom in a little. Some key facts:

  • Sharp peaks correspond to visible light LED flashing (likely for user feedback)
    • The flashing stops when button is released, or when a timeout occurs while the button is held.
  • The signal itself is a discrete chunk spanning roughly 40ms, with the signal repeating for as long as the button is held down.
  • The signal manifests as an AC coupling to the IR detector (I should have measured AC instead of the DC).
  • Minimum sampling rate for high accuracy discrimination is around 5MS/s instead.

Measurement

Also a quick search led me to this repository that supercharges an ESP32 for IR signal sending.

Update: Extracted the signal by manually applying a small adjustment to the clock frequency. Signal shown below:

Script

projects/electronics/tinkering/irremote/log.txt · Last modified: 2 weeks ago ( 8 November 2024) by justin