Skip to main content

image Build Status Codacy Badge BCH compliance image License

dcspy

This is a software designed to put information from DCS aircraft to Logitech G-series keyboards. Developed for Logitech G13, but should also work with any other Logitech device with 160x43 px monochrome display, like G15 and G510.

  • F/A-18C Hornet's Up Front Controller (UFC)
  • F-16C DED display - some parts are missing
  • Ka-50 PVI-800 - under development

dcspylogo

Requirements

Credits

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

Usage

You can use it straight away, by running dcs_g13.py, it can be run before DCS, as well as after. After successful connect attempt, G13 display should update.

  • dcs_g13.py is responsible for initialise parser, G13 handler, as well as running connection with DCS.
  • logitech.py is responsible for initialise aircraft specific file and handling G13 display and buttons
  • aircrafts.py are define all supported aircrafts with details how to handle and display data from DCS, draws bitmap that will be passed to G13 handler and returns input data for buttons under G13 display

If you want to modify or write something by yourself, here's a quick walkthrough:

  • First, you need to "subscribe" data you want and pass it to G13Handler:
bufferScratchpadStr1 = StringBuffer(self.g13.parser, 0x744e, 2, lambda s: self.set_data('ScratchpadStr1', s))

For required address and data length, look up in C:\Users\xxx\Saved Games\DCS.openbeta\Scripts\DCS-BIOS\doc\control-reference.html

  • Then, receive byte and use parser:
dcs_bios_resp = sock.recv(1)
parser.process_byte(dcs_bios_resp)

which calls back function in G13Handler set_data(...) with appropriate parameters and update display content, by creating bitmap and passing it through LCD SDK to device display

  • You can also use 4 button below display, just check their state with g13.check_buttons() which one is pressed and send packet with command you wish to use. Again, look it up in control-reference.html, for example, to rotate COMM1 knob right in F/A-18C:
sock.send(bytes('UFC_COMM1_CHANNEL_SELECT INC\n', 'utf-8'))

New ideas

I have lots of plans and new ideas how to improve it internally and form user's perspective, but don't hesitate to contact me. Maybe it will motivate me to implement some new stuff. Please open issue if you find bug or have any crazy idea.

Metadata

Release files for dcspy 0.9.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dcspy 0.9.1
File Size Uploaded
dcspy-0.9.1.tar.gz 115.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dcspy 0.9.1
File Interpreter ABI Platform
dcspy-0.9.1-py3-none-any.whl Python 3 none any Details

Total release size: 151.1 kB

Release files / dcspy-0.9.1.tar.gz

Download URL dcspy-0.9.1.tar.gz
Size 115.7 kB
Tags Source
SHA-256 checksum
How to use checksums
fcd6edb38c653143e3d6ff3b0c1b7dd46be4ddff858295e9c21396968e15ef9f
BLAKE2b-256 checksum
How to use checksums
da90137245bf1adc82f24348fae52c1710dd0ffc538ccf2132dcc34186882a5d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.11.0 pkginfo/1.4.2 requests/2.21.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.23.3 CPython/3.6.9

Release files / dcspy-0.9.1-py3-none-any.whl

Download URL dcspy-0.9.1-py3-none-any.whl
Size 35.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f1f26c80d9840e4537bb32d6209727499618c83ecb3dfc5cc22aadfb44fb65b3
BLAKE2b-256 checksum
How to use checksums
1118bf06068d96dc50325e039105794da41a6bd3c55ccdf03023bd403cbcbaf1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.11.0 pkginfo/1.4.2 requests/2.21.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.23.3 CPython/3.6.9

Release history Release notifications | RSS feed

3.8.1

2 release files

3.7.1

2 release files

3.7.0

2 release files

3.6.3

2 release files

3.6.2

2 release files

3.6.1

2 release files

3.6.0

2 release files

3.5.2

2 release files

3.5.1

2 release files

3.5.0

2 release files

3.4.2

2 release files

3.4.1

2 release files

3.4.0

2 release files

3.3.0

2 release files

3.2.0

2 release files

3.1.4

2 release files

3.1.3

2 release files

3.1.2

2 release files

3.1.1

2 release files

3.1.0

2 release files

3.0.0

2 release files

2.3.3

2 release files

2.3.2

2 release files

2.3.1

2 release files

2.3.0

2 release files

2.2.0

2 release files

2.1.2

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.0

2 release files

1.9.5

2 release files

1.8.1

2 release files

1.8.0

2 release files

1.7.5

2 release files

1.7.4

2 release files

1.7.3

2 release files

1.7.2

2 release files

1.7.1

2 release files

1.7.0

2 release files

1.6.1

2 release files

1.6.0

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.9.2

2 release files

This release

0.9.1 This release

2 release files

0.9.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page