Jump to content

MMjoy


Recommended Posts

What is MMjoy2?

 

A USB controller based on Arduino boards that work as HID controller device - or "joystick" - using Windows native drivers, is "PnP":

 

Update: MMjoy2 USB 2.0

 

Hardware needed: ~5$ Arduino PRO Micro (clone) or ~20$ Sparkfun/Teensy versions or Arduino boards (based on ATMEGA32U4). Sample:

 

12640_01a.jpg

Attention, is need the 5v version of Sparkfun board: https://www.sparkfun.com/products/12640

 

Firmware: MMjoy2 - free for non commercial use, loaded in Arduino through USB cable using the JoySetup programn. Download.

 

Tutorial for firmware upload - by Geneb(F15SIM):

 

http://www.geneb.org/mmjoy2/pro-micro-instructions.pdf

 

Sample of firmware writing using Teensy 2.0+ (very easy):

 

http://forum.il2sturmovik.com/topic/18379-teensy-20-mmjoy2-firmware-joystick-controller/

 

Features (latest firmware):

 

Up to 120 buttons (12x 10 matrix, diodes needed) - Notice 120 buttons was possible in some Arduino boards only due pinout limitation in some versions, see in links bellow.

6 encoder - adjustable times

8x 10 (1024) - 12 bits* (4096 position) axis - compatibility for digital BUS sensor "MMSens", position sensor that work like HALL sensor, but is less trick to configure, see the TLE5010 (in the links bellow).

* For axis resolution above 10 bits is need use external ADC converter (eg. MCP 3204/8, TLE5010/11.) achieving 12 bits, since the native resolution in ATMEGA32U4 mc is 10 bits.

8 way POV HAT.

 

- "Shift" (mode) function, allow a physical button press a virtual button if "shift" are ON.

- Compatibility with Shift Registers board in Tm F-22 PRO, Cougar, Warthog and Cobra M-5 grips, making use this grips "plug-and-play" or DIY Shift Register boards, eliminating the need for Diode Matrix.

- "Joystick" name, VID, PID defined be user as desired.

- Special functions for the first 32 buttons, like timer.

 

JoySetup allow you configure MMJoy as you want, even the "joystick" name, and their features, for example as "2 axis and 1(or 0) button joystick" .

 

Arduino boards compatible with MMjoy2 firmware:

 

1

 

2

 

For MMJoy firmware/Configurator download see the more recently Mega_Mozg links (end of topic).

 

Related topic in Russian forums: https://forum.warthunder.ru/index.php?/topic/64234-mjoy-mjoy8-mjoy16-mmjoy/

 

In this topic skip the DIY build boards part (first posts - like here) with today available and cheap Arduino bords the DIY boards ones became obsolete/uninteresting.

 

Or: http://forum.il2sturmovik.ru/topic/4664-mmjoy2-besplatnaya-proshivka-i-soft-dlya-samodelnogo-k/

http://forum.il2sturmovik.ru/topic/2668-mmjoy2-i-cobram5/?view=findpost&p=435657&hl=%2Bmmjoy2

 

================================================================================================

Original topic - obsolete:

 

 

 

Perhaps useful for someone:

 

MMjoy is new firmware developed by MEGA_Mozg, for the old (2004) Mindaugas/Meandog project MJoy (DIY USB Controller based on ATMEL mc), that that besides original Mjoy8 or Mjoy16 boards works on "developer” board METABOARD, AVR_USB_MEGA16 and Arduino based Teensy 2.0 and Leonardo PRO Micro.

 

Is a configurable joystick firmware, after write MMJoy firmware on your board (require USB ISP programmer cable), this is recognized by Windows as USB HID device, but not as “joystick”, because since the firmware is configurable, are you that define the “joystick" parameters, to this use the program “Configurator”, via standart USB cable:

 

pg6m.jpg

 

MMJoy main features:

 

2 to 8 axis (12 bits = 4.096 points of resolution)

- Support for axis in digital mode with external ADC converter (MCP3201/MCP3202/MCP3204/MCP3208 and KМА200)

- Axis inversion in firmware

- Axis filters

- Axis auto-calibration (optional)

- Axis ZOOM mode (momentary – by button press - reduce axis response to improve precision)

- Axis STOP mode (momentary – by button press – “freeze” axis response)

 

0 to 48 buttons in momentary or toggle mode (in Windows buttons after 32 need keymapper)

 

