The Universal Flight Simulator

Notebook

Addon Developer
Addon Developer
News Reporter
Donator
Joined
Nov 20, 2007
Messages
11,813
Reaction score
640
Points
188

Phil Smith

Donator
Donator
Joined
Jun 5, 2011
Messages
268
Reaction score
97
Points
43
Location
UK
Re your last two pics with lacing.

I managed to get Photobucket to show all my pics eventually, took a few weeks.

We used black shiny coated lacing cord, wasn't bad at it, not as many knots as yours!

https://hosting.photobucket.com/albums/k207/Notebook_04/20130521_203927_zps238ae413.jpg

Best example is vertical down left side of frame.
As you can see a few cables were added later...

Thanks, Notebook! Nice thing is it took me just an hour and an half to complete whole harness. After several failed attempts :lol:
Very cheap and reliable method of lacing. An good looking too!!


Nice board! Where is it from?? Looks like some analog synth or whatnot??

PS. Here's some info -
https://www.mathscinotes.com/wp-content/uploads/2014/01/021c99s2c08.pdf
I use a double cord lacing technique (p. 3, par. 23).

And NASA-STD-8739.4 standard "WORKMANSHIP STANDARD FOR CRIMPING, INTERCONNECTING CABLES, HARNESSES, AND WIRING (Revision A 2016-06-30)":
https://standards.nasa.gov/file/2615/download?token=2TwNY-Aq
 
Last edited:

Notebook

Addon Developer
Addon Developer
News Reporter
Donator
Joined
Nov 20, 2007
Messages
11,813
Reaction score
640
Points
188
I was taught the single-lace at college when I went back to do electronics. Was a car mechanic after I left school, electronics was more interesting.

It is an analogue synth, this one:
https://encyclotronic.com/synthesizers/maplin/eti-4600-r1429/

Like most of my projects, its complete but not finished...Needs the joysticks installing and the mains wiring made safe.
All worked last time I switched it on about 40 years ago.

Won't be doing that again, the electrolytics will have dried out, and the Tantalum capacitors will have gone short, mostly. Just waiting to sacrifice themselves to save the fuse.
 

Phil Smith

Donator
Donator
Joined
Jun 5, 2011
Messages
268
Reaction score
97
Points
43
Location
UK
I was taught the single-lace at college when I went back to do electronics. Was a car mechanic after I left school, electronics was more interesting.

It is an analogue synth, this one:
https://encyclotronic.com/synthesizers/maplin/eti-4600-r1429/

Like most of my projects, its complete but not finished...Needs the joysticks installing and the mains wiring made safe.
All worked last time I switched it on about 40 years ago.

Won't be doing that again, the electrolytics will have dried out, and the Tantalum capacitors will have gone short, mostly. Just waiting to sacrifice themselves to save the fuse.

I knew it's a synth!:lol:
Man, this's thing of beauty is the joy forever! Love it!

Wanna DIY my own some day.. or, for now, just grab my digital one and play some Pink Floyd cosmos:thumbup: :hailprobe::lol:


PS. Very nice project! With full documentation! Thank you for sharing!
 
Last edited:

Notebook

Addon Developer
Addon Developer
News Reporter
Donator
Joined
Nov 20, 2007
Messages
11,813
Reaction score
640
Points
188
You are welcome! Its a well made kit, and the fact it has the wood-work and the front panel encourages you. Took awhile but my soldering improved considerably. Wouldn't have the patience these days.

This looks good though:

https://www.soundtronics.co.uk/

Been following it in the magazine.
 

Phil Smith

Donator
Donator
Joined
Jun 5, 2011
Messages
268
Reaction score
97
Points
43
Location
UK
MFD Stuff

hey y'all!

Little update on the project.
Finally, after 150 days, next package of green square switches arrived..:facepalm::lol:
So wiring of the second primary MFD panel is done.
50209588121_59fa05e7ba_b.jpg


Also I've got rid of the original monitor front switching board (cause quality of it is just a c...p - pads came off after first resoldering) and wired directly to the panel's switching loom

All wiring (except 6 connections) of the MFD control module is competed as well.
50209865792_d98d8753ed_b.jpg

50209874752_37ee2569fe_b.jpg


So lacing them both is the next step.

Questions - is there any crosstalk possible between 3 LAN and 2 USB unshielded cables in the harness??
Could AC mains wiring affect them as well??

