Skip to content
View in the app

A better way to browse. Learn more.

The AVSIM Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

PMDG DC-6, force mapping FSX keyboard and control functions?

Featured Replies

As I listed years ago, the PMDG DC-6 is far from perfect.

https://www.avsim.com/forums/topic/516911-pmdg-dc-6-current-state-seems-a-bit-underwhelming/

I'm back into FSX and see PMDG still didn't address much. (the see-through engine area isn't even fixed?!! pathetic)

 

So I'm trying to find work-arounds for their prerogatives:

  1. throttle increase/decrease using game controller buttons
  2. Propeller Low/Propeller High using keyboard keys
  3. Mixture control using keyboard keys
  4. Shift+E then # door activation using keyboard keys
  5. map appropriate lights to default keyboard keys

 

Will the payed version of FSUIPC be able solve everything on my list?

From what I've read LINDA 'only' does controller buttons, not keyboard keys, correct?

 

I'm not familiar with FSUIPC limitations so any help or redirects are appreciated.

Thank you.

 

 

The PMDG DC-6 has a virtual co-pilot that operates the throttles and mixture via commands to the co-pilot from a drop down menu. This probably has to be disabled to operate the throttles and mixture reliably yourself via your controllers and keyboard. Since I don't have much time in the plane I never graduated to the point of using it without the virtual co-pilot.

Ted

[email protected] ghz, Noctua C12P CPU air cooler, Asus Z77, 2 x 4gb DDR3 Corsair 2200 mhz cl 9, EVGA 1080ti, Sony 55" 900E TV 3840 x 2160, Windows 7-64, FSX, P3dv3, P3dv4

  • 9 months later...
  • Author

So I finally spent some time (and $ (FSUIPC)) on my OP to fix the issues with the PMDG DC-6.

The answer is yes, FSUIPC and LINDA seems to fix the DC-6 shortcomings, these are my solutions in hopes of helping others:

  1. Can’t throttle increase/decrease using game controller buttons - Paid version of FSUIPC allows mapping of default throttle keys to game controller buttons.
  2. Can’t 'Propeller High'/'Propeller Low' using keyboard keys - FSUIPC allows prop pitch lever to be set to max/min values with Axis Propeller Set, Parameter:+/-17500 using default keys.
  3. Can’t mixture control using default FSX keys - Paid version of FSUIPC allows mapping of default keys with a custom Lua script.
  4. Can’t Shift+E then # door activation default FSX keys - Paid version of FSUIPC allows mapping of default keys with a custom Lua script.
  5. Can’t control lights with default FSX keys - Paid version of FSUIPC allows mapping of default keys with a custom Lua script.
  6. Batt Sw doesn’t move with default FSX keys - Paid version of FSUIPC allows mapping of default keys with a custom Lua script.
  7. C+D leaves lights on, window open - Paid version of FSUIPC allows scripting to set as needed of default keys with a custom Lua script.
  8. BONUS: Carb Air Levers – using LINDA with Module: PMDG DC-6, Guenter Steiner, ver 1.0, Sept 2017, easily allows lever mapping to gamepad buttons.

 

Below is most of my crude and sloppy Lua code to help those that may want to use or learn from it:

=========

Controlling Lights below here

=========

function DC6_All_on ()
ipc.control(66587, 6703) --wheel well light
ipc.control(66587, 6701)
ipc.control(66587, 6704)
    if ipc.readLvar("dc6_121_obj") == 1 then --landing
    ipc.control(66587, 12101)
    end

    if ipc.readLvar("dc6_122_obj") == 1 then --extend for landing lights
    ipc.control(66587, 12201) --extend or down direction
    elseif ipc.readLvar("dc6_122_obj") == 2 then --2 is sw in up most position(retract)
    ipc.control(66587, 12201)
    ipc.sleep(500)
    ipc.control(66587, 12201)
   --ipc.sleep(500)
   --ipc.control(66587, 12202)--retract or up direction
        end

    if ipc.readLvar("dc6_041_obj") == 0 then --beacon
    ipc.control(66587, 4101)
    end
    if ipc.readLvar("dc6_040_obj") == 1 then --position
    ipc.control(66587, 4002)
    elseif ipc.readLvar("dc6_040_obj") == 0 then
    ipc.control(66587, 4002)
    ipc.sleep(1000)
    ipc.control(66587, 4002)
    end
--red NOT on
    --ipc.writeLvar("dc6_708_obj", 1)
    --ipc.writeLvar("dc6_043_obj", 1)
    --ipc.writeLvar("dc6_699_obj", 1)
    --ipc.writeLvar("dc6_048_obj", 1)
    --ipc.writeLvar("dc6_058_obj", 1)
--white
    ipc.writeLvar("dc6_050_obj", 1)
    ipc.writeLvar("dc6_049_obj", 1)
    ipc.writeLvar("dc6_174_obj", 1)
   
ipc.lineDisplay("All Lights ON")
ipc.sleep(2000)
ipc.lineDisplay("")
--ipc.sleep(5000)
    --ipc.control(66587, 12202) --landing light retracts back to off(up) DONT, turns of nacelle lighting

end

function DC6_All_off ()
    if ipc.readLvar("dc6_122_obj") == 1 then --retracts
    ipc.control(66587, 12202)
    elseif ipc.readLvar("dc6_122_obj") == 0 then
    ipc.control(66587, 12202)
    ipc.sleep(500)
    ipc.control(66587, 12202)
    --ipc.sleep(500)
    --ipc.control(66587, 12201)
    end
    if ipc.readLvar("dc6_041_obj") == 1 then --beacon
    ipc.control(66587, 4101)
    end
    if ipc.readLvar("dc6_040_obj") == 2 then --position
    ipc.control(66587, 4001)
    elseif ipc.readLvar("dc6_040_obj") == 0 then
    ipc.control(66587, 4002)
    end
--red interior
    --ipc.writeLvar("dc6_708_obj", 0)
    --ipc.writeLvar("dc6_043_obj", 0)
    --ipc.writeLvar("dc6_699_obj", 0)
    --ipc.writeLvar("dc6_048_obj", 0)
    --ipc.writeLvar("dc6_058_obj", 0)
--white
    ipc.writeLvar("dc6_050_obj", 0)
    ipc.writeLvar("dc6_049_obj", 0)
    ipc.writeLvar("dc6_174_obj", 0)
   ipc.lineDisplay("All Lights OFF")
   ipc.sleep(2000)
   ipc.lineDisplay("")
   ipc.sleep(2000)
    if ipc.readLvar("dc6_121_obj") == 0 then --landing off after delay so see cool sweep motion
    ipc.control(66587, 12101)
    ipc.control(66587, 6703) --wheel well light
    ipc.control(66587, 6701)
    ipc.control(66587, 6704)
    end    

ipc.control(66587, 12201) --move retract sw back down to off from retract position
end

function DC6LightsAll ()
    if ipc.readLvar("dc6_050_obj") == 0 then
       DC6_All_on ()
    else
       DC6_All_off ()
    end
end

DC6LightsAll ()
return

========

Door Control below here

========

--Calling this Lua with Shift+E in Key Presses
--fwd below
function DC6_ExitFwd_open ()
    ipc.writeLvar("dc6_446_obj", 1)
    ipc.display("Front Door OPEN")
    ipc.sleep(4000)
    if ipc.readLvar("dc6_446_obj") == 1 then ipc.exit()
    end
end

function DC6_ExitFwd_close ()
    ipc.writeLvar("dc6_446_obj", 0)
    ipc.display("Front Door CLOSED")
    ipc.sleep(4000)
if ipc.readLvar("dc6_446_obj") == 0 then ipc.exit()
    end
end

function DC6_ExitFwd_toggle ()
    if ipc.readLvar("dc6_446_obj") == 0 then
       DC6_ExitFwd_open ()
    else
       DC6_ExitFwd_close ()
    end
--ipc.exit ()
end


--aft below
function DC6_ExitAft_open ()
    ipc.writeLvar("dc6_451_obj", 1)
    ipc.display("Rear Door OPEN")
ipc.sleep(4000)
if ipc.readLvar("dc6_451_obj") == 1 then ipc.exit()
    end
end

function DC6_ExitAft_close ()
    ipc.writeLvar("dc6_451_obj", 0)
    ipc.display("Rear Door CLOSED")
ipc.sleep(4000)
if ipc.readLvar("dc6_451_obj") == 0 then ipc.exit()
    end
end

function DC6_ExitAft_toggle ()
    if ipc.readLvar("dc6_451_obj") == 0 then
       DC6_ExitAft_open ()
    else
       DC6_ExitAft_close ()
    end
--ipc.exit ()
end
--cargo below
function DC6_CargoHold_open ()
    ipc.writeLvar("dc6_448_obj", 1)
  ipc.display("Cargo Hatches OPEN")
ipc.sleep(4000)
if ipc.readLvar("dc6_448_obj") == 1 then ipc.exit()
    end
end

function DC6_CargoHold_close ()
    ipc.writeLvar("dc6_448_obj", 0)
    ipc.display("Cargo Hatches CLOSED")
ipc.sleep(4000)
if ipc.readLvar("dc6_448_obj") == 0 then ipc.exit()
    end
end

function DC6_CargoHold_toggle ()
    if ipc.readLvar("dc6_448_obj") == 0 then
       DC6_CargoHold_open ()
    else
       DC6_CargoHold_close ()
    end
end


-- note: 153078 *** EVENT: Cntrl= 66587 (0x0001041b), Param= 44901 (0x0000af65) ROTOR_BRAKE
function PilotWindow ()
        ipc.control(66587, 44901)
        ipc.display("Pilot Window Toggle")
    ipc.sleep(3000)
    ipc.exit()
end

event.key(49, 8, "DC6_ExitFwd_toggle")
event.key(50, 8, "DC6_ExitAft_toggle")
event.key(51, 8, "DC6_CargoHold_toggle")
event.key(52, 8, "PilotWindow")

=========

Mixture Lever controls below here

=========

    ipc.control(66587, 40002) --richen mixtures
    ipc.control(66587, 40102)
    ipc.control(66587, 40202)
    ipc.control(66587, 40302)

 

    ipc.control(66587, 40001) --lean out mixtures
    ipc.control(66587, 40101)
    ipc.control(66587, 40201)
    ipc.control(66587, 40301)
   

Edited by VeryBumpy
minor corrections

Archived

This topic is now archived and is closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.