JP1 Remotes Forum Index JP1 Remotes


FAQFAQ SearchSearch 7 days of topics7 Days MemberlistMemberlist UsergroupsUsergroups RegisterRegister
ProfileProfile Log in to check your private messagesLog in to check your private messages Log inLog in

TXC/Ross Sega Gamepad protocol (executor help please?)

 
Post new topic   Reply to topic    JP1 Remotes Forum Index -> JP1 - Protocol Decodes
View previous topic :: View next topic  
Author Message
Knuckx



Joined: 15 Jul 2015
Posts: 57
Location: UK

PostPosted: Mon Mar 06, 2017 9:21 pm    Post subject: TXC/Ross Sega Gamepad protocol (executor help please?) Reply with quote

The Ross Micro Genius RCG-200 (TXC) is a wireless Controller/Receiver pair for the Sega Mega Drive/Sega Genesis. I have one, but only one controller (the reciever supports two players/controllers simultaneously).

Could someone please help me write or write a executor (HCS08 please; S3F80 would be nice as well if possible) for this protocol. All 3 parameters per function (nothing as a protocol parameter) would be most useful.

I have tested the below IRP with IRScrutinizer, and generated learns, which do work. I did have a go with Protocol Builder, but I could not see any way of having the 1 burst start low as this protocol requires (like Xmit '0' Reversed, but for the 1 burst).



IRP={75.7k,msb}<-190,20|-56,154>(630,-210,0:1,S:1,F:4:4,D:2,F:4,^13500)+[D:0..3,S:0..1,F:0..255]

This is the protocol used by the TXC Sega Mega Drive/Genesis IR controller, branded in the UK as the Ross Micro Genius RCG-200.

Device is the player number: 1 or 2 under normal circumstances; 3 for Slow button; 0 invalid.
Subdevice is the speed switch: 0 normally; 1 for speed (turbo) mode.
Function/OBC is a bitfield containing the buttons currently pressed:
1 A; 2 B; 4 C; 8 Start; 16 Up; 32 Down; 64: Left; 128 Right.

The Slow button sends both Left and Start with both player flags set (device 3), with all other bits varying based on controller state; To send just the slow button: D=3 S=0 F=72.

The original controllers send a frame with F=0 for the relevant player/device when all buttons are released; however this does not appear to actually be necessary.

Frame length varies by player/device on the original controllers, if D=1 frame length is always 13.5ms, if D=2 frame length alternates every frame between 6.8ms and 20.2ms. The IRP uses 13.5ms.

Duty cycle of the original controller is 56.666%.
_________________
In Use: 3x URC7781 / 2x Nevo C2 / Harmony PS3 -|- Learner: Nevo C2


Last edited by Knuckx on Wed Mar 08, 2017 11:14 am; edited 1 time in total
Back to top
View user's profile Send private message
The Robman
Site Owner


Joined: 01 Aug 2003
Posts: 18087
Location: Chicago, IL

PostPosted: Tue Mar 07, 2017 11:16 pm    Post subject: Reply with quote

It would help if you posted an IR or RMIR file containing learns, so that if someone were to try to re-create this, they'd have something to compare the test results to.
_________________
Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
Back to top
View user's profile Send private message Visit poster's website
Knuckx



Joined: 15 Jul 2015
Posts: 57
Location: UK

PostPosted: Wed Mar 08, 2017 7:33 am    Post subject: Reply with quote

I'm afraid I don't have any, none of the remotes I have managed to capture this. I built the IRP by using a digital oscilloscope hung across the IR LED, using measure cursors. I have screenshots from the scope, if that helps?

I suppose I could use IrScrutinizer and the IRP to generate some UEI learns or Pronto hex if that would help - though they wouldn't be original?
_________________
In Use: 3x URC7781 / 2x Nevo C2 / Harmony PS3 -|- Learner: Nevo C2
Back to top
View user's profile Send private message
Barf
Expert


Joined: 24 Oct 2008
Posts: 775

PostPosted: Wed Mar 08, 2017 9:48 am    Post subject: Reply with quote

Interesting. Most peculiar is the modulation frequency, 75.7kHz! I do not think any such has been seen before; the ones we know are 30-56kHz (with the exception of the 455kHz ones in B&O etc). That also explains why your learning remotes failed.

Quote:

I built the IRP by using a digital oscilloscope hung across the IR LED, using measure cursors.

The sending IR Led on the remote?

@Rob:

I put the IRP at the end of IrpProtocols.ini, loaded it it IrScrutinizer, in Generat put D=*, S=*, and F=#4 (four random values), exported as text with Pronto, Raw, parmeters, and UEI learned. Gave this file:

Code:

segagamepad_D0S0F220: segagamepad Device: 0.0 Function: 220 S=0
0000 0037 0000 000D 0030 001E 0002 000E 0002 0004 000C 0004 000C 000E 0002 0004 000C 000E 0002 000E 0002 0004 000C 0004 000C 000E 0002 000E 0002 0300