Cheers!
 
Last edited:

Phil Smith

Donator
Donator
Joined
Jun 5, 2011
Messages
268
Reaction score
97
Points
43
Location
UK
MFDs

Finally the big patch cable is done!
3 LANs and 2 USBs to 1 DB-37 connector. This harness provides all I/O interface for all 3 MFD screens.

50220172163_81a3775713_b.jpg


50221040742_1f4d8f0895_b.jpg


50221040767_a3ba21f846_b.jpg
 

Notebook

Addon Developer
Addon Developer
News Reporter
Donator
Joined
Nov 20, 2007
Messages
11,813
Reaction score
640
Points
188
Nice work on the Cannon D.

I rarely had to solder any of those cable-ends, but I know how time consuming they are.

We were lucky, the company was big enough to have an engineering dept. that had wiremen. And excellent they were. There must have been hundreds of cable-ends on some of the installations
 

Phil Smith

Donator
Donator
Joined
Jun 5, 2011
Messages
268
Reaction score
97
Points
43
Location
UK
Nice work on the Cannon D.

I rarely had to solder any of those cable-ends, but I know how time consuming they are.

We were lucky, the company was big enough to have an engineering dept. that had wiremen. And excellent they were. There must have been hundreds of cable-ends on some of the installations

Thank you, Notebook!
Yeah, I think this connector alone took me almost a hour to solder, including cutting pvc tube for isolation. Great thing is, that diameter of the connector shell opening is just enough for 3 ethernet and 5 unshielded usb cables - very nice fit there.
A stock wire retainer clamp was too small for the wire bundle and I've just ended up using a simple cable tie for this purpose.

PS. I remember I wanted to do my own patch panel for my home studio - serveral DB25 connectors spilt into jacks and XLRs for simple plug and play solution, but this idea never realized, cause I had to cut my "studio budget" back then.. xD
 

Phil Smith

Donator
Donator
Joined
Jun 5, 2011
Messages
268
Reaction score
97
Points
43
Location
UK
Little update on MFD panels.
I'm finally done with painting 3d printed stuff!
50515513536_0a9813bee1_b.jpg

Three loose wires at the bottom are for future brightness control knob.

