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: Pole Position conversions - U-HID Nano enough?  (Read 5606 times)

0 Members and 1 Guest are viewing this topic.

tandrews

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 60
  • Last login:November 13, 2019, 08:10:54 pm
  • I want to build my own arcade controls!
Pole Position conversions - U-HID Nano enough?
« on: June 24, 2019, 06:29:31 pm »
To save this: Not doing mouse hack for ease of connections and setup.

A friend and I have a few empty or non-working Pole Position cabinets we're looking to replace with PCs. I'm aware of a few various options but it seemed the u-hid nano was the best solution. I know mame now offers the ability to simulate the hi/lo reducing one button being needed. So here was my thought process:

2 inputs for steering (x1,x2)
3 buttons for general input
2 buttons for start and coin

5v would be pulled from the PSU of the system as I rather not risk overdrawing the nano.

Has anyone pulled this off with a Nano?

PL1

  • Global Moderator
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 9401
  • Last login:Today at 03:48:58 pm
  • Designated spam hunter
Re: Pole Position conversions - U-HID Nano enough?
« Reply #1 on: June 24, 2019, 07:44:43 pm »
2 inputs for steering (x1,x2)
3 buttons for general input
2 buttons for start and coin
Add 5v and ground to the list and it all fits onto the 9 pins of the U-HID nano.   ;D

5v would be pulled from the PSU of the system as I rather not risk overdrawing the nano.
No need.  The U-HID can easily handle the current draw of the steering wheel optical circuit.   :cheers:


Scott

baritonomarchetto

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 805
  • Last login:Today at 02:10:16 pm
Re: Pole Position conversions - U-HID Nano enough?
« Reply #2 on: June 25, 2019, 12:35:03 am »
I wouldnt say that U-HID nano is the best solution: you can have a way more flexible interface with any ATmega 32u4 Arduino board.

PL1

  • Global Moderator
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 9401
  • Last login:Today at 03:48:58 pm
  • Designated spam hunter
Re: Pole Position conversions - U-HID Nano enough?
« Reply #3 on: June 25, 2019, 02:55:57 am »
I wouldnt say that U-HID nano is the best solution: you can have a way more flexible interface with any ATmega 32u4 Arduino board.
Didn't say it was the best solution, just that it would work for this application.

The U-HID programming software makes it very easy to configure, even for someone who isn't familiar with Arduinos.

That said, 32u4 boards do have more inputs and are far less expensive. (usually 5-10$+shipping for a Pro Micro vs. $35+shipping for the U-HID nano)

The only minor downside is that unless you can find (or code) a hybrid encoder sketch/firmware that can do both optical (mouse) and keyboard (or gamepad if you insist) encoder functions, you'll need to use two boards.
- One for the optical inputs -- StefanBurger's Illuminated Spinner firmware FTW.
- One for the buttons -- adapt an existing keyboard (or gamepad) sketch or use the KADE miniArcade2.0 firmware.


Scott

baritonomarchetto

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 805
  • Last login:Today at 02:10:16 pm
Re: Pole Position conversions - U-HID Nano enough?
« Reply #4 on: June 25, 2019, 06:15:39 am »
Mouse and keyboard emulation are natively supported by 32u4 arduinos and they live toghether in the same board. There's a great library for joystick emulation too.
No need for two devices at all.
Arcade needs are basic and always the same (optical or pot wheels, optical spinners, microswitches and lights for buttons and pedals) , so can be handled easily by anyone.
I have covered all this within my projects in the past 5 years and always had success. No, I am not a coder at all.
« Last Edit: June 25, 2019, 06:21:20 am by baritonomarchetto »

tandrews

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 60
  • Last login:November 13, 2019, 08:10:54 pm
  • I want to build my own arcade controls!
Re: Pole Position conversions - U-HID Nano enough?
« Reply #5 on: June 25, 2019, 04:09:50 pm »
How would I use the arduino for the analog? I see theres a joystick example. How would I make it work with the opto? I'm a coder so I'm sure I can figure it out, but a starting point would be great.

For my reference which arduino did you use? Found: https://www.ebay.com/itm/Leonardo-Pro-Micro-ATmega32U4-5V-16MHz-Development-Board-Micro-USB-for-Arduino/202698426249?hash=item2f31c48789:g:QdQAAOSw5uVc9sE9
« Last Edit: June 25, 2019, 04:44:18 pm by tandrews »

