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 --- Bug Reports --- Site News

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

  

Author Topic: XBOXPadMicro - A firmware that turns Arduino Micro (Leonardo) into an XBOX pad!  (Read 45506 times)

0 Members and 1 Guest are viewing this topic.

PL1

  • Global Moderator
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 8888
  • Last login:Yesterday at 11:04:08 pm
  • Designated spam hunter
Nice, it works  :applaud: 
I changed two lines in the bootsector source
pad_up = !bit_check(PINC, 7); (changed to F7)
pad_left = !bit_check(PINB, 0);  (changed to F5)
Now I have a working D-pad! The analog sticks are incomplete, but I wasn't planning on wiring them.
Glad to hear you got it working, Imp.   ;D

If you don't mind posting your compiled hex, I'll make a corresponding Pro Micro pinout image.   :cheers:


Scott
EDIT: Working on the pinout map and wondering which of these possible changes would be more useful for most users and make the best use of the available pins:
- Left analog thumbstick (F4 and F6 to L. Analog U and L. Analog D) or
- L and R triggers (F4 and F6 to L and R) or
- Right analog thumbstick (B1 and B3 to R. Analog D and R. Analog R)
« Last Edit: January 03, 2019, 06:34:58 pm by PL1 »

imp

  • Trade Count: (0)
  • Jr. Member
  • **
  • Offline Offline
  • Posts: 9
  • Last login:March 05, 2019, 06:05:10 am
  • I want to build my own arcade controls!