Also I decided to cover all enclosure from the inside with aluminum foil providing some shielding - now it looks more like real space electronics xD
(However, in real life space gear, you shall never put AC power lines near signal harness. It should be shilded separatelly and placed at least 1 inch apart. Here we have no analog signals, just digital 1s and 0s, so she'll be fine :) )
50514799223_b1c92d9bb8_b.jpg

50515513576_28ff2be7fa_b.jpg


And some panel testing (backlight at full brightness):
50515679437_28bf962fb2_b.jpg


All three panels work as designed and screen update rate is satisfactory - I can perform maneuvers without looking at main monitor.
However input keypads are mess right now - they work fine separately when one panel with 2 mfds is active, but together keypad from mfd1 controls for example mfd 2 and 3 in some chaotic manner. I guess this is because Kamaz wrote VNCMFD addon just for pair of MFD, and when you plug another pair - it goes haywire.

Being a game controller in windows all key presses register as intended with no signs of crosstalk, so it's definitely VNCMFD addon issue.
 
Last edited:

JDat

Active member
Joined
Sep 6, 2010
Messages
105
Reaction score
74
Points
43
Hello! Really like your approach. All that cables and connectors...

I am also got idea to build MFD. I got many small analog 5'' LCD TVs with composite input . Picture is... :poop: Well, maybe I will upgrade to SPI or HDMI displays in future.

Some info that maybe, can help you:
I am using python VNC client from here:
https://github.com/shenjinti/python-vnc-viewer

Why? Because of source code, buttons, visuals and customization.
I can make custom window without borders always on top and full screen. Can hide mouse cursor.
And, most interesting: buttons.
Right now I mapped computer keyboard buttons to simulate MFD keypess. For example:
left 6 buttons are "123456" on keyboard,
right 6 buttons are "qwerty" on keyboard,
pwr,sel,mnu are "zxc" on keybord and "p" exits VNC client.
Good for testing and fine tune. Mouse also work for testing.

It works in following way: python catch keypress event, translate to screen X,Y coordinates by lookup table and send to VNC server (VNCMFC) simulated mouse click on correct X,Y coordinates. Works like charm. Lookup table must be entered manually in python code.

Todo: add physical buttons to RPi GPIO and white python code that catch GPIO buttons and translate to button (actually mouse) events for VNC server.

I m not python programmer, just learning. And, yes, Orbiter2016 work on Lubuntu 18.04 via wine!
 

Attachments

  • orbiter2016_vnc_viewer.zip
    23.7 KB · Views: 14

N_Molson

Addon Developer
Addon Developer
Donator
Joined
Mar 5, 2010
Messages
9,271
Reaction score
3,244
Points
203
Location
Toulouse
Impressive.

I second that. Very impressive. This is like black magic to me. I think I have a late 90's Thrustmaster throttle controller somewhere, I thought it was completely obsolete, but when I see that I think there still might be hope !
 

Phil Smith

Donator
Donator
Joined
Jun 5, 2011
Messages
268
Reaction score
97
Points
43
Location
UK
Hello! Really like your approach. All that cables and connectors...

I am also got idea to build MFD. I got many small analog 5'' LCD TVs with composite input . Picture is... :poop: Well, maybe I will upgrade to SPI or HDMI displays in future.

Some info that maybe, can help you:
I am using python VNC client from here:
https://github.com/shenjinti/python-vnc-viewer

Why? Because of source code, buttons, visuals and customization.
I can make custom window without borders always on top and full screen. Can hide mouse cursor.
And, most interesting: buttons.
Right now I mapped computer keyboard buttons to simulate MFD keypess. For example:
left 6 buttons are "123456" on keyboard,
right 6 buttons are "qwerty" on keyboard,
pwr,sel,mnu are "zxc" on keybord and "p" exits VNC client.
Good for testing and fine tune. Mouse also work for testing.

It works in following way: python catch keypress event, translate to screen X,Y coordinates by lookup table and send to VNC server (VNCMFC) simulated mouse click on correct X,Y coordinates. Works like charm. Lookup table must be entered manually in python code.

Todo: add physical buttons to RPi GPIO and white python code that catch GPIO buttons and translate to button (actually mouse) events for VNC server.

I m not python programmer, just learning. And, yes, Orbiter2016 work on Lubuntu 18.04 via wine!
Hi there! Long time no see! :)
Sound very interesting to me. The more I dig into the issue with the crosstalk (see my post above), the more I realize that it's an USB related problem. Thus I wanna get rid of all USB connections in the sim and replace them all with Ethernet. So your post is right on time! :D
Couple questions though.
1) Is it possible to configure the code running 4 MFD simultaneously? Each MFD has 12+3 = 15 buttons, so basically I need to map 15*4 = 60 different key combinations and assign them in the code? E.g. - For 1st MFG left 6 buttons are "123456", right 6 buttons are "qwerty". For 2nd one - left 6 buttons are "Shift+123456" and right 6 buttons are "shift+qwerty" and so on.
2) Do you have some examples interfacing with Orbiter? I'm quite good at hardware design but a noob in software :) So I'll appreciate any help there!

Thank you!

I second that. Very impressive. This is like black magic to me. I think I have a late 90's Thrustmaster throttle controller somewhere, I thought it was completely obsolete, but when I see that I think there still might be hope !
Thank you! Yeah, there's always a hope for that kinda devices!
 

JDat

Active member
Joined
Sep 6, 2010
Messages
105
Reaction score
74
Points
43
I am also more hardware (arduino) guy and noob in python.
I thing with some patience and python understanding you can make 2 MFDs with single python program. It is complicated for python noob, but with patience it is possible. I am planning to install Visual Studio Community edition and patch VNCMFD source code so server can put in clipboard all button names and other additional info.


Regarding remote control. I see following scenario: patch Remote vessel control (Rcontrol) addon source code, so it accept UDP commands from network. As result, you can build your own custom joystick with ESP32 (or whatever) and get wireless control.

Yes, it is possible to run as many MFDs ar you want. You just need to edit VNCMFC.INI I removed other MFDs while testing python VNC client.

Another solutions is to make two separate and almost similar python programs. The only difference where is keyboard characters and symbols.