+630 -400 +20 -190 +20 -56 +154 -56 +154 -190 +20 -56 +154 -190 +20 -190 +20 -56 +154 -56 +154 -190 +20 -190 +20 -10140
00 00 23 00 6A 06 01 3B 00 C8 00 0A 00 5F 00 0A 00 1C 00 4D 00 1C 00 4D 00 5F 00 0A 13 CE 8D 01 23 42 41 23 41 50

segagamepad_D0S0F208: segagamepad Device: 0.0 Function: 208 S=0
0000 0037 0000 000D 0030 001E 0002 000E 0002 0004 000C 0004 000C 000E 0002 0004 000C 000E 0002 000E 0002 000E 0002 000E 0002 000E 0002 000E 0002 0300

+630 -400 +20 -190 +20 -56 +154 -56 +154 -190 +20 -56 +154 -190 +20 -190 +20 -190 +20 -190 +20 -190 +20 -190 +20 -10140
00 00 23 00 6A 06 01 3B 00 C8 00 0A 00 5F 00 0A 00 1C 00 4D 00 1C 00 4D 00 5F 00 0A 13 CE 8D 01 23 42 41 11 11 50

segagamepad_D0S0F116: segagamepad Device: 0.0 Function: 116 S=0
0000 0037 0000 000D 0030 001E 0002 000E 0002 000E 0002 0004 000C 0004 000C 0004 000C 000E 0002 000E 0002 000E 0002 0004 000C 000E 0002 000E 0002 0300

+630 -400 +20 -190 +20 -190 +20 -56 +154 -56 +154 -56 +154 -190 +20 -190 +20 -190 +20 -56 +154 -190 +20 -190 +20 -10140
00 00 23 00 6A 06 01 3B 00 C8 00 0A 00 5F 00 0A 00 1C 00 4D 00 1C 00 4D 00 5F 00 0A 13 CE 8D 01 12 33 41 12 41 50

segagamepad_D0S0F5: segagamepad Device: 0.0 Function: 5 S=0
0000 0037 0000 000D 0030 001E 0002 000E 0002 000E 0002 000E 0002 000E 0002 000E 0002 000E 0002 000E 0002 000E 0002 0004 000C 000E 0002 0004 000C 0300

+630 -400 +20 -190 +20 -190 +20 -190 +20 -190 +20 -190 +20 -190 +20 -190 +20 -190 +20 -56 +154 -190 +20 -56 +154 -10140
00 00 1F 00 6A 05 01 3B 00 C8 00 0A 00 5F 00 0A 00 1C 00 4D 00 5F 00 4D 13 CE 8D 01 11 11 11 12 32 40

segagamepad_D0S1F2: segagamepad Device: 0.1 Function: 2 S=1
0000 0037 0000 000D 0030 001E 0002 0004 000C 000E 0002 000E 0002 000E 0002 000E 0002 000E 0002 000E 0002 000E 0002 000E 0002 0004 000C 000E 0002 0300

+630 -400 +20 -56 +154 -190 +20 -190 +20 -190 +20 -190 +20 -190 +20 -190 +20 -190 +20 -190 +20 -56 +154 -190 +20 -10140
00 00 1F 00 6A 05 01 3B 00 C8 00 0A 00 1C 00 4D 00 5F 00 0A 00 5F 00 0A 13 CE 8D 01 23 33 33 33 12 40

segagamepad_D0S1F206: segagamepad Device: 0.1 Function: 206 S=1
0000 0037 0000 000D 0030 001E 0002 0004 000C 0004 000C 0004 000C 000E 0002 000E 0002 000E 0002 000E 0002 0004 000C 0004 000C 0004 000C 000E 0002 0300

+630 -400 +20 -56 +154 -56 +154 -56 +154 -190 +20 -190 +20 -190 +20 -190 +20 -56 +154 -56 +154 -56 +154 -190 +20 -10140
00 00 23 00 6A 06 01 3B 00 C8 00 0A 00 1C 00 4D 00 1C 00 4D 00 5F 00 0A 00 5F 00 0A 13 CE 8D 01 22 34 44 12 23 50

segagamepad_D0S1F139: segagamepad Device: 0.1 Function: 139 S=1
0000 0037 0000 000D 0030 001E 0002 0004 000C 0004 000C 000E 0002 000E 0002 000E 0002 000E 0002 000E 0002 0004 000C 000E 0002 0004 000C 0004 000C 0300

+630 -400 +20 -56 +154 -56 +154 -190 +20 -190 +20 -190 +20 -190 +20 -190 +20 -56 +154 -190 +20 -56 +154 -56 +154 -10140
00 00 23 00 6A 06 01 3B 00 C8 00 0A 00 1C 00 4D 00 1C 00 4D 00 5F 00 0A 00 5F 00 4D 13 CE 8D 01 23 44 44 13 12 50

segagamepad_D0S1F153: segagamepad Device: 0.1 Function: 153 S=1
0000 0037 0000 000D 0030 001E 0002 0004 000C 0004 000C 000E 0002 000E 0002 0004 000C 000E 0002 000E 0002 0004 000C 000E 0002 000E 0002 0004 000C 0300

