Jump to content

DCSpy - LCD of Logitech G13 shows data from DCS planes


emc

Recommended Posts

This is thread for DSCpy:

https://www.digitalcombatsimulator.c...files/3307532/

https://github.com/emcek/dcspy

https://discord.gg/SP5Yjx3

 

dcspy

----------------

DCSpy is able to pull information from DCS aircraft and display on Logitech G-series keyboards LCD. It supports:

* Logitech device with 160x43 px (4 lines) monochrome LCD display - G13, G15 (v1 and v2) and G510

* Logitech device with 320x240 px (8 lines) full RGBA LCD display - G19

 

* F/A-18C Hornet UFC - Up Front Controller

* F-16C Viper DED - Data Entry Display

* Ka-50 Black Shark PVI-800 and autopilot channels

* F-14B Tomcat - basic support for RIO CAP

* more to come....

eqqrPB8.jpg

 

Requirements

----------------

* Python 3.8 but 3.6+ (with tcl/tk support, see installation) should be fine, please choose Windows x86-64 version, file should be python-3.8.5-amd64.exe

https://www.python.org/downloads/

* Logitech Gaming Software 9.02.65

https://support.logitech.com/software/lgs

* Logitech LCD SDK 8.57.148 extract to C:\Program Files\Logitech Gaming Software\LCDSDK_8.57.148

http://gaming.logitech.com/sdk/LCDSDK_8.57.148.zip

* DCS-BIOS 0.7.34 (or newer)

https://github.com/DCSFlightpanels/dcs-bios/releases/latest

 

Installation

----------------

Package is available on PyPI, open Command Prompt and type:

$ pip install dcspy

or use attached wheel file:

$ pip install dcspy-1.2.0-py3-none-any.whl

 

Usage

----------------

1. pip should install into you python installation directory: i.e.:

* d:\python38\dcspy_data\dcspy.ico

* d:\python38\scripts\dcspy.exe

2. You can drag and drop dcspy.exe to desktop and make shortcut (with custom icon).

3. Double click on dcspy icon or type dcspy.exe from Command Prompt.

4. LCD display should update with dcspy basic info, waiting to connect to DCS.

5. Run DCS and start any mission.

 

Contributing

------------------

* You want contribute, perfect see: contributing guide

https://github.com/emcek/dcspy/blob/master/CONTRIBUTING.md

 

Mono vs. Color

-----------------

DCSpy do not uses full potential of G19, which support full RGBA, 8-lines LCD with 7 programmable buttons. In contrast to mono devices (like G13, G15 and G510), which support mono, 4-lines LCD with only 4 buttons. Right now DCSpy use only top 4 lines of LCD and 4 buttons. Way in which actions assign to buttons for G13 (4 buttons form left to right) are mapped to G19 looks:

 

* G13 1st button -> G19 left button

* G13 2nd button -> G19 right button

* G13 3rd button -> G19 down button

* G13 4th button -> G19 up button

 

Maybe in future when settings via config file will be added, then it allowed usage all 7 buttons in G19.

 

Changelog 1.2.0:

------------------

* Simple Tkinter GUI - to sel ect your Logitech keyboard

* Support for G19 - Big thanks for BrotherBloat who makes this release possible.

He spent countless hours to share his G19 and let me troubleshoot remotely.

* F/A-18C shows Total Fuel instead of Total Internal Fuel

 

Changelog 1.1.1:

------------------

Basic support for F-14B Tomcat RIO CAP (Computer Address Panel):

* CLEAR - button 1

* S-W - button 2

* N+E - button 3

* ENTER - button 4

 

Changelog 1.1.0:

------------------

* dcspy use now UDP multicast connection do DCS-BIOS, since each TCP connection slightly increases

the amount of work that is performed inside of DCS (blocking the rest of the simulation).

* support for integer data to be fetch from DCS-BIOS - using IntegerBuffer()

* bios_data in Airplanes instances allow both StringBuffer() and IntegerBuffer()

* reformat waiting time before DCS connected

* fix Data Entry Display for F-16C Viper - DCS-BIOS 0.7.34 is required

 

Changelog 1.0.0:

------------------

* Ka-50 data from PVI-800 shows (in similar boxes) on LCD

* ProtocolParser for DCS-BIOS has new optimized state machine

* LCD SDK is re-written from scratch:

* low and high level API

* auto-loading C library during importing

* all API is type annotated and well documented

* move loading LCD C library from G13 handler

* internal:

* refactoring and rename internals of G13 handler module

* add unit tests

 

Changelog 0.9.2:

------------------

