Main Restorations Software Audio/Jukebox/MP3 Everything Else Buy/Sell/Trade
Project Announcements Monitor/Video GroovyMAME Merit/JVL Touchscreen Meet Up Retail Vendors
Driving & Racing Woodworking Software Support Forums Consoles Project Arcade Reviews
Automated Projects Artwork Frontend Support Forums Pinball Forum Discussion Old Boards
Raspberry Pi & Dev Board controls.dat Linux Miscellaneous Arcade Wiki Discussion Old Archives
Lightguns Arcade1Up Try the site in https mode Site News

Unread posts | New Replies | Recent posts | Rules | Chatroom | Wiki | File Repository | RSS | Submit news

  

Author Topic: CORSE - my Racing Cab Interface Board  (Read 2778 times)

0 Members and 1 Guest are viewing this topic.

baritonomarchetto

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 805
  • Last login:Today at 07:58:32 am
CORSE - my Racing Cab Interface Board
« on: March 26, 2021, 10:01:12 am »
Like most of you guys, I have always had a soft spot for racing games. So, since my first buy in 2008 in my spare time I have developed and tested my own solutions to interface racing cabinets to PCs. My love for upright cabinets like Outrun and Chase HQ made me focus on those generic racing cabinets with a "jamma-like" wiring so, in case anyone is wondering:this is not a new solution to convert a Model 2/3 cabinet. It not even a "unversal" solution for racing cabinets: just my solution to my specific convertion.
It is, anyway, a DIY approach to convert very common (at least here in Italy) racing cabinets and, being sure that the info and solutions adopted could be of some help for someone, I decided to write down some note to share with you :)

To reassume the project, this PC-to-racing cabinet interface:

- aims at the simplification of the convertion of a "pseudo-jamma" racing cabinet to a MAME/PC racing cabinet
- aims at maintaining the cabinet CRT monitor, with block of potentially dangerous out-of-sync signals and on-board video amplifier for a better picture
- aims at maintaining the cabinet factory controls (wheel, pedal, shifter, buttons)
- allows you to play any game/emulator supporting Xinput
- can handle game outputs (2 rumble signals and 8 generic outs, i.e lamps, additional motors, etc.)

A block diagram of the whole project could help figuring out what the interface is made up of:



Hardware

The hardware maily consists of two arduino boards and a video amplifier. Arduino's are a pro-micro (ATmega 32u4) emulating an Xinput device for user inputs and rumble, and a nano v3 (ATmega168P, 5V) for sync frequency check and lamps outputs. The video amplifier is a THS7374 SMD IC, most commonly used in consoles hacking.

I have not included an audio amplifier here so that one can choose the right amp for the cabinet is use. The same is even more true for driver boards (even if I designed a set) as their selection is strictly related to the load to drive.

Separate horizontal and vertical sync signal coming from the PC are turned into composite via a (very simple) onboard circuit.

Software

Sketches are written by me and rely on open libraries. In particular, Arduino pro-micro/leonardo uses Dave Madison (AKA dmadison)'sXinput library to emulate an Xinput controller. This makes it compatible with a whole lot of games and expecially with Boomslang's FF Plugin.

Arduino nano sketch is such that it receives serial messages from softwares like Howard's Mamehooker and send them "to the real world".

Pinout

There's not a standard pinout for racing cabinets, so the “jamma” thing is limited to power supply, video signals, speakers and some digital input (start button, coin switch, test switch service switch).
This means that, whatever racing cabinet we are dealing with, some solder will need to be melted anyway. This is why I took the “poetic licence” to place all the other digital inputs on the P1 side of the jamma fingerboard in the hope of a simplification of some sort.

The pinout for CORSE, in particular on the jamma side, is the following:



Outputs (lamps, coils, rumble motor/s etc) and analog inputs are kept outside the fingerboard and have dedicated screw terminals. Rumble signals also have their dedicated output terminals.

About analog inputs (wheel, brake and accelerator), only potentiometer based wheels are supported by the current sketch, but it should be possible to implement optical wheels (not an easy task anyway).

Generic outputs are 8 in total, so you can handle a start lamp, two flasher lamps (I love chase HQ), and another 5 lamps (who said "view lamps"? :) ), but you are not limited to lamps! Motors can also be handled, depending on the software sending data to "Corse".
Please, notice that no driver board are installed onboard! An adeguate driver board is in the need for any of the loads you want Corse to drive.

I could have placed outputs on the Player 2 side of the fingerboard eventually (left unused in the pinout), but outputs in a cab often are not factory (i.e. in my case the start button LED  and rumble motor) and screw terminals are more practical than soldering on the fingerboard.

Utilities

On the “utilities” side, I placed a PANIC! button to software force-disable rumble. This is to deactivate rumble any time something weird happens while testing new softwares or settings (...and it always happens!).

There's also a jumper to force-enable the video amp while debugging video modes or the video circuit itself.

The three trimmers for RGB colors are there because if you are using an arcade monitor, a  value of some hundreds ohm (200 is my optimum) is generally ok at the output of the video amp (at least with Hantarex and similar monitors...). If you are instead using a TV-CRT, the resistor value must be lower (75 ohms).
Also, there are differencies from monitor to monitor due to ageing, connections, etc. etc. and those trimmers are sufficient to take care of such differencies.

This board, like any commercial product out there, cannot force the VGA video signal to CGA or EGA resolutions by itself, but special softwares like soft15KHz or CRT emudrivers are needed.

I have a first prototype of the board populated, just to show you :)


« Last Edit: March 28, 2021, 11:17:16 am by baritonomarchetto »

baritonomarchetto

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 805
  • Last login:Today at 07:58:32 am
Re: CORSE - my Racing Cab Interface Board
« Reply #1 on: April 10, 2023, 04:40:03 am »
Sorry for necro-bumping this from it's grave, but I have just published an Instructable (pending review in the very moment I am writing) about the latest version of this interface board.
I have also developed two simple driver boards for rumble motors and power LEDs (up to 3W).

https://www.instructables.com/CORSE-Arcade-Racing-Cab-Interface-Board/

PCBs Gerber files and arduino sketches are public, take a look if you are interested  :)
« Last Edit: April 10, 2023, 04:41:55 am by baritonomarchetto »