+630 -400 +20 -56 +154 -56 +154 -190 +20 -190 +20 -56 +154 -190 +20 -190 +20 -56 +154 -190 +20 -190 +20 -56 +154 -10140
00 00 23 00 6A 06 01 3B 00 C8 00 0A 00 1C 00 4D 00 1C 00 4D 00 5F 00 0A 00 5F 00 4D 13 CE 8D 01 23 41 34 13 41 50

segagamepad_D1S0F39: segagamepad Device: 1.0 Function: 39 S=0
0000 0037 0000 000D 0030 001E 0002 000E 0002 000E 0002 000E 0002 0004 000C 000E 0002 000E 0002 0004 000C 000E 0002 0004 000C 0004 000C 0004 000C 0300

+630 -400 +20 -190 +20 -190 +20 -190 +20 -56 +154 -190 +20 -190 +20 -56 +154 -190 +20 -56 +154 -56 +154 -56 +154 -10140
00 00 23 00 6A 06 01 3B 00 C8 00 0A 00 5F 00 0A 00 1C 00 4D 00 5F 00 4D 00 1C 00 4D 13 CE 8D 01 11 23 12 32 44 50

segagamepad_D1S0F92: segagamepad Device: 1.0 Function: 92 S=0
0000 0037 0000 000D 0030 001E 0002 000E 0002 000E 0002 0004 000C 000E 0002 0004 000C 000E 0002 0004 000C 0004 000C 0004 000C 000E 0002 000E 0002 0300

+630 -400 +20 -190 +20 -190 +20 -56 +154 -190 +20 -56 +154 -190 +20 -56 +154 -56 +154 -56 +154 -190 +20 -190 +20 -10140
00 00 23 00 6A 06 01 3B 00 C8 00 0A 00 5F 00 0A 00 1C 00 4D 00 5F 00 4D 00 1C 00 0A 13 CE 8D 01 12 32 32 44 31 50

segagamepad_D1S0F132: segagamepad Device: 1.0 Function: 132 S=0
0000 0037 0000 000D 0030 001E 0002 000E 0002 0004 000C 000E 0002 000E 0002 000E 0002 000E 0002 0004 000C 000E 0002 0004 000C 000E 0002 000E 0002 0300

+630 -400 +20 -190 +20 -56 +154 -190 +20 -190 +20 -190 +20 -190 +20 -56 +154 -190 +20 -56 +154 -190 +20 -190 +20 -10140
00 00 1F 00 6A 05 01 3B 00 C8 00 0A 00 5F 00 0A 00 1C 00 4D 00 5F 00 0A 13 CE 8D 01 23 11 12 32 31 40

segagamepad_D1S0F170: segagamepad Device: 1.0 Function: 170 S=0
0000 0037 0000 000D 0030 001E 0002 000E 0002 0004 000C 000E 0002 0004 000C 000E 0002 000E 0002 0004 000C 0004 000C 000E 0002 0004 000C 000E 0002 0300

+630 -400 +20 -190 +20 -56 +154 -190 +20 -56 +154 -190 +20 -190 +20 -56 +154 -56 +154 -190 +20 -56 +154 -190 +20 -10140
00 00 23 00 6A 06 01 3B 00 C8 00 0A 00 5F 00 0A 00 1C 00 4D 00 5F 00 4D 00 1C 00 0A 13 CE 8D 01 23 23 12 43 23 50

segagamepad_D1S1F190: segagamepad Device: 1.1 Function: 190 S=1
0000 0037 0000 000D 0030 001E 0002 0004 000C 0004 000C 000E 0002 0004 000C 0004 000C 000E 0002 0004 000C 0004 000C 0004 000C 0004 000C 000E 0002 0300

+630 -400 +20 -56 +154 -56 +154 -190 +20 -56 +154 -56 +154 -190 +20 -56 +154 -56 +154 -56 +154 -56 +154 -190 +20 -10140
00 00 1F 00 6A 05 01 3B 00 C8 00 0A 00 1C 00 4D 00 1C 00 4D 00 5F 00 0A 13 CE 8D 01 23 12 31 22 23 40

segagamepad_D1S1F220: segagamepad Device: 1.1 Function: 220 S=1
0000 0037 0000 000D 0030 001E 0002 0004 000C 0004 000C 0004 000C 000E 0002 0004 000C 000E 0002 0004 000C 0004 000C 0004 000C 000E 0002 000E 0002 0300

+630 -400 +20 -56 +154 -56 +154 -56 +154 -190 +20 -56 +154 -190 +20 -56 +154 -56 +154 -56 +154 -190 +20 -190 +20 -10140
00 00 23 00 6A 06 01 3B 00 C8 00 0A 00 1C 00 4D 00 1C 00 4D 00 5F 00 0A 00 5F 00 0A 13 CE 8D 01 22 31 31 22 34 50