baritonomarchetto

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 805
  • Last login:Today at 02:10:16 pm
Re: Pole Position conversions - U-HID Nano enough?
« Reply #6 on: June 26, 2019, 12:52:36 am »
Arduino leonardo or pro micro or any 32u4 boards are perfect for the task. The pole position wheel is nothing more than an optical encoder. You only have to wire it to arduino (plenty of examples on the net) and let arduino simulate a mouse movement in accordance to the wheel (encoder) movement. Set the game to be controlled via mouse on the wheel axis and you are ready to go.
I wrote such a sketch for a bootleg outrun cabinet mounting optical wheel of a friend of mine. I will post it here if you need it.
« Last Edit: June 26, 2019, 12:55:29 am by baritonomarchetto »

PL1

  • Global Moderator
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 9401
  • Last login:Today at 03:48:58 pm
  • Designated spam hunter
Re: Pole Position conversions - U-HID Nano enough?
« Reply #7 on: June 26, 2019, 01:08:23 am »
How would I use the arduino for the analog? I see theres a joystick example. How would I make it work with the opto? I'm a coder so I'm sure I can figure it out, but a starting point would be great.
You're not looking for analog joystick code, you're looking for mouse code to translate the quadrature waveforms from the opto data lines into mouse movements.

That code is in the "ToSpin_20.ino" sketch that StefanBurger posted on Thingiverse for his Illuminated Spinner.

Code: [Select]
// ToSpin 2.0 firmware, 2017 by Stefan Burger (aka "ToS")

#include <Adafruit_NeoPixel.h>
#include <Mouse.h>

#define pinA1 0   //Paddle A, Sensor 1
#define pinA2 1   //Paddle A, Sensor 2
#define pinB1 2   //Paddle B, Sensor 1
#define pinB2 3   //Paddle B, Sensor 2
#define pinAc 7   //Paddle A, Config X/Y
#define pinBc 8   //Paddle B, Config X/Y
#define pinNP 5   //NeoPixel
#define faktor 3  //multiplier counts to mouse-move
#define msanim 60 //update frequenzy for neopix animation

Adafruit_NeoPixel np = Adafruit_NeoPixel(2, pinNP, NEO_RGB + NEO_KHZ400);

long cntX=0; //counter for mouse X-axis
long cntY=0; //counter for mouse Y-axis
long cntA=0; //counter for paddle A neopix animation
long cntB=0; //counter for paddle B neopix animation
int oldAC1=0;
int oldAC2=0;
int oldBC1=0;
int oldBC2=0;

long lastcntX;
long lastcntY;
long lastcntA;
long lastcntB;
int currA1;
int currA2;
int currB1;
int currB2;
int isAY;
int isBY;

long mslastA;
long mslastB;
 
void setup() {
  pinMode(pinA1, INPUT_PULLUP);
  pinMode(pinA2, INPUT_PULLUP);
  pinMode(pinB1, INPUT_PULLUP);
  pinMode(pinB2, INPUT_PULLUP);
  pinMode(pinAc, INPUT_PULLUP);
  pinMode(pinBc, INPUT_PULLUP);
  digitalWrite(pinA1, HIGH);
  digitalWrite(pinA2, HIGH);
  digitalWrite(pinB1, HIGH);
  digitalWrite(pinB2, HIGH);
  isAY=digitalRead(pinAc);
  isBY=digitalRead(pinBc);
  cntX=0;
  cntY=0;
  lastcntX=cntX;
  lastcntY=cntY;
  lastcntA=cntA;
  lastcntB=cntB;
  attachInterrupt(digitalPinToInterrupt(pinA1),changeA1,CHANGE);
  attachInterrupt(digitalPinToInterrupt(pinA2),changeA2,CHANGE);
  attachInterrupt(digitalPinToInterrupt(pinB1),changeB1,CHANGE);
  attachInterrupt(digitalPinToInterrupt(pinB2),changeB2,CHANGE);
  np.begin();
  np.show();
  mslastA=millis();
  mslastB=millis();
  Mouse.begin();
}