Keyboard shortcuts is just proof of concept. I will change them with Raspberry Pi GPIOs. Kinda easy. I think it is possible to Shift+key without big trouble. You just need to modify key2xy (line 230+) by adding more characters, symbols and screen coordinates.
Python:
def key2xy(key):

    x = 1
    y = 1
    if key == ord("1"):
        x = 20
        y = 25


For example: look on line 219 in code it read keyboard state. Here is SDL2 documentation about keyboard events. https://wiki.libsdl.org/SDL_Keysym
Python:
x,y = key2xy(event.key.keysym.sym)

Hope all line numbers are correct. If not correct, you can easy find what I am talking about.

Soon I will post code on github, so latest updates will be available as soon as I experiment with something new.
 
Last edited:

Phil Smith

Donator
Donator
Joined
Jun 5, 2011
Messages
268
Reaction score
97
Points
43
Location
UK
I am also more hardware (arduino) guy and noob in python.
I thing with some patience and python understanding you can make 2 MFDs with single python program. It is complicated for python noob, but with patience it is possible. I am planning to install Visual Studio Community edition and patch VNCMFD source code so server can put in clipboard all button names and other additional info.


Regarding remote control. I see following scenario: patch Remote vessel control (Rcontrol) addon source code, so it accept UDP commands from network. As result, you can build your own custom joystick with ESP32 (or whatever) and get wireless control.

Yes, it is possible to run as many MFDs ar you want. You just need to edit VNCMFC.INI I removed other MFDs while testing python VNC client.

Another solutions is to make two separate and almost similar python programs. The only difference where is keyboard characters and symbols.

Keyboard shortcuts is just proof of concept. I will change them with Raspberry Pi GPIOs. Kinda easy. I think it is possible to Shift+key without big trouble. You just need to modify key2xy (line 230+) by adding more characters, symbols and screen coordinates.
Python:
def key2xy(key):

    x = 1
    y = 1
    if key == ord("1"):
        x = 20
        y = 25


For example: look on line 219 in code it read keyboard state. Here is SDL2 documentation about keyboard events. https://wiki.libsdl.org/SDL_Keysym
Python:
x,y = key2xy(event.key.keysym.sym)

Hope all line numbers are correct. If not correct, you can easy find what I am talking about.

Soon I will post code on github, so latest updates will be available as soon as I experiment with something new.

Man, it would be sensational! :)
Raspberry pi 1 rev B, which I use, has just enough IO pins to drive 5 columns and 6 rows of buttons, eliminating arduino and usb once and for all :D
Please keep us updated!
 

JDat

Active member
Joined
Sep 6, 2010
Messages
105
Reaction score
74
Points
43
OK! Let's look on your situation from my point of view ak how I understand your setup:

PC with Orbiter2016+VNCMFD addon => Ethernet => Raspberry Pi with two similar PytnonVNC viewers => USB => Arduino Leonardo => physical buttons
or => USB => Disassembled keyboard => physical buttons

Some details:
PythonVNC viewers are almost similar, but with following differences:
Client1: connect to MFD 1 TCP port 35900, Client2: connect to MFD 2 TCP port 35901. Not tested, but can be done with PythonVNC client command line parameters.
Client1: keyboard shortcut assignment list1, Client2: keyboard shortcut assignment list2.


Buttons...
Theory:
Arduino Uno or Arduino Nano from RPi point of view are serial ports. So make them talk with RPi, you must add serial port code to PythonVNC viewer. Also you can access to serial port (arduino uno or nano) only from one instance. Complicated, have big chances that something goes wrong, lot of coding on python to solve problem with serial port and two PythonVNC instances.

Arduino Leonardo or Arduino micro (also arduino pro micro) are different beast. You can mane them to appear as almost any USB device. For example: keyboard, mouse, MIDI, Joystick, Serial port etc. Idea is to make Arduino Leonardo or Arduino Micro act as keyboard. RPi will think you connected USB keyboard. This is good, because you almost not need to modify PythonVNC viewer and both instances can get keyboard press. Also you can debug PythonVNC with any USB keyboard. You just need to write custom but easy code on Arduino Leonardo. Easy task.

If you don't want to mess with arduino leonardo, you can disassemble any USB keyboard and connect your buttons to correct pins on keyboard PCB. Nasty work with multimeter beeping, but can be done.

Only thing what is not tested: will both PythonVNC clients will get keyboard events if they aren't active. You now than thing when only one program or window can be active on desktop.

