Make Magazine SmartRemoteControl Issues with ATT U-verse

I recently saw the Make Magazine article about using the Yun board to create a stand-alone remote control for home electronic devices. The article can be found here:

I saw this as a great way to allow my physically disabled father to control his TV, change channels, etc. with his laptop and voice recognition software. I'm not much of an electronics/coding person, but I was able to follow the instructions to the point where I got the entire system functional. However, when I went to test it the TV & ATT Uverse (cable) box seemed erratic and unresponsive at times. After digging around a bit I found that the ATT U-verse codes I had originally recorded (using the RAW format output by the project sketch) were not remaining consistent.

I searched around and found reference to the IRLib library instead of IRremote library discussed as a potential solution, but when I tried to include the IRLib in the base Make sketch it wouldn't compile. I get the following set of errors:

Arduino: 1.5.8 (Windows 7), Board: "Arduino Yún"

SmartRemoteControl.ino:29:17: error: variable or field 'print_code' declared void
SmartRemoteControl.ino:29:17: error: 'decode_results' was not declared in this scope
SmartRemoteControl.ino:29:33: error: 'results' was not declared in this scope
SmartRemoteControl.ino:27:1: error: 'decode_results' does not name a type
SmartRemoteControl.ino: In function 'void loop()':
SmartRemoteControl.ino:58:11: error: 'command' was not declared in this scope
SmartRemoteControl.ino:62:26: error: 'command' was not declared in this scope
SmartRemoteControl.ino:62:49: error: 'PANASONIC' was not declared in this scope
SmartRemoteControl.ino:110:32: error: 'decode_results' was not declared in this scope
SmartRemoteControl.ino:119:3: error: 'decode_results' was not declared in this scope
SmartRemoteControl.ino:119:18: error: expected ';' before 'results'
SmartRemoteControl.ino:120:14: error: 'class IRrecv' has no member named 'decode'
SmartRemoteControl.ino:120:22: error: 'results' was not declared in this scope
SmartRemoteControl.ino:122:24: error: 'print_code' was not declared in this scope
SmartRemoteControl.ino: In function 'void send_command()':
SmartRemoteControl.ino:134:7: error: 'command' was not declared in this scope
SmartRemoteControl.ino:135:12: error: 'class IRsend' has no member named 'sendNEC'
SmartRemoteControl.ino:140:14: error: 'class IRsend' has no member named 'sendSony'
SmartRemoteControl.ino:147:14: error: 'class IRsend' has no member named 'sendRC5'
SmartRemoteControl.ino:154:14: error: 'class IRsend' has no member named 'sendRC6'
SmartRemoteControl.ino:158:35: error: 'DISH' was not declared in this scope
SmartRemoteControl.ino:159:12: error: 'class IRsend' has no member named 'sendDISH'
SmartRemoteControl.ino:161:35: error: 'SHARP' was not declared in this scope
SmartRemoteControl.ino:162:12: error: 'class IRsend' has no member named 'sendSharp'
SmartRemoteControl.ino:164:35: error: 'PANASONIC' was not declared in this scope
SmartRemoteControl.ino:165:12: error: 'class IRsend' has no member named 'sendPanasonic'
SmartRemoteControl.ino:169:12: error: 'class IRsend' has no member named 'sendJVC'
SmartRemoteControl.ino:172:12: error: 'class IRsend' has no member named 'sendRaw'
SmartRemoteControl.ino: At global scope:
SmartRemoteControl.ino:177:17: error: variable or field 'print_code' declared void
SmartRemoteControl.ino:177:17: error: 'decode_results' was not declared in this scope
SmartRemoteControl.ino:177:33: error: 'results' was not declared in this scope
Error compiling.

This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.

It was my understanding that the IRLib library should have been compatible with the original sketch, but that is clearly not the case. In all, I guess I have two questions I was looking for feedback on:

  1. With respect to the IRLib, what is causing it to crash the original sketch? Is it the interaction with the new .h and .cpp files? From what it looks like the code crashes due to local variables within the sketch, not the library.

  2. Does anyone have any experience with using this type of project to control an ATT Uverse device? I've read bits and pieces that they use a different IR code (potentially rcmm). Is it even possible to decode rcmm as RAW and re-transmit that or am I chasing my tail? My fear is that I will need to re-write the base Make sketch which is well beyond my capabilities.

Thank you all for your help!

If you post some signals I will have a look at them for you.

Use the IRrecvDUMP example provided with the library.

the output should look like RAW(xx): 9000,4555,,,,,,,,, etc

PS: pm me once as I dont seem to be getting notified of replies since the "update" to the forum.