cyborg5 / IRLib2

Library for receiving, decoding, and sending infrared signals using Arduino
GNU General Public License v3.0
384 stars 138 forks source link

Problem Sending Command to Sony DVD/VCR #98

Open instantwow opened 3 years ago

instantwow commented 3 years ago

This is probably more user error than an actual issue. I've been able to utilize the code to do most of what I want but there is one device that is causing me trouble. I'd appreciate any guidance and have tried to record my steps:

I downloaded the latest version IRLib2 and am using the sketch IRLib2\examples\record.ino to capture samples of an IR Remote on an Arduino Uno. I'm using a VS1838B IR Reciever which is a 38khz receiver.

I've used this to successfully capture/replay remotes from Tivo, Apple, Roku, JVC, and even a 5 disc Sony DVD Changer. However, when I try to capture and playback a remote control command for the Sony SLV-D350 DVD/VCR unit, I can capture the device (Length 20, Protocol Sony, Value:0x58BCA), but upon playback, the unit doesn't recognize the sequence.

During capture, I get the following for a single button press of the "PLAY" button

Received Sony Value:0x58BCA
Received Sony Value:0x58BCA
Received Sony Value:0x58BCA

When I play it back (using the r key), I can verify that the IR LED is transmitting, but the device doesn't accept/respond to it:

Sent: Length 20, Protocol Sony, Value:0x58BCA

I've tried some varients including sending the command multiple times in a row (2, 3, and 4 times) Manually passing in 40Khz as the last parameter in a single command and multiple times in a row (2, 3, and 4 times) Commenting out the include for #include so that it will record and playback just the raw data, this too does not work.

To further debug, I did upload the sketch IRLib2\examples\rawRecv.ino and captured the same keypress "PLAY" on the remote and then used the IRLib2\examples\rawSend.ino to play it back, same issue. The default playback frequency is 36KHz. I tried that and also 40KHz. In both cases the Sony DVD/VCR doesn't respond.

#define RAW_DATA_LEN 42
uint16_t rawData[RAW_DATA_LEN]={
    2290, 694, 498, 694, 1218, 602, 494, 694, 
    1222, 594, 1094, 694, 622, 602, 494, 698, 
    618, 602, 1190, 598, 622, 598, 1190, 598, 
    1198, 618, 1194, 594, 1202, 614, 594, 598, 
    606, 614, 1194, 598, 494, 722, 1194, 594, 
    498, 1000};

Finally, here's the output using Hash Decode (IRLib2\examples\hashDecode.ino) with a small tweak to set myDecoder.dumpResults(true):

Ready to receive IR signals
Decoded Sony(2): Value:58BCA Adrs:0 (20 bits) 
Raw samples(42): Gap:34798
  Head: m2350  s600
0:m600 s600 1:m1200 s600         2:m550 s650    3:m1200 s600         
4:m1150 s600    5:m600 s600      6:m550 s650    7:m600 s600      
8:m1200 s550    9:m600 s600      10:m1200 s600  11:m1150 s650        
12:m1200 s550   13:m1200 s600        14:m600 s600   15:m600 s600         

16:m1200 s550   17:m600 s650         18:m1150 s600  19:m550
Extent=32100
Mark  min:550    max:1200
Space min:550    max:650

I don't have any IR Debugging tools besides this and have done some additional reading in the manual.

Any advice or guidance on what should be my next steps?

Thanks!