| View previous topic :: View next topic |
Author
 |
Message |
bushing xm slacker.


Joined: 13 Jan 2003 Posts: 69 Location: Northern VA 
|
Posted: Sun Jun 15, 2003 4:55 am Post subject: XMPCR protocol |
|
|
Has anybody begun working on a document to sketch out the XMPCR serial protocol? (Which might actually be the universal XM chipset protocol...)
Maybe we could start a mailing list? I'm working on a GUI Linux program...
Ben |
|
| Back to top |
|
 |
sonnik XM Fanatic

Joined: 08 Jun 2003 Posts: 301

|
Posted: Sun Jun 15, 2003 5:43 am Post subject: Yes we have... |
|
|
...and great progress has been made. I'm pretty sure we can do everything the XM Software can at this point.
Look through this forums subjects for "software alternative", "ReplacePCR", "Linux", "MacOS", etc...
I'm not quite sure what you are referring to by "universal chipset protocol". From what I've seen of the PCR codes, it looks like these are exclusive to the PCR. I may be wrong though...
However, there has been some excellent technical discussion here, and it's been fun learning the ins and outs of how this thing works. |
|
| Back to top |
|
 |
bushing xm slacker.


Joined: 13 Jan 2003 Posts: 69 Location: Northern VA 
|
Posted: Sun Jun 15, 2003 6:36 am Post subject: Re: Yes we have... |
|
|
| sonnik wrote: | ...and great progress has been made. I'm pretty sure we can do everything the XM Software can at this point.
Look through this forums subjects for "software alternative", "ReplacePCR", "Linux", "MacOS", etc...
I'm not quite sure what you are referring to by "universal chipset protocol". From what I've seen of the PCR codes, it looks like these are exclusive to the PCR. I may be wrong though...
However, there has been some excellent technical discussion here, and it's been fun learning the ins and outs of how this thing works. |
Right... I've been following all of these threads. With the exception of dobbz's perl source, I haven't seen anyone publicly discussing the actual mechanics of the protocol -- just a half dozen people mentioning that they're working on it independantly, which seems like a shame.
(Someone even started a "PCR Communications" thread last month for this purpose, but it never took off...)
As for the "universal chipset" thing, take a look at my last post about SkyFI->XMPCR. I claim (without evidence) that the SkyFI, which uses the same metal "chipset" box as the PCR, has a microprocessor in it driving a screen and a keypad -- and communicating with the XM chipset over the same serial protocol we're discussing here.
Ben |
|
| Back to top |
|
 |
dbroome XM Fanatic

Joined: 09 May 2003 Posts: 362

|
Posted: Sun Jun 15, 2003 7:07 am Post subject: |
|
|
I was the one that started the PCR Communications thread. And since it didn't take off, I assumed there was 0 interest in a public discussion of the protocol. So I figured it out independently, but have not hesitated to discuss it over email with anyone who has asked (with the exception that I first ensure it isn't for providing an illegal XM stream). I'll be glad to have the same discussion with you over email if you like.
Just because you haven't seen or participated in the discussion, doesn't make it a 'shame'. It makes it a polite discussion that was taken off board because there was no apparent interest in it.
If others are NOW interested in a public discussion, I'll be glad to post my findings here for the good of the community. _________________
 ReplacePCR Take your PCR to the next level. |
|
| Back to top |
|
 |
Guest

|
Posted: Sun Jun 15, 2003 9:47 am Post subject: |
|
|
| dbroome wrote: | | I was the one that started the PCR Communications thread. And since it didn't take off, I assumed there was 0 interest in a public discussion of the protocol. |
I should have put in a pre-order and gotten mine earlier. I'm sure as more hard-core techies get these things, all sorts of interesting things will pop up in discussion.
Three or four years ago, I was part of a group that explored doing these things to a device called "TiVo" - in fact, you can read up on the exploits in the archives at TiVo AVS Forum. Search for "sonnik" references if you are really bored.
But don't tell them I'm over here now! I went MIA because I was busy with some other stuff and I kind of feel bad about it now...
TiVo was a cool company to "hack" for... we didn't screw them over and they didn't screw with us. We'd get the scoop on Betas, and many of our hacks are now incorporated in the TiVo series two models you may be aware of.
XM hopefully will have the same perspective. Enthusiasts seem to do a greater share of word-of-mouth advertising. |
|
| Back to top |
|
 |
sonnik XM Fanatic

Joined: 08 Jun 2003 Posts: 301

