Reviewed by Jack Whaley-Baldwin
Cockpit builders need high quality components with high durability. Otherwise, their beloved panels and interfacing systems would function for a matter of mere weeks before ceasing to operate.
For the most part, these components are not too difficult to source. Indeed, high quality switches, LEDs, metals, acrylics, etc, can all be obtained for reasonable prices either through the internet or by visiting a local electronics store.
The overhead panel of a simulator is no exception. It is fair to say that many parts of an overhead panel, whilst perhaps time consuming to construct, are not much of a challenge to locate or purchase. Unfortunately however, the analogue gauges present on many overhead panels are neither cheap nor easy to make. That's where Opencockpits come in.
Opencockpits, a reputable flight simulation hardware manufacturer based in Spain, has been the savior of many flight-simmers over the years who have wanted to design their own home cockpit. Opencockpits are one of numerous companies offering pre-built analogue gauges for overhead panels; specifically in this review, the Boeing 737 overhead panel. These gauges are, however, suitable for almost any Boeing-style cockpit; I am building a Boeing 767 simulator and feel perfectly comfortable installing the gauges in my overhead panel.
- Differential pressure/Cabin altitude (dual needle)
Fuel temperature indicator
Cabin climb indicator
Dual duct pressure L/R engine (dual needle)
It should be noted, however, that these gauges are not of the traditional “plug and play” style. These gauges are designed to be used with the Opencockpits USBServo Motors Card, which is a low-priced interfacing card that should cost no more than £30 (including VAT). Two of these cards are required to interface the whole overhead gauge set. Please see my review on this card here.
A small amount of programming knowledge is required to get these gauges functioning; the gauges use the “SIOC” software system designed by Opencockpits to interface to FS2004/FSX, or even X-Plane. Fortunately however, the programming scripts required to operate these gauges are freely available throughout the internet since other cockpit builders have already used these gauges to design their own cockpits.
Why buy these Gauges?
Indeed, an interesting question!
The Boeing 737 overhead gauge set is primary aimed towards cockpit builders. The gauge set is, as mentioned, not plug and play and thus is unlikely to be useful for the casual simmer looking to expand his or her flight simulator cockpit.
Conversely, the gauges do make for an interesting hardware project and are a perfect introduction to the world of cockpit building and script writing. There is nothing quite like having a functioning hardware unit next to you instead of having to stare at the screen for instrument information.
General aviation cockpit builders may not find these gauges especially useful. I do, however, encourage you to read on as there may be elements of this review, especially the programming sections, that can be adapted for your own needs.
Product Details & Purchase Information
The Opencockpits Boeing 737 gauge set can be purchased via their online site for 384 Euros (excluding tax + postage). However as previously mentioned, two USBServos Cards are required to use these gauges, so the total cost is closer to 430 Euros (again, excluding tax + postage). The Opencockpits site is safe and secure and accepts various payment methods including PayPal.
Whilst this may seem expensive for a set of gauges, the reality is that the Opencockpits set is the cheapest on the market. A similar set from Flight Illusion costs 1,331 Euros (excluding postage), with a similar set SimKits costing almost 1,100 Euros (the latter of which would not be top of my list of suppliers to turn to').
Please note, however, that the Opencockpits gauges use servo motors, whilst the SimKits gauges use Stepper Motors. The differences and advantages/disadvantages between these are discussed later in the review.
The Opencockpits 737 Overhead gauge set includes:
- Temperature indicator
- Fuel temperature indicator
- Differential pressure/Cabin altitude (dual needle)
- Cabin climb indicator
- Dual duct pressure L/R engine (dual needle)
- EGT indicator
All of these gauges are pre-prepared and are ready to be connected to the Opencockpits USBServos card for interfacing to Flight Simulator.
Brief introduction to servo gauges
Once again, I would highly recommend reading my USBServos card review all the way through; it explains everything regarding servo motors and how to use them with the USBServos card, complete with SIOC coding examples.
Nonetheless, a basic overview of servo function shall be covered here, if nothing else for completeness of the review.
A servo motor gauge circuit is an example of a closed loop feedback system. This means that, when SIOC receives information from flight simulator (maybe a change in airspeed or whatever quantity is represented on the gauge), SIOC sends an instruction to the USBServos card to move the servo gauge in the desired direction. As the gauge needle moves, it turns a potentiometer (variable resistor), which is also connected to the USBServos card. As the potentiometer turns, the change in resistance, which is acting as the feedback, is measured and recorded by SIOC.
Based upon the feedback, SIOC will continue to tell the gauge to move until the needle has reached the desired value, at which point the resistance of the potentiometer will, of course, be a certain value. When this value is reached, SIOC tells the USBServos card to stop sending signals to the servo motor, and the needle remains stationary, until a new set of instructions are required. This system can be represented with a simple diagram:
Closed Loop Feedback System
This system is exactly how the overhead gauge set functions; SIOC, receiving information from flight simulator, is commanding a series of servo motors (in this case the overhead gauges).
Initial Impressions + Testing
After accepting the arrival of a rather large package, I opened it to find myself immersed in a pool of bubble-wrap and polystyrene foam - it's good to know that Opencockpits package their products very well; these gauges are fragile.
Each gauge came individually wrapped with the servo motor connection lead tucked safely within. It is worth commenting that the gauges are not “housed” in anything; the electronic circuitry and servo gear mechanisms are exposed at the sides, something that is not made especially clear on the product page.
After unboxing and inspecting each gauge, I decided to test the functionality of each gauge using a servo motor tester I purchased some years back. This is a simple testing device that requires nothing more complex than a single AA battery. I would recommend one for anyone who plans on using servo motors in their cockpit; it makes fault finding so much easier. It is extremely important to note that when using such a device, the 5V, GND and DATA leads will mostly likely be in a different order to that of the servo plug itself. This is not Opencockpits' fault; as any frequent RC aircraft flyer will tell you, servo manufacturers love nothing more than to swap the order of their leads around – there is no “industry standard connection”.
Servo Testing Device
Alas! The fault finding genius that is the servo tester identified a somewhat significant problem with one of the two gauge needles for the duct pressure gauge; it refused to turn. Unsure of the problem, and having just unboxed the gauges, I immediately contacted Opencockpits regarding the problem. They kindly agreed to send us a replacement gauge provided that we returned the original.
Within a week or so of returning the suspect gauge, a brand new package arrived and contained within it was our replacement gauge. Thankfully, this gauge worked perfectly with both needles functioning as they should. This once again serves as a testament to the Opencockpits team. Thank you, Opencockpits support!
Needless to say the remainder of the gauges worked perfectly without any problems.
Alongside the servo set, we did, of course order a USBServos card from Opencockpits, without which the gauges would be rendered useless.
USB Servos Card
Naturally, the next step was to test if the USBServos card functioned correctly with the computer, and to test if the gauges successfully connected to the card. The first thing to mention here is that we had to connect a 5V power supply (via the optional connection pin highlighted above) to the USBServos card. This is because, with so many servo motors running off one card, it is highly inadvisable to draw all the power necessary from a single USB port alone).
Once the 5V supply had been connected, the USBServos card was connected via USB to the computer. The familiar windows ding-dong sound rang true, indicating that the device had been recognized.
Previously, it was necessary to download a program, “USBServos.exe”, from the Opencockpits site to test the gauges. However, with the release of SIOC v4.0, a feature was added that implemented a servo tester within the SIOC software interface, allowing users to test the gauges using SIOC alone.
The annotations detail the function of each control on the interface. As can be observed, the interface is fairly straightforward to use. Simply place a bullet in the number representing the servo motor you would like to operate, and then drag (or, use the arrow keys for fine adjustment) the servo control arrow to move the servo motor.
NOTE: It is perfectly possible to use the USBServos software as a testing device alone, negating the need for a small portable servo tester. However, these devices are useful since they can be used independently of a computer; very useful when cockpit building in a workshop. The end point here is that a fault was identified with one of the gauges and Opencockpits (kindly) replaced it, free of charge.
To get to this interface, assuming one has installed SIOC v4.0 or higher, simply plug in the USBServos card (with servo(s) connected of course!), start SIOC.exe (v4.0+), and then click
After testing each gauge, I was satisfied that all of the servos were communicating with the USBServos card satisfactorily, and vice versa (since, of course, a servo is a closed loop control system!). The next stage was to get the gauges working with SIOC, and thus flight simulator itself.
However, a section on the construction and quality of the gauges in general is necessary first, before we start getting the needles dancing in sync with flight simulator.
Construction and Quality
In general, I am satisfied with the design and operation of the Opencockpits gauges. Once we had solved the initial problem with the duct pressure gauge, no further operational problems were encountered and thus one can safely state that the gauges are reliable.
The servo motors used in the gauges are HITEC HS-55 servo motors. Nothing too fancy about these servos; they are frequently used within the RC flyer community and many with model aircraft will be familiar with the HITEC brand. The only thing worth mentioning here is that these servos do not seem to suffer from what I call “servo drift”. This is whereby a command is sent to the servo to move to a certain position, and although it moved to that position previously with no problems, this time it moves slightly to the left or right of position, with the margin of error getting larger over time. No problems with the HS-55 though!
The frame upon which the servo motor(s) are mounted is well constructed and lightweight, and features multi-layered perspex and plastic resin layers, almost in a “sandwich” type arrangement. It is worth mentioning that unlike a certain well known manufacturer of simulator instruments, who simply slap a cardboard scale onto a plastic plate (you know who you are!), the faceplate of every gauge is custom CNC cut into plastic resin, and made from such a material that allows backlighting to be added at a later stage, which many cockpit builders often end up adding to their components. It is once again important to remember that the gauges are not enclosed and do not feature any sort of “casing”. Personally I think this would be a wise investment, however almost all manufacturers of analogue simulator instruments seem to omit a casing, perhaps because their users have a compulsion to “mod” the gauges to their liking.
The engraving quality of the scale of each gauge is superb, with each denomination on the scale being crisp and clear; you can actually run your fingers over the grooves of the scale and feel the indentations. Furthermore, the white colour of the scale markings is a solid clear white, and does not fade or blur over time, which would require an inconvenient paint touch-up.
All of the gauges feature a gearing mechanism, of which the gears are the plastic type (again commonplace within the RC community). Whilst on a personal level I would prefer some nice metal gears, immense torque loads are unlikely to be experienced with such an application and metal gears would, of course, add unnecessary cost and weight to the system. A useless personal gripe really!
Interfacing with SIOC
Although SIOC has been consigned to the realm of confusion for many eager cockpit builders, it really isn't that difficult to use. In fact, the case is most often that one can use an existing script written by someone else (or, for that matter, written by Opencockpits; they have loads on their website). Whenever a script isn't available, it is usually possible to modify an existing script; this can be done easily.
The first stage when interfacing any servo driven gauge through SIOC is to once again open up the SIOC servo testing application. Once within the application, the user should move the arrow slider to find the far left, centre and far right needle position(s) of the respective gauge. Here, we shall use the EGT gauge as an example, and interface it to FSX using the engine EGT data (this particular example will work with any FSX aircraft, and should the aircraft have more than one engine, it will default to lefthand engine number 1). Properly speaking however, the EGT gauge found within the Opencockpits set should be used for 737 APU EGT. However, having a 767 cockpit, my use for this particular gauge is somewhat none existent!
At this stage, we shall only discuss the operation of those gauges with linear scales such as the EGT gauge. The left, centre and right positions of the gauges found using the testing application were as follows:
There are several important things to note here. Firstly, the far “lefthand” position, due to the way the EGT gauge is orientated, actually appears to the right of the gauge. Although SIOC uses the words “left”, “right” and “centre”, it is perhaps more accurate to use the words “minimum”, “maximum” and “middle” since not all gauges default to a generic “left/right” structure. So, with reference to the photographs:
LEFT/MINIMUM Position = 994
CENTRE/MIDDLE Position = 498
RIGHT/MAXIMUM Position = 1
NOTE: The actual “maximum” position is 0, not 1; the slider can be moved one more step if needed. However, out of force of habit I never use the “extreme” values when programming, I always use at least one less; call this a ritualistic force of habit if you will, it just feels easier on the servo motor to not push it to the hard-stop of its mechanism. Furthermore, with the way Opencockpits have constructed the gauge, 1 value is equal to 1 degree, and thus for the sake of one degree, I am happy not to use the “extreme” value. Also note that the “middle” position is nothing special, it is simply the halfway point between the maximum and minimum values. These figures are used in the SIOC script (see below).
Secondly, it can be observed that as the servo value on the servo testing interface within SIOC decreases, the EGT gauge value increases. This is simply because of the way the servo has been installed; SIOC is turning the gauge “backwards” - this is significant when we come to program the gauge since we must multiply any FSX values by -1 to turn the gauge “forwards”.
Finally, as proven in the photograph, the gauge does not move all the way to the end of the scale, peaking at around 990 degrees. Whilst this does not present a problem for the most part, since most normal EGT applications (especially a 737 APU as is the case here) will not reach or exceed such a temperature, it is a little annoying knowing that there is part of the gauge that the needle will never reach.
Furthermore, when I initially inspected the EGT gauge, the needle did not zero properly; the needle reached a minimum point at around 100 degrees. I had to manually rotate the needle whilst locking the gearing mechanism (to prevent damage to the servo motor) in order to get proper operation from the gauge. Clearly, this is a significant problem since one should not have to force a needle into position.
Having used the testing software to find the EGT gauge needle values, I wrote a quick SIOC script to allow the EGT needle to run off the Engine 1 EGT data from FSX. Once again, I must stress that this gauge is meant to be used with 737 APU EGT data; the only problem is that I do not have any 737 software installed on my PC.
This was the script, with annotations explained below.
Var 0001, name EGT, Link FSUIPC_IN, Offset $3B70, Length 8 // EGT from Sim
L0 = &EGT - 459.67 // FSUIPC Conversion Rankine -> Farenheit
L0 = L0 - 32 // FSUIPC Conversion Farenheit -> Celsius
L0 = L0 * 5
L0 = L0 / 9
L0 = ABS L0 // L0 not signed
L0 = L0 * -1
L0 = L0 + 994
&EGT_Gauge = L0
Var 0002, name EGT_Gauge, Link USB_SERVOS, Output 1, PosL 1, PosC 498, PosR 994 // EGT Gauge
Explanation of each line of code:
I have tried my hardest to keep explanations short and simple here. Should you require any further assistance, or have any further questions, please do not hesitate to contact me through the Mutley's Hangar forum.
Var 0001, name EGT, Link FSUIPC_IN, Offset $3B70, Length 8 – This line of SIOC code tells SIOC which FSUIPC offset we want to use, and then tells SIOC the “length” of the offset in bytes. Whenever we want to introduce an FSUIPC offset into a SIOC script, it must be defined as a variable. A variable is, as the name suggests, anything that can vary (or, more appropriately, anything that can have a value of some sort). A variable could be a switch, annunciator, lever; whatever – in this case, our variable is the exhaust gas temperature.
To define a variable, start a line of code with “Var XXXX”, whereby XXXX is any number between 0001 and 9999. You can also name a variable; note the “name EGT” part of the script just after we have defined the variable. “EGT” is what I have chosen to name the variable here, it could of course be anything you like (or, the “name” section of code can be omitted completely).
“Link FSUIPC_IN” tells SIOC that we want to extract information FROM the variable, and not the other way around (which would be “FSUIPC_OUT”). This is somewhat obvious since we are taking information FROM FSX to drive our EGT gauge. “FSUIPC_OUT” would be used in the case of a switch or something similar, where we are sending information TO FSX.
“Offset $3B70” is simply the offset number for the EGT engine 1 value; for any other offset the code will be different. FSUIPC offsets are always entered into SIOC in the form “Offset $XXXX”, whereby XXXX is the respective four digit code for the offset (found in the FSUIPC “Offsets Status” PDF file in the FSUIPC SDK). Many people often forget to put the dollar sign in front of the offset number; if this is not done, SIOC will reject the code. Finally, “Length 8” tells SIOC the offset is 8 bytes in length; this information is also found in the FSUIPC SDK.
L0 = &EGT – 459.67... - This entire section of calculations between the two curly brackets, although visually complex, simply converts the FSUIPC EGT (which is in degrees Rankine) into degrees Celsius. This code is, of course, different if one wishes to use Farenheit, however since the Opencockpits gauge is presented in degrees Celsius, coding for Farenheit would be a somewhat foolish move.
The “L0” entries seen at the start of some of the lines are examples of Internal Integer Variables. Due to the nature of SIOC, one cannot tell SIOC to do more than one calculation per line of script, and so there must be a way of “holding” values between one line and the next, otherwise one could only ever do simple single step calculations. The answer is to write “L0 =”, then the desired calculation, and then repeat “L0 =” on the next line, with “L0” having held the value from the previous line. “&EGT_Gauge = L0” sends the final value of “L0” (which by this point is the EGT in degrees Celsius) to the EGT gauge variable, which is explained below. The ampersand symbol (“&”) is necessary when referencing a named variable, or again SIOC will reject the code.
Var 0002, name EGT_Gauge, Link USB_SERVOS, Output 1, PosL 1, PosC 498, PosR 994 // EGT Gauge – This line defines the variable that is our EGT gauge; it tells SIOC we have a servo motor and then tells SIOC information about this servo motor.
The sections “Var 0002” and “name EGT_Gauge” serve a similar function to those explained on the “Var 0001” line. “Link USB_Gauge” tells SIOC that this variable is linked to an EGT gauge (in a similar way to how “FSUIPC_IN” told SIOC we were linking the variable to FSUIPC information).
“Output 1” tells SIOC that our servo motor is connected to position 1 on the USBServos card. “PosL 1, PosC 498, PosR 994” simply tells SIOC the left, right and centre positions of the gauge as previously explained.
And that's it! The scripts required for the other gauges are not discussed here since they largely follow a very similar concept, with the only changes being different offset values and different servo position values.
To see this script and gauge in action, please watch the following video:
Servo Motors Vs Stepper Motors
Naturally within an industry whereby simulated gauges either use servo motors or stepper motors, there will be a small amount of debate regarding which is better and/or more cost effective.
There is little doubt within the community that, in general, stepper motors are smoother, quieter and generally offer a better experience when it comes to gauges. However, gauges driven by stepper motors are usually more expensive (as proven by the initial price comparison in the first section).
However, I am of the opinion that the servo driven gauges that Opencockpits supply with this set are of excellent quality, based on the responsiveness of the needle (please refer to the video above). The only negative aspect that one could comment upon is the small amount of noise heard when the motor is in operation (a continuous clicking). Having built servo driven instruments myself before, I was aware of this problem beforehand and thus was somewhat expecting this to be the case with the 737 gauge set. However, the noise is completely unnoticeable when the engines of the aircraft have been started.
In short, I think that there would be no noticeable operational difference between servo and stepper motors for this particular application. The gauges in the overhead panel are not exactly the type to be fixated upon, and as can be observed the servo motors Opencockpits have used are extremely responsive and accurate, and do not suffer from the aforementioned “servo drift”.
Unfortunately no documentation is included with the 737 gauge set; I would assume this is because the gauges connect straight to the USBServos card and thus are “somewhat” Plug'n'Play. However, as we have seen, this assumes foreknowledge of SIOC coding, which many potential purchasers will not have.
As a result, I would recommend to Opencockpits that they produce at least some basic documentation with the gauge set, perhaps supplying the SIOC coding within the manual (this should be no problem since there are hundreds of scripts available freely, scattered across various simulation websites), to save users having to code it themselves (like I did) or search around frantically trying to use someone else's script.
As previously mentioned, the gauges are not back-lit as sold, however they are built such that they can be back-lit with ease. I have modified the gauges by adding several bright white LEDs behind the faceplate of each gauge so that the gauges can be used in the dark. The result is fantastic!
I have wired the LEDs in such a way that they can be connected to the Opencockpits mastercard (an interfacing board that handles switches and LEDs amongst a wealth of other components). As a result, I can control the backlighting through SIOC; in my case, coding it such that the backlighting only comes on when turned on in the Level-D 767, for which my cockpit is built.
The Opencockpits 737 Overhead Gauge Set is yet again a testament to the excellent relationship between product quality and value that Opencockpits seem to provide across the board. The gauge set further proves that servo motors still have a firm foothold in the simulator market, and that they can be just as responsive as stepper motors when placed within a well built gauge.
A significant area of improvement can be found when looking at the (absence of) documentation.
As it stands, these gauges (in my opinion) are currently only accessible to those well-versed in the art of SIOC scripting, although suitable scripts can be found by rooting around within the flight simulator community.
Furthermore, Opencockpits could perhaps provide a version of the product with backlighting already present (as they do with so many of their other products), or perhaps make it easier for one to add backlighting (pre-drilled holes for LED mounts, for example). Also, it would perhaps be beneficial if some sort of mild casing was added to protect the gearing mechanism of the gauges, although admittedly this is something many builders would dislike since they often like to modify the gauge to their liking (for example, adding backlighting).
The constructional quality of the faceplate itself is spot-on, especially when the price of the set is considered. This may seem a small point, however one must consider that there are other simulator instrument manufacturers selling similar products for a higher price, with far, far inferior faceplate quality (namely a non back-lit, paper-printed faceplate).
● Excellent value for money
● Well constructed gauge frame
● Good quality faceplate engraving
● Reliable and good quality servos used
● No documentation or scripts provided
● No backlighting options or LED mounts
|Mutley's Hangar score of 8.5 and a Silver Award "Highly Recommended"|
Review machine Spec: Core i7 920 OC @ 3.8 Ghz | 6Gb Tri-Channel DDR3 Ram |GTX285 Graphics |Windows 7 64bit Home Premium