From: Michael B. <sts...@gm...> - 2009-12-15 07:54:40
|
On Tue, Dec 15, 2009 at 12:30 AM, <lirc@ba...> wrote: > Hi! > > Michael Bourgeous "sts.nitrogen@gm..." wrote: >> I have an extended-NEC-format remote and stereo receiver that I'm >> trying to use with an mceusb2 transmitter/receiver. Irrecord >> correctly learned all of the buttons on the remote, and irw shows my >> button presses. However, when I use irsend to try to control the >> stereo, the stereo responds to maybe 1 out of 150 commands sent. I >> used a scope to discover that the mceusb transmitter is simply >> skipping bits in the middle of a command, as well as sending an extra >> pulse before the start pulse. It also appears that the mceusb is only >> accurate to 50us, while the NEC protocol uses 560us and 1690us > > 563 and 1687 actually. Thanks. Can you point me to a more accurate reference for the protocol details than the one I posted? >> mark/space intervals. Setting lircd and irsend to SCHED_FIFO with >> priority 99 seemed to fix the skipped bits issue, > > I don't see how this could have any impact. Transmit is a single write > syscall which cannot loose bits. And it's transfered in a single usb > packet, so there's no way that scheduling could have any impact here. It didn't make much sense to me either, but the scope doesn't lie ;). I thought maybe the kernel code was running with the same priority as lircd when servicing its transmit request (my knowledge of syscall and ioctl internal behavior could use some expanding). The "loop to support long pulses/spaces" starting on line 675 of the CVS version of lirc_mceusb.c also caught my attention with respect to the pulse before the start pulse, but I haven't read the entire driver. >> but the stereo still >> did not accept the commands. I have successfully controlled 12-bit >> and 15-bit Sony-format devices, as well as a basic-NEC-format stereo. >> >> How can I improve the reliability of the mceusb2 transmitter? I'd be >> happy to work with the driver's developer on the kernel code. > > You should show your lircd.conf. > > Christoph > I've attached a version with all buttons and rounded timings, and a version recorded by irrecord with detected timings and only two buttons. Neither transmits correctly to the stereo receiver, but both work fine with irw. I should also note that a sloppily-timed signal from a learning universal remote also controlled the stereo fine, and that I tried different diode wavelengths as well. Mike |