Jump to content

MMjoy


Recommended Posts

If you don't have resistor network you can do it with 10K resistors, I will not look nice bit it can be done

 

Resistor "Net" DIY: :D

 

Resistor_Net_DIY.jpg

 

BTW - Nice work Debolesis, the PCB looks nice. :thumbup:


Edited by Sokol1_br
Link to comment
Share on other sites

Well.. I finally received my goods from Taobao. It took extra long because the seller opted to use Taobao's international shipping. The goods get shipped to a local holding warehouse, where I then have to pay extra (another $20 something dollars) to get it shipped abroad. I didn't know about that part, so the goods were sitting for a good while before I figured out that I had to fork over more money. So total came around to something like $50 - still not too bad.

 

Things seem to work well, I haven't screw around with it much yet. I am still finalizing some changes on my smaller gimbal design, once that's done I'll dive into the electronics more.

 

Here is what ~$50 got me:

CA4dCYP.jpg

 

It seems like the seller is taking orders for the boards again, but from what I understand based on my poor reading skill, he is not shipping till 4 months later - something about busy with life.

 

I am planning on replacing my gimbal with a "real" gimbal instead of that plastic ball thing TM used in my WartHog. I am impressed with what you've done and wondered if you could post some more detailed pics of your build and/or maybe some drawings if you have any.

 

Well done. Is it as smooth as it looks?

Regards

John W

aka WarHog.

 

My Cockpit Build Pictures...



John Wall

 

My Arduino Sketches ... https://drive.google.com/drive/folders/1-Dc0Wd9C5l3uY-cPj1iQD3iAEHY6EuHg?usp=sharing

 

 

WIN 10 Pro, i8-8700k @ 5.0ghz, ASUS Maximus x Code, 16GB Corsair Dominator Platinum Ram,



AIO Water Cooler, M.2 512GB NVMe,

500gb SSD, EVGA GTX 1080 ti (11gb), Sony 65” 4K Display

VPC MongoosT-50, TM Warthog Throttle, TRK IR 5.0, Slaw Viper Pedals

Link to comment
Share on other sites

Since there is no R26 in TM register, I left it out, If necessary it can easily be soldered on cable. We'll have to test this, I ordered boards for myself, they'll be here in 4 weeks and we'll see.

 

Adding 3 capacitors in parallel is not necessary, more simple solution is to add capacitor 3 times larger in value. To be supper safe electro capacitor can be added, 10uF and that is it, also not very big.

 

Let's hope this will work.:joystick:

Ok question..

I ran down and bought a 100uf/ 6.3volt electrolytic cap. while soldering parts on the board thru the magnifying glass I realized it said 100nF not uF. So thats the wrong cap and I should get the 100nF one right?

 

I will post some pics and share. I have order the network resistors but I did sacrifice one board and built my own net resistor and like you said its ugly but I wanted to get this going so it not real bad put functional. Should I stick some vinyl tape over the bridge I made? Man it looks worst up close....:doh:

picture.php?albumid=1169&pictureid=7942

[sIGPIC][/sIGPIC]

Link to comment
Share on other sites

BTW - Nice work Debolesis, the PCB looks nice. :thumbup:

 

Thank you Sokol. It is minimum that I can do for community, I learned everything on game controllers from community and people like you who are always willing to help.

Link to comment
Share on other sites

Ok question..

I ran down and bought a 100uf/ 6.3volt electrolytic cap. while soldering parts on the board thru the magnifying glass I realized it said 100nF not uF. So thats the wrong cap and I should get the 100nF one right?

 

I will post some pics and share. I have order the network resistors but I did sacrifice one board and built my own net resistor and like you said its ugly but I wanted to get this going so it not real bad put functional. Should I stick some vinyl tape over the bridge I made? Man it looks worst up close....:doh:

 

You can use electrolytic capacitor but you must be careful with orientation since it is polarized. It doesn't matter that value is 100uF, I see problem with voltage rating of 6,3 volts. USB voltage is 5V and it will probably OK, but always put double voltage rating if you can. Smaller film capacitors have voltage rating like 50 or 63V.

 

Put something on your diy resistor net only if you think that it will touch something conductive somewhere.

Link to comment
Share on other sites

You can use electrolytic capacitor but you must be careful with orientation since it is polarized. It doesn't matter that value is 100uF, I see problem with voltage rating of 6,3 volts. USB voltage is 5V and it will probably OK, but always put double voltage rating if you can. Smaller film capacitors have voltage rating like 50 or 63V.

 

