Looking at the USB-UIRT log I see the following differences (trying to send the key '3').
If I use the Test Code button in the A/V properties page for the satellite box, the log shows
10 02/15/08 1:01:20.798 Receive string: MESSAGE 451 <0x42003950>
10 02/15/08 1:01:20.798 Received MESSAGE 451 0x651940 device: 54 <0x42003950>
10 02/15/08 1:01:20.799 Received Message type 1 ID 191 from 0 to 54 (device: 54) resp 0 <0x42003950>
10 02/15/08 1:01:20.799 UsbUirt Sending with repeat 1: 0000 0048 0000 0024 0017 0163 0017 00A2 0017 00A2 0017 00A2 0017 0062 0017 0062 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 0163 0017 00A2 0017 00A2 0017 00A2 0017 0062 0017 0062 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 0163 0017 176E <0x42003950>
If I instead use the TuneToChannel.sh script:
10 02/15/08 1:02:06.042 Receive string: MESSAGE 78 <0x42003950>
10 02/15/08 1:02:06.042 Received MESSAGE 78 0x651940 device: 54 <0x42003950>
10 02/15/08 1:02:06.042 Received Message type 1 ID 187 from 0 to 57 (device: 54) resp 0 <0x42003950>
10 02/15/08 1:02:06.051 AVMessageTranslator::Translate begin <0x42003950>
10 02/15/08 1:02:06.054 Status : CMD=187, TP=0, TI=0 last input 0 last power 0 <0x42003950>
05 02/15/08 1:02:06.054 Device id 57 has no number digits parameter. Sending as is with an enter.
<0x42003950>
10 02/15/08 1:02:06.054 Sending digit 3... <0x42003950>
10 02/15/08 1:02:06.054 Sending <enter>... <0x42003950>
10 02/15/08 1:02:06.054 AVMessageTranslator::Translate begin <0x42003950>
10 02/15/08 1:02:06.054 Status : CMD=207, TP=0, TI=0 last input 0 last power 0 <0x42003950>
10 02/15/08 1:02:06.054 AVMessageTranslator::Translate end <0x42003950>
10 02/15/08 1:02:06.054 AVMessageTranslator::Translate begin <0x42003950>
10 02/15/08 1:02:06.054 Status : CMD=190, TP=0, TI=0 last input 0 last power 0 <0x42003950>
10 02/15/08 1:02:06.054 AVMessageTranslator::Translate end <0x42003950>
05 02/15/08 1:02:06.054 #### Pre-Process Queue = 2 <0x42003950>
05 02/15/08 1:02:06.068 _QueueProc Pre - 207 : 0 <0x42804950>
10 02/15/08 1:02:06.068 _QueueProc ------- 207 <0x42804950>
05 02/15/08 1:02:06.069 GSD-Sleep Pre 207 : 0 <0x42804950>
10 02/15/08 1:02:06.069 In IRBase::DispatchMessage <0x42804950>
10 02/15/08 1:02:06.069 Sending Infrared Code for dev <57> cmd <207>, channel <>, repeat <4> code <0000 0048 0000 0024 0017 0163 0017 00A2 0017 00A2 0017 00A2 0017 0062 0017 0062 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 0163 0017 00A2 0017 00A2 0017 00A2 0017 0062 0017 0062 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 0163 0017 176E> <0x42804950>
10 02/15/08 1:02:06.069 pos 380 size 379 Checking 0000 0048 0000 0024 0017 0163 0017 00A2 0017 00A2 0017 00A2 0017 0062 0017 0062 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 0163 0017 00A2 0017 00A2 0017 00A2 0017 0062 0017 0062 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 0163 0017 176E
for multiple codes, got: 0000 0048 0000 0024 0017 0163 0017 00A2 0017 00A2 0017 00A2 0017 0062 0017 0062 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 0163 0017 00A2 0017 00A2 0017 00A2 0017 0062 0017 0062 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 0163 0017 176E <0x42804950>
10 02/15/08 1:02:06.069 UsbUirt Sending with repeat 4: 0000 0048 0000 0024 0017 0163 0017 00A2 0017 00A2 0017 00A2 0017 0062 0017 0062 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 0163 0017 00A2 0017 00A2 0017 00A2 0017 0062 0017 0062 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 0163 0017 176E <0x42804950>
05 02/15/08 1:02:07.264 GSD-Sleep Post 207 : 250 <0x42804950>
05 02/15/08 1:02:07.265 _QueueProc Post - 207 : 250 <0x42804950>
05 02/15/08 1:02:07.265 _QueueProc Pre - 190 : 0 <0x42804950>
10 02/15/08 1:02:07.265 _QueueProc ------- 190 <0x42804950>
05 02/15/08 1:02:07.265 GSD-Sleep Pre 190 : 0 <0x42804950>
10 02/15/08 1:02:07.265 In IRBase::DispatchMessage <0x42804950>
10 02/15/08 1:02:07.265 Sending Infrared Code for dev <57> cmd <190>, channel <>, repeat <4> code <0000 0048 0000 0046 0017 0163 0017 00A2 0017 0062 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 0163 0017 00A2 0017 0062 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 0164 0017 00A2 0017 0062 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 0163 0017 00A2 0017 0062 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 0163 0017 1774> <0x42804950>
10 02/15/08 1:02:07.265 pos 720 size 719 Checking 0000 0048 0000 0046 0017 0163 0017 00A2 0017 0062 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 0163 0017 00A2 0017 0062 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 0164 0017 00A2 0017 0062 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 0163 0017 00A2 0017 0062 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 0163 0017 1774
for multiple codes, got: 0000 0048 0000 0046 0017 0163 0017 00A2 0017 0062 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 0163 0017 00A2 0017 0062 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 0164 0017 00A2 0017 0062 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 0163 0017 00A2 0017 0062 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 0163 0017 1774 <0x42804950>
10 02/15/08 1:02:07.265 UsbUirt Sending with repeat 4: 0000 0048 0000 0046 0017 0163 0017 00A2 0017 0062 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 0163 0017 00A2 0017 0062 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 0164 0017 00A2 0017 0062 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 0163 0017 00A2 0017 0062 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 00A2 0017 0163 0017 1774 <0x42804950>
Return code: 139
3 02/15/08 01:02:07 54 (spawning-device) Device died... count=8/50 dev=54
Now, ignoring for the fact that everytime it gives that device died message....the channel changing script seems to forcing a repeat of 4. Why would it do that? that means its going to fire 4 of each button press for the channel I request and that is, I assume, what is causing the issues here.