I can post my hex file, but I think I screwed it up somehow, I used the wrong tool to check the buttonfunctions  :banghead:
When I connected everything to my cab all the buttons got a different input ingame  :(
I'll reflash my ProMicro with the original hex files to see what I did wrong.

Is there maybe a preferred Xinput button test program?

imp

  • Trade Count: (0)
  • Jr. Member
  • **
  • Offline Offline
  • Posts: 9
  • Last login:March 05, 2019, 06:05:10 am
  • I want to build my own arcade controls!
I used this tool to map my buttons correctly: https://gamepadviewer.com/
For the attached hex file I used this mapping for the Pro Micro (B1 and B3 on pins 15 and 14 are spare and not in use).

TX0 = D3 = B (red)
RX1 = D2 = A (green)
GND
GND
2 = D1 = X (blue)
3 = D0 = Y (yellow)
4 = D4 = LB
5 = C6 = LT
6 = D7 = RB
7 = E6 = RT
8 = B 4 = Start
9 = B5 = Back/Select

RAW
GND
RST
VCC
A3 = F4 = pad right
A2 = F5 = pad left
A1 = F6 = pad down
A0 = F7 = pad up
15 = B1
14 = B3
16 = B2 = L3
10 = B6 = R3

It's working perfectly now. Thanks for all the help  :cheers:

[NOTE: This firmware is for X360/Xinput and not for the original Xbox. -- Scott]
« Last Edit: June 22, 2021, 06:27:34 pm by PL1 »

PL1

  • Global Moderator
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 8888
  • Last login:Yesterday at 11:04:08 pm
  • Designated spam hunter
Thanks for the updated hex, Imp.   :cheers:

Here's a pinout image. (LMK if there are any errors.)


Scott
EDIT: Fixed typo, changed "Stick Press" to "Stick Button", and added "Xinput" to title.
« Last Edit: January 03, 2019, 07:00:53 pm by PL1 »

Pic

  • Trade Count: (0)
  • Jr. Member
  • **
  • Offline Offline
  • Posts: 5
  • Last login:March 24, 2020, 08:51:09 am
  • I want to build my own arcade controls!
I'm guessing these boards are small enough to fit inside of an original NES, SNES, N64, Atari and Genesis controller, thus making it possible to modify original controlers to work with emulators available on a modified xbox.
You might be able to mod some of those controllers like that, but AFAIK that wasn't Bruno's plan for the XBOXPadMicro.

It is usually used to connect arcade-style joysticks and buttons to an XBox.

If you want to use original (unmodded) console controllers with an XBox, check out the KADE miniArcade 2.0 and the associated KADE Multi-Out expansion board.

Bruno has also developed the RetroPad32 -- a follow-up to the (several-years-overdue-delivering-european-Kickstarter-rewards :embarassed:) KADE miniConsole+.


Scott

First of, many thanks Bruno for your job with the Xboxpadmicro ! I tried it with a Neo Geo CD controller and it works like a charm. I am now building a case for it, and I consider buying a Neo Geo stick to play on my Xbox's Neo Geo emulator.

If I understand correctly, there is no way to plug a Nes, Snes, N64 or usb controller to the Xboxpadmicro, even if I build a controller to db15 cable ?

My dream would be to get the original controller working on all of my Xbox emulators  :notworthy:

Thanks guys !

PL1

  • Global Moderator
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 8888
  • Last login:Yesterday at 11:04:08 pm
  • Designated spam hunter
If you want to use original (unmodded) console controllers with an XBox, check out the KADE miniArcade 2.0 and the associated KADE Multi-Out expansion board.
If I understand correctly, there is no way to plug a Nes, Snes, N64 or usb controller to the Xboxpadmicro, even if I build a controller to db15 cable ?

My dream would be to get the original controller working on all of my Xbox emulators
1. USB controllers should work directly with your emulators.

2. XBOXPadMicro isn't designed as an interface for those other controllers -- look into miniArcade 2.0 + Multi-Out board.
What systems does it connect to?
- Generic USB/HID Joypad (USB cable)
- Generic USB/HID Keyboard (USB cable)
- NES/SNES (KADE Multi-Out expansion board)
- Genesis (KADE Multi-Out expansion board) -- 3-button stick (original or second gen. console)
- MSX (KADE Multi-Out expansion board) -- autodetect only (for now)
- Neo Geo AES (KADE Multi-Out expansion board)
- GameCube/Nintendo64 (custom RJ-45 cable)
- PS1/PS2 (custom RJ-45 cable) -- this also allows you to connect to 3DO, Dreamcast, Famicom, Famicom (clone), MegaDrive / Master System, Saturn, Turbo Grafx 16, Xbox 360, and other consoles using commercially available adapter cables
- PS3 (USB cable)
- Wii/WiiU/NES Classic (custom RJ-45 cable)
- WiiU (USB cable)
- Xbox (USB cable + female USB to joystick port adapter cable)


Scott

Pic

  • Trade Count: (0)
  • Jr. Member
  • **
  • Offline Offline
  • Posts: 5
  • Last login:March 24, 2020, 08:51:09 am
  • I want to build my own arcade controls!
Thanks for you help PL1 !

1. USB controller's doesn't work for me  :'( I tried with a simple usb controller (Microsoft SideWinder game pad) and it doesn't work. I found this post https://www.reddit.com/r/originalxbox/comments/9b16dr/question_about_xbox_port_to_usb_adapters_with/ and they mention Bruno's project to make it work. Everything seems to lead to Bruno's projects ahah

2. I'll check out this board and see if I can make one ! The thing is that I need to access to a fablab or something to build such thing.


PL1

  • Global Moderator
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 8888
  • Last login:Yesterday at 11:04:08 pm
  • Designated spam hunter
The thing is that I need to access to a fablab or something to build such thing.
The User Guide has a full Bill of Materals (part numbers and links) and page 15 lists some PCB fabricators.

Quote
http://www.pcbway.com/
https://www.seeedstudio.com/fusion_pcb.html
https://www.itead.cc/open-pcb.html
http://www.tinyosshop.com/index.php?route=product/category&path=111

The Gerber files (used for PCB fabrication) are in the "docs\gerbers" folder.


Scott

Pic

  • Trade Count: (0)
  • Jr. Member
  • **
  • Offline Offline
  • Posts: 5
  • Last login:March 24, 2020, 08:51:09 am
  • I want to build my own arcade controls!
Sorry for the late reply ! I was in Japan for holydays  ;D

Much wow ! I didn't know that you could make a single unit of custom pcb. I'll definitely check this out !

Thanks PL1 !

By the way I just finished my retropad adapter. I can't wait to use it ! Here's some pic if you guys are interested :

https://drive.google.com/file/d/12mQtV0QUXenT0a844Xoz3enrJnB9pSqo/view?usp=sharing

https://drive.google.com/file/d/1vBxLimvw0L5whR3SYeh9x36DTX_nlBxv/view?usp=sharing
« Last Edit: April 18, 2019, 02:38:39 pm by Pic »

PL1

  • Global Moderator
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 8888
  • Last login:Yesterday at 11:04:08 pm
  • Designated spam hunter
By the way I just finished my retropad adapter. I can't wait to use it ! Here's some pic if you guys are interested :

https://drive.google.com/file/d/12mQtV0QUXenT0a844Xoz3enrJnB9pSqo/view?usp=sharing

https://drive.google.com/file/d/1vBxLimvw0L5whR3SYeh9x36DTX_nlBxv/view?usp=sharing
Cool case.   ;D

Where'd you find it?  Got a link?


Scott

Pic

  • Trade Count: (0)
  • Jr. Member
  • **
  • Offline Offline
  • Posts: 5
  • Last login:March 24, 2020, 08:51:09 am
  • I want to build my own arcade controls!
Thanks !

I found it in a french store called Cultura. They sell many products for DIY / creative activities.

This shop is only in France, but I searched the box's brand website and they have an online boutique for the US and other countries :
http://www.reallyusefulproducts.co.uk/usa/html/onlineshop/rub/b00_07litre.php
 
Let me write down the spec of the box in case the link is broken :
Brand : Really useful box
Model : 0.07L
Size : (length x width x depth in inches)
External: 31⁄2" x 25⁄8" x 11⁄4"
Internal: 21⁄2" x 2" x 1"

Hope it'll help  ;)

PL1

  • Global Moderator
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 8888
  • Last login:Yesterday at 11:04:08 pm
  • Designated spam hunter
Brand : Really useful box
Model : 0.07L
Thanks for the info.   ;D

Amazon also carries them here and here.


Scott

Michel_K17

  • Trade Count: (0)
  • Jr. Member
  • **
  • Offline Offline
  • Posts: 5
  • Last login:February 05, 2022, 09:56:23 pm
  • I want to build my own arcade controls!
Thanks for the good work. Worked fine for me.

One thing: are there any pins for the trigger analog buttons?

In regards to a solderless solution, I used the following adapter from CZH-LABS for $22 from Amazon:
https://www.amazon.com/CZH-LABS-Terminal-Breakout-Module-Arduino/dp/B07QMRDZ3W

One advantage is that it comes with decently sized screw holes to mount the adapter.

PL1

  • Global Moderator
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 8888
  • Last login:Yesterday at 11:04:08 pm
  • Designated spam hunter
are there any pins for the trigger analog buttons?

There are no unused pins. All pins are mapped to some functionality of an original XBOX controller.

Bruno was looking into analog trigger buttons for the miniArcade 2.0 around April/May 2018, but AFAIK it never got any further than a discussion about whether a 1 port or 2 port implementation would be better and what analog hardware might be adapted for this.

Other than maybe the Blue Tip Gaming analog pushbuttons, we didn't find any sensible, off-the-shelf, DIY-friendly hardware options.


Scott

Michel_K17

  • Trade Count: (0)
  • Jr. Member
  • **
  • Offline Offline
  • Posts: 5
  • Last login:February 05, 2022, 09:56:23 pm
  • I want to build my own arcade controls!
Thank you Scott.

Last question, I promise: What is the best practice for connecting my joystick buttons?

  • Do I need to use a pullup or pulldown resistor? or
  • can I simple connect each input pin to ground via the switch?

I checked the code to look to see if any internal pullup was being used, but I was unable to find any references to that in the comments.

Cheers!

Michel

PL1

  • Global Moderator
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 8888
  • Last login:Yesterday at 11:04:08 pm
  • Designated spam hunter
]Do I need to use a pullup or pulldown resistor?
No external resistors needed.