Also it is possible to make key scan matrix on RPi GPIO, but I had bad luck. It worked too slow for me. I will go for my bersion with GPIO, because I have enought free GPIOs. I need only 14 (6L+6R+MNU+SEL) buttons, while you need 28 buttons (two times more). MFD power button and refresh rate buttons are useless, so I don't count them and will not implement.


So, take my modified PythonVNC client, try to modify following things:
1) than window is not full screen and with specific widow width and height and correct position on LCD. You can find where is python code this is declared. This is medium level complexity.
2) make copy of code and modify keyboard shortcuts for 2nd instance. Easy.
3) run all and test
4) Fine tune VNCMFD.ini file
5) goto 3) until all works


Offtopic aka my progress:
I am using Rspberry Pi 1 Model B+. Slow on boot, but works kinda OK. Latency is acceptable for me.
Just made some ugly cutouts on 5mm komatex sheet with knife to fit buttons and my LCD. Necessary to understand dimensions and overall look before going to laser cutter or CNC. 1st conclusion: try to put MFD buttons as close to LCD as possible, otherwise gap between LCD and buttons are too big and it will look ugly.
 

Phil Smith

Donator
Donator
Joined
Jun 5, 2011
Messages
268
Reaction score
97
Points
43
Location
UK
Hey Jdat! Thank you for your detailed post!
OK! Let's look on your situation from my point of view ak how I understand your setup:

PC with Orbiter2016+VNCMFD addon => Ethernet => Raspberry Pi with two similar PytnonVNC viewers => USB => Arduino Leonardo => physical buttons
or => USB => Disassembled keyboard => physical buttons

Some details:
PythonVNC viewers are almost similar, but with following differences:
Client1: connect to MFD 1 TCP port 35900, Client2: connect to MFD 2 TCP port 35901. Not tested, but can be done with PythonVNC client command line parameters.
Client1: keyboard shortcut assignment list1, Client2: keyboard shortcut assignment list2.


Buttons...
Theory:
Arduino Uno or Arduino Nano from RPi point of view are serial ports. So make them talk with RPi, you must add serial port code to PythonVNC viewer. Also you can access to serial port (arduino uno or nano) only from one instance. Complicated, have big chances that something goes wrong, lot of coding on python to solve problem with serial port and two PythonVNC instances.

Arduino Leonardo or Arduino micro (also arduino pro micro) are different beast. You can mane them to appear as almost any USB device. For example: keyboard, mouse, MIDI, Joystick, Serial port etc. Idea is to make Arduino Leonardo or Arduino Micro act as keyboard. RPi will think you connected USB keyboard. This is good, because you almost not need to modify PythonVNC viewer and both instances can get keyboard press. Also you can debug PythonVNC with any USB keyboard. You just need to write custom but easy code on Arduino Leonardo. Easy task.

If you don't want to mess with arduino leonardo, you can disassemble any USB keyboard and connect your buttons to correct pins on keyboard PCB. Nasty work with multimeter beeping, but can be done.

Only thing what is not tested: will both PythonVNC clients will get keyboard events if they aren't active. You now than thing when only one program or window can be active on desktop.

Also it is possible to make key scan matrix on RPi GPIO, but I had bad luck. It worked too slow for me. I will go for my bersion with GPIO, because I have enought free GPIOs. I need only 14 (6L+6R+MNU+SEL) buttons, while you need 28 buttons (two times more). MFD power button and refresh rate buttons are useless, so I don't count them and will not implement.


So, take my modified PythonVNC client, try to modify following things:
1) than window is not full screen and with specific widow width and height and correct position on LCD. You can find where is python code this is declared. This is medium level complexity.
2) make copy of code and modify keyboard shortcuts for 2nd instance. Easy.
3) run all and test
4) Fine tune VNCMFD.ini file
5) goto 3) until all works


Offtopic aka my progress:
I am using Rspberry Pi 1 Model B+. Slow on boot, but works kinda OK. Latency is acceptable for me.
Just made some ugly cutouts on 5mm komatex sheet with knife to fit buttons and my LCD. Necessary to understand dimensions and overall look before going to laser cutter or CNC. 1st conclusion: try to put MFD buttons as close to LCD as possible, otherwise gap between LCD and buttons are too big and it will look ugly.