Put something on your diy resistor net only if you think that it will touch something conductive somewhere.

 

Ok Good to know. I Googled capacitors and read a bit. I realized mine was polarized. SO the idea behind having voltage doubled is that way if the power consumption is to much the cap won't go bad. I have seen bulged cap before. Any was ill stick to the design. Plus I like the idea of the ceramic ones its fail safe..

 

 

The correct capacitor is ceramic type code 104.

 

http://p.globalsources.com/IMAGES/PDT/B1084080439/Ceramic-Capacitor.jpg

 

100nF = 0.1uF

 

Thanks for the link! Almost there

[sIGPIC][/sIGPIC]

Link to comment
Share on other sites

My PCBs arrived today. Unfortunately I am still waiting for shift register chips and resistor networks.

 

Quality seems very good, it is also very small, when you look at it as a drawing in Eagle CAD it seems to be huge.

 

ykC3pdA.jpg

 

I'll post results when I have all of the components.


Edited by debolestis
Link to comment
Share on other sites

Ok so I was wondering if there is a little more in depth post on how to config shift registers in mmjoy2. The section in github doesn't really look like the same version I have on MMjoy2. Your not able to select the type of shift register your using. And is the window pane to the right of the four pull down menus labeled shift register "H/B Buttons" is where you program the button. I can get buttons to show up but no button presses is seen windows.

 

heres a pic of the board earlier I shown but complete. I had to use the Electrolyte cap. at the store there was no 104's to buy so I bought this one and checked with ohm meter which side of the wholes for cap was connected to power for polarity.100nf and 50volt.

 

 

picture.php?albumid=1169&pictureid=7962

 

Heres a pic of the little hat switches that Debolestis found I got 2 and wired them here. When I clip ohm meter to between to the I guess positive side and test each axis I have good continuity when switch is activated. picture.php?albumid=1169&pictureid=7965

 

picture.php?albumid=1169&pictureid=7966

I had taken out the grey buttons made the whole alittle bit bigger and cut and filed a plate so the switches would sit flat and I used some of those rubber feet you place on appliances and a four way cross bar to hold down the switches with nylon stand offs I have.

Thanks


Edited by Brewnix

[sIGPIC][/sIGPIC]

Link to comment
Share on other sites

The last JoySetup available is 20151118 (some Russian guys are testing a 2016 version), that match the last firmware.

 

Since MMjoy2 is a configurable and not a read to use firmware you need define in JoySetup all parameters for the new "joystick".

 