void loop() {
  //send mouse update to usb
  if(cntX!=lastcntX || cntY!=lastcntY){
    Mouse.move((cntX-lastcntX)*faktor,(cntY-lastcntY)*faktor);
    lastcntX=cntX;
    lastcntY=cntY;
  }

  //neopix animation for paddle B - abs(cntB-lastcntB) -> absolut number of counts since last neopix animation update -> speed indicator
  if(cntB!=lastcntB && (millis()-mslastB)>=msanim) {
    np.setPixelColor(0,min(255,abs(cntB-lastcntB)*9),0,max(0,(255-(abs(cntB-lastcntB)*9))));
    np.show();
    lastcntB=cntB;
    mslastB=millis();
  }

  //neopix animation for paddle A
  if(cntA!=lastcntA && (millis()-mslastA)>=msanim) {
    np.setPixelColor(1,min(255,abs(cntA-lastcntA)*9),0,max(0,(255-(abs(cntA-lastcntA)*9))));
    np.show();
    lastcntA=cntA;
    mslastA=millis();
  }
}

void changeA1() {
  if(isAY) {
    doACountY();
  } else {
    doACountX();
  }
}
void changeA2() {
  if(isAY) {
    doACountY();
  } else {
    doACountX();
  }
}
void changeB1() {
  if(isBY) {
    doBCountY();
  } else {
    doBCountX();
  }
}
void changeB2() {
  if(isBY) {
    doBCountY();
  } else {
    doBCountX();
  }
}

void doACountX() {
  int actAC1=digitalRead(pinA1);
  int actAC2=digitalRead(pinA2);
 
  if(actAC1!=oldAC1 || actAC2!=oldAC2) {
     if((oldAC1!=oldAC2 && actAC2!=oldAC2)||(oldAC1==oldAC2 && actAC1!=oldAC1)) {
       cntX--;
       cntA--;
     } else {
       cntX++;
       cntA++;
     }

    oldAC1=actAC1;
    oldAC2=actAC2;
  }
}
void doACountY() {
  int actAC1=digitalRead(pinA1);
  int actAC2=digitalRead(pinA2);
 
  if(actAC1!=oldAC1 || actAC2!=oldAC2) {
     if((oldAC1!=oldAC2 && actAC2!=oldAC2)||(oldAC1==oldAC2 && actAC1!=oldAC1)) {
       cntY--;
       cntA--;
     } else {
       cntY++;
       cntA++;
     }

    oldAC1=actAC1;
    oldAC2=actAC2;
  }
}

void doBCountX() {
  int actBC1=digitalRead(pinB1);
  int actBC2=digitalRead(pinB2);
 
  if(actBC1!=oldBC1 || actBC2!=oldBC2) {
     if((oldBC1!=oldBC2 && actBC2!=oldBC2)||(oldBC1==oldBC2 && actBC1!=oldBC1)) {
       cntX--;
       cntB--;
     } else {
       cntX++;
       cntB++;
     }

    oldBC1=actBC1;
    oldBC2=actBC2;
  }
}
void doBCountY() {
  int actBC1=digitalRead(pinB1);
  int actBC2=digitalRead(pinB2);
 
  if(actBC1!=oldBC1 || actBC2!=oldBC2) {
     if((oldBC1!=oldBC2 && actBC2!=oldBC2)||(oldBC1==oldBC2 && actBC1!=oldBC1)) {
       cntY--;
       cntB--;
     } else {
       cntY++;
       cntB++;
     }

    oldBC1=actBC1;
    oldBC2=actBC2;
  }
}

This is what you should see on the data lines as you *slowly* turn the steering wheel clockwise and the optos are blocked and unblocked by the encoder wheel.

For example:
- Phase 2 to Phase 3 = move mouse position 1 step to the right.
- Phase 2 to Phase 1 = move mouse position 1 step to the left.



For my reference which arduino did you use? Found: https://www.ebay.com/itm/Leonardo-Pro-Micro-ATmega32U4-5V-16MHz-Development-Board-Micro-USB-for-Arduino/202698426249?hash=item2f31c48789:g:QdQAAOSw5uVc9sE9
- 32u4 Pro Micro.
- 5v.
- 16MHz.

It will work fine.   :cheers:


Scott

tandrews

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 60
  • Last login:November 13, 2019, 08:10:54 pm
  • I want to build my own arcade controls!
Re: Pole Position conversions - U-HID Nano enough?
« Reply #8 on: June 26, 2019, 01:25:55 am »
I was referring to the brake, it's analog but I guess I'd just add a analog read during the update cycle.  I found an example that also uses joystick since it can do both...good ol composite devices.
« Last Edit: June 26, 2019, 01:33:57 am by tandrews »