I'd like to eliminate all USB devices if possible (right now i've been using Leonardo boards for keypad control), cause they are quite prone to crosstalking, signal degradation and EMI.. Using the same raspberry GPIO pins would be ideal. So basically you send key presses via LAN, and on master PC you convert them into serial command for VNCMFD (using some script and changing addon's source code) . I hope it's not hard to implement..

OK! Let's look on your situation from my point of view ak how I understand your setup:

PC with Orbiter2016+VNCMFD addon => Ethernet => Raspberry Pi with two similar PytnonVNC viewers => USB => Arduino Leonardo => physical buttons or => USB => Disassembled keyboard => physical buttons
You're correct - my current setup is - PC with Orbiter2016+VNCMFD addon => Ethernet => Raspberry Pi with two similar PytnonVNC viewers => USB => Arduino Leonardo => physical buttons.
With USB heavy wire shielding is mandatory.

Also it is possible to make key scan matrix on RPi GPIO, but I had bad luck. It worked too slow for me. I will go for my bersion with GPIO, because I have enought free GPIOs. I need only 14 (6L+6R+MNU+SEL) buttons, while you need 28 buttons (two times more). MFD power button and refresh rate buttons are useless, so I don't count them and will not implement.
I need 11 GPIO pins for one MFD panel - 5 columns and 6 rows. I dont use refresh button either, but power button is simply hardwired to monitor on/off switch.

Offtopic aka my progress:
I am using Rspberry Pi 1 Model B+. Slow on boot, but works kinda OK. Latency is acceptable for me.
Just made some ugly cutouts on 5mm komatex sheet with knife to fit buttons and my LCD. Necessary to understand dimensions and overall look before going to laser cutter or CNC. 1st conclusion: try to put MFD buttons as close to LCD as possible, otherwise gap between LCD and buttons are too big and it will look ugly.
The gap between screen edge and button row is determined by the outlines of the monitor case. I have not found good small buttons with positive click, so I've uses these ones with extra spring for setting activating force around 10N.
 

JDat

Active member
Joined
Sep 6, 2010
Messages
105
Reaction score
74
Points
43
No, key press event go thru VNC protocol over Ethernet. No need for additional cables between hardware RPi MFD and PC, only ethernet or, if someone really want, WiFi. No need for additional serial conversation. Magic happens in python code and in VNCMFD plugin. With my modifications python code translate all necessary things.

USB is an option between RPi and physical buttons. Long time ago I had bad experience with RPi and matrix keypad. It was terribly slow. Maybe nowdays people made something with libraries and things work better. Just fount this article: https://learn.adafruit.com/matrix-keypad/python-circuitpython I will test it on one day. Maybe this is solution both for me and for you. Yes, I am lazy and every wire soldering matters.

Just created github repository: https://github.com/JDat/orbitervncclient
Will update it from time to time.

I am using these buttons: https://www.tme.eu/en/details/ps15bbk/standard-switches/ninigi/
 

Phil Smith

Donator
Donator
Joined
Jun 5, 2011
Messages
268
Reaction score
97
Points
43
Location
UK
No, key press event go thru VNC protocol over Ethernet. No need for additional cables between hardware RPi MFD and PC, only ethernet or, if someone really want, WiFi. No need for additional serial conversation. Magic happens in python code and in VNCMFD plugin. With my modifications python code translate all necessary things.

USB is an option between RPi and physical buttons. Long time ago I had bad experience with RPi and matrix keypad. It was terribly slow. Maybe nowdays people made something with libraries and things work better. Just fount this article: https://learn.adafruit.com/matrix-keypad/python-circuitpython I will test it on one day. Maybe this is solution both for me and for you. Yes, I am lazy and every wire soldering matters.

Just created github repository: https://github.com/JDat/orbitervncclient
Will update it from time to time.

I am using these buttons: https://www.tme.eu/en/details/ps15bbk/standard-switches/ninigi/
Oh, I see, so basically I hook up all physical buttons to Arduino Leonardo (as I do now) and connect it via short USB cable to Raspberry pi, instead of running long one to the PC. As I plan to design and use shielded boxes for raspberry and arduino, as well as a short shielded usb cable, it should be sufficient to eliminate EMI.

Thanks for the links!

Do these buttons have a tactile click?
If you need help in hardware design of MFD cases, etc just let me know.

Cheers!
 
Top