How many axis will use - from 1 to 8 (Windows limit), what type of sensor (pot's, TLE501x...)

How many buttons will use - from 0 to 96 (Windows, ad consequently games will see 32, DInput(?) limit).

 

E.G. Your joystick will use 8 buttons.

 

Depends on what pins you use on Arduino for buttons inputs this buttons can be any from 1 to 96 - these are the H/W.Buttons (hardware buttons).

This pins configuration give you flexibility specially if will use diode matrix and a lot o buttons.

 

So you need configure in right side, under "Clear sett" button that:

 

Joystick Button 1 will use the H.W.Button 1 or 15 or 57, etc.

 

Same for HAT's, e.g. Left will use H.W.Button 96, etc.

 

If you are using one CD4021, then have 8 buttons inputs, do this for each one.

 

After done use "Save settings to device" and after reboot your new joystick is ready - and can be reconfigured at any time.


Edited by Sokol1_br
Link to comment
Share on other sites

Thanks so I have the latest version MMJOY. I have pic I am by far no graphic artist but appreciate the help. SO I have loaded one throttle axis with 10k ohm pots it works. Then I added built pcb shiftreg to the promicro. I placed the CS and Miso pins in the shiftreg box. And the quantity of cd4021 next the pin. Not for sure it only goes to 4 in pull down menu. Then I added 8 buttons to the H/B Panel they appear on the joy.cpl but do not function. So I think either my CD4021 board is no functioning correctly do to my error or I am not config correctly in MMjoy. When I plug the wires into shift pcb and up load I get the Pots throttle and 8 buttons but dont lit up

Sorry pic on small I don't know how to make it zoom

 

 

picture.php?albumid=1169&pictureid=7974

 

picture.php?albumid=1169&pictureid=7973


Edited by Brewnix

[sIGPIC][/sIGPIC]

Link to comment
Share on other sites

Are buttons registered when you press them on the left 1 to 96 table? That pulldown menu next to shift registers menu is number of chips on pcb, in your case 1.

 

On upper photo are two different versions of mmjoy2.

 

Ok so I have been fiddling with it this is what it looks like now that I have uploaded I Have only uploaded 8 buttons but it shows 16 in red does that mean 16 are being pressed all at once? And are the pinouts correct in the shift register setup window?

picture.php?albumid=1169&pictureid=7975

[sIGPIC][/sIGPIC]

Link to comment
Share on other sites

You have 2 SR enabled. B3 and B1 for miso. Use just one. On the right table set mde to default value, shift turn off, timer turn off. Also on uppr photo you didn't select controller, picture of joystick is in red.

 

Ok so when you say leave mode default you mean leave it blank with the *******?

Right know the "Shift" and "Timer ON" just leaves those blank with *******?

 

To be correct, you point the SR to MISO. Which in this case is B3 on Promicro?

So I have also tried to point SR to B1 and B2 and all 8 buttons blink by them selves on MMjoy and in windows Joy.cpl. Heres a pic of my what I think the pinout should be from SR to PCB board to the promicro. Currently the way the PCB is Situated when you place a switch on the switch headers next to the Resistor network it shorts a path to ground. For the specific pin Like Button 1 would be Pin 7.

picture.php?albumid=1169&pictureid=7976

 

Other Question on the PCB there is stand alone resistor at the top of the board One side ties to VCC on the left side and other pin whole ties to pin 11 on the SR I placed a 10k Ohm resistor here cause I saw it on the board. Looking at other schematics when linking SR lets 2 SR you run the second SR "Pin3-Q8" to "Pin11 Serial in" So with the 10k ohm resistor there voltage is getting to Pin11. Should I have put resistor in there or left it empty?

 

picture.php?albumid=1169&pictureid=7977Sorry about it being small you might have to view and zoom. There a lot of time in posting and typing pics

 

I am just breaking into this electronics and learning on the fly. Trying to understand the engineering behind the build to be able to trouble shoot and also learn a program. I love the challenge!!! I Appreciate the help! Thanks!


Edited by Brewnix

[sIGPIC][/sIGPIC]

Link to comment
Share on other sites

OK, please download latest firmware, HERE. Click "viev raw" and download starts.

 

9ZGK8Nr.jpg

 

1.) Select device, joystick image to the left will turn blue

2.) Assign CS and MISO. This is in new version of MMjoy2, in older versions, MISO was B2 by default. CLK goes to B1. In upper example I assigned CS to D3 and MISO to D2. You can select other pins if you want to. Also select 4021 for Shift register and number of chips to 1.

3.) Click save sets to device. Device will reboot. Wait for a few seconds and again select device, joystick must turn blue.

4.) Than you can start pressing switches, and you should (if I made PCB correctly) see switch presses on switch table (1-96).

5.) Assign switches to buttons in table on the right. I made example with 3 switches. Switch press 04 on the left table I assigned to button 3 on the right table, MODE, SHIFT and TIMER ON leave as it is, it is for other functions, you'll see that later.

6.) Than save sets to device again and that should work. You can change VID/PID numbers, i think they are 4 digit HEX numbers, but with some combinations windows will not open joystick properties panel, just change until you find what works. I have more devices, I use VID 0555, and than PID 0001, 0002 for VID is same for all mad devices PID is diferent. You can change name of device if you want to.

 

Switches connections to SR:

 

SsyL9y6.jpg

 

You can connect switches individually like switch 4, or connect common wire and 3 outputs like in switches 1,2 and 3. Soldering pads in orange rectangle are all connected to GND.

 

Pin 11 is connected to that resistor. I put it there because is is like that in Thrustmaster's SR, you should leave it on PCB.

 

Please post results because I still didn't test this, I am waiting for parts to arrive from China.


Edited by debolestis
Link to comment
Share on other sites

OK, please download latest firmware, HERE. Click "viev raw" and download starts.

 

mmjoy-y_zpsgjg5n7vn.jpg

 

1.) Select device, joystick image to the left will turn blue

2.) Assign CS and MISO. This is in new version of MMjoy2, in older versions, MISO was B2 by default. CLK goes to B1. In upper example I assigned CS to D3 and MISO to D2. You can select other pins if you want to. Also select 4021 for Shift register and number of chips to 1.