segagamepad_D1S1F75: segagamepad Device: 1.1 Function: 75 S=1
0000 0037 0000 000D 0030 001E 0002 0004 000C 000E 0002 0004 000C 000E 0002 000E 0002 000E 0002 0004 000C 0004 000C 000E 0002 0004 000C 0004 000C 0300

+630 -400 +20 -56 +154 -190 +20 -56 +154 -190 +20 -190 +20 -190 +20 -56 +154 -56 +154 -190 +20 -56 +154 -56 +154 -10140
00 00 23 00 6A 06 01 3B 00 C8 00 0A 00 1C 00 4D 00 5F 00 0A 00 5F 00 4D 00 1C 00 4D 13 CE 8D 01 21 23 31 42 14 50

segagamepad_D1S1F29: segagamepad Device: 1.1 Function: 29 S=1
0000 0037 0000 000D 0030 001E 0002 0004 000C 000E 0002 000E 0002 000E 0002 0004 000C 000E 0002 0004 000C 0004 000C 0004 000C 000E 0002 0004 000C 0300

+630 -400 +20 -56 +154 -190 +20 -190 +20 -190 +20 -56 +154 -190 +20 -56 +154 -56 +154 -56 +154 -190 +20 -56 +154 -10140
00 00 23 00 6A 06 01 3B 00 C8 00 0A 00 1C 00 4D 00 5F 00 0A 00 5F 00 4D 00 1C 00 4D 13 CE 8D 01 23 31 21 44 21 50

segagamepad_D2S0F202: segagamepad Device: 2.0 Function: 202 S=0
0000 0037 0000 000D 0030 001E 0002 000E 0002 0004 000C 0004 000C 000E 0002 000E 0002 0004 000C 000E 0002 0004 000C 000E 0002 0004 000C 000E 0002 0300

+630 -400 +20 -190 +20 -56 +154 -56 +154 -190 +20 -190 +20 -56 +154 -190 +20 -56 +154 -190 +20 -56 +154 -190 +20 -10140
00 00 23 00 6A 06 01 3B 00 C8 00 0A 00 5F 00 0A 00 1C 00 4D 00 1C 00 4D 00 5F 00 0A 13 CE 8D 01 23 41 24 24 24 50

segagamepad_D2S0F41: segagamepad Device: 2.0 Function: 41 S=0
0000 0037 0000 000D 0030 001E 0002 000E 0002 000E 0002 000E 0002 0004 000C 000E 0002 0004 000C 000E 0002 0004 000C 000E 0002 000E 0002 0004 000C 0300

+630 -400 +20 -190 +20 -190 +20 -190 +20 -56 +154 -190 +20 -56 +154 -190 +20 -56 +154 -190 +20 -190 +20 -56 +154 -10140
00 00 1F 00 6A 05 01 3B 00 C8 00 0A 00 5F 00 0A 00 1C 00 4D 00 5F 00 4D 13 CE 8D 01 11 23 23 23 12 40

segagamepad_D2S0F44: segagamepad Device: 2.0 Function: 44 S=0
0000 0037 0000 000D 0030 001E 0002 000E 0002 000E 0002 000E 0002 0004 000C 000E 0002 0004 000C 000E 0002 0004 000C 0004 000C 000E 0002 000E 0002 0300

+630 -400 +20 -190 +20 -190 +20 -190 +20 -56 +154 -190 +20 -56 +154 -190 +20 -56 +154 -56 +154 -190 +20 -190 +20 -10140
00 00 23 00 6A 06 01 3B 00 C8 00 0A 00 5F 00 0A 00 1C 00 4D 00 5F 00 4D 00 1C 00 0A 13 CE 8D 01 11 23 23 24 31 50

segagamepad_D2S0F206: segagamepad Device: 2.0 Function: 206 S=0
0000 0037 0000 000D 0030 001E 0002 000E 0002 0004 000C 0004 000C 000E 0002 000E 0002 0004 000C 000E 0002 0004 000C 0004 000C 0004 000C 000E 0002 0300

+630 -400 +20 -190 +20 -56 +154 -56 +154 -190 +20 -190 +20 -56 +154 -190 +20 -56 +154 -56 +154 -56 +154 -190 +20 -10140
00 00 23 00 6A 06 01 3B 00 C8 00 0A 00 5F 00 0A 00 1C 00 4D 00 1C 00 4D 00 5F 00 0A 13 CE 8D 01 23 41 24 23 34 50

segagamepad_D2S1F103: segagamepad Device: 2.1 Function: 103 S=1
0000 0037 0000 000D 0030 001E 0002 0004 000C 000E 0002 0004 000C 0004 000C 000E 0002 0004 000C 000E 0002 000E 0002 0004 000C 0004 000C 0004 000C 0300

+630 -400 +20 -56 +154 -190 +20 -56 +154 -56 +154 -190 +20 -56 +154 -190 +20 -190 +20 -56 +154 -56 +154 -56 +154 -10140
00 00 23 00 6A 06 01 3B 00 C8 00 0A 00 1C 00 4D 00 5F 00 4D 00 1C 00 0A 00 5F 00 4D 13 CE 8D 01 21 32 12 41 33 50

