Quick Start Guide
In order to start using MileHighWings interface with a flight simulator, you have to take the following steps:
MileHighWings Version 4 Interface Manual
MileHighWings Version 4 interface is a device, which reads the signal from the trainer port of a transmitter and converts it into 10-bit digital data, which is then sent to a computer via USB. The interface appears in the operating system of the computer as a virtual joystick with 8 axes and 8 buttons. eFlightWorks software allows you to configure the interface for any of the supported PPM transmitters, including helicopter transmitters with non-disableable CCPM, as well as Walkera PPM and PCM transmitters. All the configuration information is saved in the flash memory of the interface, so, the interface can be calibrated on one computer (e.g., Windows PC) and then used to control a simulator on another (e.g., G4 Mac).
In addition to receiving the signal from a transmitter, the interface can send computer generated PPM stream back to the transmitter (only PPM transmitters with a Trainer switch are supported):
Finally, the interface can control an ESC, connected with an optional ESC cable. eFlightWorks software permits direct control of an ESC/motor, playback of a pre-recorded or scripted throttle program, as well as configuring any stick-programmable ESC:
Note: While the interface hardware supports PC with any Windows version, Mac (both PowerPC and Intel based) with MacOS X, as well as most Linux versions, eFlightWorks software currently works only in Windows.
2. Connecting the Interface
The interface has two connectors: a big USB-A connector on one side and a small mini-USB plug on the other side of the circuit board. The big connector should be inserted into a USB port of a computer, while the small plug accepts a transmitter or an optional ESC cable:
Figure 1. Connecting the interface to computer and transmitter/ESC
Note: You should never connect the interface to a computer via the small mini-USB plug, as this would result in damage to the interface and/or the computer! MileHighWings assumes no responsibility for any damage occurred as a result of this.
3. Operating Modes
The interface has 3 working modes:
In this mode, the PPM or Walkera PCM data stream is received from the transmitter and converted into the position of 8 joystick axes and 4 joystick buttons (if the transmitter has less than 8 channels, the extra joystick axes are kept at their neutral positions). If eFlightWorks software is running, it can record the channel data, which can be saved into a file and later played back to the transmitter in 'Output PPM' mode. The throttle channel data can also be played back to control the ESC/motor in 'ESC Control' mode.
This mode is only useable in conjunction with eFlightWorks software, which generates the channel data or plays back previously recorded data and sends it to the transmitter as a PPM stream. If you flip the trainer switch, the transmitter would transmit this data into the air. This way, you can control your model from a computer!
This mode too is only useable with eFlightWorks software, which generates the throttle signal to control or program the ESC.
Besides the three working modes, the interface can be in firmware update mode; after the update, the interface switches back to the previous working mode.
There are two Light Emitting Diodes (LED) on the interface, one is green, the other is red (from under the read heat shrink film, the green LED also looks red, but less bright than the red LED).
The LEDs indicate the state of the interface:
|Red LED||Green LED||Interface state|
|Stays OFF||Blinking 2 times a second||'Input' mode|
|Blinking 4 times a second||Stays OFF||'Output PPM' mode|
|Blinking once a second in turns: 2 times red then 2 times green||'Walkera PCM input mode' mode|
|Blinking in turns 4 times a second||'ESC Control' mode|
|Blinking together 4 times a second||In bootloader mode, ready to start or have started firmware update.|
5. eFlightWorks Software
eFlightWorks is an application with Multi Document Interface, conventional menus, keyboard shortcuts, and flexible toolbars. The Windows version of eFlightWorks software consists of a single self-sufficient executable file, eFlightWorks.exe. This application does not require any additional DLLs, does not need .NET or any other optional Windows components. The "installation" is virtually non-existent: you simply copy eFlightWorks.exe from the CD-ROM or download it from MileHighWings server and place it in any folder on your hard drive (it can even be launched directly from a CD-ROM).
eFlightWorks application saves the data, which needs to be persistent between the sessions, in Windows registry under
If eFlightWorks software is launched without the interface, an empty application window will open:
Without any connected devices, Help/About menu would only list eFlightWorks software version:
Once any of MileHighWings devices, e.g. an old v.3 or a new v.4 interface, gets connected, the menus/toolbars are extended and About window lists the device:
When an interface is connected, a window, corresponding to the current interface mode, opens automatically (the following picture is for the interface in 'Input' mode):
File menu holds the standard open/save and exit commands:
Open command displays Open eFlightWorks data file dialog, which allows you to select any of eFlightWorks native files:
A channel recording file displays the channel data:
Opening an interface settings file brings up an interface settings window:
If, at the time of opening an .eis file, an interface is plugged in, this window would have a Program interface button, which gives you an option to update the interface settings.
Save command allows you to save the current interface settings into an .eis file, if the interface window is selected, or to save a channel recording into an .ecr file, if a channel recording graph is on the top.
View menu controls the visibility of various eFlightWorks toolbars:
Window menu contains the standard window control commands, which allow you to arrange the open windows or select on of them:
The contents of the Options menu depends on which of the windows is active--if active is a device window, an Interface V4 options command is listed:
Interface V4 Options window has two pages, one for file open/save and another for 'Output PPM' mode options:
If a channel recording window is selected, the Options menu changes to:
Display options command controls the visibility and colors of the elements of the channel recording graph:
Mode menu permits switching between the three interface modes:
Please note that 'Output PPM' mode is disabled if:
Calibration menu gives access to Calibration Wizard as well as to its separate pages:
Calibration Wizard guides you step-by-step through the interface calibration, starting from the transmitter type and mode selection
to detection of the channel travel range (once sufficient information is gathered, channel bars turn from red to black)
to channel centering and reverse
and, finally, to selection the channel mapping and joystick buttons assignment
It is a good idea to save the interface settings into an .eis file immediately after the calibration.
Tools menu contains channel recording start/stop and playback commands as well as ESC programming and firmware update commands:
Start/stop channel recording and Servo Monitor commands are only enabled in 'Input' mode, playback command is enabled in either 'Output PPM' or 'ESC Control' modes, while ESC programming is only enabled in 'ESC Control' mode.
Servo Monitor command opens Servo Monitor window:
The bars in Servo Monitor window show the true channel signals generated by the transmitter, i.e. the interface doesn't process the data: there's no CCPM de-mixing and no signal "stretching" to cover the full motion range for each channel. The Servo Monitor shows the true servo motion, like servo monitor screens of high end computer transmitters do. The the numbers above each bar are "percents" of the channel travel: -100% corresponds to 1 millisecond PPM pulse and +100% to 2 milliseconds. At the same time, many R/C manufacturers accepted different definition of 100% travel, sometimes 100% travel of one of the first 4 channels is different than 100% travel of channels 5 trough 8 (all Futaba transmitters use such "double standards")! For Futaba, JR, and Sanwa/Airtronics transmitters, the manufacturer accepted values are shown.
If you click Neutral button, the current channel readings will correspond to zero levels. Please note that resetting neutrals in Servo Monitor window is different from setting channel centers in Calibration Wizard: the former only affect visualization in Servo Monitor, while the latter affect how the interface converts the channel levels into the joystick positions.
Start throttle sequence playback command opens Throttle playback window:
Throttle program can be specified in an .eft file (please refer to the comments in a sample throttle program file) or extracted from an existing channel recording.
Program ESC command opens a window with a list of "standard" controllers:
Once you select an ESC and click Program this ESC button, a corresponding program window opens:
Please note that some of the controllers, like Hyperion Titan above, only allow for a single setting change per ESC programming session. For such ESC, you will have to repeat programming several times, if you need to change several settings.
Other controllers, like hexTronik S60 below, support changing several settings, so several programming groups can be selected and will be executed in one run:
If an ESC has an integrated Battery Elimination Circuit (BEC), eFlightWorks detects the moment when the battery is connected and starts programming automatically:
For an ESC without an integrated BEC, you have to manually initiate the programming sequence by clicking Ok button as soon as you connect the battery:
6. Developing Custom ESC Programs
eFlightWorks allows to customize ESC program for your particular controller as well as save program pre-sets for quickly configuring your ESC for a particular application.For both, creating programs for a new ESC or making programming pre-sets for one of the existing controllers, it's easier to start by copying of a program for a similar ESC. To do that, go to eFlightWorks menu Tools/Program ESC (shortcut key Ctrl+E), select an ESC from the list, and hit 'Edit copy of this ESC' button. After editing the program, it has to be saved as a custom ESC definition, which can later be loaded by hitting 'Load custom ESC' button in Program ESC dialog.
At the moment, eFlightWorks supports four programming types (for detailed description of each programming type, please refer to the programming documentation for the referenced ESC):
All the ESC programming editing is done via Edit ESC programming dialog, which always has 'Starting programming' and 'Finishing programming' pages and a number of programming groups or categories between them:
The name of the ESC should be unique, there can't be two controllers with the same name in the list.
Programming type selection is is disabled as long as there are programming groups between Starting programming and Finishing programming pages as all the programming groups have to be of the same type and there's no conversion between different programming types.
Auto detect battery connection checkbox specifies if eFlightWorks should monitor the voltage at the red wire of the ESC connector and start programming as soon as the voltage is detected. Otherwise, the programming starts after the user hits Ok in the Starting ESC programming window.
To get into the programming mode, various ESCs require certain throttle level when the power is connected--refer to your ESC description and set this value in Throttle level when battery is connected spin box. In addition to that, some controllers (like the ones from Castle Creations) require several throttle steps to get into the programming mode--set the number of steps, the throttle levels and durations in the corresponding fields on Starting programming page.
Clicking Add group before and Add group after buttons adds a programming group, corresponding to the selected programming type.
Programming groups of "Two-choice and throttle-proportional" type, like CoolESC controllers by Cool Running or Thunderbird line by Castle Creations, are the easiest to program as they are not time driven, i.e. a person can take as much time as necessary before specifying the choice. Programming group page for ESCs of this type looks like this:
You can select the name of the group from a list of existing group names or enter your own name. The advantage of selecting one of the existing names is that this name will automatically be translated into other languages when eFlightWorks is switched to a different language, while the custom name will always remain the same.
7. Developing Your Own Software to Control a Transmitter
In order to control a transmitter from your own software, you have to find MileHighWings v.4 interface (a USB device with VendorID=0x04D8 and ProductID=0x0101) plugged in your computer, verify that the interface is in 'Output PPM' mode or switch it to this mode (see 'Set interface mode' command below), verify/set output PPM parameters, and start sending channel level commands. The interface keeps generating the output PPM stream with the last channel levels set by 'Set current channel levels' command, i.e. you have to send this command only when any of the channel levels changes.
Each command block consists of 16 bytes and is sent to the interface via the Input interrupt transfer. (Please note that each input report, which your software actually sends to the USB device, has to be 17 byte long with the leading zero byte.) The first byte of the command block is the command code, the second byte is always zero. Each successfully processed command genetartes a reply, sent by the interface back to the computer. The first byte of a valid reply block is always zero, while the second byte contains the code of the command, which generated this reply.
A good sorce of easy-to-understand information about USB devices and developing software to work with them is "USB Complete: Everything You Need to Develop Custom USB Peripherals" book by Jan Axelson.
8. Configuring Flight Simulators
Now, after you have calibrated the interface, your computer sees it as a 'MHW USB Controller' joystick. In order to control a flight simulator with this virtual joystick, you have to configure the simulator.
Detailed configuration instructions for each simulator are on the CD shipped with each interface.
Copyright © 2001-2008 MileHighWings.com. All Rights reserved.