3.) Click save sets to device. Device will reboot. Wait for a few seconds and again select device, joystick must turn blue.

4.) Than you can start pressing switches, and you should (if I made PCB correctly) see switch presses on switch table (1-96).

5.) Assign switches to buttons in table on the right. I made example with 3 switches. Switch press 04 on the left table I assigned to button 3 on the right table, MODE, SHIFT and TIMER ON leave as it is, it is for other functions, you'll see that later.

6.) Than save sets to device again and that should work. You can change VID/PID numbers, i think they are 4 digit HEX numbers, but with some combinations windows will not open joystick properties panel, just change until you find what works. I have more devices, I use VID 0555, and than PID 0001, 0002 for VID is same for all mad devices PID is diferent. You can change name of device if you want to.

 

Switches connections to SR:

 

mmjoy-z_zpsijyspjsa.jpg

 

You can connect switches individually like switch 4, or connect common wire and 3 outputs like in switches 1,2 and 3. Soldering pads in orange rectangle are all connected to GND.

 

Pin 11 is connected to that resistor. I put it there because is is like that in Thrustmaster's SR, you should leave it on PCB.

 

Please post results because I still didn't test this, I am waiting for parts to arrive from China.

 

 

Ok cool I got it reloaded with new firmware going to test tonight Thanks for the time. I appreciate the pictures and arrows the little that I have done to show where I was at in this project,I realize it takes along time to put that together. Ill post later Thanks

[sIGPIC][/sIGPIC]

Link to comment
Share on other sites

USBD

 

6.) You can change VID/PID numbers, i think they are 4 digit HEX numbers, but with some combinations windows will not open joystick properties panel, just change until you find what works. I have more devices, I use VID 0555, and than PID 0001, 0002 for VID is same for all mad devices PID is diferent. You can change name of device if you want to.

 

BTW - This VID/PID (Vendor ID/ Product ID) numbers determine if your new "joystick" will be see in Windows Games Controllers - and in games - first or after other existant joysticks. *

 

E.G. You have a Saitek X-52 and want that your new "joystick" (Arduino+MMJoy2) appear after, so use a VID/PIND number highter that ones used by X-52.

 

You can see devices (joysticks, etc) VID/PIN numbers using the "USBDView" in JoySetup lower task bar or using in DXDiag (type in Run box), look at Input tab.

 

I usually use 0001/0001 - don't bother with hexadecimal numbers - if want that my new joystick became the first, and 9999/9999 if became the latter.

 

The only issue with this that I notice is: if you set your joystick as 0001/0001 and latter change some parameter like number of axis, the Game Controller (1) stop to see this joystick because he expect a joystick with 2 axis and they now have 4 (example).

 

So is need use different VID/PID when made changes, eg. 0002/0002 or run Regedit and erase the info for previous joystick - search be name, e.g. MMjoy2, MyJoy... etc.

 

* For modern flight games the order of joysticks in Game Contrroller don't make difference, but some old or simplified games that see only one joystick this became issue.

 

(1) Despite the Games Controller don't see due change in parameters, work in games/DView...


Edited by Sokol1_br
Link to comment
Share on other sites

BTW - This VID/PID (Vendor ID/ Product ID) numbers determine if your new "joystick" will be see in Windows Games Controllers - and in games - first or after other existant joysticks. *

 

E.G. You have a Saitek X-52 and want that your new "joystick" (Arduino+MMJoy2) appear after, so use a VID/PIND number highter that ones used by X-52.

 

You can see devices (joysticks, etc) VID/PIN numbers using the "USBDView" in JoySetup lower task bar or using in DXDiag (type in Run box), look at Input tab.

 

I usually use 0001/0001 - don't bother with hexadecimal numbers - if want that my new joystick became the first, and 9999/9999 if became the latter.

 

The only issue with this that I notice is: if you set your joystick as 0001/0001 and latter change some parameter like number of axis, the Game Controller (1) stop to see this joystick because he expect a joystick with 2 axis and they now have 4 (example).

 

So is need use different VID/PID when made changes, eg. 0002/0002 or run Regedit and erase the info for previous joystick - search be name, e.g. MMjoy2, MyJoy... etc.

 

* For modern flight games the order of joysticks in Game Contrroller don't make difference, but some old or simplified games that see only one joystick this became issue.

 

