Jump to content

Switch panel programmable OLED labeling screens - DIY


lesthegrngo

Recommended Posts

All, this is a bit of a departure from my A10 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 slected 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 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 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.

 

**edit** forgot to mention, this is completely freestanding, and once done just runs off a USB charger. No need for DCS Bios or any other program

 

Cheers

 

Les


Edited by lesthegrngo
Link to comment
Share on other sites

Les,

 

This is very interesting. I've had rough similar ideas as this, but haven't gotten as far. I ended up going with a small USB touchscreen and HELIOS to basically do what you are proposing, but I still like this idea. 

 

It would be great if you put your code on Github.

 

This is my VRBox project: https://github.com/msdlogic/VR_Toggle_Box

One of the things I did that you might incorporate would be the DCSBIOS capability along with joystick emulation. It was pretty simple.

It's a lot of work to set up DCSBIOS, but it really gives you the best control over everything in the plane. It automatically switches the layout based on the aircraft you are flying. There are things you can do with DCSBIOS that you can't do with the standard input controls. For large sim pits.. DCSBIOS is the way as far as I know. Or Helios maybe.

 

I like VRBox because I fly a lot in VR and for me, I can locate the controls blind pretty well. I have some idea for refinement. It's about being able to find the controls blind.

 

Your project is interesting to me because I also fly in TrackIR and play other games that could use your sort of interface. DCSBIOS also has a capability to send indicator messages to hardware, so that you might be able to light up controls and things on your input device. It's a 2 way communication versus a joystick emulation. For example, if you could add standard bar indicators or warning lights, you could get information to display from the aircraft on the sort of multi-use display you are describing. 

 

Matt

ASUS Z390 / Intel i7-9700K / 32 GB DDR4 / 1080Ti / HP Reverb 2 / Thrustmaster WH&TPR

Heath and Allen Zedi8 / TrackIR / Momo USB monitor / Akai MPD218

Link to comment
Share on other sites

Thanks Matt

 

As this was primarily for use with other sims other than flight, the need to integrate it with DCS Bios wan't there, but of course there is nothing stopping us making a modified version with more bells and whistles to suit us. However for a fast and simple standalone solution for showing what a particular switch / encoder / button does in game for multiple games (or other programs that have inputs) it has the benefit of being simple and relatively cheap.  

 

Les

Link to comment
Share on other sites

20210223_113609.jpg

20210223_113551.jpg

 

This is just to show the OLED's working. The actual OLEDs themselves can be placed anywhere you want, although I will make a custom panel for my race sim rig. I just did a fast and dirty 3D printed fascia to show the OLEDs in place (size constraints of 3D printer meant 6  max), bear in mind they are only loosely held. Basically, as you either move the rotary switch, or press the appropriate application button, the individual OLED images change depending on the positon of the rotary switch, and you can allocate one OLED to display the app selected (like AMS2 or AMS above)

Each one of those labels is a little bitmap, really easy to make, and you can use any design or text that fits into a 128 x 64 pixel monochrome bitmap


Edited by lesthegrngo
  • Like 1
Link to comment
Share on other sites

Les,

 

That is a very impressive display. Are these touch sensitive or push buttons?

 

Electronics look interesting. Almost like a home spun board back there?

 

ASUS Z390 / Intel i7-9700K / 32 GB DDR4 / 1080Ti / HP Reverb 2 / Thrustmaster WH&TPR

Heath and Allen Zedi8 / TrackIR / Momo USB monitor / Akai MPD218

Link to comment
Share on other sites

