Hi, I have printed all the parts and spent today assembling. I have uploaded the code to the Arduino Micro's however when I open the RR configurator I get 1s and 0s jumping backwards and forwards and on the analog inputs the values just run up and down and it doesnt matter what I do to with the buttons... Can you help please...
I appear to be doing something wrong. I can upload the controller files via cloud.arduino but I can not upload them via arduino when downloaded on my phone. When I do get a successful upload via cloud.arduino, and then run the configurator it says seraction. waiting on handshake. Then it times out. Any idea what I might be doing wrong?
This makes me extremely sad I missed the kickstarter. I was just about to ask what the pinout was of those connectors, but I see you beat me to it... This is brilliant.
An error appears when uploading: "Sketch uses 94514 bytes (4%) of program storage space. Maximum is 2097152 bytes. Global variables use 43296 bytes (16%) of dynamic memory, leaving 227040 bytes for local variables. Maximum is 270336 bytes. ..................... An error occurred while uploading the sketch"
That is only telling us the size of the program, not the error. I'm guessing it's something to do with built in libraries changing. Try using Arduino 1.8.x instead of 2
Hello, thanks for making this, but for me the controller only works with the configurator open. What am I doing wrong? I did commit to EEPROM and am not getting any errors in the console window.
That's odd, having the configurator open shouldn't effect whether HID signals go through. Make sure you've got the windows USB game controller thing selected when you test, it only updates when it's got attention. Other than that make sure you've got the address set to 0. If all else fails, reupload the firmware and start from scratch.
do all additional devices connect to the same two pins? SDA and SCL? (plus vcc grd) so all devices are communicating through those two pins in parallel?
No, the software can't do that, HID names are a bit tricky and are supposed to be registered. There is a way you can change it if you google around, it has to be done by playing with the Arduino boards files or something like that (haven't done it myself)
I tried this with the arduino pro micro. I see "Connecting..." on the web portal but nothing happens. So i tried installing the firmware from git hub. everything there seems to upload without a problem but the configurator doesn't load after connecting to the correct port. In CMD i see "IndexError: index out of range"
Hi, the web version won't work with Arduinos, the change to the web version was to add features I couldnt' squeeze into the puny Arduino memory. You need ot use the python version gitlab.com/realrobots/rr_configurator
@@real_robots Hey thanks for the quick reply. I tried to use the python version afterward. I got to the point in which i slelect the port in rr_configurator but the interface didn't appear. right now I think I somehow bricked two of my pro micros so I created a new problem since then. hahah
this is fantastic. are you still limited to 32 button inputs + hats? or can you exceed 32? edit:(I believe technically software can see a total of 128 button inputs per HID device but windows joystick config will only ever show you 32)
Arduino Nano can be used as a secondary device to add more inputs, but it doesn't have the hardware to be the main device and tell Windows it is an input device (HID). You need an Arduino Pro Micro for that. You can also use an ESP32 if you want to have bluetooth HID.
Does this program allow you to change the function of a switch? I am building a button box with a pro micro and using a few toggle switches but would like them to act as momentary switches for instance I would like to be able to switch the toggle on and it stay in the on position but only pulse the output. Then when I turn the toggle off that it would pulse the out put again.
It will work but I haven't tested it, I think some of the pin assignments might be different on the Leonardo as opposed to the Pro Micro. THe worst I'd expect from that is that the numbers won't match what's in my configurator and you might have a few not work at all. If you try it and are missing a few pins that you need there's probably an easy fix by just renumbering them in the firmware
it would be much better if you add functionality of button matrixes so we could have same amount of fucntionality with hotas controls of dcs planes but hey your work has lots of efforts and it seems it works flawlesly keep it up nice work
Hi! I'm building a custom controller using two arduinos, more specifically two adafruit itsybitsy 5V (atmega32u4) and I must say that so far your code and program have been very useful! I am however running into an issue when I try connecting the two arduinos together, they seem to work fine and the first appear as a USB-HID device but when I try to connect to the arduino with adress 0 using rr_configurator it throws an error and crashes. I could connect to it before I connected the two together and I can still connect to the other one with adress 1. The error I get is "most recent call last): File "ser.py", line 142, in receive File "ser.py", line 325, in decode_id_packet UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 1: invalid start byte" Any idea what this could be?
Power wise. Does the extra 5 ( as you mentioned) require any additional power? I would have thought the power requirements would be struggling with that many.
It's a good question, from memory the microcontrollers pull around 40milliamps each, so running 5 would be well within the 500ma provided by the minimum USB standard. I'll have to put one on a benchtop power supply and see what they actually pull but I'm running mine (2 bases, 2 sticks and a button box) off an unpowered usb hub with a webcam in next to it and haven't had any power troubles even with heavy use..
@@real_robots wow. Thanks for that. I think this is some of the best software I’ve seen in the Arduino world. Does it do software debugging as well. I have a couple of Frysky M9 gimbals that I’ve been playing around with (3.3v) that tend to jump about even after windows calibration. Gonna try hardware debugging after I try this software to see if it works. I love the aviator plug idea. I picked 2 sets after I saw how you linked a couple pro micros together. Very smart idea. Does the software change the name detected in windows ie arduino micro?
@@paulb36utube Those Frysky gimbals look nice, are they just potentiometers or do they have some electronics in there? They have a surprisingly small voltage range if they're just pots. The aviator plugs are great, you have to make sure to do them up tight so they don't work themselves loose but they can take some serious lateral force. I haven't worked out changing the device name in windows yet, from what I've worked out so far you can change it in the boards configuration files for Arduino.
@@real_robots ruclips.net/video/YAbi_AqF7aQ/видео.html if this helps. Been holding on this for a while. Maybe you can get it working in the program you made.
@@paulb36utube Unfortunately his trick requires going into your Arduino boards files and tweaking it so I can't really have my software doing that. I might just have to do up some nice instructions or link to some for people who have the multiple device problem. I've found a way around it for the new bluetooth HID system I've worked in so there might still be a way to do it, for USB HID I've relied on the Joystick.h library to do all that so far and the guy who makes that recommends the same trick you just linked to though.
are there any plans to add a axis-to-button function? so to put "virtual buttons" within certain ranges along an analogue axis? the main appeal for this is to wire up a buttons in series separated with resistors that connect to the analogue pin when pressed. it would allow you to add multiple momentary buttons but only requiring 3 wires and just using a single analogue input pin.
You can set an axis to a single button right now by assigning it to a button and calibrating to only range from 0-1. Unfortunately any new features are a long way off as I don't have much time to work on this project any more.
I am in the process of printing the hotas now and waiting on parts in the mail. I've already applied it to a yoke that I've made and this is AMAZING! Id like to make the throttle as well, but I'm not sure what linear rail your using. what size is it?
Not at the moment, I wrote a library that lets you code the rp2040 yourself gitlab.com/realrobots/PicoGamepad That doesn't integrate with my configurator, I'll be integrating it into my new one but haven't yet, the new one only works on esp32 at the moment. www.realrobots.net/configurator
@@real_robots Thanks for replying, hardly any youtubers do that. I was wondering if you will be creating more videos, my computer says your last upload was 1 year ago.
@@sammymiller6740 I was doing videos mostly during the pandemic and don't have heaps of time now. I'll be doing one when I get a decent number of features working in the new configurator though.
Mate this is absolutely brilliant what you have created. After years working on DIY sim racing equipment I was looking to repurpose my flightstick and modify it. This has been a godsend, all your videos are super clear and well explained. Hats off! Just wondering if there would be any issue if I were to connect another pro micro (making a dedicated hotas to work alongside my flightstick). I'm guessing it shouldn't be any but thought i'd just clarify :p
Hi Thanks for making this. Will this work with button matrixes and rotary encoders? I have almost sorted out the coding for my yoke and throttle quadrant using the joystick library, but this just makes things so much easier.
It can do button matrices and rotary encoders, I'll link the video showing how to set up matrices below. There's no instructions for encoders but you'll see in the configurator there's an encoder tab, you just choose the two encoder pins and set a key binding. ruclips.net/video/dop0SoD2XL8/видео.html
@@real_robots Yes, I just checked the latest version and It has a Matrix and Encoder tab. Didn't see that in the video. This is awesome. Thanks for the help mate.
Hi, I have a few questions about the software if you don't mind answering. Is this only for Arduino Micro? How to get more inputs? I don't see all the analog and digital pins in the list (only getting 4 analog inputs with the Leonardo board) How to clear out a board completely so RR configurator detects in as a 'New Device'? Is there a bug with Rotary encoders? I'm getting false values sometimes. left and right assignments are engaging at the same time sometimes. (might be hardware issue from my side too!) One value is staying switched on for some reason even after removing the hardware switches and reseting everything. Any idea why?
I'm not 100% sure if leonard has different pin labesl than the pro micro i tested with. The A0-3 pins aren't the only analog capable pins though, try the others with an A(x) in their GPIO in the configurator. You can revert to defaults by pressing the "revert to defaults" button. Or else to get your board to complete factory status, write a little sketch that overwrites all the EEPROM addresses back to 0. Rotary encoders generally have really bad bouncing issues unless you filter the noise with a few capacitors and resistors. Which value is staying the same?
@@real_robots Hi, the stuck values were D3 and later D6, but it's now fixed after resetting the whole board and reloading the code. I'm looking into how to fix the debouncing of the encoders. Currently it seems unusable for use as Alt or Hdg dials. But I'm still only seeing 16 GPIO in the configurator list (A0-A3 and 8 random digital pins). Leonardo board is different from the micro. Leonardo has 6 analogs( 12 if you sacrifice some digital pins) and 14 Digital pins.
Okay, i'm guessing all your issues stem from the fact I never tested on a Leonardo, I actually thought the pinout was the same. I can give you a quick fix, open up Inputs.ino and do the following. Change the numbers in line 30 to represent the leonardo pins. Make sure you use the numbers and not the A0-A3 shortcuts. Make sure whatever numbers you put in there, the same amount of numbers are left as if the array size is different it'll lead to other problems. It will still show the old, pro micro values in the configurator, just remember the order of the input pins. I think the following should work, the first 6 are the analog pins, corresponding to A0-A5. ``` int inputPins[] = {14, 15, 16, 17, 18, 19, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}; ```
Nice job! I would like to use this solution for Microsoft Flight Simulator 2020, but I can not set it correctly. I use 1 pro micro and a mega2560 board, the micro is the hid device, the mega would be the input device. I would need 12 axes but I only see 7 in the game: x, y, z, rx, ry, rz, and slider0. The other names don't work. Is there a way to see the other axes in the game? Throttle, trimming, brakes, steering, etc., can I put names in it somehow? The other mistake I noticed was that there was a bug in the analog inputs. Each potmeter works well one by one, and all analog inputs work on the panel (I tried them one at a time), but if I plug them all in, some don't detect them, some merge them with another input and set them up at the same time (like if I had connected 1 potmeter to both inputs).Can you help solve problems? Thank you
Hi, it's hard to make the HID protocol work with arbitrarily adding large amounts of analog inputs, it's not really possible to get more than 7 the way I've configured it. I think your problem with analog inputs effecting each other might be a hardware one, it could be in my software but that's not a bug that's come up before. How do you have your pots connected? To get your max number of axes you could use two devices, I think MSFS2020 takes different inputs from different controllers but I'm not sure. The other thing you could do is have things like trim be incremental rather than analog, using up/down buttons or a rotary encoder.
@@real_robots Thank you for your quick answer. Currently, there are pots on the following ports: A0, A5, A6, A7, A8, A9 and works well. But I got stuck here because the other names that the program uses are not recognized by MSFS, and I still need at least 5 axes. Browsing the Internet in the description of the joystick library, I found that the following names can work: X, Y, Z, RX, RY, RZ, Rudder, Throttle, Accelerator, Brake, Steering. If you added the assignment list to the assignment list with the missing names, the 11 axes might work (the rest could stay as it is now, just put the missing ones in it). The problem with the two separate devices is that I can't hit a micro panel because the shaft names will collide. I would like to reduce the current 4 USB ports to 1 USB port. I currently use a 3D printed throttle quadrant with 6 axis, a 3D printed Yoke with 2 axis, and a 3D printed rudder pedal with 3 axis (2 brake axis and 1 rudder axis), and a button box.
@@skullslayer87 You are right, I'd forgotten that I'd limited the number of axes available to the amount that would work with my bluetooth HID library (used by the ESP32 version of the firmware). If you want to get the full number of axes available using Matthew Heironimus you'll have to write your own code using his library though.
Is it possible to use something like the Rotary Switch Module by DFRobot that uses an analogue signal to determine which position the switch is in? trying to work out a way to use a bunch of rotary switches and buttons without needing up to 12 inputs for each rotary switch and the complex mess of wires it would create.
Great work. I am using a NodeMCU-32S (ESP32). Every thing seems OK but I can't save my config from rrconfigurator to the ESP32. Is there a particular ESP board I should be using?
Hi, that's a known bug, it happens to me on some of my ESP32 units and not on others that are the exact same type. Funnily enough I was trying to solve this problem today but couldn't get any of my test units to fail. Sorry about that but there's not really a fix for it, if you've got a second ESP32 give that one a try.
@@real_robots Thanks for your reply. I tried another ESP32 (TTGO-T8V1.7.1) but still unable to save to EEPROM. This is what I do. .. 1. Install firmware on ESP32; 2. Run rrconfigurator; 3. add button and slider and test in rrconfigurator; 4. Give a New_Device a name (ESP32_config) and commit to EEPROM. I see confirmation. 5.Reboot ESP32 board and rerun rrconfigurator, check Choose Device drop down list but DO NOT see the ESP32_config in the list. What am I doing wrong?? Could you please explain the procedure.
@@frankmentiplay8343 You're doing everything right, the name of the device won't change for your computer over HID though, the device name is only for rr_configurator. The configurator doesn't support changing hid names because it wasn't possible under the original USB HID library I used. For bluetooth there is a way around it though, before you upload the code to your ESP32 open up rr_bleHID.h and change "RealRobots Controller" on line 100 to whatever you want. It still won't save to eeprom though, it's a known bug and I still can't find a device it'll fail on so I can work it out.
@@real_robots Problem solved. I went and got a ESP32 30 pin Dev board, like the one I saw in your bluetooth video and it worked. i.e. I was able to save configs to EEPROM Thanks Regards Frank
Not in the near future, the plan for allowing more inputs was to i2c network multiple boards which you can do now, I also added button matrix support not long ago. I'll probably implement support for shift registers and i2c gpio expanders in the future but they're down the list a ways.
Hello, I have followed all the steps but when I verify the code I get an error that says "joystick.h: No such file or directory". unfortunately I can not solve the problem I have tried several times and can not get the program to load due to the failure.
You need to put the joystick.h library from MHeironimus in your arduino/libraries folder. github.com/MHeironimus/ArduinoJoystickLibrary It handles the HID communication if you're using an Arduino Pro Micro.
@@lucasromanow1688 It should definitely run on a SparkFun pro micro, it shows up as a Leonardo because they are the same chip with the same bootloader. You can try selecting the Arduino Micro board from the list but it shouldn't matter. My cheap Chinese manufactured Pro Micros are the same. Are you getting the same joystick.h error? If you are then I'd guess you haven't installed the library properly, it can be tricky. You need to get everything in git repo in that link I gave you and put in in your Documents/Arduino/libraries/Joystick folder You'll have to create the Joystick folder but the rest should already exist. You should also close and reopen the Arduino IDE so it loads all the libraries again.
@@real_robots Thank you very much for the help, I've been trying to solve the problem for many hours. I will try again all the advice and help, I hope you can solve the problem at some point
Hello, in which games does it work? I mounted my Throttle but it is not recognized in the DCS and using the Flight Simulator it does not have fine adjustment, or it is at 0% or 100%, what would be the problem?
@@benebearded If it's working well in the windows USB game controller setup then it must be the game. The values that the windows USB controller app shows are the same ones that the game should be getting. I'm not sure what's going on, can you send me a screenshot of your rr_configurator setup to realrobotshk@gmail.com
@@vtstechnologies5737 You need to upload the rr_controller firmware to your Arduino Pro Micro using the Arduino IDE www.gitlab.com/realrobots/rr_controller Then when you run the rr_configurator software on your PC you'll be able to see the values coming from every input. www.gitlab.com/realrobots/rr_configurator
THIS IS AMAZING!
Thank you for making this!
I commented on reddit but signal boosting this here too!
You are just awesome, Thank You Sir
a simple wiring diagram would have gone a long way...
Hi, I have printed all the parts and spent today assembling. I have uploaded the code to the Arduino Micro's however when I open the RR configurator I get 1s and 0s jumping backwards and forwards and on the analog inputs the values just run up and down and it doesnt matter what I do to with the buttons... Can you help please...
I think your my hero. Been working on a couple custom controllers and been fighting with coding for them for a while. Much appreciated.
I appear to be doing something wrong. I can upload the controller files via cloud.arduino but I can not upload them via arduino when downloaded on my phone. When I do get a successful upload via cloud.arduino, and then run the configurator it says seraction. waiting on handshake. Then it times out. Any idea what I might be doing wrong?
This makes me extremely sad I missed the kickstarter. I was just about to ask what the pinout was of those connectors, but I see you beat me to it... This is brilliant.
An error appears when uploading: "Sketch uses 94514 bytes (4%) of program storage space. Maximum is 2097152 bytes.
Global variables use 43296 bytes (16%) of dynamic memory, leaving 227040 bytes for local variables. Maximum is 270336 bytes.
.....................
An error occurred while uploading the sketch"
That is only telling us the size of the program, not the error.
I'm guessing it's something to do with built in libraries changing. Try using Arduino 1.8.x instead of 2
Does this work with Arduino Leonardo?
Hello, thanks for making this, but for me the controller only works with the configurator open. What am I doing wrong? I did commit to EEPROM and am not getting any errors in the console window.
That's odd, having the configurator open shouldn't effect whether HID signals go through. Make sure you've got the windows USB game controller thing selected when you test, it only updates when it's got attention. Other than that make sure you've got the address set to 0. If all else fails, reupload the firmware and start from scratch.
do all additional devices connect to the same two pins? SDA and SCL? (plus vcc grd) so all devices are communicating through those two pins in parallel?
That's right, you just need to assign each device a unique address in the configurator and you can theoretically have 255 devices working as one.
Thank You for your firmware. Does make easy to make own controllers!
Need to figure is it possible to rename device so Windows finds it with its name.
No, the software can't do that, HID names are a bit tricky and are supposed to be registered. There is a way you can change it if you google around, it has to be done by playing with the Arduino boards files or something like that (haven't done it myself)
I tried this with the arduino pro micro. I see "Connecting..." on the web portal but nothing happens. So i tried installing the firmware from git hub. everything there seems to upload without a problem but the configurator doesn't load after connecting to the correct port. In CMD i see "IndexError: index out of range"
Hi, the web version won't work with Arduinos, the change to the web version was to add features I couldnt' squeeze into the puny Arduino memory.
You need ot use the python version gitlab.com/realrobots/rr_configurator
@@real_robots Hey thanks for the quick reply. I tried to use the python version afterward. I got to the point in which i slelect the port in rr_configurator but the interface didn't appear. right now I think I somehow bricked two of my pro micros so I created a new problem since then. hahah
Is it working with old Nes controller Dpad?
Sure, those are just 4 switches, if you wire up each one the same way I wired a button in this video then it will work.
this is fantastic. are you still limited to 32 button inputs + hats? or can you exceed 32?
edit:(I believe technically software can see a total of 128 button inputs per HID device but windows joystick config will only ever show you 32)
I allow up to 128 buttons in the configurator, not sure how much software supports more than 32 though
@@real_robots wonderful! Thank you 🙏
Exactly what I wanted to hear.
Most major flight sim games will happily read the full 128 inputs per device.
hi. does it work with Arduino nano every ?
Arduino Nano can be used as a secondary device to add more inputs, but it doesn't have the hardware to be the main device and tell Windows it is an input device (HID). You need an Arduino Pro Micro for that. You can also use an ESP32 if you want to have bluetooth HID.
Does this program allow you to change the function of a switch? I am building a button box with a pro micro and using a few toggle switches but would like them to act as momentary switches for instance I would like to be able to switch the toggle on and it stay in the on position but only pulse the output. Then when I turn the toggle off that it would pulse the out put again.
Sorry no, it doesn't have that feature
@@real_robots do you have a recommendation or code to overcome this issue?
Can I use an Arduino Leonardo?
It will work but I haven't tested it, I think some of the pin assignments might be different on the Leonardo as opposed to the Pro Micro. THe worst I'd expect from that is that the numbers won't match what's in my configurator and you might have a few not work at all.
If you try it and are missing a few pins that you need there's probably an easy fix by just renumbering them in the firmware
it would be much better if you add functionality of button matrixes so we could have same amount of fucntionality with hotas controls of dcs planes but hey your work has lots of efforts and it seems it works flawlesly keep it up nice work
Thanks, a few people have asked about button matrices, I'll be adding the ability to handle them to the software hopefully within the next few months.
@@real_robots have goodluck man you are godsend
can i ask a question
You just did
This is absolutely amazing!
Hi! I'm building a custom controller using two arduinos, more specifically two adafruit itsybitsy 5V (atmega32u4) and I must say that so far your code and program have been very useful! I am however running into an issue when I try connecting the two arduinos together, they seem to work fine and the first appear as a USB-HID device but when I try to connect to the arduino with adress 0 using rr_configurator it throws an error and crashes. I could connect to it before I connected the two together and I can still connect to the other one with adress 1.
The error I get is
"most recent call last):
File "ser.py", line 142, in receive
File "ser.py", line 325, in decode_id_packet
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 1: invalid start byte"
Any idea what this could be?
It seems to work if I run the board as an Arduino Leonardo so it might not be a problem after all.
I love you man. Thanks you are a legend.
Power wise. Does the extra 5 ( as you mentioned) require any additional power? I would have thought the power requirements would be struggling with that many.
It's a good question, from memory the microcontrollers pull around 40milliamps each, so running 5 would be well within the 500ma provided by the minimum USB standard. I'll have to put one on a benchtop power supply and see what they actually pull but I'm running mine (2 bases, 2 sticks and a button box) off an unpowered usb hub with a webcam in next to it and haven't had any power troubles even with heavy use..
@@real_robots wow.
Thanks for that. I think this is some of the best software I’ve seen in the Arduino world. Does it do software debugging as well. I have a couple of Frysky M9 gimbals that I’ve been playing around with (3.3v) that tend to jump about even after windows calibration. Gonna try hardware debugging after I try this software to see if it works.
I love the aviator plug idea. I picked 2 sets after I saw how you linked a couple pro micros together. Very smart idea.
Does the software change the name detected in windows ie arduino micro?
@@paulb36utube Those Frysky gimbals look nice, are they just potentiometers or do they have some electronics in there? They have a surprisingly small voltage range if they're just pots.
The aviator plugs are great, you have to make sure to do them up tight so they don't work themselves loose but they can take some serious lateral force.
I haven't worked out changing the device name in windows yet, from what I've worked out so far you can change it in the boards configuration files for Arduino.
@@real_robots ruclips.net/video/YAbi_AqF7aQ/видео.html if this helps. Been holding on this for a while. Maybe you can get it working in the program you made.
@@paulb36utube Unfortunately his trick requires going into your Arduino boards files and tweaking it so I can't really have my software doing that. I might just have to do up some nice instructions or link to some for people who have the multiple device problem. I've found a way around it for the new bluetooth HID system I've worked in so there might still be a way to do it, for USB HID I've relied on the Joystick.h library to do all that so far and the guy who makes that recommends the same trick you just linked to though.
are there any plans to add a axis-to-button function? so to put "virtual buttons" within certain ranges along an analogue axis?
the main appeal for this is to wire up a buttons in series separated with resistors that connect to the analogue pin when pressed. it would allow you to add multiple momentary buttons but only requiring 3 wires and just using a single analogue input pin.
You can set an axis to a single button right now by assigning it to a button and calibrating to only range from 0-1.
Unfortunately any new features are a long way off as I don't have much time to work on this project any more.
I am in the process of printing the hotas now and waiting on parts in the mail. I've already applied it to a yoke that I've made and this is AMAZING! Id like to make the throttle as well, but I'm not sure what linear rail your using. what size is it?
That's MGN9R rail.
You can get the files for the throttle here
realrobots.net/files/productFiles/ThrottleBase1.zip
Can you do this with a raspberry pi pico?
Not at the moment, I wrote a library that lets you code the rp2040 yourself
gitlab.com/realrobots/PicoGamepad
That doesn't integrate with my configurator, I'll be integrating it into my new one but haven't yet, the new one only works on esp32 at the moment.
www.realrobots.net/configurator
@@real_robots Thanks for replying, hardly any youtubers do that. I was wondering if you will be creating more videos, my computer says your last upload was 1 year ago.
@@sammymiller6740 I was doing videos mostly during the pandemic and don't have heaps of time now. I'll be doing one when I get a decent number of features working in the new configurator though.
does the configurator work with rotary encoders using arduino pro micro
It does! I added that in the latest update. Grab it from www.gitlab.com/realrobots/rr_configurator
very cool!!
Mate this is absolutely brilliant what you have created. After years working on DIY sim racing equipment I was looking to repurpose my flightstick and modify it. This has been a godsend, all your videos are super clear and well explained. Hats off! Just wondering if there would be any issue if I were to connect another pro micro (making a dedicated hotas to work alongside my flightstick). I'm guessing it shouldn't be any but thought i'd just clarify :p
No problem, you can have up to 255 pro micros chained together. (Though the max I've tried is 7)
@@real_robots Fantastic! Thank you once again
Hi Thanks for making this. Will this work with button matrixes and rotary encoders? I have almost sorted out the coding for my yoke and throttle quadrant using the joystick library, but this just makes things so much easier.
It can do button matrices and rotary encoders, I'll link the video showing how to set up matrices below. There's no instructions for encoders but you'll see in the configurator there's an encoder tab, you just choose the two encoder pins and set a key binding.
ruclips.net/video/dop0SoD2XL8/видео.html
@@real_robots Yes, I just checked the latest version and It has a Matrix and Encoder tab. Didn't see that in the video. This is awesome. Thanks for the help mate.
Hi, I have a few questions about the software if you don't mind answering.
Is this only for Arduino Micro?
How to get more inputs? I don't see all the analog and digital pins in the list (only getting 4 analog inputs with the Leonardo board)
How to clear out a board completely so RR configurator detects in as a 'New Device'?
Is there a bug with Rotary encoders? I'm getting false values sometimes. left and right assignments are engaging at the same time sometimes. (might be hardware issue from my side too!)
One value is staying switched on for some reason even after removing the hardware switches and reseting everything. Any idea why?
I'm not 100% sure if leonard has different pin labesl than the pro micro i tested with. The A0-3 pins aren't the only analog capable pins though, try the others with an A(x) in their GPIO in the configurator.
You can revert to defaults by pressing the "revert to defaults" button. Or else to get your board to complete factory status, write a little sketch that overwrites all the EEPROM addresses back to 0.
Rotary encoders generally have really bad bouncing issues unless you filter the noise with a few capacitors and resistors.
Which value is staying the same?
@@real_robots Hi, the stuck values were D3 and later D6, but it's now fixed after resetting the whole board and reloading the code. I'm looking into how to fix the debouncing of the encoders. Currently it seems unusable for use as Alt or Hdg dials. But I'm still only seeing 16 GPIO in the configurator list (A0-A3 and 8 random digital pins). Leonardo board is different from the micro. Leonardo has 6 analogs( 12 if you sacrifice some digital pins) and 14 Digital pins.
Okay, i'm guessing all your issues stem from the fact I never tested on a Leonardo, I actually thought the pinout was the same. I can give you a quick fix, open up Inputs.ino and do the following.
Change the numbers in line 30 to represent the leonardo pins. Make sure you use the numbers and not the A0-A3 shortcuts. Make sure whatever numbers you put in there, the same amount of numbers are left as if the array size is different it'll lead to other problems.
It will still show the old, pro micro values in the configurator, just remember the order of the input pins.
I think the following should work, the first 6 are the analog pins, corresponding to A0-A5.
```
int inputPins[] = {14, 15, 16, 17, 18, 19, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13};
```
Nice job! I would like to use this solution for Microsoft Flight Simulator 2020, but I can not set it correctly. I use 1 pro micro and a mega2560 board, the micro is the hid device, the mega would be the input device. I would need 12 axes but I only see 7 in the game: x, y, z, rx, ry, rz, and slider0. The other names don't work. Is there a way to see the other axes in the game? Throttle, trimming, brakes, steering, etc., can I put names in it somehow? The other mistake I noticed was that there was a bug in the analog inputs. Each potmeter works well one by one, and all analog inputs work on the panel (I tried them one at a time), but if I plug them all in, some don't detect them, some merge them with another input and set them up at the same time (like if I had connected 1 potmeter to both inputs).Can you help solve problems? Thank you
Hi, it's hard to make the HID protocol work with arbitrarily adding large amounts of analog inputs, it's not really possible to get more than 7 the way I've configured it.
I think your problem with analog inputs effecting each other might be a hardware one, it could be in my software but that's not a bug that's come up before. How do you have your pots connected?
To get your max number of axes you could use two devices, I think MSFS2020 takes different inputs from different controllers but I'm not sure. The other thing you could do is have things like trim be incremental rather than analog, using up/down buttons or a rotary encoder.
@@real_robots Thank you for your quick answer. Currently, there are pots on the following ports: A0, A5, A6, A7, A8, A9 and works well. But I got stuck here because the other names that the program uses are not recognized by MSFS, and I still need at least 5 axes. Browsing the Internet in the description of the joystick library, I found that the following names can work: X, Y, Z, RX, RY, RZ, Rudder, Throttle, Accelerator, Brake, Steering. If you added the assignment list to the assignment list with the missing names, the 11 axes might work (the rest could stay as it is now, just put the missing ones in it). The problem with the two separate devices is that I can't hit a micro panel because the shaft names will collide. I would like to reduce the current 4 USB ports to 1 USB port.
I currently use a 3D printed throttle quadrant with 6 axis, a 3D printed Yoke with 2 axis, and a 3D printed rudder pedal with 3 axis (2 brake axis and 1 rudder axis), and a button box.
@@skullslayer87 You are right, I'd forgotten that I'd limited the number of axes available to the amount that would work with my bluetooth HID library (used by the ESP32 version of the firmware). If you want to get the full number of axes available using Matthew Heironimus you'll have to write your own code using his library though.
Is it possible to use something like the Rotary Switch Module by DFRobot that uses an analogue signal to determine which position the switch is in? trying to work out a way to use a bunch of rotary switches and buttons without needing up to 12 inputs for each rotary switch and the complex mess of wires it would create.
It's possible, my gui doesn't have that ability but a little block could be hard coded in that fires off button pushes based on the analog signal.
@@real_robots I'll try that and report back, when the parts finally get here that is :P
@@DriftNick sure, if you need any help with the code let me know
Great work. I am using a NodeMCU-32S (ESP32). Every thing seems OK but I can't save my config from rrconfigurator to the ESP32.
Is there a particular ESP board I should be using?
Hi, that's a known bug, it happens to me on some of my ESP32 units and not on others that are the exact same type. Funnily enough I was trying to solve this problem today but couldn't get any of my test units to fail. Sorry about that but there's not really a fix for it, if you've got a second ESP32 give that one a try.
@@real_robots Thanks for your reply. I tried another ESP32 (TTGO-T8V1.7.1) but still unable to save to EEPROM.
This is what I do. ..
1. Install firmware on ESP32; 2. Run rrconfigurator; 3. add button and slider and test in rrconfigurator; 4. Give a New_Device a name (ESP32_config) and commit to EEPROM. I see confirmation. 5.Reboot ESP32 board and rerun rrconfigurator, check Choose Device drop down list but DO NOT see the ESP32_config in the list. What am I doing wrong??
Could you please explain the procedure.
@@frankmentiplay8343 You're doing everything right, the name of the device won't change for your computer over HID though, the device name is only for rr_configurator. The configurator doesn't support changing hid names because it wasn't possible under the original USB HID library I used.
For bluetooth there is a way around it though, before you upload the code to your ESP32 open up rr_bleHID.h and change "RealRobots Controller" on line 100 to whatever you want.
It still won't save to eeprom though, it's a known bug and I still can't find a device it'll fail on so I can work it out.
@@real_robots Problem solved. I went and got a ESP32 30 pin Dev board, like the one I saw in your bluetooth video and it worked.
i.e. I was able to save configs to EEPROM
Thanks
Regards Frank
@@frankmentiplay8343 Great to hear!
there any plan for shift register support?
Not in the near future, the plan for allowing more inputs was to i2c network multiple boards which you can do now, I also added button matrix support not long ago.
I'll probably implement support for shift registers and i2c gpio expanders in the future but they're down the list a ways.
@@real_robots thank you for reply.
Hello, I have followed all the steps but when I verify the code I get an error that says "joystick.h: No such file or directory". unfortunately I can not solve the problem I have tried several times and can not get the program to load due to the failure.
You need to put the joystick.h library from MHeironimus in your arduino/libraries folder.
github.com/MHeironimus/ArduinoJoystickLibrary
It handles the HID communication if you're using an Arduino Pro Micro.
@@real_robots oh thanks a lot! im gonna try it!
@@real_robots Error again, my board is SparkFun Pro micro (but in windows is Arduino Leonardo) . Cant run the program on SparkFun pro micro
@@lucasromanow1688 It should definitely run on a SparkFun pro micro, it shows up as a Leonardo because they are the same chip with the same bootloader. You can try selecting the Arduino Micro board from the list but it shouldn't matter. My cheap Chinese manufactured Pro Micros are the same.
Are you getting the same joystick.h error? If you are then I'd guess you haven't installed the library properly, it can be tricky. You need to get everything in git repo in that link I gave you and put in in your Documents/Arduino/libraries/Joystick folder
You'll have to create the Joystick folder but the rest should already exist. You should also close and reopen the Arduino IDE so it loads all the libraries again.
@@real_robots Thank you very much for the help, I've been trying to solve the problem for many hours. I will try again all the advice and help, I hope you can solve the problem at some point
Hello, in which games does it work? I mounted my Throttle but it is not recognized in the DCS and using the Flight Simulator it does not have fine adjustment, or it is at 0% or 100%, what would be the problem?
And the rr configurator has no option in assigment of throttle or rudder as you show in the video.
@@benebearded it should work in any game that accepts joystick input as it uses standard HID.
Does it work in the Windows USB game control tester?
@@real_robots Yes on windows it works well, the bar runs from 0 to 100% smooth, but in games it works either 0% or straight to 100%
already tested with another program on arduino, and the problem is the same, goes from 0 straight to 100. can be the value of the pot? I'm using 50k
@@benebearded If it's working well in the windows USB game controller setup then it must be the game. The values that the windows USB controller app shows are the same ones that the game should be getting.
I'm not sure what's going on, can you send me a screenshot of your rr_configurator setup to realrobotshk@gmail.com
Absolutely amazing work my friend
Thanks!
@@real_robots where should i place the code to display all channels values i need back to me?
@@vtstechnologies5737 You need to upload the rr_controller firmware to your Arduino Pro Micro using the Arduino IDE
www.gitlab.com/realrobots/rr_controller
Then when you run the rr_configurator software on your PC you'll be able to see the values coming from every input.
www.gitlab.com/realrobots/rr_configurator
@@real_robots oh yea we did that already. found a few bugs when we close the program.
what i mean is . how to add my oled code to this so i can see my value that way?