(1) Despite the Games Controller don't see due change in parameters, work in games/DView...

 

So I understand alittle of what your saying if I load a joystick with x and y axis but later added a throttle and slider I would have to change the vid and pid cause technically it would be a different device? So I currently didn't change any of those numbers cause I didn't know anything about them. After downloading the new firmware from version 20151118 I set up 2 axis and 2 buttons for test trial the vid and pid were the same I just put a new USB Name. Right now they are vid8888 PID8888. So set it up and hit Saves set to device and I think it bricked the Promicro. It doesn't show its connected or do you hear the bump noise when you plug a USB device in. I never got the restart device now window from MMJoy after I loaded the set in the chip. When I press the RST and GRD twice it does boot into bootloader mode for the 8 seconds shows me the com7 in device manager.but shuts off and nothing in mmjoy USB lists. SO do you think there is conflict with the vid pid numbers in Registry that caused it brick.;Maybe I need to remove form registry start over. So currently I am trying to figure out if I can unbrick it I do have a spare but I want to see if I can undo my mistake first. There seems to be a few ways to unbrick them. It did take the previous firm ware upload but it still doesn't show up in the USB list of mmjoy. well going to figure it out or roll to new Promicro. Thanks!

[sIGPIC][/sIGPIC]

Link to comment
Share on other sites

No, change the VID, PID or device NAME - use up to 10 characters - numbers don't "brink" the PRO Micro.

 

Based on my experience - dont know the theories behind this VID/PID numbers - is need use different VID/PID numbers when you alter axis number (quantity), or Windows Game Controller dont see the joystick, but they still working for games or other test program.

Or instead change remove the previous joystick in Regedit before do this changes.

 

Don't use the Reset button on PRO Micro after write the firmware, unless go write a new firmware version.

 

Open the JoySetup and look if the name that you put in the new joystick appear there in dEVICE LOIST AND CONFIGURATIO, if appear select then, JoySetup dont do this automatically, and if the joystick are not selected correctly press buttons will no see be JoySetup.

 

When corrected selected the LED on top of joystick image in left upper corner in JoySetup became BLUE.

 

To start again hit the "CLEAR SETTS" button , set the pins for buttons input, axis and "SAVE SETTINGS TO DEVICE".

 

Only when quantity of axis is changed is need use different VID/PID, NAME - or remove the previous in Regedit. For buttons as I remember is not need.

Link to comment
Share on other sites

No, change the VID, PID or device NAME - use up to 10 characters - numbers don't "brink" the PRO Micro.

 

Based on my experience - dont know the theories behind this VID/PID numbers - is need use different VID/PID numbers when you alter axis number (quantity), or Windows Game Controller dont see the joystick, but they still working for games or other test program.

Or instead change remove the previous joystick in Regedit before do this changes.

 

Don't use the Reset button on PRO Micro after write the firmware, unless go write a new firmware version.

 

Open the JoySetup and look if the name that you put in the new joystick appear there in dEVICE LOIST AND CONFIGURATIO, if appear select then, JoySetup dont do this automatically, and if the joystick are not selected correctly press buttons will no see be JoySetup.

 

When corrected selected the LED on top of joystick image in left upper corner in JoySetup became BLUE.

 

To start again hit the "CLEAR SETTS" button , set the pins for buttons input, axis and "SAVE SETTINGS TO DEVICE".

 

Only when quantity of axis is changed is need use different VID/PID, NAME - or remove the previous in Regedit. For buttons as I remember is not need.

 

No I don't see the new name or the old name in the Device List Configuration. When I plug promicro in it acts like its connected I hear the boink noise but it does not populate in the Joysetup program. So I can't select it. So I have looked in Regedit but i don't see the name that I remember it being what it was vid-8888 pid-8888 and MMjoy2 or the name I put in there with the same vid and pid x55hybrid.

How about the clear registry button on the firmware page? Can I hit that or will that clear all the joysticks I have in there? Which wouldn't be problem just got to remove equipment hit clear reg and then reinstall all equipment?

So If I reset the pro micro and can't see it in the device list to select it does it still install the firmware to promicro with out selecting it? Thanks

 

EDIT0- Ok so I found that section of registry where I see the name

picture.php?albumid=1169&pictureid=7983


Edited by Brewnix

[sIGPIC][/sIGPIC]

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...