baritonomarchetto

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 805
  • Last login:Today at 02:10:16 pm
Re: Pole Position conversions - U-HID Nano enough?
« Reply #9 on: June 26, 2019, 01:26:32 am »
That code will surely work, but I think it could be a little "intimidating" for a newbie.
Try to "read" this one instead. It is everithing you need to turn your opti wheel into a mouse:
(I am at the phone, so please give me some time to clean it...)
Code: [Select]
/*Controller per encoder ottici arcade (volanti, spinner, trackball etc).
Lo sketch traduce movimenti dell'encoder ottico in movimenti del mouse.
Funziona solo con Arduino Micro, Leonardo, Pro Micro, DUE.
Lo sketch identifica la variazione di stato del pin A e la compara con lo stato del Pin B (1X counting).
NOTA: gli spinner Taito necessitano di una resistenza di 10KOhm fra pinA e massa e fra pinB e massa.
Testato su volante ottico "MIMO", spinner Taito con switch
Connessioni: optical encoder arduino out A pin 2 out B pin 3 Vcc 5V Gnd Gnd
by Barito, 2016-2018 */

#include <Mouse.h>
bool optA_state;
int xAxisMov = 2;

void setup() {
pinMode (2,INPUT_PULLUP); //OptA
pinMode (3,INPUT_PULLUP); //OptB
optA_state = digitalRead(2);
Mouse.begin();
 }

void loop() {
if (digitalRead(2) != optA_state){
  optA_state=!optA_state;
  if (optA_state == HIGH){
    if(digitalRead(3) == LOW){
      Mouse.move(-xAxisMov, 0, 0);}
    else{Mouse.move(xAxisMov, 0, 0);}
} } 
}//loop end
« Last Edit: June 26, 2019, 01:40:05 am by baritonomarchetto »

tandrews

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 60
  • Last login:November 13, 2019, 08:10:54 pm
  • I want to build my own arcade controls!
Re: Pole Position conversions - U-HID Nano enough?
« Reply #10 on: June 26, 2019, 02:24:30 am »
I found a really clean example I'll be using. I wrote my own teensy steering wheel before. I can handle the code no prob. I ordered 4 32u4
« Last Edit: June 26, 2019, 02:43:03 am by tandrews »

baritonomarchetto

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 805
  • Last login:Today at 02:10:16 pm
Re: Pole Position conversions - U-HID Nano enough?
« Reply #11 on: June 26, 2019, 02:53:14 am »
This is the right approach: write your own sketch (with the help of working online examples) and you will have (almost) no limits in your project, nor you will depend on other spare time and disponibility ;)

PL1

  • Global Moderator
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 9401
  • Last login:Today at 03:48:58 pm
  • Designated spam hunter
Re: Pole Position conversions - U-HID Nano enough?
« Reply #12 on: June 26, 2019, 04:01:50 am »
I was referring to the brake, it's analog but I guess I'd just add a analog read during the update cycle.  I found an example that also uses joystick since it can do both...good ol composite devices.
Sorry about the confusion.  You mentioned buttons in the OP and I forgot that Pole Position used analog pedals.   :embarassed:

A composite device with mouse (steering wheel) and analog joystick (2 pedal potentiometers) sounds like a very good starting point.   ;D

How do you plan to handle the shifter and coin inputs?
- Add keyboard to the composite device or use gamepad buttons from the analog joystick?

Are you planning on doing dedicated Pole Position cabs or multi-game racers?

For a multi-game setup:
1. Obviously, you'll need a front end program to select a game and some sort of admin button to return to the FE.

2. You might want to start with your desired games list, emulator(s) and front end so you can include all of the needed inputs/outputs/features in your encoder.
-  Super Sprint has a start button, APB has siren and fire buttons, some emulators have Exit hard-coded to the ESC key, etc.


Scott

tandrews

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 60
  • Last login:November 13, 2019, 08:10:54 pm
  • I want to build my own arcade controls!