4 encoders (each encoder take 2 button position).

 

POV HAT (8 angles)

 

User defined “joystick” name with up to 10 characters

User defined VID and PID number – this allow use more than one MMjoy on same computer without conflict, set the MMjoy joystick to be seem by Windows first or after “COTS” joystick.

Code Google project page (In Russian, but easy readable with Google Translator).

 

https://code.google.com/p/mmjoy/

 

Actually the cost of Teensy 2.0 or Leonardo PRO Micro (Chinese clones cost ~5$ in eBay) assembled boards make almost senseless D.I.Y. cards, but if whanted in above link are scheme make the PCB.

 

Heres how use axis in digital mode with external ADC:

https://code.google.com/p/mmjoy/wiki/ExtenralADC

 

Scheme for build a "MagRez" sensor board (work in similar way to HALL sensor, with some advantages) on end of page.

https://mmjoy.googlecode.com/svn/wiki/MagRez_GVL_MM_44-22.lay6

 

 

 

Sokol1


Edited by Sokol1_br
Update information.
Link to comment
Share on other sites

  • 1 year later...

I'm surprised this hasn't got more posts.

I have just minutes ago received a couple of pro-micros to have a go with MMJoy.

 

Looking forward to it, will report back.

R7 3800X - 32Gig RAM -- All SSD -- GTX1070 -- TM Warthog, MFG Crosswinds & TiR

Link to comment
Share on other sites

  • 3 months later...

MMjoy2 "pirate". :)

 

http://world.taobao.com/item/520508841650.htm?spm=a312a.7700714.0.0.0kvtmH#detail

 

Beyound the USB controller - with practical USB-B connector - the guy have:

 

Assembled TLE5010 sensor, pot's 60º.

Shift Register board

A nice toggle switch - 21mm lever, a big press switch

Nice knobs and Encoder.


Edited by Sokol1_br
Link to comment
Share on other sites

Ooo nice. How did even you find this in the first place? :)

 

In any case, my Chinese is pretty rusty. After about half hr of wrangling and talking to my credit card company to approve the purchase, the order finally went through.

 

~$23 netted me:

1 x Arduino Micro board

1 x CD4021 shift register board + cables

3 x TLE5010 board + cables

 

The reviews seems good for the items, lot of talk about the seller being helpful and patient. Now comes the waiting game.

 

I am almost done designing my cam-based gimbal, so a TLE5010 will be a nice upgrade from the existing HAL based design.

Link to comment
Share on other sites

You can't, I bought the last one :)

 

It seems like this is actually a garage operation. Just a guy making boards sold in small batches after requests from other forums.

 

There are still a few TLE5010 & CD4021 boards available though.

 

https://shop102607058.world.taobao.com/?spm=a312a.7728559.2015080705.3.tAQske

 

Ordering is pretty rough, you'd need to understand Chinese pretty well. You'd need to create a Taobao (Chinese equivalent of Ebay) account, then an Alipay (PayPal equivalent) account, then you may need to get your CC company to approve the purchase.


Edited by recoilfx
Link to comment
Share on other sites

I am just starting to work on my gimbal, can you share your design?

 

Yeah, I have a mechanical prototype working right now. Will post some pictures when I get home. If everything goes well, I may release all openscad/stl/svg files.

Link to comment
Share on other sites

That is great, thank you.

 

Here is my current prototype.

5Wm9kDe.jpg

 

 

The goals of this gimbal are:

1.) No center detent (smooth transition in the center), with lighter spring force than the Warthog

2.) Can be constructed with off the shelve and 3d printed parts

3.) Durable enough to support metal grips from Thrustmaster

4.) Size should be small enough to be desktop friendly

 

For the next prototype, I want to make this gimbal smaller. I'm waiting on smaller bearings to arrive to make this happen.

Link to comment
Share on other sites

  • 4 weeks later...

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.

Link to comment
Share on other sites

I am just designing shift register for 32 switches, I shall share it, also I shall design shield for pro micro with plenty connecting options. I was looking on ebay for pcb manufacture and it is not expensive, we'll see but all together should be cheaper than 50 $ for multiple pcbs. I am still learning eagle cad but i am getting better. If you have ideas please let me know.

Link to comment
Share on other sites

