SP-60 famiclone with infrared joypad (RTS703+RTS705 chips)

Discuss hardware-related topics, such as development cartridges, CopyNES, PowerPak, EPROMs, or whatever.

Moderator: Moderators

Post Reply
User avatar
krzysiobal
Posts: 1036
Joined: Sun Jun 12, 2011 12:06 pm
Location: Poland
Contact:

SP-60 famiclone with infrared joypad (RTS703+RTS705 chips)

Post by krzysiobal »

ver (instead of 15 pin EXP connector) and one infrared joypad (TurboCard TOP-PLAYER MODEL NO:NH-7).
PCB for the famiclone is almost like any other such models, except for a extra 7 pin connector and a small add-on board with RTS705 (serial IR receiver).

The receiver is wired in a way so it can only affect player 1 joypad, but 2 non-connected pins of this 7 pin connector is wired to P2_CLK and P2_D0 and non-connected pins 1,13 of the RS705 seems to have some internal connection, so probably they are P2_CLK and P2_D0

Joypad has RTS703 inside, but the unused pin 1 switched between P1 an P2. No idea why they did not manufacture it with 2 wireless joypads, if the hardware is already ready for that.

Code: Select all

          ,---V---.                        ,---V---.                        ,---V---.          
  !P2/P1->|01   16|--VCC            RESET->|01   16|->B             P2_CLK->|01   16|<-P1_CLK
     !UP->|02   15|->LED           ? TEST--|02   15|->A              XTAL1->|02   15|->LED
   !DOWN->|03   14|->IR             XTAL1->|03   14|->SELECT         XTAL2->|03   14|          
     GND--|04   13|->TURBO          XTAL2->|04   13|->START                 |04   13|->P2_D0
  !RIGHT->|05   12|<-!B               GND--|05   12|->UP                    |05   12|->P1_D0
   !LEFT->|06   11|<-!A                IR->|06   11|->DOWN                  |06   11|--GND
   XTAL1->|07   10|<-!SELECT          VCC--|07   10|->P1/P2             IR->|07   10|          
   XTAL2->|08   09|<-!START          LEFT<-|08   09|->RIGHT          +4.3V->|08   09|<-OUT0
          `-------`                        `-------`                        `-------`          
      RTS703 (transmitter)          RTS702 (parallel receiver)        RTS705 (serial receiver)  
	  
RTS705 - pins: 4,5,6,10,14 has no internal connection inside (multimeter diode test to VCC/GND)
Attachments
20221024_232926.jpg
20221024_232836.jpg
20221024_232825.jpg
20221024_231250.jpg
20221024_231215.jpg
Image My website: http://krzysiobal.com | Image My NES/FC flashcart: http://krzysiocart.com
User avatar
krzysiobal
Posts: 1036
Joined: Sun Jun 12, 2011 12:06 pm
Location: Poland
Contact:

Re: SP-60 famiclone with infrared joypad (RTS703+RTS705 chips)

Post by krzysiobal »

More photos
Attachments
20221024_233108.jpg
20221024_233018.jpg
20221024_232949.jpg
20221024_232943.jpg
Image My website: http://krzysiobal.com | Image My NES/FC flashcart: http://krzysiocart.com
User avatar
krzysiobal
Posts: 1036
Joined: Sun Jun 12, 2011 12:06 pm
Location: Poland
Contact:

Re: SP-60 famiclone with infrared joypad (RTS703+RTS705 chips)

Post by krzysiobal »

More photos:
Attachments
sch.png
sch.png
20221025_014329.jpg
20221024_233122.jpg
Image My website: http://krzysiobal.com | Image My NES/FC flashcart: http://krzysiocart.com
User avatar
krzysiobal
Posts: 1036
Joined: Sun Jun 12, 2011 12:06 pm
Location: Poland
Contact:

Re: SP-60 famiclone with infrared joypad (RTS703+RTS705 chips)

Post by krzysiobal »

More info about the chips:
RTS703:
* pin 7 is XTAL input (semi-triangle wave) and pin 8 s XTAL output (square wave).
* Clock is generated only after the chips detects that any of the button is pressed and lasts about 400ms after it is released:

CH1=pin7, CH2=pin8, CH3=pin6:

Image Image

Protocol analysis:

Code: Select all

XTAL ~ 54 kHz, one frame lasts ~ 18944ms

