Jump to content

MMjoy


Recommended Posts

Can shift registers and and a TLE5010 sensor be daisy chained? I cannot get them to work together; the sensor stops working when the shift register board's MISO is connected with sensor. The board and sensor each have a CS pin.

i7 7700k, 32 GB RAM, GTX 1080, 500 GB NVMe m.2 SSD, Trackir 3 Pro, Gunfighter Mk I w/MCG; Mod. TM Cougar throttle and Mod. CH Pro Pedals w/Pro Micro + MMjoy2, Nostromo n52

Link to comment
Share on other sites

  • 2 weeks later...

Buttons without matrix?

 

I'm trying to set up MMJOY on a ProMicro, and am just wanting to connect a few buttons without setting up a matrix, and for some reason am baffled by it. Going by the drawings, any two capable pins are used. My question is, is anyone else using it this way? How do you configure the settings? Any help on this one would be appreciated. I can make axes work all day long, but the buttons have me stumped. Should be the other way around!

Link to comment
Share on other sites

JimRNJ

 

MMJoy2 firmware was done for connect buttons through matrix (up to 10x10), depends on used board, and "shift register"circuit, hence you can't use other method.

 

An Arduino PRO Micro support up to 6x6 matrix since have few input pins.

 

https://sites.google.com/site/mmjoyproject/_/rsrc/1472856359410/kontrollery-sovmestimye-bazovye-platy/Pins_Sparkfun%5Bpromicro%5D.PNG

 

