I'm working on converting my first FLCS and TQS set using two "Arduino" Micro ATmega32u4 5V / 16Mhz controllers I picked up through AliExpress.
(They *say* Arduino on them but I think its safe to say that these are clones, they seem to be working though.)
I'm planning on converting my second FLCS and TQS set using a single SAM4S-XPRO but this is a little trickier due to placement reasons so I've decided to cut my teeth first using two Arduino's.
Also note that I only have the most cursory understanding of electronics and this is the first time I'm doing anything like this. So please be gentle
(I do have a programming background but me and a soldering iron is akin to giving your lightsabre to an Ewok. Neither is going to end well.)
Where I'm at right now:
1. I've created two 3-way, 1-female to 3-male splitters for both the 5V and Ground, as the Micro only has 1 pin for each there is very little space in the FLCS to put in a large breakout board.
(I've checked both splitter cables using the mutli meter and they seem to work fine (and yes, all splices are soldered and covered with electrical tape as I'm out of heat shrinks at the moment . Sure as heck won't win any awards but its sturdy and does the job!)
2. I've removed the original PCB from the FLCS, stripped the wires, crimped female DuPont connectors on them and checked each wire through continuity testing using my multi meter. All show the desired result.
3. Based on bits and pieces of information I've found online, I've wired up the Micro as such, using the below image as reference:
Green - Ground on the 3-way splitter
Yellow - MISO (2nd from top right)
Orange - SPI SCK (1st from top right)
Red - on D5 (I got the impression from various posts that it doesn't matter too much which digital axis port you put this on?)
Brown - 5V on the 3-way splitter
I'm still using the original CTS 295 pots with both the Ground and 5V on the remaining 3-way splitters and the X/Y axis on A5 and A4 respectively.
4. Based on recommendations from others, I decided to use MMJoy2 to configure and load the firmware. So I've downloaded version 20151118 and configured it as below - note that these screenshots were taken with the FLCS/Arduino disconnected:
Now as simple as MMJoy2 may be to use, I really have no idea what I'm doing here so I just made a best guess on where and how things should be configured.
Based on screenshots and info from others that I could find online I setup the MMJoy2 to use the IntSensor for the X/Y axis and 4021 for the shift register (based on KBirds photo of his FLCS stick internals) and I setup the FLCS as a 21- button stick.
(3 x 4-Way hats for TMS/DMS/CMS plus 1x 4-Way hat for POV/Trim, 1x pickle, 1x missile step, 1x pinky, 1x toggle switch, 1x trigger which should be 2-stage so... erhm 22 buttons/switches? Doesn't really matter for now).
5. I managed to load the firmware onto the Arduino and connect it and voila, my own TazzFLCS device shows up in Windows 7. Awesome except for the fact that nothing reacts to any movements or button presses in the calibration screen.
So to simplify things, I decided to hook up just a single pot on one of the axis - just to see if I can get Windows and the VKB Joystick Config tool to register movement in any axis.
I got out my multi meter and checked that the pot gets power. On the pot I register 4.30 V. If I remove the connectors, I register 4.30V on the Arduino using the 5V/Ground pins. (Should I not be seeing something closer to 5V?)
When I measure ground and the axis connector on the pot, my multi meter does show a range of ~0.80V to 3V when moving the stick along that particular axis so resistance is correctly being applied when the pot brushes are being rotated/moving along the disc.
(It was extremely akward to hold everything in my hands to the actual voltage readings aren't very accurate but my point was more that I saw the voltage correctly change as resistance increased along the pot discs when the stick was being moved.)
Not knowing anything about MMJoy2, I assume I stuffed up the config and that causes it to not correctly register the stick movements? Or is the Arduino simply outputting too low a voltage, e.g. it should be closer to 5V than 4.30V?
*** UPDATE: I just noticed that I had the Arduino hooked up to a USB hub on my desk out of sheer convenience. I hooked up the second Arduino to see if that would give me different voltage reading but no it was the same.
I then connected it to the front-panel USB on my PC and the voltage registered as 4.9V instead! So I'll try all this again but now hooked up to my PC's USB ports directly. (Front panel).
I'm very open to suggestions and improvements
At this stage I'd be over the moon to just see ANY button press and stick movement register in the Windows Calibration Screen or the VKB Joystick tester