Re: Pole Position conversions - U-HID Nano enough?
« Reply #13 on: June 26, 2019, 10:50:36 am »
I will likely write a very efficient project using interrupts on the wheel.
Buttons will just be done using directional reads at a register level with joystick updates. The gas will be analogRead since doing ADC is annoying =).
For a few of my units it'll be dedicated but thats up in the air as my friend hasn't decided what he wants.
This is my starting point, if not just basic edits to it, since it's already quite perfect: https://github.com/jmtw000/Arcade-Spinner/blob/master/Arcade_Spinner.ino

I'll properly open source the code once it's done so people can have another example (assuming i feel the code is good enough).
« Last Edit: June 26, 2019, 10:59:10 am by tandrews »

tandrews

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 60
  • Last login:November 13, 2019, 08:10:54 pm
  • I want to build my own arcade controls!
Re: Pole Position conversions - U-HID Nano enough?
« Reply #14 on: June 29, 2019, 01:39:31 pm »
This is the right approach: write your own sketch (with the help of working online examples) and you will have (almost) no limits in your project, nor you will depend on other spare time and disponibility ;)
So I'm running into an odd issue. I've wired everything up but im not getting any change. It is always outputting 5v on both pins. Even blocking them, they never got low. Can these sensors go bad?

I have 5v going to VCC off the board, gnd to gnd and the two outter wires going to pin 2 and 3. Am I missing anything you can think of? I confirmed grounding the two outter wires is picked up, its just the opto sensor is not going low.
« Last Edit: June 29, 2019, 02:06:37 pm by tandrews »

baritonomarchetto

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 805
  • Last login:Today at 02:10:16 pm
Re: Pole Position conversions - U-HID Nano enough?
« Reply #15 on: June 29, 2019, 02:12:20 pm »
Get my code and try that first. This will let you know that there are no hardware issues.
These boards are very reliable and accept abuse, so it is very unlikely they go bad.
Start from a small code and build on that.

tandrews

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 60
  • Last login:November 13, 2019, 08:10:54 pm
  • I want to build my own arcade controls!
Re: Pole Position conversions - U-HID Nano enough?
« Reply #16 on: June 29, 2019, 02:18:41 pm »
I've already done that with a basic button sample. It does nothing. It never sees it go low. I've even tried blocking the entire surface, no change. Just in case, i tried yours, samething. No movement.

I have it wired as the following:
White - x1 (or x2)
black - gnd
red - 5v / vcc
white blue - x2/x1

my phone sees the IR beams emitting.
« Last Edit: June 29, 2019, 02:21:52 pm by tandrews »

SailorSat

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1208
  • Last login:Today at 06:52:53 am
    • For Amusement Only e.V.
Re: Pole Position conversions - U-HID Nano enough?
« Reply #17 on: June 29, 2019, 02:58:56 pm »
Make sure if the wheel is active-LOW or active-HIGH, you might need to change the port config to INPUT (without pullup) and provide some 10k pulldown resistors.
I do all that stuff even without a Joystick ;)
Soft-15kHz, cabMAME, For Amusement Only e.V.


tandrews

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 60
  • Last login:November 13, 2019, 08:10:54 pm
  • I want to build my own arcade controls!
Re: Pole Position conversions - U-HID Nano enough?
« Reply #18 on: June 29, 2019, 03:28:02 pm »
So I took my volt meter and with the ir blocked it reads 5.1v still

baritonomarchetto

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 805
  • Last login:Today at 02:10:16 pm
Re: Pole Position conversions - U-HID Nano enough?
« Reply #19 on: June 29, 2019, 04:35:15 pm »
So, you can see (with the phone camera) the leds changing state, but those are not seen by your arduino?
What do you mean with "button sample"? Your board is not recording a button press on that input pin (pin 2 and 3 supposely)?
« Last Edit: June 29, 2019, 04:44:08 pm by baritonomarchetto »

tandrews

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 60
  • Last login:November 13, 2019, 08:10:54 pm
  • I want to build my own arcade controls!
Re: Pole Position conversions - U-HID Nano enough?
« Reply #20 on: June 29, 2019, 04:44:48 pm »
I measure X1 and X2, they are ALWAYS 5.1v-5.2 volts. It never drops to ground. So its not the Arduino, it seems to be the opto coupler.

This is modified sketch I just tried, it DID NADA:

Code: [Select]
#include <Mouse.h>
bool optA_state;
int xAxisMov = 2;

void setup() {
  pinMode (2, INPUT_PULLUP); //OptA
  pinMode (3, INPUT_PULLUP); //OptB
  optA_state = digitalRead(2);
  Mouse.begin();
}