|
Posted: Sun Jun 15, 2003 9:50 am Post subject: ...sorry... |
|
|
That was me in the above post. And the correct address for TiVo Community at AVS Forum is...
www.tivocommunity.com |
|
| Back to top |
|
 |
vasqus Guest

|
Posted: Sun Jun 15, 2003 4:01 pm Post subject: |
|
|
DBROOME,
There is definate interest in the protocol, I know I want to make it work on other devices. As the device takes off, more people will be interested (its only been a month). So please go ahead and post your findings. Thanks. |
|
| Back to top |
|
 |
bushing xm slacker.


Joined: 13 Jan 2003 Posts: 69 Location: Northern VA 
|
Posted: Mon Jun 16, 2003 3:47 pm Post subject: |
|
|
In the interest of starting things off--
(much thanks to Dobbz for starting me off with his perl code!)
| Code: | Requests from PC to PCR:
All requests take the form:
5A A5 xx xx <data> ED ED
where xx xx is the length of the data field in big-endian (MSB first) format
For example:
5A A5 00 05 00 10 10 01 ED ED -- power unit on
Known commands:
00 10 10 10 01 -- power on. see response 80
01 00 -- power off. see response 81
13 00 -- ? see response 93
25 08 xx 00 -- get channel info. see response A5
25 09 xx 00 -- get channel info. see response A5
31 -- get radio ID. see response B1
42 01 -- ? see response C2
43 -- get signal strength info. see response C3
50 00 00 00 00 00 -- ?
70 05 -- get radio info? see response E3
Responses from PCR to PC:
All responses take the form:
5A A5 xx <data> yy yy
where xx xx is the length of the data field in big-endian format
yy yy is the last two bytes of the data field, repeated (why?)
Many response codes seem to be the request codes with the MSB set high.
Known responses:
80: HELLO
80 ?? ?? ?? aa bb cc dd ee ?? ?? ?? ?? ff gg hh ii jj ?? <XMID>
aa "SDEC Ver." in BCD
bb/cc/ddee SDEC revision date, in BCD
(note: My PCR returns 25 10 29 20 02, but diag.exe
refers to this as "SDEC Ver. 25 (10/02/2002)) ???
ff
gg/hh/iijj XMSTK version info
<XMID> XM ID in ASCII, 8 characters long
Sent on poweron. See request 00 01.
81: GOODBYE
81 ?? ?? ??
Sent on power down. See request 01.
93: ??
93 ?? ?? ??
See request 13 00.
A5: CHINFO
A5 ?? ?? aa bb ?? XX XX XX XX XX XX XX XX XX XX
XX XX XX XX XX XX ?? ?? YY YY YY YY YY YY YY YY
YY YY YY YY YY YY YY YY ?? ZZ ZZ ZZ ZZ ZZ ZZ ZZ
ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ WW WW WW WW WW WW WW
WW WW WW WW WW WW WW WW WW ?? ?? ?? ??
aa Channel number. This is one two low when 25 09 is used?
bb Usually the same as the channel number -- but not always.
XX Station name. (16 chars)
YY Genre name. (16 chars) all are padded with trailing
ZZ Artist name. (16 chars) whitespace (0x20)
WW Song title. (16 chars)
See request 25 08, 25 09.
B1: GETID
B1 ?? ?? ?? XX XX XX XX XX XX XX XX
XX XM ID, in ASCII. (8 chars)
See request 31.
C1: ??
C1 ??
C2: ??
C2 ?? ??
See request 42 01.
C3: Signal strength?
C3 <lots and lots of numbers. :)>
See request 43.
D0: ??
D0 ?? ?? ??
See request 50.
E0: Some sort of seperator or ACK?
E0
E3: XM INFO
E3 ?? ?? ?? XX XX XX XX XX YY YY YY YY YY ZZ ZZ ZZ ZZ ZZ
XX CBM Version
YY XMSTK Version
ZZ SDEC Version (see 80 for more details)
See request 70 05.
|
|
|
| Back to top |
|
 |
dbroome XM Fanatic

Joined: 09 May 2003 Posts: 362

|
Posted: Mon Jun 16, 2003 6:02 pm Post subject: |
|
|
Thanks for starting off. I have been trying to get ReplacePCR Beta 3 out, and haven't had a chance yet. I'll post the signal strength stuff late tonight or tomorrow if someone else doesn't get to it first... _________________
 ReplacePCR Take your PCR to the next level. |
|
| Back to top |
|
 |
bytemare Guest

|
Posted: Tue Jun 17, 2003 8:57 pm Post subject: |
|
|
Can anyone give me a hand on how to write to the xmpcr and read the responses in linux? I can't figure out to properly write to the serial port.  |
|
| Back to top |
|
 |