Then, in MMJoySetup set a simple 6 x 1 matrix* - just inform what pins are used by columns and what pin is use for row. Notice that pins number are not the ones printed in Arduino board, but the ones of above scheme (don't ask why). Something like this:

 

MMjoy2-6x1.jpg

 

Or this (adjust columns and rows pins numbers in MMJoySetup):

 

MMjoy2-1x1.png

 

So you can use up to 6 buttons without use diode or have shared/crossed wires, except the row wire that is common for all 6 buttons with simple wiring.

 

Not sure if work but theoretically can try set 10x1, what allow use up to 10 buttons.

In MMJoySetup 10 is the number maximum of pins that can be used for column or row.


Edited by Sokol1_br
Link to comment
Share on other sites

  • 5 weeks later...

Hi,

 

 

Firstly thank you very much for this software and detailed instruction. I am in the process of converting an old TM F16 FLCS handle with a Teensy 2.0 to go onto my Sidewinder FFB2.

 

 

I have a question regarding how Windows sees the Teensy programmed with MMjoy2 - does it see a device with axes, even if there are only buttons allocated in MMjoy2?

 

 

The reason I ask is that I also want to use the stick in Il2 1946, but this has a limitation of four devices with Axes. I already have four devices with Axes (FFB2, CH throttle, Bodnar 836x, Saitek rudders)

 

 

Initial testing suggests that the Teensy/MMjoy2 device is not recognised in IL2, even if it's only set up as a buttonbox.

 

 

I can of course map the buttons to keystrokes with xpadder or similar, but I was hoping IL2 would recognise the direct button presses from the Teensy board (I'm concerned about introducing latency for the firing buttons!)

 

 

Thank you

 

 

MC

W10 64

I7 4790k o/c to 4.6Ghz

Asus Maximus Ranger VII

24gb DDR3 RAM @ 2133

Asus Strix 1080ti OC

ASUS ROG G-sync 27" monitor

DCS on M2 drive Samsung 960 Pro

MS FFB2 with F-16 grip

CH pro throttle

MFG Crosswind pedals

TrackIR 5

3 x Bodnar button & axis boxes

Link to comment
Share on other sites

Thank you for that quick reply, I will keep testing!

 

 

I have another question, this one is about joystick axis resolution as I am confused - do I still need an external board to support 14-bit or is this now supported within MMjoy2/teensy 2.0?

 

 

Thanks again

 

 

M

W10 64

I7 4790k o/c to 4.6Ghz

Asus Maximus Ranger VII

24gb DDR3 RAM @ 2133

Asus Strix 1080ti OC

ASUS ROG G-sync 27" monitor

DCS on M2 drive Samsung 960 Pro

MS FFB2 with F-16 grip

CH pro throttle

MFG Crosswind pedals

TrackIR 5

3 x Bodnar button & axis boxes

Link to comment
Share on other sites

Ok thank you, then I am better off using the axes on the Bodnar board as they are 12-bit native

 

 

Regards

W10 64

I7 4790k o/c to 4.6Ghz

Asus Maximus Ranger VII

24gb DDR3 RAM @ 2133

Asus Strix 1080ti OC

ASUS ROG G-sync 27" monitor

DCS on M2 drive Samsung 960 Pro

MS FFB2 with F-16 grip

CH pro throttle

MFG Crosswind pedals

TrackIR 5

3 x Bodnar button & axis boxes

Link to comment
Share on other sites

@mega_mozg_13 hello!! Thank you for your firmware!!

 

I'm using TLE5011, and MMJOY2 register about 30000 points, is it possible to use those directly and not through bit resolution selection ? Since it's limited to 14bits using almost the half of the points that TLE inputs.

 

Sorry if I can't make myself clear, my language is Spanish so my English may sound funny

Link to comment
Share on other sites

  • 3 weeks later...

I was wondering if someone with a little more knowledge of the workings of MMJoy could look over my wiring schematic (diode placement, wiring matrix, etc) and tell me if this will work with MMJoy. I want to verify before I start heating up the soldering iron. The build has 25 momentary pushbuttons, 10 SPDT momentary on-off-on switches, 5 rotary encoders, 2 3 axis joysticks with buttons, 1 ignition key with two switch positions, and 2 latching pull buttons.

 

Thank you.

 

Link to image

 

uc?export=view&id=1fTUEdWHqyNl3uBolMYcGl9sp1k1FE65I


Edited by Fihnakis
Link to comment
Share on other sites

Personally I would use shift registers for that many switches and leave the encoders connected to a button matrix. Button matrices can get very messy when connecting over a dozen or so switches.

i7 7700k, 32 GB RAM, GTX 1080, 500 GB NVMe m.2 SSD, Trackir 3 Pro, Gunfighter Mk I w/MCG; Mod. TM Cougar throttle and Mod. CH Pro Pedals w/Pro Micro + MMjoy2, Nostromo n52

Link to comment
Share on other sites

Personally I would use shift registers for that many switches and leave the encoders connected to a button matrix. Button matrices can get very messy when connecting over a dozen or so switches.
Do you know any guide how shift registers work and how they should be connected with switches?

I am planning some panels and that would be quite useful as it also requires fair number of the switches. And world of electronics and PCBs is fairly unknown to me.

Link to comment
Share on other sites

There's bits of information all over the place, try googling '74hc165 mmjoy'.

 

This topic was a lot of help for my build: https://simhq.com/forum/ubbthreads.php/topics/4362821/re-mmjoy-mmjoy2-build-your-own-usb-controller

 

My throttle project thread has two examples of homemade 74hc165 shift register boards: https://forums.eagle.ru/showthread.php?t=231145

i7 7700k, 32 GB RAM, GTX 1080, 500 GB NVMe m.2 SSD, Trackir 3 Pro, Gunfighter Mk I w/MCG; Mod. TM Cougar throttle and Mod. CH Pro Pedals w/Pro Micro + MMjoy2, Nostromo n52

Link to comment
Share on other sites

Mungo13

 

Shift Register.

 

First, you need make PCB, soldering m/c, diode, resistors and pins.

 

Then connect this Shift Register PCB in Arduino/MMjoy2 through serial connection, using 5 wires.

 

Each Shift Register chip control up to 8 buttons.

 

You can put 8 pair of pins in PCB or 8 individual pins + 1 common, so connect buttons/switches/encoders there is "PnP".

 

You can chain additional Shifter Register in first connected to MMjoy2, up to 128 buttons (16 chips).

 

Look in Debolestis "Suncom restoration" topic there, are a comprehensive how to about Shift Register (CD4021) including links for order PCB in OSPark.

 

In Arduino/MMjoy2 you can use CD4021 (same used in Thrustmaster F-16FLCS/F22RO, Cougar/Warthog/F-18 AddOn and VirPil grips) or 74HC165.

Both are cheap and do the same thing, just PCB layout is different. In MMJoy2 files package are PCB for 74HC165.

 

Diode Matrix work OK, but is PITA for diagnostic when something is connected wrong, because a fault connection affect all buttons after. And wiring looks a "cob web".


Edited by Sokol1_br
Link to comment
Share on other sites

Mungo13

 

Shift Register.

 

First, you need make PCB, soldering m/c, diode, resistors and pins.

 

Then connect this Shift Register PCB in Arduino/MMjoy2 through serial connection, using 5 wires.

 

Each Shift Register chip control up to 8 buttons.

 

You can put 8 pair of pins in PCB or 8 individual pins + 1 common, so connect buttons/switches/encoders there is "PnP".

 

You can chain additional Shifter Register in first connected to MMjoy2, up to 128 buttons (16 chips).

 

Look in Debolestis "Suncom restoration" topic there, are a comprehensive how to about Shift Register (CD4021) including links for order PCB in OSPark.

 

In Arduino/MMjoy2 you can use CD4021 (same used in Thrustmaster F-16FLCS/F22RO, Cougar/Warthog/F-18 AddOn and VirPil grips) or 74HC165.

Both are cheap and do the same thing, just PCB layout is different. In MMJoy2 files package are PCB for 74HC165.

 

Diode Matrix work OK, but is PITA for diagnostic when something is connected wrong, because a fault connection affect all buttons after. And wiring looks a "cob web".

Thanks and to all.

I am very bad at electronics thus I am trying to figure out how the things works. For original MJoy I had somewhere even plans for PCB for matrix array with some blocks to channel branches of buttons into one connector thus reducing wiring and it was readable to me. This is one step more.

 

If I use Debolestis' files and schemes (at least some of them are TM compatible - that was something I was looking for) would it be possible to connect them to Arduino/MMjoy and use provided programming of the controller board or it would require some re-work?

As for beginner it is easier to focus on one basic layout even if it is used for different controller types.

Link to comment
Share on other sites

T

I am very bad at electronics...

 

When I discover MMjoy ~2006 in (RIP) Sukhoi, I only know make weld reasonable, and that in electricity + and - can't be mixed. :)

 

But venture in make a homemade PCB, with trails traced by free hand, and solder components, and the thing work, even after I mix + and - wires and make some smoke. :lol:

 

Diode matrix scheme for MMjoy can be used in MMjoy2 - that is update of MMjoy code for cheap Arduinos, avoiding need assembly PCB like I did in 2006.

But MMjoy Diode Matrix PCB is a bit complicated, using old HDD connectors, is more easy draw new layout.

 

Weld a m/c support and 1 condenser and 8 resistor for Shift Register PCB is more easy that weld MMjoy Diode Matrix.

 

If I use Debolestis' files and schemes (at least some of them are TM compatible - that was something I was looking for) would it be possible to connect them to Arduino/MMjoy and use provided programming of the controller board or it would require some re-work?

 

Since MMjoy2 firmware support Shift Register CD4021 and 74HC165, after connect the five wires the only thing you need do is select the type used (CD or 74) in MMjoySetup and save. Very easy.


Edited by Sokol1_br
Link to comment
Share on other sites

I have been successful at getting my "button box" to work with MMJoy using a diode matrix but I am having a weird issue. MMJoy detects every switch / button press and encoder turn but I have a couple buttons that the main panel detects but anything outside of MMJoy software doesn't see it.

 

If you see in the screenshot hardware button 46 is pressed and MMJoy sees it but button tester does not, 41 should be lit up. And I'm not sure why 49 is green, it's been that way since the start but that button works fine.

 

EDIT: So I wiped everything and started over and now buttons that didn't work now work and ones that did now aren't showing up in button tester. Going to try earlier firmware release.

 

48694332218_ef5ed6c0f4_h.jpg


Edited by Fihnakis
Link to comment
Share on other sites

Just finished trying 20160818 and same problem different buttons. Not sure what I'm doing wrong. I have used my multimeter and verified every button both normal polarity and reverse to verify all diodes are blocking. Voltages look good, resistance looks great. I'm officially lost now. I'll try 20151118 later and see if that does anything.

Link to comment
Share on other sites

After many hours, it's something with MMJoy. Through trial and error I can confirm this problem I'm having only happens when I try to set up the encoders. Even just programming one encoder in makes 3 buttons not work when viewed through button tester. I've searched and I'm pretty sure I'm following the instructions correctly for setting them up so I really don't know what's going on. Any advice?

Link to comment
Share on other sites

  • Recently Browsing   0 members

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