Elite: Dangerous

Add a topic per game or app along with any tips & tricks

Moderator: DevRuss

Post Reply
User avatar
Posts: 171
Joined: Wed Mar 27, 2019 6:59 am

Elite: Dangerous

Post by DevRuss » Tue Apr 09, 2019 6:08 am

In the beginning...I built ControlMyJoystick to get my SpaceNavigator (which I used with CAD) into Elite: Dangerous. The 6DOF controller would be perfect for ED, and it is.

Here's my latest profile for Elite: Dangerous. The main thing is to see how the axis are mapped and bound to the game. All the other controls can be bound however you like.

There is an insane amount of binds in this game and you can easily wind up with 40+ binds. Crazy, but fun. This profile uses a minimal amount of binds for flight and rover, but nothing for MultiCrew.


This profile uses a DxWare SpaceMouse Enterprise, voice and smartphone. Copy and paste these instructions into notepad so that you don't have to flip back to this tab all the time during setup.

If you don't have a DxWare controller, you can use a joystick instead (you'll need to copy the DxWare axis curves and button assignments over to your joytick).

There will be alot of switching back and forth between CMJ and ED, so set ED to run in a window, and CMJ to run ON TOP (View/Stay on top).


Set the profile target as 'Elite - Dangerous (CLIENT)' and enable targeting.

Before we start axis mapping in ED, you need to set up Output/Joysick axis mapping in CMJ. By default it is set to DxWare, but if you are using a joystick, you will need to change this.
1) In CMJ, go to the Output/Joystick tab.
2) Double-click on an axis and select the source data for this axis.
3) Do this for each axis.

You can actually mix source data, so for example you could use DxWare for the flight axis, and use the slider from a joystick or throttle controller as the Slider axis.

If you physically move your DxWare or joystick axis, you should see it reflected here in the Output/Joystick axis indicators. It shows the data after curves have been applied, and this is what the game will see.


Never physically touch your controllers while binding in Elite: Dangerous. This must be done by voice, or menu commands in CMJ.

If you don't do it this way, it won't work properly.


It's best to run ED in windowed mode and it is also in an already-flying state, so you could start a Training Mission - Mining Training as that will start with you in flight. This will give you a safe place to experiment with the bindings. Just wait until their voice blurb at the beginning is complete and you are free to fly the ship.


CAUTION: selecting EMPTY and clicking APPLY will erase your current bindings!
1) Go to the ED Controls setup screen (also known as EDConfig).
2) You can either modify your current EDConfig or create a new blank one, or start with a pre-configured binding like Classic Keyboard. To create a blank config, select EMPTY from the presets. It will remain as EMPTY until you make a change, then it will say CUSTOM. If you do EMPTY, you will have a LOT of rebinding to do.

Note: We're going to set this the old fashioned way, but I see that there is a new ED ALTERNATE FLIGHT CONTROLS which also may work.

Note: Don't set a deadzone or invert in-game. This will be done in CMJ curves.

1) Go to EDConfig FLIGHT ROTATION and click on double-click YAW AXIS. It will bring up up a message 'MOVE AXIS FOR...YAW AXIS'. You want to bind CMJ's Output/Joystick/RZ axis to this.
2) In CMJ, click on the RZ axis in the Output/Joystick tab.
3) To bind, speak 'Bind Axis - Both', or right-click for a popup menu and select 'Bind Axis - Left and Right'.
4) In EDConfig, you should see that [JOY RZ-AXIS] is now bound to Yaw Axis. So now when you twist the controller around the Z axis, it will yaw.
5) Apply your changes and go back into the game. Try moving your controller around the RZ axis - you should see it yaw the ship.
6) Now let's adjust the curve for this axis. The default, flat curves are horrible for flight, so you'll need to tweak it to suit your tastes (and ship configuration).
7) In CMJ, go to the Input/DxWare tab and double-click on the RZ Raw in the grid. This brings up the curve editor.
8) Try selecting a curve preset and drag around the curve sliders. You should be able to move the controller and see the effects immediately without closing the curve editor. You will also see the effects of the curve in the DxWare axis indicators on the same tab.