segagamepad_D2S1F255: segagamepad Device: 2.1 Function: 255 S=1
0000 0037 0000 000D 0030 001E 0002 0004 000C 0004 000C 0004 000C 0004 000C 0004 000C 0004 000C 000E 0002 0004 000C 0004 000C 0004 000C 0004 000C 0300

+630 -400 +20 -56 +154 -56 +154 -56 +154 -56 +154 -56 +154 -56 +154 -190 +20 -56 +154 -56 +154 -56 +154 -56 +154 -10140
00 00 1F 00 6A 05 01 3B 00 C8 00 0A 00 1C 00 4D 00 1C 00 4D 00 5F 00 4D 13 CE 8D 01 22 22 23 12 22 40

segagamepad_D2S1F197: segagamepad Device: 2.1 Function: 197 S=1
0000 0037 0000 000D 0030 001E 0002 0004 000C 0004 000C 0004 000C 000E 0002 000E 0002 0004 000C 000E 0002 000E 0002 0004 000C 000E 0002 0004 000C 0300

+630 -400 +20 -56 +154 -56 +154 -56 +154 -190 +20 -190 +20 -56 +154 -190 +20 -190 +20 -56 +154 -190 +20 -56 +154 -10140
00 00 23 00 6A 06 01 3B 00 C8 00 0A 00 1C 00 4D 00 1C 00 4D 00 5F 00 0A 00 5F 00 4D 13 CE 8D 01 22 34 13 41 31 50

segagamepad_D2S1F41: segagamepad Device: 2.1 Function: 41 S=1
0000 0037 0000 000D 0030 001E 0002 0004 000C 000E 0002 000E 0002 0004 000C 000E 0002 0004 000C 000E 0002 0004 000C 000E 0002 000E 0002 0004 000C 0300

+630 -400 +20 -56 +154 -190 +20 -190 +20 -56 +154 -190 +20 -56 +154 -190 +20 -56 +154 -190 +20 -190 +20 -56 +154 -10140
00 00 1F 00 6A 05 01 3B 00 C8 00 0A 00 1C 00 4D 00 5F 00 0A 00 5F 00 4D 13 CE 8D 01 23 12 12 12 31 40

segagamepad_D3S0F250: segagamepad Device: 3.0 Function: 250 S=0
0000 0037 0000 000D 0030 001E 0002 000E 0002 0004 000C 0004 000C 0004 000C 0004 000C 0004 000C 0004 000C 0004 000C 000E 0002 0004 000C 000E 0002 0300

+630 -400 +20 -190 +20 -56 +154 -56 +154 -56 +154 -56 +154 -56 +154 -56 +154 -56 +154 -190 +20 -56 +154 -190 +20 -10140
00 00 23 00 6A 06 01 3B 00 C8 00 0A 00 5F 00 0A 00 1C 00 4D 00 1C 00 4D 00 5F 00 0A 13 CE 8D 01 23 33 33 34 24 50

segagamepad_D3S0F19: segagamepad Device: 3.0 Function: 19 S=0
0000 0037 0000 000D 0030 001E 0002 000E 0002 000E 0002 000E 0002 000E 0002 0004 000C 0004 000C 0004 000C 000E 0002 000E 0002 0004 000C 0004 000C 0300

+630 -400 +20 -190 +20 -190 +20 -190 +20 -190 +20 -56 +154 -56 +154 -56 +154 -190 +20 -190 +20 -56 +154 -56 +154 -10140
00 00 23 00 6A 06 01 3B 00 C8 00 0A 00 5F 00 0A 00 1C 00 4D 00 1C 00 4D 00 5F 00 4D 13 CE 8D 01 11 12 33 41 23 50

segagamepad_D3S0F90: segagamepad Device: 3.0 Function: 90 S=0
0000 0037 0000 000D 0030 001E 0002 000E 0002 000E 0002 0004 000C 000E 0002 0004 000C 0004 000C 0004 000C 0004 000C 000E 0002 0004 000C 000E 0002 0300

+630 -400 +20 -190 +20 -190 +20 -56 +154 -190 +20 -56 +154 -56 +154 -56 +154 -56 +154 -190 +20 -56 +154 -190 +20 -10140
00 00 23 00 6A 06 01 3B 00 C8 00 0A 00 5F 00 0A 00 1C 00 4D 00 5F 00 4D 00 1C 00 0A 13 CE 8D 01 12 32 44 43 23 50

segagamepad_D3S0F230: segagamepad Device: 3.0 Function: 230 S=0
0000 0037 0000 000D 0030 001E 0002 000E 0002 0004 000C 0004 000C 0004 000C 000E 0002 0004 000C 0004 000C 000E 0002 0004 000C 0004 000C 000E 0002 0300

