All, this is a bit of a departure from my flight sim related stuff and pertains to the fact that my rig, ultimately, is a multi purpose one.
One of the problems that I had was that I made a number of generic switch panels, which had fixed labels. This meant that if I assigned a control in one game, but used the same button for another control in another game, the labeling was wrong for one of them.
As a result I have designed and actually built a panel based on OLEDs that you can use when making custom button / encoder panels for universal use. Essentially, you can make (at the moment) a panel with 7 switches which would connect to either an Arduino or button box of your choice, and then mount a 128 x 64 OLED above the switch. They connect to an Arduino and this displays a unique bitmap icon or text on each OLED, which can be different for each OLED. Using a rotary switch you can then select which game you want (and another OLED shows the game you select), and each individual OLED will then change to reflect the icon or text that represents the switch use in game.
At the moment it is limited to 7 switch input displays plus the selected game display (total 8 OLEDs due to the use of an i2C multiplexer, but apparently it would not be hard to expand that to more using additional multiplexers.
I have mine running with a four position rotary switch for my race sims, and so can switch through Assetto Corsa, Assetto Corsa Competizione, Automobilista and Automobilista 2. By exporting a 128 x 64 black and white bitmap made in MS Paint to a .c file (plenty of free online versions) then copying that into a custom .h file I have icons representing windscreen wipers, indicators, ABS, brake balance, anti-roll bars, traction control...... the list is limitless, although practically you do have to ensure the .h file doesn't get too big. However I think you could safely do 30 bmp's in the .h file, which should cover most things not dealt with elsewhere.
The way I have it uses the switch rather than encoder that's just how I initially envisaged it; it probably could be modified to use push switches or encoders
It is not high tech, the bill of material is the following
8 x 128 x 64 i2C OLED modules (ones compatible with the Adafruit1306 library, not Ug2)
1 x TCA9548A multiplexer
1 x rotary switch with minimum 2 positions
1 x 328 Arduino Nano ( the 168 ones have too little memory)
connectors and wires (I made a PCB with XH connectors)
The circuitry is pretty basic, I don't think it would be difficult for anyone with even a rudimentary knowledge of electrics and electronics to do. If you have used Arduinos before, you won't struggle,
The code is ready and working, albeit could probably do with tidying up, but I will try and edit it over the coming weeks to make it as easy as possible to modify with your own details, plus try and knock up some better instructions.
Cheers
Les
One of the problems that I had was that I made a number of generic switch panels, which had fixed labels. This meant that if I assigned a control in one game, but used the same button for another control in another game, the labeling was wrong for one of them.
As a result I have designed and actually built a panel based on OLEDs that you can use when making custom button / encoder panels for universal use. Essentially, you can make (at the moment) a panel with 7 switches which would connect to either an Arduino or button box of your choice, and then mount a 128 x 64 OLED above the switch. They connect to an Arduino and this displays a unique bitmap icon or text on each OLED, which can be different for each OLED. Using a rotary switch you can then select which game you want (and another OLED shows the game you select), and each individual OLED will then change to reflect the icon or text that represents the switch use in game.
At the moment it is limited to 7 switch input displays plus the selected game display (total 8 OLEDs due to the use of an i2C multiplexer, but apparently it would not be hard to expand that to more using additional multiplexers.
I have mine running with a four position rotary switch for my race sims, and so can switch through Assetto Corsa, Assetto Corsa Competizione, Automobilista and Automobilista 2. By exporting a 128 x 64 black and white bitmap made in MS Paint to a .c file (plenty of free online versions) then copying that into a custom .h file I have icons representing windscreen wipers, indicators, ABS, brake balance, anti-roll bars, traction control...... the list is limitless, although practically you do have to ensure the .h file doesn't get too big. However I think you could safely do 30 bmp's in the .h file, which should cover most things not dealt with elsewhere.
The way I have it uses the switch rather than encoder that's just how I initially envisaged it; it probably could be modified to use push switches or encoders
It is not high tech, the bill of material is the following
8 x 128 x 64 i2C OLED modules (ones compatible with the Adafruit1306 library, not Ug2)
1 x TCA9548A multiplexer
1 x rotary switch with minimum 2 positions
1 x 328 Arduino Nano ( the 168 ones have too little memory)
connectors and wires (I made a PCB with XH connectors)
The circuitry is pretty basic, I don't think it would be difficult for anyone with even a rudimentary knowledge of electrics and electronics to do. If you have used Arduinos before, you won't struggle,
The code is ready and working, albeit could probably do with tidying up, but I will try and edit it over the coming weeks to make it as easy as possible to modify with your own details, plus try and knock up some better instructions.
Cheers
Les