Use standard wiring techniques.
- Use the NO and COM microswitch terminals.
- Wire directly from Arduino input to microswitch.
- Daisy-chan the ground.
- If you want to add a dedicated combo button (one physical button press triggers more than one output), use blocking diodes.


Scott

Michel_K17

  • Trade Count: (0)
  • Jr. Member
  • **
  • Offline Offline
  • Posts: 5
  • Last login:February 05, 2022, 09:56:23 pm
  • I want to build my own arcade controls!
Thank you Scott!

And I found what I was looking for, in regards to the triggers (since I want them as ON/OFF buttons, like a shoulder switch) - they are at:
  • pin 11 = Left Trigger Button; and
  • pin 12 = Right Trigger Button.

 :)

Michel_K17

  • Trade Count: (0)
  • Jr. Member
  • **
  • Offline Offline
  • Posts: 5
  • Last login:February 05, 2022, 09:56:23 pm
  • I want to build my own arcade controls!
Thanks again for the help. My project is (mostly) completed. update 19 July 2020

With the XBOXPadMicro, I was able to use the Aduino Leonardo via an adapter on my Defender Arcade Machine Control Panels - I built two, one with the Defender/Stargate layout, and a Dual Joystick/player with a spinner control. The beauty about the XBOXPadMicro is that it works flawlessly on the original Xbox and also when connected to a Raspberry Pi using Retroarch (via Lakka or Retropie), so I can use the same layout in either case.