+630 -400 +20 -190 +20 -56 +154 -56 +154 -56 +154 -190 +20 -56 +154 -56 +154 -190 +20 -56 +154 -56 +154 -190 +20 -10140
00 00 23 00 6A 06 01 3B 00 C8 00 0A 00 5F 00 0A 00 1C 00 4D 00 1C 00 4D 00 5F 00 0A 13 CE 8D 01 23 34 23 42 34 50

segagamepad_D3S1F254: segagamepad Device: 3.1 Function: 254 S=1
0000 0037 0000 000D 0030 001E 0002 0004 000C 0004 000C 0004 000C 0004 000C 0004 000C 0004 000C 0004 000C 0004 000C 0004 000C 0004 000C 000E 0002 0300

+630 -400 +20 -56 +154 -56 +154 -56 +154 -56 +154 -56 +154 -56 +154 -56 +154 -56 +154 -56 +154 -56 +154 -190 +20 -10140
00 00 1F 00 6A 05 01 3B 00 C8 00 0A 00 1C 00 4D 00 1C 00 4D 00 5F 00 0A 13 CE 8D 01 22 22 22 22 23 40

segagamepad_D3S1F201: segagamepad Device: 3.1 Function: 201 S=1
0000 0037 0000 000D 0030 001E 0002 0004 000C 0004 000C 0004 000C 000E 0002 000E 0002 0004 000C 0004 000C 0004 000C 000E 0002 000E 0002 0004 000C 0300

+630 -400 +20 -56 +154 -56 +154 -56 +154 -190 +20 -190 +20 -56 +154 -56 +154 -56 +154 -190 +20 -190 +20 -56 +154 -10140
00 00 23 00 6A 06 01 3B 00 C8 00 0A 00 1C 00 4D 00 1C 00 4D 00 5F 00 0A 00 5F 00 4D 13 CE 8D 01 22 34 12 23 41 50

segagamepad_D3S1F160: segagamepad Device: 3.1 Function: 160 S=1
0000 0037 0000 000D 0030 001E 0002 0004 000C 0004 000C 000E 0002 0004 000C 000E 0002 0004 000C 0004 000C 000E 0002 000E 0002 000E 0002 000E 0002 0300

+630 -400 +20 -56 +154 -56 +154 -190 +20 -56 +154 -190 +20 -56 +154 -56 +154 -190 +20 -190 +20 -190 +20 -190 +20 -10140
00 00 23 00 6A 06 01 3B 00 C8 00 0A 00 1C 00 4D 00 1C 00 4D 00 5F 00 0A 00 5F 00 0A 13 CE 8D 01 23 13 12 34 44 50

segagamepad_D3S1F207: segagamepad Device: 3.1 Function: 207 S=1
0000 0037 0000 000D 0030 001E 0002 0004 000C 0004 000C 0004 000C 000E 0002 000E 0002 0004 000C 0004 000C 0004 000C 0004 000C 0004 000C 0004 000C 0300

+630 -400 +20 -56 +154 -56 +154 -56 +154 -190 +20 -190 +20 -56 +154 -56 +154 -56 +154 -56 +154 -56 +154 -56 +154 -10140
00 00 23 00 6A 06 01 3B 00 C8 00 0A 00 1C 00 4D 00 1C 00 4D 00 5F 00 0A 00 5F 00 4D 13 CE 8D 01 22 34 12 22 22 50


Back to top
View user's profile Send private message Send e-mail Visit poster's website
Knuckx



Joined: 15 Jul 2015
Posts: 57
Location: UK

PostPosted: Wed Mar 08, 2017 10:02 am    Post subject: Reply with quote

Barf wrote:
Interesting. Most peculiar is the modulation frequency, 75.7kHz! I do not think any such has been seen before; the ones we know are 30-56kHz (with the exception of the 455kHz ones in B&O etc). That also explains why your learning remotes failed.

I did get some kind of learn out of my Nevo C2, but IIRC it didn't work and was not anywhere near 75KHz. No other remote I tried managed to learn anything at all, just kept failing.

Barf wrote:

Quote:

I built the IRP by using a digital oscilloscope hung across the IR LED, using measure cursors.

The sending IR Led on the remote?

Yep, the LED on the original remote.

That would be D=1 S=0 F=0. Please ignore the upside-down-ness, I had the probe connected backwards.
_________________
In Use: 3x URC7781 / 2x Nevo C2 / Harmony PS3 -|- Learner: Nevo C2
Back to top
View user's profile Send private message
3FG
Expert


Joined: 19 May 2009
Posts: 3219

PostPosted: Wed Mar 08, 2017 10:54 am    Post subject: Reply with quote

Perhaps I don't understand the time scale on the oscilloscope, but it looks to me like the period of the modulation is 500us/12.5 periods or 40us. This would be 25KHz.
Back to top
View user's profile Send private message
Knuckx



Joined: 15 Jul 2015
Posts: 57
Location: UK

PostPosted: Wed Mar 08, 2017 11:10 am    Post subject: Reply with quote

That screenshot is a whole frame; the modulation is in the blurred bits. This is a zoom in of the leadin showing the modulation:

BTW the timescale is given by division (the grey grid squares), not for the whole screen. Multiply the timescale by 12 for the whole screen width.