This my idea for shift register board. In this case it has only 2 4021 chips, for 16 switches total. Now I'll make PCB with 4 chips for 32 switches. I used a little different pin out for switches. On picture you can see 2x8 pin heads, 2 pins for each switch, I think it is more practical. I used resistor networks instead of individual resistors (red). Yellow is capacitor, it is on Thrustmaster's PCB so I added it as well.

 

Nice thing is that Eagle CAD can export its files to sketchup. :)

 

Tr4QRVe.jpg

 

I just need to learn how to create gerber files needed for PCB manufacture in China. There are many offers on eBay like THIS. 10 PCBs for 25$. 4021 chip costs 0,2$, in the end it is really not expensive.

 

I'll post files soon..


Edited by debolestis
Link to comment
Share on other sites

I think I finished schematics and board layout, I think I connected everything right. This is how it should look like.

 

TK2PSBT.jpg

 

cxgy270.jpg

 

Maybe I could add two mounting holes. Dimension are 85x25mm.


Edited by debolestis
Link to comment
Share on other sites

This my idea for shift register board. In this case it has only 2 4021 chips, for 16 switches total.

 

For use in old grips like F-22PRO, CH... is need more buttons, so a 3x CD4021 is ideally for this grips grip.

 

The version with 4x CD4021 = 32 buttons, the question is for what use?

 

Because with 2 wires per button result in a lot of wires...

 

BTW - In Tm shift register is used 1 pin for each button and a common +5v for each 4 pins, in case a HAT.

Link to comment
Share on other sites

For use in old grips like F-22PRO, CH... is need more buttons, so a 3x CD4021 is ideally for this grips grip.

 

The version with 4x CD4021 = 32 buttons, the question is for what use?

 

Because with 2 wires per button result in a lot of wires...

 

BTW - In Tm shift register is used 1 pin for each button and a common +5v for each 4 pins, in case a HAT.

 

My plan i to make versions with 1, 2, 3 and 4 chips. 8, 16, 24 and 32 switches.

 

Version with 3 chips is for grips like Cougar or FLCS, F22. 1 chip is enough for TM B8 grips, for Suncom 2 chips are enough. 4 chips with 32 switches can be used for button boxes, or whatever you need. Mmjoy2 supports 2 shift registers, 64 switches.

 

2 wires per switch can be used bu not necessarily.

 

eF7x4NC.jpg

 

Red pins are connected to same point, you don't have to use them all but you can if you want to. Without diodes there will be much less mess in the end, I think. It can be used like Leo Bodnar's BU0836X. Difference is that one BU0836X costs 50 pounds, for that it is possible to buy a few leonardo pro micro boards and 10 sift register boards.

 

My idea is to use dupont connectors and jumper cables. Less soldering, less mess.

 

That is my line of thinking. If you have suggestions please tell me and it can be added on the board.

 

$_12.JPG

 

$_57.JPG


Edited by debolestis
Link to comment
Share on other sites

I found this schematics, Is this OK for shift registers? I didn't test it yet.

 

1jjpD0j.gif

 

On the bottom chip, few switches are missing but they can be added like in upper chip, I think.

 

Does anybody has experience with exporting Eagle CAD files to gerber files?


Edited by debolestis
Link to comment
Share on other sites

Curious, some differences between the above scheme and one in Arduino ShiftIn :

 

- The resistors are connected in GND, in the above scheme is in +5V.

 

- The pin #11 on second CD4021 is connected to ground in the above scheme.

 

And in this scheme posted above (from il-2 Russian forum), are some additional components:

 

- A resistor in MISO input in 1st CD4021 and between MISO and +5V in the 2nd.

- A capacitor between +5V and GND (in Tm shift register board are a capacitor).


Edited by Sokol1_br
Link to comment
Share on other sites

Curious, some differences between the above scheme and one in Arduino ShiftIn :

 

- The resistors are connected in GND, in the above scheme is in +5V.

 

- The pin #11 on second CD4021 is connected to ground in the above scheme.

 

And in this scheme posted above (from il-2 Russian forum), are some additional components:

 

- A resistor in MISO input in 1st CD4021 and between MISO and +5V in the 2nd.

- A capacitor between +5V and GND (in Tm shift register board are a capacitor).

 

Do you have schematics from il2 forums? You posted board layouts.

I see that there are some differences, I'll look into it. I added a capacitor.

On TM board there are only resistor networks, no additional resistors. It works with MMjoy2 so I think they are not necessary.

Link to comment
Share on other sites

  • Recently Browsing   0 members

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