void loop() {
  if (digitalRead(2) != optA_state) {
    Serial1.println("2 changed state");
    optA_state = !optA_state;
    if (optA_state == HIGH) {
      if (digitalRead(3) == LOW) {
        Serial1.println("3 went low");
      }
      else {
        Serial1.println("3 is high");
      }
    }
  }
}//loop end

tandrews

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 60
  • Last login:November 13, 2019, 08:10:54 pm
  • I want to build my own arcade controls!
Re: Pole Position conversions - U-HID Nano enough?
« Reply #21 on: June 29, 2019, 05:36:23 pm »
So I had mentioned I was doing more than one of these, so my friend brought over his two units. I immediately noticed he had the sensor with a chip and cap where mine is only a sensor and resistor? His worked with my sample code, seems to need a bit of tweaking but otherwise is working.
i now have a moving mouse. Any idea whats going on with this sensor? Is it some other type where I need another logic board?

Though I noticed it seems going one direction is detected better than another. Is that normal? I've cleaned the sensor and it doesn't seem to help.
« Last Edit: June 29, 2019, 06:41:05 pm by tandrews »

PL1

  • Global Moderator
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 9401
  • Last login:Today at 03:48:58 pm
  • Designated spam hunter
Re: Pole Position conversions - U-HID Nano enough?
« Reply #22 on: June 29, 2019, 06:54:19 pm »
So I had mentioned I was doing more than one of these, so my friend brought over his two units. I immediately noticed he had the sensor with a chip and cap where mine is only a sensor and resistor?
Posting pics of both boards might help.   :dunno

Are they the same P/N? (A040510-1?)


Scott
« Last Edit: June 29, 2019, 06:56:47 pm by PL1 »

tandrews

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 60
  • Last login:November 13, 2019, 08:10:54 pm
  • I want to build my own arcade controls!
Re: Pole Position conversions - U-HID Nano enough?
« Reply #23 on: June 29, 2019, 07:17:22 pm »
So I had mentioned I was doing more than one of these, so my friend brought over his two units. I immediately noticed he had the sensor with a chip and cap where mine is only a sensor and resistor?
Posting pics of both boards might help.   :dunno

Are they the same P/N? (A040510-1?)


Scott
Attached. Top works, bottom does not.
« Last Edit: June 29, 2019, 07:28:31 pm by tandrews »

PL1

  • Global Moderator
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 9401
  • Last login:Today at 03:48:58 pm
  • Designated spam hunter
Re: Pole Position conversions - U-HID Nano enough?
« Reply #24 on: June 29, 2019, 08:45:40 pm »
Not sure what the upper board is, but the lower one looks like the A035220-02 shown on page 36 of the Pole Position manual. (5th printing)

my phone sees the IR beams emitting.
That appears to confirm that you've got:
- 5v connected to pin 2
- Ground connected to pin 3
- Both IR LEDs working.  They are wired in series.  If one burns out, both stop emitting.

Ken Layton posted some info on these boards here on KLOV.


Scott

tandrews

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 60
  • Last login:November 13, 2019, 08:10:54 pm
  • I want to build my own arcade controls!
Re: Pole Position conversions - U-HID Nano enough?
« Reply #25 on: July 16, 2019, 10:14:43 am »
Bump. Could still use help with the issue of the nonworking ir board. See previous post for photo

PL1

  • Global Moderator
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 9401
  • Last login:Today at 03:48:58 pm
  • Designated spam hunter
Re: Pole Position conversions - U-HID Nano enough?
« Reply #26 on: July 16, 2019, 11:04:21 am »
You've confirmed that the LEDs are working so that leaves the two phototransistors and data lines connected to pins 1 and 4.

Do the lines change logic levels as the LEDs are blocked/unblocked?

If a data line is stuck high or low, here are some possible causes:

  1. A PCB trace is broken or shorted.

  2. Corrosion/poor connection on the pin.

  3. Bad phototransistor(s) -- replace the K-2126 Optocoupler.


Scott
EDIT: Looks like you're already on the right track.
I measure X1 and X2, they are ALWAYS 5.1v-5.2 volts. It never drops to ground. So its not the Arduino, it seems to be the opto coupler.
« Last Edit: July 16, 2019, 11:17:38 am by PL1 »