It consists of three code words:
  A    = ||||||||--------                                                 ( 296us, 16 ticks of XTAL)
  Bb   = ||||||||||||||||----------------                                 ( 592us, 32 ticks of XTAL)
  Cccc = ||||||||||||||||||||||||||||||||-------------------------------- (1184us, 64 ticks od XTAL)
  
Frame:
0000000000000000111111111111111122222222222222223333333333333333
0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
[ sync ][data pattern                                          ]
AAAAAAAA....****....****....****....****....****....****....Cccc
        ||||||||||||||||||||||||||||||||||||||||||||||||++++----B:      BbBb=pressed, Cccc=released
        ||||||||||||||||||||||||||||||||||||||||||||++++--------A:      BbBb=pressed, Cccc=released
        ||||||||||||||||||||||||||||||||||||||||++++------------SELECT: BbBb=pressed, Cccc=released
        ||||||||||||||||||||||||||||||||||||++++----------------START:  BbBb=pressed, Cccc=released
        ||||||||||||||||||||||||++++++++++++--------------------JoyNum: CcccCcccCccc=1 player, BbBbCcccBbBb=2 player
        ||||||||||||||||++++++++--------------------------------U/D:    BbBbBbBb=U, BbBbCccc = D, Neither = CcccCccc
        ++++++++++++++++----------------------------------------L/R:    BbBbCcccBbBbBbBb=L, BbBbBbBbBbBbBbBb=R, CcccCcccCcccCccc=Neither


So for example, when button is pressed, thhose frames are transmitted each after another (without any gaps):
  [AAAAAAAA][data pattern for all buttons released] +
  [AAAAAAAA][data pattern for current keystroke     + \
  ...                                                 | for the whole duration of button being hold)
  [AAAAAAAA][data pattern for curren keystroke      + /
  [AAAAAAAA][data pattern for all buttons released] x 21

When TURBOA/TURBOB is hold:
[AAAAAAAA][data pattern for all buttons released]  +
[AAAAAAAA][data with A/B pressed]                   + \
[AAAAAAAA][data with A/B released]                  + |
...                                                   | for the whole duration of button being hold)
[AAAAAAAA][data with A/B pressed]                   + |
[AAAAAAAA][data with A/B released]                  + /
[AAAAAAAA][[data pattern for all buttons released]] +
I must say this joypad works really well, you don't have to point it directly at the infrared receiver to work.
This metal-box with receiver contains photodiode, some unknown SO8 chip with mark "280C 147" or "2800 147" and some discretes.
I initially thought this chip is opamp, but pinouts does not match any known opamp.
Image Image Image Image Image Image Image Image

The way how it processes the light signal into its output is also kind of strange.
* "A" is processed into "0"
* "Bb" and "Cccc" is processed just like it thought to be - "0" for the period when led is switching and "1" when it is not (with some delay)
* Sometiemes there are spikes after end of "Cccc" signal

Image Image Image Image Image Image

I tried to make repro of it using CPLD and ordinary TSOP receiver, but it is hard to find one for 54 Khz so best I got was TSOP1838. It has no problem with detecting the light frequency, but this receiver is not designed for constant transmission and the joypad constantly send frames when buttons are held.

The console PCB is also very weird:
* There were no pull-up on the /IRQ line (I had to add it, otherwise games were randomly freezing)
* pin 7, instead of pin 6 in the joypad sockets were routed to VCC
* There were two wires added to the 74368s that makes that connection:

Code: Select all

    
            +---weird wire---+                                +---weird wire---+                           
            |                |                                |                |
            |   +-------+    |                                |   +-------+    |
CPU pin 36 -+---|/OE    |    |                    CPU pin 35 -+---|/OE    |    |
        M2 -----|in  out| ---+-- joy1 CLK                 M2 -----|in  out| ---+-- joy2 CLK
                |  ...  |                                         |  ...  |
                +-------+                                         +-------+
                1st 74368                                         2nd 74368
[/cod]
* Both 74368s are LS, not HC
Image My website: http://krzysiobal.com | Image My NES/FC flashcart: http://krzysiocart.com
User avatar
TmEE
Posts: 960
Joined: Wed Feb 13, 2008 9:10 am
Location: Norway (50 and 60Hz compatible :P)
Contact:

Re: SP-60 famiclone with infrared joypad (RTS703+RTS705 chips)

Post by TmEE »

The SOP should be NEC µPC2800 or a very close relative, it does all the tasks of receiving an IR signal.
Post Reply