It seems that the modulation frequency of the original remote does vary a fair bit, this screenshot shows 74.6 KHz.
_________________
In Use: 3x URC7781 / 2x Nevo C2 / Harmony PS3 -|- Learner: Nevo C2
Back to top
View user's profile Send private message
3FG
Expert


Joined: 19 May 2009
Posts: 3219

PostPosted: Sat Mar 11, 2017 3:41 pm    Post subject: Reply with quote

Here's one approach to an executor in S3F80 format. I can't really test this since my remotes won't learn it. An IR Widget suggests that the signal is roughly correct. You'll probably need to adjust the durations, especially of the on pulses.

Basically this approach doesn't use the ordinary IR engine, and instead explicitly sends the lead in, each on or off burst individually, and the lead out. I tested using a protocols.ini entry:
Code:
[RossMicro]
PID=01 FF
CmdParms=D:2=0, S:1=0, OBC:8=0
CmdTranslator=Translator(1,1,1) Translator(2,4,2,4) Translator(0,2,6) Translator(2,4,8)
DefaultCmd=00 00
Code.S3C80=40 90 02 8B 12 88 04 00 08 00 1A 00 3A 00 0D 00 47 61 A8 01 3B 00 55 38 03 48 04 1C 1E F6 01 4C 5C 0C 10 C4 10 C3 FB 0E C6 F8 00 3A F6 01 58 1C 14 F6 01 64 8B 0C C6 F8 00 47 F6 01 58 1C 18 F6 01 64 5A DE C6 F8 14 78 F6 01 58 F6 01 0A 7B C7 AF
An brief explanation of the executor:
Code:
   DB   40H                  ;Carrier ON: 8.250uSec
   DB   90H                  ;Carrier OFF: 18.250uSec
   DB   02H                  ;dev 0, cmd 2 bytes
   JR   L0         
   DB   88H                  ;pf0: R28
   DB   04H                  ;pf1: R29
   DW   0008H                ;pd00/pd01: R12/R13
   DW   001AH                ;pd02/pd03: R14/R15
   DW   003AH                ;pd04/pd05: R16/R17
   DW   000DH                ;pd06/pd07: R18/R19
   DW   0047H                ;pd08/pd09: R1A/R1B
   DW   61A8H                ;pd0A/pd0B: R1C/R1D
   DW   013BH                ;pd0C/pd0D: R1E/R1F
   DW   0055H                ;pd0E/pd0F: R20/R21
L0:LD   W3, DCBUF            ;put data into temporary registers
   LD   W4, DCBUF+1          ;and refresh before each repeat
   LD   W1, #1EH             ;the register address of lead in
   CALL   IRMarkSpaceByPtr   ;send lead in
   LD   W5, #0CH             ;12 bits
L1:RLC   RC4                 ;rotate bits into carry flag
   RLC   RC3
   JR   NC, L2               ;a one bit sets carry flag to 1
   LDW   RRF8, #003AH        ;3A = 116 + 40 us
   CALL   IRSpaceByReg       ;send the off duration
   LD   W1, #14H             ;point to on duration
   CALL   IRMarkByPtr        ;send the on pulse
   JR   L3                   ;done sending a one bit
L2:LDW   RRF8, #0047H        ;47 = 142 + 40 us
   CALL   IRSpaceByReg       ;send the off duration
   LD   W1, #18H             ;point to on duration
   CALL   IRMarkByPtr        ;send the on pulse
L3:DJNZ   W5, L1             ;loop until 12 bits are sent
   LDW   RRF8, #1478H        ;1478 = 10480 + 40us
   CALL   IRSpaceByReg       ;send the leadout
   CALL   TestRptReqd
   JR   C, L0                ;carry flag is set if repeat is required
   RET   
See the Functions tab of the Manual Settings editor to see the meaning of the various CALL instructions. This executor wastes some space in the timing registers, but that was easier for me to keep track of.
Back to top
View user's profile Send private message
Knuckx



Joined: 15 Jul 2015
Posts: 57
Location: UK

PostPosted: Mon Mar 13, 2017 2:29 pm    Post subject: Reply with quote

That S3F80 Executor doesn't work, and I can't figure out why. The LED on the reciever lights up, but it doesn't do anything. Thanks for having a go anyway.