I used this adapter Link on Amazon is here (it works great):
https://www.amazon.com/gp/product/B07QMRDZ3W/ref=ppx_yo_dt_b_search_asin_image?ie=UTF8&psc=1

I used the XXX spinner on Amazon, and I can vouch that it has a great feel and response at an affordable price. You will need the spinner [https://www.amazon.com/gp/product/B07P5WJ7BC/ref=ppx_yo_dt_b_asin_title_o03_s01?ie=UTF8&psc=1] and the interface board [https://www.amazon.com/gp/product/B07NKJ3SKH/ref=ppx_yo_dt_b_asin_title_o03_s00?ie=UTF8&psc=1].

Finally, I:
  • used buttons on the coin door for the menu and coins
  • used diodes so that the menu button would work as a single dedicated button (retroarch otherwise requires two buttons to be pressed simultaneously)
  • created my own control panel artwork - which I then had custom printed on heavy textured vinyl for $40 including shipping here: https://www.gameongrafix.com/product/control-panel-custom-design/
  • added an LED on the front door to show when it is safe to turn off the machine (it goes off once the Raspberry Pi is done shutting down)
  • added some green LEDs on the reverse side of the control panel to provide lighting inside the arcade machine

For anyone with similar projects, Here are a few pictures, my control panel artwork and my wiring diagram is attached as a PDF file.

« Last Edit: July 19, 2020, 06:32:42 pm by Michel_K17 »

Michel_K17

  • Trade Count: (0)
  • Jr. Member
  • **
  • Offline Offline
  • Posts: 5
  • Last login:February 05, 2022, 09:56:23 pm
  • I want to build my own arcade controls!
Pictures
« Last Edit: July 19, 2020, 06:25:15 pm by Michel_K17 »

ic

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 14
  • Last login:June 22, 2021, 02:36:09 pm
  • I want my own arcade controls!
Thanks for your helPl1 I found the right tool to flash this model. Here what I read on reddit:
Quote
Most of the hex uploaders like the Freematics Arduino Builder are actually quite bad at handling Atmega32u4 uploads because most of them were designed for AVR109 with the butterfly bootloader part tacked on.

Use https://github.com/christophediericx/ArduinoSketchUploader if you are uploading hexes and uploading to Leonardos or Pro Micros. don't short the reset pins, just upload with the program.

And.....It worked!  ;D
Glad to (indirectly) assist.   :cheers:

Looks like ArduinoSketchUploader might be a good alternative for anyone having problems loading .hex files with ArduinoBuilder.   ;D


Scott

I tried programming the first Pro Micro but ended up bricking it. I may have used the wrong file or programmed it as an incorrect device which then messed up the bootloader. :dizzy:

So I've bought another one and just wanted to double check what options and file I should be using.

Is this file OK to use?
https://www.gitmemory.com/issue/bootsector/XBOXPadMicro/1/483612292

Do I choose Leonardo or Mega2560 in Arduino Sketch Uploader?
I can't see an option for Pro Micro.

Thanks for any advice.

baritonomarchetto

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 709
  • Last login:Today at 01:40:39 am
Don't trash the "bricked" pro micro. If while uploading the sketch you reset it with the right timing, you will succesfully upload a sketch. Use a simple sketch like "blink".
Arduino pro micro can only be programmer as "Leonardo" (it's a leo with a different form factor and some pin not connected). You cannot brick an arduino (genuino or clone) selecting the wrong board. Probably you have uploaded a sketch using the receive pin RX and now is stuck.
« Last Edit: June 09, 2021, 03:18:04 pm by baritonomarchetto »

ic

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 14
  • Last login:June 22, 2021, 02:36:09 pm
  • I want my own arcade controls!
Thanks for the reply.

I tried to recover the Arduino but whatever I did it couldn't be reprogrammed.  :dizzy:

I reset the 2 pins to put it into bootloader mode for 8 seconds and the 3 lights stayed on after uploading the 'Hello world' or 'Blink' sketch. But when I tried to upload another sketch the com port would disappear.

I'll try uploading using the Leonardo option and see how it goes.

Thanks again.  :cheers:

PL1

  • Global Moderator
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 8888
  • Last login:Yesterday at 11:04:08 pm
  • Designated spam hunter
I tried to recover the Arduino but whatever I did it couldn't be reprogrammed.  :dizzy:

I reset the 2 pins to put it into bootloader mode for 8 seconds and the 3 lights stayed on after uploading the 'Hello world' or 'Blink' sketch. But when I tried to upload another sketch the com port would disappear.
Yes, Arduinos use a different port for programming mode than for normal mode.   :banghead:

I've found that using avrdude and two .bat files works well for loading firmwares on a Pro Micro.
(Hat tip to JayBee for the code in the "progmode.bat" file.   :notworthy:)

- The "progmode.bat" file puts the Pro Micro into programming mode by opening and closing the normal COM5 serial port.
Code: [Select]
@echo off
mode COM5 BAUD=1200 PARITY=n DATA=8
TIMEOUT 3 /NOBREAK

- The "load.bat" file loads the .hex file through the COM6 port into flash memory using this single-line command.
Code: [Select]
avrdude -p atmega32u4 -P COM6 -c avr109 -U flash:w:MINIARCADE2.hex -C avrdude.conf
To use this approach:

1. Install avrdude on your computer.

2. Install the Arduino Leonardo/Mini bootloader driver as per the instructions at https://www.arduino.cc/en/Guide/ArduinoLeonardoMicro#toc2.

3. Put a copy of the desired firmware .hex file in the avrdude folder.

4. Identify the normal and programming mode COM ports for your Arduino.
- In Windows Control Panel -- Devices and Printers, right-click on the Arduino and select "Properties".
- You'll find the normal COM port under the "Hardware" tab. (the code above assumes COM5)
- Close the Properties window.
- Double click to reset the board.
-- The Arduino icon will disappear and an "Arduino Micro bootloader (COM6)" icon will appear.  The name contains the programming mode COM port. (the code above assumes COM6)


5. Create "progmode.txt" and "load.txt" files in the avrdude folder.

6. Open them in Notepad.
- Copy/paste the batch file code above.
- Change "MINIARCADE2.hex" to the firmware filename.
*** NOTE: The .hex filename is case sensitive.  Make sure it matches. ***
- Change COM port numbers to match what you saw in step 4.
- Save and exit.

7. Rename the "progmode.txt" file to "progmode.bat" and rename the "load.txt" file to "load.bat".
- If you ever need to edit the .bat file, change the extension back to .txt.

8. Left-click on an empty part of the avrdude folder window so nothing is selected.  In an empty part of the window Shift+Right-click -- "Open command window here". (this saves you manually navigating to the avrdude folder using "cd" commands)

9. Type "progmode.bat" and hit ENTER.
- Board goes into programming mode.

10. While the board is in programming mode, type "load.bat" and hit ENTER.
- Avrdude loads the firmware on the board.   ;D

Is this file OK to use?
https://www.gitmemory.com/issue/bootsector/XBOXPadMicro/1/483612292
Bruno posted the file and a Pro Micro pinout image so it should work fine on a Pro Micro.

Pretty sure the firmware in reply #82 would also work -- pinout for that firmware is in reply #83.
[EDIT: That firmware is for X360/Xinput.]


Scott
« Last Edit: June 22, 2021, 06:36:22 pm by PL1 »

ic

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 14
  • Last login:June 22, 2021, 02:36:09 pm
  • I want my own arcade controls!
Big thanks for the help guys.  :cheers:

I've programmed the new Arduino and it seemed to upload the file to it OK, but, I haven't fully tested it yet as the header pins need soldering on and I need to make a loom. All going well I'll be able to play SpikeOut Battle Street in my Blast City cabinet. Previously I tried a couple of padhacks but they weren't very successful.  :laugh2:

Thanks again!

ic

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 14
  • Last login:June 22, 2021, 02:36:09 pm
  • I want my own arcade controls!
This is just not working for me.  :banghead:

I thought it had uploaded OK but it's not being seen in mapper app.
So I tried to reload blink again so I could try reloading the hex file, it seems now I'm at a stage worse than the other unit.

So I tried your method.
I installed AVRDUDE, created the progmode.bat and load.bat files.
Ran progload, it reset the unit but it still didn't want to load the load.bat file. So I manually reset the unit and tried to run load.bat. It seemed to work but now both units are showing as unknown devices.

I read the guide how to install the driver, the driver is not in the location where they say it is. I ran a search on my pc for arduino.inf and it's nowhere to be found. I tried reinstalling arduino 1.8.15 but it doesn't install the required drivers.

Am I buying the wrong devices or doing something wrong?
I work in IT and this seems too long winded, I've spent hours messing about with these things.  :laugh2:
It's especially frustrating seeing other people have successfully programmed their devices without any hassle.
« Last Edit: June 13, 2021, 08:44:35 pm by ic »

ic

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 14
  • Last login:June 22, 2021, 02:36:09 pm
  • I want my own arcade controls!
OK, I've managed to get them to be seen in windows again.
I uploaded hello world via Arduino 1.8.15. Then used AVRDUDE to upload the XBOX sketch.

I got this message:

Quote
avrdude: Device signature = 0x1e9587 (probably m32u4)
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "XBOXPadMicro.hex"
avrdude: input file XBOXPadMicro.hex auto detected as Intel Hex
avrdude: writing flash (3666 bytes):

Writing | ################################################## | 100% 0.35s

avrdude: 3666 bytes of flash written
avrdude: verifying flash memory against XBOXPadMicro.hex:
avrdude: load data flash data from input file XBOXPadMicro.hex:
avrdude: input file XBOXPadMicro.hex auto detected as Intel Hex
avrdude: input file XBOXPadMicro.hex contains 3666 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.09s

avrdude: verifying ...
avrdude: 3666 bytes of flash verified

avrdude: safemode: Fuses OK (E:CB, H:D8, L:FF)

avrdude done.  Thank you.


C:\AVRDUDE>

I still can't test it in padtest in mapper though, waiting for gamepad is displayed at the bottom LH corner.
Well I should have gone to bed hours ago, I'm calling it a night.  :laugh2:

PL1

  • Global Moderator
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 8888
  • Last login:Yesterday at 11:04:08 pm
  • Designated spam hunter
It looks like AVRDUDE is working as expected.   ;D

Have you tried both versions of the firmware -- the one from the gitmemory link you posted earlier and the one from reply #82?

I don't know what differences, if any, there are between them.   :dunno


Scott
[EDIT: The firmware from reply #82 is for X360/Xinput.]
« Last Edit: June 22, 2021, 06:46:59 pm by PL1 »

ic

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 14
  • Last login:June 22, 2021, 02:36:09 pm
  • I want my own arcade controls!
It looks like AVRDUDE is working as expected.   ;D

Have you tried both versions of the firmware -- the one from the gitmemory link you posted earlier and the one from reply #82?

I don't know what differences, if any, there are between them.   :dunno


Scott

Sorry for the delay replying.

OK, I made some progress tonight.

I uploaded the FW from post 82.
It's now seen in mapper test pad utility.  8)
I've made a loom where the buttons are testing correctly in mapper test pad utility.

Now when I attach it to my Xbox it's not recognised, I'm using a Xbox-USB adapter I used to connect a usb stick to the Xbox so I could softmod it a while back.  :dizzy:

Is this because the FW in post 82 is for Xinput in windows, or should that work with Xbox as well?
I feel I'm getting closer to success, and moving away from giving up and chucking it all in the bin.  :laugh2:

Thanks!

PL1

  • Global Moderator
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 8888
  • Last login:Yesterday at 11:04:08 pm
  • Designated spam hunter
Glad to hear you got the firmware loaded.   :cheers:

Now when I attach it to my Xbox it's not recognised, I'm using a Xbox-USB adapter I used to connect a usb stick to the Xbox so I could softmod it a while back.  :dizzy:
The way Bruno explained it, the original XBOXPadMicro firmware was designed to make an Arduino Micro into an XBox-compatible encoder.

Imp modified the pinout to work with the pins available on a Pro Micro board and mentions this.
I used this tool to map my buttons correctly: https://gamepadviewer.com/

AFAIK the Pro Micro USB cable should plug into a "female USB to XBox joystick port adapter" cable like this these and work just like an original controller.   :dunno

 


Scott

ic

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 14
  • Last login:June 22, 2021, 02:36:09 pm
  • I want my own arcade controls!
Here's where I'm at.

This is the Xbox - USB connector I have. It does recognise when a USB stick is inserted into it. I've tried 3 different USB cables, different lengths and different manufacturers. Also, I've tried grounding the pins on the Arduino directly. They register in Mapper but not on the Xbox. Hmm, I guess I'll try buying another adapter to see if that solves the problem.

Here's a pic of the loom I made for the control panel. This plugs in directly to the Arduino and then plugs into the original loom. This loom and the control panel are verified as working using the Mapper pad utilty app.

And finally the original wiring inside the control panel. It's not daisy chained per se, but the grounds are all connected so I can't see that being a problem.

Not sure what else I can do here. Close but no cigar!  :laugh2:

Thanks again for all the help Scott, it's really appreciated man.  :applaud:
« Last Edit: June 16, 2021, 10:26:52 pm by ic »

ic

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 14
  • Last login:June 22, 2021, 02:36:09 pm
  • I want my own arcade controls!
OK, I've made some progress, but I think I'm at the stage where I'm gonna just buy a Japanese Xbox joystick and wire it into my control panel.

After much headscratching and messing about, this is where I'm at and what I've encountered along the way.

To recover the 'bricked' Arduino that I programmed as a Micro I used Arduino Builder to upload a small sketch. I manually put the arduino into bootloader mode then uploaded the sketch to it using the Arduino option.

To upload the FW I used AVRDude as explained above and detailed on a couple Youtube vids, I did have to manually put it into bootloader before it uploaded though. Nothing else worked for me.

The FW in post #82 is for X360/Xinput and not for the OG Xbox.
It shows in device manager as a Xbox 360 controller and works 100% in Mapper test pad app, buttons and directions work 100%.

https://github.com/bootsector/XBOXPadMicro/issues/1
The above FW is for OG Xbox, the pinout is on the above page. When this FW is loaded into the Arduino it doesn't register as a gamepad when using Mapper test pad app, but I could verify that it was being seen on my Xbox in one of the settings options showing system information.

So I made another loom using the pinout on that page and tested it with a couple of Xbox games. While the buttons work fine there's an issue when moving in certain directions.

It seems to be using the analogue settings as when I push up it also applies a slight left movement, and when I push down it applies a slight right movement. Up/right and down/left are not recognised in SpikeOut Battle Street, the chara stands still when those directions are inputted. I've tried programming 2 x Adruinos, tried 2 x Xbox-USB adapters, multiple UBS cables, Blast City Control Panel with a JLF fitted, Astro City Control Panel with LS-32 fitted and tried shorting the pins directly on the Arduino, I get the same issue.

So now it seems I have to learn how to program and compile arduino sketches in order to use digital inputs rather than analogue inputs. Today was my restday from work and I've spent all afternoon messing with this and I'm now conceding defeat as this is above me now.

The last thing to try is to use another Xbox, I gave one to a friend a while back so will ask him if I can loan it to test the arduino out.

I'll update this thread again once I've tested it.

Thanks for all the help, it's appreciated.
« Last Edit: June 22, 2021, 11:14:04 am by ic »

PL1

  • Global Moderator
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 8888
  • Last login:Yesterday at 11:04:08 pm
  • Designated spam hunter
To upload the FW I used AVRDude as explained above and detailed on a couple Youtube vids, I did have to manually put it into bootloader before it uploaded though. Nothing else worked for me.
IIRC some of the Pro Micro clones come with alternate bootloaders that don't always work right.   :(

The FW in post #82 is for X360/Xinput and not for the OG Xbox.
Note added to post #82 for future reference.   :cheers:

Thanks for all the help, it's appreciated.
Glad to (attempt to) assist.   :D


Scott

bk2099

  • Trade Count: (0)
  • Jr. Member
  • **
  • Offline Offline
  • Posts: 3
  • Last login:November 09, 2021, 12:32:06 am
  • I want to build my own arcade controls!
I have an issue where pressing the Down direction also triggers the Right direction and pressing the Up direction also triggers the Left direction. It happens about 50% of the time.  ???

I'm trying to navigate the Game Option menu in Capcom vs. SNK 2 EO on Xbox and it's giving me problems.
Perhaps this is the reason I can't do fireball motions in games like Capcom Classic Collection Vol. 2 and Midway Arcade Treasures 2.

I'm wondering if it's just my setup or maybe someone else has the same issue. I'm using apom's firmware because I have a Pro Micro. (https://github.com/bootsector/XBOXPadMicro/issues/1)   :dunno

swofra

  • Trade Count: (0)
  • Jr. Member
  • **
  • Offline Offline
  • Posts: 8
  • Last login:January 26, 2022, 06:54:48 am
  • I want to build my own arcade controls!
I'm at noob at this, and have been trying to read through the thread to figure out how to make this happen and unfortunately I'm a little confused. 

i currently have this controller configuration: https://www.amazon.com/Hikig-2-Player-Encoder-Joystick-Mixed-Color/dp/B092MHZPFX/

So I'm pretty sure I'd have to ditch the encoder boards that came with the joystick/buttons to make it xbox compatible, but would the joystick/button wiring harnesses that I have be compatible with the arduino based encoder in this post?

If so, the link to original instructions in post 1 and some of the links in post #33 no longer work.  So far I know to buy the micro board from gowoops and then get some male to female jumper cables.  that's where things start to get fuzzy.
  Any help or guidance would be greatly appreciated and thank you for your time!

swofra
 

edwardsalazar998

  • Trade Count: (0)
  • Jr. Member
  • **
  • Offline Offline
  • Posts: 1
  • Last login:March 31, 2022, 11:40:39 am
  • I want to build my own arcade controls!
Hello, sorry but I'm not very good at this, is it normal for me to recognize analog joysticks as if they were digital? I would like to replace my classic xbox controller with one with all its functions, but when connecting the potentiometer it only reads it as a digital output, is that normal?