Microsoft MCE remote control: any experts around?

General discussions and questions abound development of code with MicroPython that is not hardware specific.
Target audience: MicroPython Users.
Post Reply
User avatar
pythoncoder
Posts: 5956
Joined: Fri Jul 18, 2014 8:01 am
Location: UK
Contact:

Microsoft MCE remote control: any experts around?

Post by pythoncoder » Tue Mar 17, 2020 6:22 pm

AKA VRC-1100. These are still commonly used to control Kodi and I'd like to support them in my IR library. Sadly there is a dearth of information on their binary-level interface. The following is what I've gleaned so far by a mixture of Googling and experiment.

Data consists of a header followed by 16 bits of Manchester encoded data. Decoding the data is easy. The fun starts trying to interpret it ;) I don't know how the 16 bits of data are partitioned, bit polarity or bit ordering.

A flyer at partitioning suggests a 4 bit address field and 6 bits of data. A message occurs when a key is pressed, followed by repeat messages if the key is held down with a final one on key release. The three message types are distinguished by a 2-bit field with consistent behaviour. On some keys a second 4-bit field also changes. I'm stumped by the purpose of these four bits.

I'd greatly appreciate pointers to good information.
Peter Hinch
Index to my micropython libraries.


User avatar
pythoncoder
Posts: 5956
Joined: Fri Jul 18, 2014 8:01 am
Location: UK
Contact:

Re: Microsoft MCE remote control: any experts around?

Post by pythoncoder » Wed Mar 18, 2020 8:07 am

Thanks for that, Dave, I hadn't found that one.

Alas it's added to my puzzlement. The "MCE" remote he studied differs from mine. In one key feature mine conforms with the web references I located.

The encoding he describes is a variable-duration one, whereas my VRC-1100 is fixed duration with Manchester encoding. His header pulse is also different: I see 2.0/1.0ms mark space, he sees 2.7/1.35ms. He makes no mention of a feature I have both measured and seen discussed on the web: three types of message are sent by each key. One on press, multiple repeats if a key is held down, followed by a final message on release. These are distinguished at a binary level. Sending a release message seems unique to this remote and is used for PC keyboard emulation.
Peter Hinch
Index to my micropython libraries.

User avatar
dhylands
Posts: 3821
Joined: Mon Jan 06, 2014 6:08 pm
Location: Peachland, BC, Canada
Contact:

Re: Microsoft MCE remote control: any experts around?

Post by dhylands » Thu Mar 19, 2020 4:20 am

I found some others:
http://www.hifi-remote.com/johnsfine/DecodeIR.html#MCE - quite short, but this sounds similar to the link I sent earlier.

I noticed someplace that the bit patterns might be reveresd. So if you bit-flipped your bytes, then would the high bit be changing? Apparently the high bit toggles on each unique press.'

This linux kernel seems to have drivers for the MCE protocol:
https://www.kernel.org/doc/html/latest/ ... -mcir2-kbd

and I think that WinLIRC does as well.

I also found: https://hackaday.com/2008/10/30/how-to- ... -receiver/ which mentions Manchester encoding, and I thought I also read that Hauppage was compatible with MCE.

User avatar
pythoncoder
Posts: 5956
Joined: Fri Jul 18, 2014 8:01 am
Location: UK
Contact:

Re: Microsoft MCE remote control: any experts around?

Post by pythoncoder » Thu Mar 19, 2020 7:41 pm

Thanks Dave - very helpful indeed. It turns out the protocol is OrtekMCE.

I'm pretty sure I've figured out the details, even though

Code: Select all

{38.6k,480}<1,-1|-1,1>([P=0][P=1][P=2],4,-1,D:5,P:2,F:6,C:4,-48m)+{C=3+#D+#P+#F}
is Greek to me. Now to do the transmitter - but that's the easy part.
Peter Hinch
Index to my micropython libraries.

Post Reply