Well I've tried a 4.7uF electrolytic cap across the GND and +5v, with a 100ohm resistor on the +5v exactly as it has in the data sheet.
I then moved it to pin 3 and 5
This is the output from the same button on the same remote:
Protocol: (NEC) Value:AF5CE31
Protocol: (UNKNOWN) Value:7709F61B
Protocol: (LG) Value:AF5CE3
Protocol: (NEC) Value:AF5CE31
Protocol: (UNKNOWN) Value:7709F61B
Protocol: (UNKNOWN) Value:7709F61B
Protocol: (UNKNOWN) Value:7709F61B
Protocol: (UNKNOWN) Value:7709F61B
Protocol: (NEC) Value:AF5CE31
Protocol: (NEC) Value:AF5CE31
Protocol: (NEC) Value:AF5CE31
Protocol: (UNKNOWN) Value:7709F61B
Protocol: (UNKNOWN) Value:7ED27B68
Protocol: (UNKNOWN) Value:7709F61B
Protocol: (UNKNOWN) Value:7709F61B
Protocol: (UNKNOWN) Value:3E5ABCF9
Protocol: (NEC) Value:AF5CE31
Protocol: (UNKNOWN) Value:7709F61B
Protocol: (NEC) Value:AF5CE31
Protocol: (UNKNOWN) Value:7709F61B
Protocol: (UNKNOWN) Value:7709F61B
Protocol: (UNKNOWN) Value:7709F61B
Protocol: (NEC) Value:AF5CE31
Protocol: (NEC) Value:AF5CE31
Protocol: (JVC) Value:AF5
Protocol: (UNKNOWN) Value:B35C630C
Protocol: (UNKNOWN) Value:7709F61B
Protocol: (UNKNOWN) Value:7709F61B
Protocol: (UNKNOWN) Value:7709F61B
Protocol: (UNKNOWN) Value:7709F61B
Protocol: (UNKNOWN) Value:7709F61B
Protocol: (UNKNOWN) Value:7709F61B
Protocol: (UNKNOWN) Value:7709F61B
Here's another run with raw data and timings.
Protocol: (UNKNOWN) Value:7709F61B
Encoding : UNKNOWN
Code : 7709F61B (32 bits)
Timing[67]:
+8850, -4550 + 450, - 650 + 450, - 650 + 500, - 650
+ 450, - 650 + 500, -1700 + 500, - 650 + 450, -1750
+ 500, - 650 + 450, -1750 + 500, -1750 + 450, -1750
+ 500, -1750 + 450, - 650 + 500, -1750 + 450, - 650
+ 450, -1750 + 500, -1750 + 450, -1750 + 500, - 650
+ 450, - 650 + 500, -1750 + 450, -1750 + 500, -1750
+ 450, - 650 + 500, - 600 + 500, - 650 + 450, -1750
+ 500, -1750 + 450, - 650 + 550, - 550 + 550, - 600
+ 500, -1700 + 550
unsigned int rawData[67] = {8850,4550, 450,650, 450,650, 500,650, 450,650, 500,1700, 500,650, 450,1750, 500,650, 450,1750, 500,1750, 450,1750, 500,1750, 450,650, 500,1750, 450,650, 450,1750, 500,1750, 450,1750, 5
00,650, 450,650, 500,1750, 450,1750, 500,1750, 450,650, 500,600, 500,650, 450,1750, 500,1750, 450,650, 550,550, 550,600, 500,1700, 550}; // UNKNOWN 7709F61B
================================
Protocol: (UNKNOWN) Value:7709F61B
Encoding : UNKNOWN
Code : 7709F61B (32 bits)
Timing[67]:
+8900, -4450 + 550, - 600 + 500, - 600 + 550, - 550
+ 550, - 600 + 500, -1700 + 500, - 650 + 500, -1700
+ 500, - 600 + 500, -1750 + 500, -1700 + 550, -1700
+ 550, -1650 + 550, - 600 + 500, -1700 + 550, - 600
+ 500, -1700 + 550, -1700 + 550, -1650 + 550, - 600
+ 550, - 550 + 550, -1650 + 600, -1650 + 550, -1650
+ 600, - 550 + 550, - 550 + 550, - 550 + 600, -1650
+ 550, -1600 + 650, - 550 + 550, - 550 + 550, - 600
+ 500, -1700 + 550
unsigned int rawData[67] = {8900,4450, 550,600, 500,600, 550,550, 550,600, 500,1700, 500,650, 500,1700, 500,600, 500,1750, 500,1700, 550,1700, 550,1650, 550,600, 500,1700, 550,600, 500,1700, 550,1700, 550,1650, 5
50,600, 550,550, 550,1650, 600,1650, 550,1650, 600,550, 550,550, 550,550, 600,1650, 550,1600, 650,550, 550,550, 550,600, 500,1700, 550}; // UNKNOWN 7709F61B
================================
Protocol: (JVC) Value:AF5
Encoding : JVC
Code : AF5 (16 bits)
Timing[67]:
+8900, -4450 + 550, - 550 + 550, - 600 + 550, - 550
+ 550, - 550 + 550, -1700 + 550, - 550 + 550, -1700
+ 550, - 550 + 550, -1700 + 550, -1650 + 550, -1700
+ 550, -1650 + 550, - 550 + 600, -1650 + 550, - 550
+ 550, -1700 + 500, -1700 + 550, -1700 + 500, - 600
+ 500, - 650 + 500, -1700 + 500, -1750 + 500, -1700
+ 500, - 600 + 500, - 650 + 500, - 600 + 500, -1750
+ 500, -1700 + 550, - 550 + 550, - 600 + 500, - 600
+ 550, -1700 + 550
unsigned int rawData[67] = {8900,4450, 550,550, 550,600, 550,550, 550,550, 550,1700, 550,550, 550,1700, 550,550, 550,1700, 550,1650, 550,1700, 550,1650, 550,550, 600,1650, 550,550, 550,1700, 500,1700, 550,1700, 5
00,600, 500,650, 500,1700, 500,1750, 500,1700, 500,600, 500,650, 500,600, 500,1750, 500,1700, 550,550, 550,600, 500,600, 550,1700, 550}; // JVC AF5
unsigned int data = 0xAF5;
================================
Protocol: (NEC) Value:AF5CE31
Encoding : NEC
Code : AF5CE31 (32 bits)
Timing[67]:
+8900, -4450 + 550, - 550 + 550, - 600 + 500, - 600
+ 500, - 600 + 550, -1700 + 500, - 600 + 500, -1750
+ 500, - 600 + 500, -1750 + 500, -1700 + 500, -1700
+ 550, -1700 + 550, - 550 + 500, -1750 + 500, - 600
+ 550, -1700 + 500, -1700 + 550, -1700 + 500, - 600
+ 550, - 600 + 550, -1650 + 550, -1700 + 550, -1650
+ 550, - 550 + 550, - 600 + 550, - 550 + 550, -1700
+ 550, -1650 + 550, - 550 + 550, - 600 + 500, - 600
+ 550, -1700 + 500
unsigned int rawData[67] = {8900,4450, 550,550, 550,600, 500,600, 500,600, 550,1700, 500,600, 500,1750, 500,600, 500,1750, 500,1700, 500,1700, 550,1700, 550,550, 500,1750, 500,600, 550,1700, 500,1700, 550,1700, 5
00,600, 550,600, 550,1650, 550,1700, 550,1650, 550,550, 550,600, 550,550, 550,1700, 550,1650, 550,550, 550,600, 500,600, 550,1700, 500}; // NEC AF5CE31
unsigned int data = 0xAF5CE31;
================================
Protocol: (UNKNOWN) Value:7709F61B
Encoding : UNKNOWN
Code : 7709F61B (32 bits)
Timing[67]:
+8850, -4500 + 500, - 650 + 500, - 600 + 550, - 550
+ 550, - 600 + 500, -1700 + 550, - 600 + 500, -1700
+ 550, - 550 + 600, -1650 + 550, -1650 + 600, -1650
+ 550, -1700 + 550, - 550 + 550, -1650 + 550, - 600
+ 550, -1650 + 550, -1700 + 550, -1650 + 550, - 600
+ 550, - 550 + 550, -1650 + 600, -1650 + 550, -1700
+ 550, - 550 + 550, - 550 + 550, - 600 + 500, -1700
+ 550, -1700 + 500, - 600 + 500, - 600 + 500, - 650
+ 500, -1700 + 500
unsigned int rawData[67] = {8850,4500, 500,650, 500,600, 550,550, 550,600, 500,1700, 550,600, 500,1700, 550,550, 600,1650, 550,1650, 600,1650, 550,1700, 550,550, 550,1650, 550,600, 550,1650, 550,1700, 550,1650, 5
50,600, 550,550, 550,1650, 600,1650, 550,1700, 550,550, 550,550, 550,600, 500,1700, 550,1700, 500,600, 500,600, 500,650, 500,1700, 500}; // UNKNOWN 7709F61B
================================
Protocol: (JVC) Value:AF5
Encoding : JVC
Code : AF5 (16 bits)
Timing[67]:
+8900, -4450 + 550, - 600 + 550, - 550 + 550, - 550
+ 550, - 600 + 550, -1650 + 550, - 550 + 550, -1700
+ 550, - 550 + 550, -1700 + 550, -1650 + 550, -1700
+ 550, -1650 + 550, - 600 + 550, -1650 + 550, - 600
+ 550, -1650 + 550, -1700 + 550, -1650 + 550, - 600
+ 550, - 550 + 550, -1650 + 550, -1700 + 550, -1650
+ 550, - 600 + 550, - 550 + 500, - 600 + 550, -1700
+ 450, -1750 + 500, - 650 + 450, - 650 + 500, - 600
+ 500, -1750 + 450
unsigned int rawData[67] = {8900,4450, 550,600, 550,550, 550,550, 550,600, 550,1650, 550,550, 550,1700, 550,550, 550,1700, 550,1650, 550,1700, 550,1650, 550,600, 550,1650, 550,600, 550,1650, 550,1700, 550,1650, 5
50,600, 550,550, 550,1650, 550,1700, 550,1650, 550,600, 550,550, 500,600, 550,1700, 450,1750, 500,650, 450,650, 500,600, 500,1750, 450}; // JVC AF5
unsigned int data = 0xAF5;
================================
I'm starting to wonder if it's just a bad receiver ?