The displays are just that; simple OLED monochrome modules (search for 0.96" OLED on fleabay, loads turn up). However by careful design you can actually use the OLED's to push on SMD switches, but it would be for light work only and I couldn't comment on longevity.

 

The PCB is indeed a DIY special, designed on Qcad and engraved on one of those 3040 chinese routers. 

 

There are TFT based solutions that do the same as this, the advantage of this is that you can range the switches where you want rather than being tied to a panel

 

Les

Link to comment
Share on other sites

Very interesting Les.

 

I have one of these momo USB monitors that I found on Ebay for $40

 

https://www.mimomonitors.com/products/mimo-vue-hd-display-um-1080c-usb-capacitive-touch

 

I use it with HELIOS. The touch screen is ok, but it's not as good as real physical buttons.

 

I have an idea of doing a switch panel "overlay" that would be attached to the MOMO screen. 

It would be a circuit board with switches and rotaries in a 3D printed or resin mold overlay with a USB interface for the switches to the PC.

The overlay would have "cutouts" in the panel that would show DCS aircraft displays like the MCDs or RWR displays.

It would probably use HELIOS to drive the displays and buttons, but it wouldn't have to use that.

It would basically be a helios display with physical buttons overlayed on the monitor.

I suppose it could be used for any game.

 

I could make a different overlay for each aircraft or game or have a general overlay that works with multiple aircraft.

 

Any thoughts on that? You've sort of inspired me with this idea. 

I have a home electronics lab and can manufacture low volume runs.

I have 3D printers and can do resin molds too.

 

Matt

 

 

 

 

 

ASUS Z390 / Intel i7-9700K / 32 GB DDR4 / 1080Ti / HP Reverb 2 / Thrustmaster WH&TPR

Heath and Allen Zedi8 / TrackIR / Momo USB monitor / Akai MPD218

Link to comment
Share on other sites

Yes, I  think you can. Let me put together some ideas, the OLED modules can be mounted with a load spreader and on a 'hinge' that allows you to tale the load paths away from the screen. It would not end up with a very low profile panel, I can't imagine that you would get away with less than 20mm thick. The other point would be a very limited switch movement, 0.6mm or less. Smaller OLEDs may actually help.

 

I'll sketch some stuff and post it,  although if you have something that reads solidworks files that will help

 

Les

Link to comment
Share on other sites

Great. I can work with Solidworks. I used to use Autodesk Fusion, but the free subscription ran out.

 

For the electronics, I used to use Altium, but I'm working with KiCAD recently. I like it.

I can sketch up a rough block diagram for the electronics that we could talk about.

 

Let me know what you come up with. I'd really like to do something with this. 

 

Matt

 

 

 

 

 

ASUS Z390 / Intel i7-9700K / 32 GB DDR4 / 1080Ti / HP Reverb 2 / Thrustmaster WH&TPR

Heath and Allen Zedi8 / TrackIR / Momo USB monitor / Akai MPD218

Link to comment
Share on other sites

Les - 

 

This is a good example of what I'm thinking:

 

https://imgur.com/gallery/dkaXGAj#fGHVICn

 

We would basically create our own Cougar MFD overlay (with more switches, etc) that would go over a monitor display.

 

Is this basically what you're thinking too? Of course, we can create the overlay to be whatever we want including the MFD switches and other game specific layouts.

 

ASUS Z390 / Intel i7-9700K / 32 GB DDR4 / 1080Ti / HP Reverb 2 / Thrustmaster WH&TPR

Heath and Allen Zedi8 / TrackIR / Momo USB monitor / Akai MPD218

Link to comment
Share on other sites

Actually, no, I was thinkning in a different direction. You may want to look over at SimHub, they have similar things to what you are proposing over there, for different games of course. The good thing is when youy use teh adruino setup they have, you can export the sketch to the arduino IDE and see how it all goes together, which would help you with this

 

Les

Link to comment
Share on other sites

Ah yes. Thanks for the info on Simhub. You are right. That is what I'm thinking of. Simhub projects are all car racing, but I can see how you could do a DCS input controller.

 

I guess that's I'm trying to do. Simhub for DCS.

 

I still like what you are doing with the OLEDs. It might be useful to use OLEDs on a "Simhub" panel.

I use arduinos where I can, but I have a ton of Atmel chips on rolls of tape.

I'd spin my own boards and use ATMEL studio to write and burn the code. I'd probably do i2c control between different circuit boards with switches, OLEDs, dials, etc.

I can do non BGA STM MCUs also. (Not too good at BGA yet!)

 

Let me know how your OLED project goes! 

ASUS Z390 / Intel i7-9700K / 32 GB DDR4 / 1080Ti / HP Reverb 2 / Thrustmaster WH&TPR

Heath and Allen Zedi8 / TrackIR / Momo USB monitor / Akai MPD218

Link to comment
Share on other sites

This looks great! I also wanted to build a button box with OLED labels, but lacked the technical skills and knowledge so opted for a lo-fi version with plastic label inserts and stickers 🙂

 

 

 

 

If programmable OLED buttons like those found on the Elgato Stream Deck ever become readily available and cheap (with a ready made software interface for changing the button graphics) I may try to put something together. 

 

Anyway, good luck and in the meantime please keep us up to date on your project.


Edited by HunchyTheHuncher

System: Intel Core i7 6700K @ 4.7GHz | Asus Sabertooth Z170 S Motherboard | Gigabyte RTX2080Ti GAMING OC 11GB | Corsair Dominator Platinum DDR4 32 GB (2 x 16 GB) @ 3200 MHz | Corsair RMi Series RM650i | DCS Installation Drive: 1TB WD Blue M.2 SSD | HP Reverb Pro

 

Sim Controls: VKB Gunfighter MkIII MCG Pro | LH VKB Kosmosima | Pro Flight Trainer Helicopter Collective | VPC Mongoos MT-50 Throttle | MFG Crosswind Pedals | 2 X Thrustmaster Cougar MFDs | 2 X Elgato Stream Decks (15 Keys)

 

[sIGPIC][/sIGPIC]

Link to comment
Share on other sites

WOW! This is incredible work! I would pay $400 for that if it had an MFD display and OLEDs. I think we can make one.

 

Your sim pit is amazing and is similar to what I'm working towards. I'll get some photos uploaded sometime.

Thank you also for releasing the STLs for all of those switches. That is a ton of work.

I also really appreciate the design here. The layouts look extremely good and compact and versatile for different planes.

 

I have an electronics design background, so I can make circuit boards and all firmware with mounted switches, rotaries, OLED, whatever.

 

We could possibly work together to adapt your control design with such circuit boards.

We could also add the OLED capabilities to your design maybe and maybe MFD touchscreen displays.

 

I'd send you the finished circuit boards ready to go if you want.

I really need someone to help that is good with the layout design. You are great at that.

 

It's very possible to do this and is exactly what I want to do with my next DCS project.

 

 

ASUS Z390 / Intel i7-9700K / 32 GB DDR4 / 1080Ti / HP Reverb 2 / Thrustmaster WH&TPR

Heath and Allen Zedi8 / TrackIR / Momo USB monitor / Akai MPD218

Link to comment
Share on other sites

  • 1 month later...
On 3/5/2021 at 1:04 PM, HunchyTheHuncher said:

This looks great! I also wanted to build a button box with OLED labels, but lacked the technical skills and knowledge so opted for a lo-fi version with plastic label inserts and stickers 🙂

 

 

 

 

If programmable OLED buttons like those found on the Elgato Stream Deck ever become readily available and cheap (with a ready made software interface for changing the button graphics) I may try to put something together. 

 

Anyway, good luck and in the meantime please keep us up to date on your project.

 

 

All those labels could be replaced by OLED displays, there are 0.87" ones that are 128 x 32 pixels that would be fine for the text in the pictures above

 

Les 

Link to comment
Share on other sites

5 hours ago, lesthegrngo said:

All those labels could be replaced by OLED displays, there are 0.87" ones that are 128 x 32 pixels that would be fine for the text in the pictures above

 

Could you provide a link to the OLED displays please? 

System: Intel Core i7 6700K @ 4.7GHz | Asus Sabertooth Z170 S Motherboard | Gigabyte RTX2080Ti GAMING OC 11GB | Corsair Dominator Platinum DDR4 32 GB (2 x 16 GB) @ 3200 MHz | Corsair RMi Series RM650i | DCS Installation Drive: 1TB WD Blue M.2 SSD | HP Reverb Pro

 

Sim Controls: VKB Gunfighter MkIII MCG Pro | LH VKB Kosmosima | Pro Flight Trainer Helicopter Collective | VPC Mongoos MT-50 Throttle | MFG Crosswind Pedals | 2 X Thrustmaster Cougar MFDs | 2 X Elgato Stream Decks (15 Keys)

 

[sIGPIC][/sIGPIC]

Link to comment
Share on other sites

  • Recently Browsing   0 members

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