* You can drag and drop dcspy.exe to desktop and make shortcut (with custom icon)

* LCD prints current waiting time to connect to DCS

* when DCS exit from plane/mission exception is catch and handle correctly

* lots of internal changes, preparing for new features, most important:

* change structure of AircraftHandler, move subscription to DCS-BIOS changes out of planes

* update and clear methods move from G13 handler to LCD SDK

 

Changelog 0.9.1:

------------------

* G13 handler have display property to send text to LCD

* rename starting script to dcspy.exe

* starting script now show waiting time for DCS connection

* minor code optimization and refactoring

 

Changelog 0.9.0:

------------------

* based on version specelUFC v1.12.1

* added basic handling for Ka-50 PVI-800 data are received but not formatted properly

* F-16C DED should working but not 4 buttons under LCD - I don't have it so it is hard to test

* G13 handler detect 32/64 bit of Python and load correct version of LCD Logitech C library

* adding basic logging for debuging - prints on console

* all defined aircraft are detected and loaded on-the-fly during operation

* define new plane should be easy just use AircraftHandle as base class

* Python LCD SDK was clean-up

* other refactorings and code duplication removal

 

Credits

----------------

This project has been heavily inspired by https://github.com/specel/specelUFC, and I want to thank specel, the author of that project for his work and the inspiring ideas.

 

dcspy uses:

----------------

* DCS-BIOS fork by DCSFlightpanels for exporting data from DCS to local network

https://github.com/DCSFlightpanels/dcs-bios

* jboecker's parser to read data stream fr om DCS-BIOS

https://github.com/jboecker/python-dcs-bios-example


Edited by emc
update changelog

Take a look my mods :joystick: 

dcs_footer500.jpg

CPU: i7 7700 | GPU: GeForce GTX 1080 8GB DDR5 | Motherboard: ASUSTeK PRIME B250M-A | RAM: 2x16GB DDR4-2400 | Output: Kingston HyperX Cloud II | Edifier C2XD 2.1 | Controlls: Saitek X-56 Rhino | Saitek Flight Rudder Pedals | Saitek Multi/Radio/Switch Panels | Thrustmaster MFD Cougar | Elgato Stream Deck XL | OpenTrack with LaserClip | VoiceAttack with VAICOM Pro plugin

 

Link to comment
Share on other sites

  • 2 weeks later...

Hello I really would like to use my old G-15 with your program but I'm not really good at using Python and I'm not able to do that :

 

Installation

----------------

Package is available on PyPI, open Command Prompt and type:

$ pip install dcspy

or use attached wheel file:

$ pip install dcspy-1.1.0-py3-none-any.whl

 

Usage

----------------

pip should install into you python installation directory: i.e.:

* d:\python38\dcspy_data\dcspy.ico

* d:\python38\scripts\dcspy.exe

You can drag and drop dcspy.exe to desktop and make shortcut (with custom icon). After successful connect attempt, G13 display should update.

 

 