Nevertheless, I had a go at writing a HCS08 executor, cos it looked a lot simpler to do than I thought it was. This one works properly, but as far as I can tell, the output should be identical to 3FGs S3F80 executor (It's basically the same logic).

Code:

Code.HCS08=20 15 12 23 02 88 04 00 08 00 4D 00 1C 00 0A 00 5F 13 88 01 3B 00 69 6E 0C 55 4E 60 56 4E 61 57 45 00 76 CD FF 65 39 57 39 56 25 0D 55 72 CD FF 74 45 00 70 CD FF 68 20 0B 55 6E CD FF 74 45 00 6C CD FF 68 3B 55 DF 55 74 CD FF 74 CD FF 92 25 C6 81

   PROC   HCS08
      ORG   $0100   ;Byte count = 82
BitCtr:   EQU   $0055
LByte:    EQU   $0056
HByte:    EQU   $0057
      BRA   ST
      DB   $12      ;Carrier ON: 4.500uSec
      DB   $23      ;Carrier OFF: 8.750uSec
      DB   $02      ;dev 0, cmd 2 bytes
      DB   $88      ;pf0: $A2
      DB   $04      ;pf1: $A3
      DW   $0008   ;pd00/pd01: $6A/$6B
      DW   $004D   ;pd02/pd03: $6C/$6D
      DW   $001C   ;pd04/pd05: $6E/$6F
      DW   $000A   ;pd06/pd07: $70/$71
      DW   $005F   ;pd08/pd09: $72/$73
      DW   $1388   ;pd0A/pd0B: $74/$75
      DW   $013B   ;pd0C/pd0D: $76/$77
      DW   $0069   ;pd0E/pd0F: $78/$79
ST:   MOV   #$0C,BitCtr   ;12 Bits to Xmit
      MOV   DCBUF,LByte   ;Copy command
      MOV   DCBUF+1,HByte   ;values away
      LDHX   #$0076   ;HX -> Leadin
      JSR   IRMarkSpaceByPtr   ;Leadin Mark/Space
LP:   ROL   HByte   ;Rotate bit
      ROL   LByte   ;thru carry
      BCS   X1   ;bit=1?
X0:   LDHX   $72   ;HX = 0 Off Time
      JSR   IRSpaceByReg   ;0 Space
      LDHX   #$0070   ;HX -> 0 On Time
      JSR   IRMarkByPtr   ;0 Mark
      BRA   ED   ;to end check
X1:   LDHX   $6E   ;HX = 1 Off Time
      JSR   IRSpaceByReg   ;1 Space
      LDHX   #$006C   ;HX -> 1 On Time
      JSR   IRMarkByPtr   ;1 Mark
ED:   DBNZ   BitCtr,LP   ;BitCtr=0?
      LDHX   $74   ;HX -> Leadout Time
      JSR   IRSpaceByReg   ;Leadout Space
      JSR   TestRptReqd   ;Repeat?
      BCS   ST   ;Restart
      RTS      ;Done.



BTW, I think that the protocol name should be MicroGenius, not RossMicro, as the Ross part was the UK importer - the manufacturer was TXC, and the brand was Micro Genius. I suspect that this protocol may also be used by the IR SNES and NES controllers they made.
_________________
In Use: 3x URC7781 / 2x Nevo C2 / Harmony PS3 -|- Learner: Nevo C2
Back to top
View user's profile Send private message
The Robman
Site Owner


Joined: 01 Aug 2003
Posts: 18087
Location: Chicago, IL

PostPosted: Mon Mar 13, 2017 4:57 pm    Post subject: Reply with quote

What tool are you guys using to generate these executors?

I have generated a PB file based on the 2 executors posted:
http://www.hifi-remote.com/forums/dload.php?action=file&file_id=14471
_________________
Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
Back to top
View user's profile Send private message Visit poster's website
3FG
Expert


Joined: 19 May 2009
Posts: 3219

PostPosted: Mon Mar 13, 2017 6:12 pm    Post subject: Reply with quote

I use RMIR instead of PB. I think it is faster, and executors are saved in a text file so it's easy to read. It's very helpful to me to have the various functions disassembled with a name rather than just an address.
Here's a post from some time back where I described the workflow I use.
Back to top
View user's profile Send private message
Knuckx



Joined: 15 Jul 2015
Posts: 57
Location: UK

PostPosted: Mon Mar 13, 2017 6:49 pm    Post subject: Reply with quote

Well it's the first executor I've ever written, but I used RMIR as well. I have got ProtocolBuilder but I think thats what put me off trying to write a protocol myself - RMIR's protocol editor is much nicer and less indimidating.
_________________
In Use: 3x URC7781 / 2x Nevo C2 / Harmony PS3 -|- Learner: Nevo C2
Back to top
View user's profile Send private message
vickyg2003
Site Admin


Joined: 20 Mar 2004
Posts: 6946
Location: Florida

PostPosted: Tue Mar 14, 2017 2:16 pm    Post subject: Reply with quote

Congratulations on a job well done

I use PB and RM to do protocol creation. I like the documenation from a decode better in RM. I copy that to PB to start.

My problem with RM and RMIR is that I take too many attempts and I make RMIR sick. I'm not as efficient as the rest of the people that do this stuff.
_________________
Remember to provide feedback to let us know how the problem was solved and share your upgrades.

Tip: When creating an upgrade, always include ALL functions from the oem remote, even if you never plan on assigning them to a button. Complete function lists makes an upgrade more helpful to others.
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic       JP1 Remotes Forum Index -> JP1 - Protocol Decodes All times are GMT - 5 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


 

Powered by phpBB © 2001, 2005 phpBB Group
Get Smart! the band's official homepage Rockabilly Central