bushing xm slacker.


Joined: 13 Jan 2003 Posts: 69 Location: Northern VA 
|
Posted: Tue Jun 17, 2003 9:18 pm Post subject: |
|
|
| bytemare wrote: | Can anyone give me a hand on how to write to the xmpcr and read the responses in linux? I can't figure out to properly write to the serial port.  |
I'm going to assume you're writing this under C...
As long as you have the ftdi-sio.o driver (under USB serial devices) compiled and installed/loaded, and you have mknod'd /dev/ttyUSB0 properly, you should be able to just open /dev/ttyUSB0 with standard file I/O calls (the beauty of Unix!) like fopen, fwrite, fread etc. Have you gotten dobbz's perl code to work?
If you can tell me more specifically where you've been having trouble, I'd be glad to help all I can...
Ben |
|
| Back to top |
|
 |
bytemare Average Listener

Joined: 17 Jun 2003 Posts: 11

|
Posted: Tue Jun 17, 2003 9:37 pm Post subject: |
|
|
I got dobbz's code to work... my perl gui is based on it
however in C it looks completely different. I can't figure out how to set the port settings (baud etc), and when I attempt to write the the "power off" hex, it doesn't do anything... |
|
| Back to top |
|
 |
nsayer XM Fanatic


Joined: 09 Jun 2003 Posts: 405 Location: Santa Clara, CA 
|
Posted: Wed Jun 18, 2003 1:41 am Post subject: Thanks... MacXM in the works |
|
|
Thanks for the protocol description!
I am now working on MacXM. I don't have an XMPCR, so it'll just be that much more challenging to debug. :-/ |
|
| Back to top |
|
 |
bushing xm slacker.


Joined: 13 Jan 2003 Posts: 69 Location: Northern VA 
|
Posted: Wed Jun 18, 2003 3:25 am Post subject: Re: Thanks... MacXM in the works |
|
|
| nsayer wrote: | Thanks for the protocol description!
I am now working on MacXM. I don't have an XMPCR, so it'll just be that much more challenging to debug. :-/ |
Ugh.
You know, one solution for remote access wtithout hacking up the software too badly --
something like this:
http://freshmeat.net/projects/serproxy/?topic_id=907
I've never used it, but the idea that there are programs that can in the general case redirect serial output over a network connection -- all we have here is a 9600 bps serial stream.
That way you'd kill two birds with one stone -- for the moment use someone else's PCR (you and I can look into it if you're interested) to do development, and then eventually it could be a feature.
In any case, let me know if there's anything in particular we can help with.
Thanks for pickin' up the slack there!
Ben |
|
| Back to top |
|
 |
dbroome XM Fanatic

Joined: 09 May 2003 Posts: 362

|
Posted: Wed Jun 18, 2003 7:27 am Post subject: Re: Thanks... MacXM in the works |
|
|
| nsayer wrote: | Thanks for the protocol description!
I am now working on MacXM. I don't have an XMPCR, so it'll just be that much more challenging to debug. :-/ |
That WILL be challenging. I was working on one part of ReplacePCR while my kids were watching a movie (my pcr is wired into my HT equipment), and it drove me CRAZY that I couldn't tell if it was changing channels or not.
Anyway, here is the signal strength stuff. There was a thread awhile back on it that might have a little bit more info, along with a program Anthony wrote (if it wasn't Anthony, then I apologize for my bad memory) to help decipher:
If you issue
5AA5000143EDED
the PCR will respond with 32 bytes if byte 7 is 01, and only 28 if byte 7 is 03. Weird, but it has something to do with a signal (or antenna) being present as to which it sends out. I only paid attention to the 32 byte response for now:
Signal Status - byte 8 (00 - 03 possible results, 03 being best)
Antenna Status - byte 9 (I have only seen 00 and 03, and only saw 00 when I unplugged the antenna entirely)
Sat 1 Demod - byte 11 (00 is red, 01 is green)
Sat 2 Demod - byte 12 (same as above)
Ter Demod - byte 13 (same)
Sat 1 TDM - byte 14 (same)
Sat 2 TDM - byte 16 (same
Ter TDM - byte 16 (same)
Sat 1 BER - bytes 17,18
Sat 2 BER - bytes 19,20
Ter BER - bytes 21,22
Sat 1 C/N - byte 29
Sat 2 C/N - byte 30
Sat AGC - byte 27
Ter AGC - byte 28 _________________
 ReplacePCR Take your PCR to the next level. |
|
| Back to top |
|
 |
|