I downloaded and installed all other program but I don't know what to do with DCSPY zip file. I extract it but commands you described didn't work :(

Sorry but I'm a complete noob with that :doh:Can you tell me exactly what to do with your file please ?

[/url]All known Dynamic Campaign Engine Campaigns

Last DCE news : Crisis in PG - Blue version

Link to comment
Share on other sites

Thx for question, i should be easy to fix... I planed to get support for other Logitech keyboard but you are first to ask... anyway for now no changes should be require since G15 has the same LCD.

 

Anyway join to discord here https://discord.gg/SP5Yjx3 it will be quicker and easier to talk then exchange 1000 posts


Edited by emc

Take a look my mods :joystick: 

dcs_footer500.jpg

CPU: i7 7700 | GPU: GeForce GTX 1080 8GB DDR5 | Motherboard: ASUSTeK PRIME B250M-A | RAM: 2x16GB DDR4-2400 | Output: Kingston HyperX Cloud II | Edifier C2XD 2.1 | Controlls: Saitek X-56 Rhino | Saitek Flight Rudder Pedals | Saitek Multi/Radio/Switch Panels | Thrustmaster MFD Cougar | Elgato Stream Deck XL | OpenTrack with LaserClip | VoiceAttack with VAICOM Pro plugin

 

Link to comment
Share on other sites

Glad I could help you!

Take a look my mods :joystick: 

dcs_footer500.jpg

CPU: i7 7700 | GPU: GeForce GTX 1080 8GB DDR5 | Motherboard: ASUSTeK PRIME B250M-A | RAM: 2x16GB DDR4-2400 | Output: Kingston HyperX Cloud II | Edifier C2XD 2.1 | Controlls: Saitek X-56 Rhino | Saitek Flight Rudder Pedals | Saitek Multi/Radio/Switch Panels | Thrustmaster MFD Cougar | Elgato Stream Deck XL | OpenTrack with LaserClip | VoiceAttack with VAICOM Pro plugin

 

Link to comment
Share on other sites

Nice App with better support!!!!

 

thx.... if anything let me know!

Take a look my mods :joystick: 

dcs_footer500.jpg

CPU: i7 7700 | GPU: GeForce GTX 1080 8GB DDR5 | Motherboard: ASUSTeK PRIME B250M-A | RAM: 2x16GB DDR4-2400 | Output: Kingston HyperX Cloud II | Edifier C2XD 2.1 | Controlls: Saitek X-56 Rhino | Saitek Flight Rudder Pedals | Saitek Multi/Radio/Switch Panels | Thrustmaster MFD Cougar | Elgato Stream Deck XL | OpenTrack with LaserClip | VoiceAttack with VAICOM Pro plugin

 

Link to comment
Share on other sites

  • 2 weeks later...
Hi!

 

>>> $ pip install dcspy

File "<stdin>", line 1

$ pip install dcspy

^

SyntaxError: invalid syntax

>>>

No don't copy anything into DCS folder.

No there is no installer.

dcspy is python package available here: https://pypi.org/project/dcspy/ and it can be installed online with pip form command line

 

Did you try this way? https://github.com/emcek/dcspy#installation

looks like python/pip insn't avaliable

 

EDIT: I noticed you run 'pip install dcspy' from python, which is wrong! Open Command Prompt and enter command there!

 

or try catch me here: https://discord.gg/SP5Yjx3


Edited by emc
add info

Take a look my mods :joystick: 

dcs_footer500.jpg

CPU: i7 7700 | GPU: GeForce GTX 1080 8GB DDR5 | Motherboard: ASUSTeK PRIME B250M-A | RAM: 2x16GB DDR4-2400 | Output: Kingston HyperX Cloud II | Edifier C2XD 2.1 | Controlls: Saitek X-56 Rhino | Saitek Flight Rudder Pedals | Saitek Multi/Radio/Switch Panels | Thrustmaster MFD Cougar | Elgato Stream Deck XL | OpenTrack with LaserClip | VoiceAttack with VAICOM Pro plugin

 

Link to comment
Share on other sites

  • 1 year later...

New release: https://github.com/emcek/dcspy

* Fix alignment of DED (DCS-BIOS 0.7.41) for F-16C

 

Please download latest DCS-BIOS as well:

https://github.com/DCSFlightpanels/dcs-bios/releases/tag/0.7.41

Take a look my mods :joystick: 

dcs_footer500.jpg

CPU: i7 7700 | GPU: GeForce GTX 1080 8GB DDR5 | Motherboard: ASUSTeK PRIME B250M-A | RAM: 2x16GB DDR4-2400 | Output: Kingston HyperX Cloud II | Edifier C2XD 2.1 | Controlls: Saitek X-56 Rhino | Saitek Flight Rudder Pedals | Saitek Multi/Radio/Switch Panels | Thrustmaster MFD Cougar | Elgato Stream Deck XL | OpenTrack with LaserClip | VoiceAttack with VAICOM Pro plugin

 

Link to comment
Share on other sites

Take a look my mods :joystick: 

dcs_footer500.jpg

CPU: i7 7700 | GPU: GeForce GTX 1080 8GB DDR5 | Motherboard: ASUSTeK PRIME B250M-A | RAM: 2x16GB DDR4-2400 | Output: Kingston HyperX Cloud II | Edifier C2XD 2.1 | Controlls: Saitek X-56 Rhino | Saitek Flight Rudder Pedals | Saitek Multi/Radio/Switch Panels | Thrustmaster MFD Cougar | Elgato Stream Deck XL | OpenTrack with LaserClip | VoiceAttack with VAICOM Pro plugin

 

Link to comment
Share on other sites

  • 2 weeks later...
  • 3 weeks later...
On 9/24/2021 at 1:58 AM, Whistler_RIO said:

awesome work man.  i really relied on a this in FalconBMS on my G15 keyboard.  Im trying to get a way to break that out from the keyboard if possible, using just the LED in my pit, and this could work great for it, if i can get it working.  Thanks for sharing and keep up the good work 🙂

Thx for nice words... but I a bit do not get it... you are using DCSpy with FalconBMS?!?!?!? It is workng? Or try figure out how to addopt....  

general to get dcspy woking with falcon shouiuld be not hard... we/i/you need some tool with export falcon data over network/UDP (this is done by DCS-BIOS)

 

Edit:

check this out..... https://www.facebook.com/FalconBMS4/photos/a.298473543505522/1767453959940799/


Edited by emc

Take a look my mods :joystick: 

dcs_footer500.jpg

CPU: i7 7700 | GPU: GeForce GTX 1080 8GB DDR5 | Motherboard: ASUSTeK PRIME B250M-A | RAM: 2x16GB DDR4-2400 | Output: Kingston HyperX Cloud II | Edifier C2XD 2.1 | Controlls: Saitek X-56 Rhino | Saitek Flight Rudder Pedals | Saitek Multi/Radio/Switch Panels | Thrustmaster MFD Cougar | Elgato Stream Deck XL | OpenTrack with LaserClip | VoiceAttack with VAICOM Pro plugin

 

Link to comment
Share on other sites

new version

https://github.com/emcek/dcspy/releases/tag/v1.5.0

Changelog 1.5.0:
------------------
Support for AV-8B N/A Harrier with:
* UFC - Up Front Controller
* ODU - Option Display Unit
* decrease UFC Comm 1 Channel - G13 1st button or G19 left button
* increase UFC Comm 1 Channel - G13 2nd button or G19 right button
* decrease UFC Comm 2 Channel - G13 3rd button or G19 down button
* increase UFC Comm 2 Channel - G13 4th button or G19 up button

Changelog 1.4.0:
------------------
* Configuration editor:
   * dcsbios - se t default Logitech keyboard: "G19", "G510", "G15 v1/v2", "G13"
   * show_gui - showing or hiding GUI during start of DCSpy
   * dcsbios - location of DCS-BIOS folder inside user's Saved Games
* Check and upd ate DCS-BIOS directly from DCSpy
   * Check DCS-BIOS button in Config editor
   * dcsbios needs to be se t to correct value
* Basic A-10C Warthog and A-10C II Tank Killer support

Take a look my mods :joystick: 

dcs_footer500.jpg

CPU: i7 7700 | GPU: GeForce GTX 1080 8GB DDR5 | Motherboard: ASUSTeK PRIME B250M-A | RAM: 2x16GB DDR4-2400 | Output: Kingston HyperX Cloud II | Edifier C2XD 2.1 | Controlls: Saitek X-56 Rhino | Saitek Flight Rudder Pedals | Saitek Multi/Radio/Switch Panels | Thrustmaster MFD Cougar | Elgato Stream Deck XL | OpenTrack with LaserClip | VoiceAttack with VAICOM Pro plugin

 

Link to comment
Share on other sites

  • 1 year later...

New version v1.8.1 (December 2022)

See wiki here: https://github.com/emcek/dcspy/wiki

## 1.8.1
* Add support for Ka-50 Black Shark III
* Update footer when checking DCS-BIOS version
* Align with DCS 2.8.1.34667.2 and DCS-BIOS 0.7.47
* Internal:
  * add more unit tests
  * mark some test as DCS-BIOS tests

## 1.8.0
* Major GUI redesign using `customtkinter` package, which provides new, modern widgets:
  * Appearance system mode (`Light`, `Dark`)
  * Three colort theme (`Green`, `Blue` and `Dark Blue`)
  * All settings are configured from GUI vie widgets
  * One window for all configuration and buttons
  * Check version from GUI
  * Add configuration flag to check for new version during start

## 1.7.5
* report DCS stable version correctly in logs during start
* Internal:
  * rename starting script
  * remove usage of McCabe
  * add unit tests

## 1.7.4
* **AH-64D Apache**
  * add better support for G19 for PRE mode
  * update name from `AH64D` to `AH64DBLKII`
* Show DCS version in logs
* Fix name of plane for **F-14 Tomcat** depending on model A or B
* Toggle Start/Stop buttons
* Do not show warning when plane's name is empty
* Internal:
  * improve checking DCS-BIOS data
  * introduce enum values for parser state
  * improve CI process - add Python 3.11
  * force using Pillow 9.3.0

## 1.7.3
* Align **F-16C Viper** DED and **AH-64D Apache** EUFD with DCS-BIOS 0.7.46 changes
* Basic support for **F-14A Tomcat**

## 1.7.2
* **AH-64D Apache**
  * update name from `AH64DBLKII` to `AH64D`
  * fix display PRE mode for G19
  * fix handling buttons
* Internal:
  * update unit test for better coverage and more use-cases

## 1.7.1
* New config settings:
  * `auto_start` - run DCSpy atomically after start
  * `verbose` - show more logs in terminal/console window
* Fixing handling of `dcsbios` settings from `config.yaml`
* Start and stop buttons can be used several times without closing GUI
* **F-16C Viper**
  * replace `*` with inverse white circle character at DED
  * Fix unhandled buttons for G19 (menu, ok and cancel)
* G19 and **F/A-18C Hornet**
  * Push **Menu** and **Cancel** toggle cockpit button down, push it again toggles button up (Integrated Fuel/Engine Indicator - IFEI).
  * Add handling **Ok** as Attitude Selector Switch, INS/AUTO/STBY
* Internal:
  * use Pythonic way using temporary directory
  * speed-up tests - cache json files instead of downloading from internet
  * use Enum for LCD type
  * use Enum for LCD buttons, add to LcdInfo dataclass

## 1.7.0
* Support for **AH-64D Apache** with 3 modes:
  * `IDM` - Squeeze and shows radios frequencies (from Radio Area), IDM and RTS rocker are used to scroll down
  * `WCA` - Enter button display warnings, cautions, and advisories, WCA rocker is used to scroll down
  * `PRE` - Preset button displays the preset menu for the selected radio, WCA rocker is used to scroll down
* **F-16C Viper** DED clean-up extra characters

## 1.6.1
* Update **F-16C Viper** for latest DSC-BIOS (0.7.45)
* Fresh installation of DCS-BIOS is painless
* Drop support for Python 3.6

## 1.6.0
* use fonts in dynamic way - you can customize fonts in `config.yaml` file (see [Configuration](https://github.com/emcek/dcspy#configuration))
* usage for LCD SDK built-in LGS - no need additional package for usage
* support for Python 3.10 (use `dataclasses` internally)
* ability to stop DCSpy from GUI
* supporters are printed in welcome screen - I'm thrilled with support and help of community!

Take a look my mods :joystick: 

dcs_footer500.jpg

CPU: i7 7700 | GPU: GeForce GTX 1080 8GB DDR5 | Motherboard: ASUSTeK PRIME B250M-A | RAM: 2x16GB DDR4-2400 | Output: Kingston HyperX Cloud II | Edifier C2XD 2.1 | Controlls: Saitek X-56 Rhino | Saitek Flight Rudder Pedals | Saitek Multi/Radio/Switch Panels | Thrustmaster MFD Cougar | Elgato Stream Deck XL | OpenTrack with LaserClip | VoiceAttack with VAICOM Pro plugin

 

Link to comment
Share on other sites

Work with the EVGA LCD Boards? Z10 Keyboards?

" any failure you meet, is never a defeat; merely a set up for a greater come back, "  W Forbes

"Success is not final, failure is not fatal, it is the courage to continue that counts,"  Winston Churchill

" He who never changes his mind, never changes anything," 

MSI z690MPG DDR4 || i914900k|| ddr4-64gb PC3200 || MSI RTX 4070Ti|Game1300w|Win10x64| |turtle beach elite pro 5.1|| ViRpiL,T50cm2|| MFG Crosswinds|| VT50CM-plus rotor Throttle || G10 RGB EVGA Keyboard/MouseLogitech || PiMax Crystal VR || 32 Samsung||

Link to comment
Share on other sites

  • 10 months later...
On 1/3/2023 at 12:55 PM, 71st_Mastiff said:

Work with the EVGA LCD Boards? Z10 Keyboards?

Hi, I didn't noticed you ask question 😕
you mean this https://www.evga.com/articles/archive/01195/evga-z10-keyboard/default.asp ? 
Short answer no....
Longer...
No, because:
1. after quick search, I didn't find way to custom access to LCD itself

2. I do not have this HW, to test and check what I can do with it...  sorry  😞

Only Logitech G13G15 (v1 and v2), G510 and G19

PS. https://forums.evga.com/Z10-Keyboard-Code-to-write-text-to-the-LCD-display-m3012492.aspx


Edited by emc

Take a look my mods :joystick: 

dcs_footer500.jpg

CPU: i7 7700 | GPU: GeForce GTX 1080 8GB DDR5 | Motherboard: ASUSTeK PRIME B250M-A | RAM: 2x16GB DDR4-2400 | Output: Kingston HyperX Cloud II | Edifier C2XD 2.1 | Controlls: Saitek X-56 Rhino | Saitek Flight Rudder Pedals | Saitek Multi/Radio/Switch Panels | Thrustmaster MFD Cougar | Elgato Stream Deck XL | OpenTrack with LaserClip | VoiceAttack with VAICOM Pro plugin

 

Link to comment
Share on other sites

  • Recently Browsing   0 members

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