...Now repeat these steps for...
- ROLL AXIS - use the CMJ RY Axis. You will need to set 'Inverted' in the CMJ RY axis curve editor, and pick a nice curve.
- PITCH AXIS - use the CMJ RX Axis. You will need to set 'Inverted' in the CMJ RX axis curve editor, and pick a nice curve.

..And for thrusters, go to FLIGHT THRUST and...
- LATERAL THRUST AXIS - use the CMJ TX axis. You will need to set 'Inverted' in the CMJ RX axis curve editor, and pick a nice curve.
- VERTICAL THRUST AXIS - use the CMJ TZ axis. You will need to set 'Inverted' in the CMJ RX axis curve editor, and pick a nice curve.
- THRUST FORWARD AND BACKWARD axis - use the CMJ TY axis. You will need to set 'Inverted' in the CMJ RX axis curve editor, and pick a nice curve.

Now you should be able to use your thrusters to pull up to an asteroid and move around it. Tweak your curves until it feels just right.


You are currently using the CMJ Default Curve Group, so you can right-click on it and rename it to 'Mining'. You can create a new curve group for combat, if you wish as the curves will likely need to be different, and you may choose to disable the thruster axis for combat.


You can send keystrokes, mouseclicks and movements or joystick button clicks in response to button presses on your controller, voice or smartphone command. This will require that we make some macros.

We won't do all the in-game functions, since there are so many. But let's try the basics:


We can bind this to a CMJ-generated joystick button, mouse click or keystroke - it's up to you which one you want to use. The simplest is to use a keystroke.

Go to the ED WEAPON/DEPLOY HARDPOINTS binding and set it to use 'H'.

There is already a Toggle Hardpoints macro created that sends the 'H' button to ED to deploy the hardpoints. Run this macro by selecting it and pressing the Run button, or by speaking 'Toggle Hardpoints' or by pressing the DxWare.Fit button on your controller. Because ED doesn't have a deploy hardpoints and a separate retract hardpoints binding, this really is just a hardpoints toggle.

ControlMyJoystick can't actually know that the hardpoints did deploy or undeploy as the game does not provide this information.


Let's toggle the landing gear with the DxWare.menu button on the controller. This requires us to first map the controller button to a CMJ output/joystick button. This is known as a passthrough mapping. You could send a joystick button in a macro, but we don't need to, we'll pass-it-through to the driver.

1) Go to the CMJ Output/Joystick tab and open up the button list. Double click on B001 and then press the Menu button on the DxWare controller and click Ok. Now pressing the Menu button on the controller will cause the Joystick driver to emit a Button 1 press and release event.
2) In ED, go to MISCELLANEOUS/LANDING GEAR and double-click it to receive a binding.
3) in CMJ, select B001 and say 'Bind Button', or right click and bind it from the menu.

We also added a Toggle Gear macro which does the same thing, but you can trigger it with voice.



I use drive assist on, with the following settings:
- RZ for steering
- RY for roll
- RX for Pitch
- Mouse button 4 for vertical thrust
- Mouse wheel for throttle


Feel free to tweak this profile as needed.
Elite - Dangerous (DxWare).cmjson
(53.01 KiB) Downloaded 495 times
Have fun!
Russ - Tetherscript Developer

Posts: 2
Joined: Sat May 23, 2020 5:48 am

Re: Elite: Dangerous

Post by Citizentech » Sun May 24, 2020 8:02 pm

Hi DevRuss !

Is there any way for the 3d mouse to behave like a common mouse in elite dangerous? I mean those smooth, continuous movements you get with a common mouse. The 3d mouse behaves almost like a keyboard, when you stop moving it the ship stops instead of moving slowly.


User avatar
Posts: 171
Joined: Wed Mar 27, 2019 6:59 am

Re: Elite: Dangerous

Post by DevRuss » Tue May 26, 2020 2:54 am

The only way to get smooth and continuous movements is to use the 3dmouse-to-joystick driver function in CMJ. Otherwise, it will always be not so smooth.
Russ - Tetherscript Developer

Posts: 2
Joined: Sat Sep 12, 2020 4:28 am

Re: Elite: Dangerous

Post by AAlchemy » Sat Sep 12, 2020 4:37 am

I can't get Elite to bind to the Tetherscript driver, it keeps picking the SpaceNavigator directly and spins my ship all over with no control. I have the 3DxWare joystick emulator uninstalled, so it doesn't show in device manager or joy.cpl

I do see a SpaceNavigator showing up with absolute axes whenI view my devices with "Pointy's Joystick Test". This is the device/driver I'm assuming Elite is binding to and not the Tetherscript virtual driver

User avatar
Posts: 171
Joined: Wed Mar 27, 2019 6:59 am

Re: Elite: Dangerous

Post by DevRuss » Sun Sep 13, 2020 7:17 pm

The current instructions for binding in E:D is quite old, and I need to make new instructions soon! But here's the short cut:

1) Run E:D in a window.
2) Run CMJ, make it 'keep on top'.
3) In CMJ, set the profile target to the E:D game in the list and activate the profile target.
4) In CMJ, make sure you can see your spacenavigator output is showing up in the CMJ Output/Joystick tab. Wiggle the controller and you should see axis movement in this tab. You are going to bind E:D to this axis data.
5) In E:D, bring up the key binding options and remove an binds from the spacenavigator through the 3dconnexion KMJ driver.
6) In E:D, select a movement like Pitch and click it and wait for input. Don't touch the spacenavigator. You won't touch it while binding.
7) In CMJ, you can bind via voice command, or just right-click on the output/joystick axis you want to bind. Select a bind command from the popup menu. You should see E:D accept the bind.
8) In E:D, test that bind. Rinse, repeat for the other binds.

This also works with joysticks, not just spacenavigator.

Hope that helps!
Russ - Tetherscript Developer

Posts: 3
Joined: Mon Nov 30, 2020 6:32 pm

Re: Elite: Dangerous

Post by ingor » Mon Nov 30, 2020 7:30 pm

Could anyone please let me know if it is really possible to have simultaneous input combinations? I don't mean from CMJ perspective from where it clearly it is possible, but rather from the point of view of the 3dConnexion hardware.
Is it possible that my unit is defective? Or maybe there is some limitation due to the fact that I'm using a Wireless Spacemouse, the cheapest of the line, which still costed 150 euros.

My hope is that the issue is a configuration one and by setting the dead zone to some sensible values it might be possible to confidently control multiple axis at once.

Currently I can move along any of the 6 axis provided by the SpaceMouse but I don't seem to be able, not even using CMJ, is affect multiple axis simultaneously in a precise way.

It seems for example that any combination of the Tx, Ty, Tz might be possible at once, but once you try to also introduce any of the R axis into the mix some of the T axis get messed up...

User avatar
Posts: 171
Joined: Wed Mar 27, 2019 6:59 am

Re: Elite: Dangerous

Post by DevRuss » Sun Dec 13, 2020 2:43 am

This is a good question, and the short answer is yes, you can have multiple axis inputs simultaneously and pass this through the CMJ output/joystick driver to a game.

The long answer is yes it works, but practice, practice, practice. It took me a while to get it down, but now I can maneuver multiple axis easily and consistently. A good wrist rest is key, in my opinion. A smallish deadzone of 40 or so should be more than adequate. And it helps if you have multiple curve groups where you can selectively disable axis for different gaming modes (combat vs docking).
Russ - Tetherscript Developer

Post Reply