Comparison Of Variable Reluctance Interface Options
When building a DIY engine control system for your vehicle you need to include
some sort of RPM/Position input. This is fairly straight forward for square wave
signals as produced by Hall and Optical sensors, however for VR sensors, you
need a robust conditioning solution. This page is aimed to help you make an
educated decision on what to use in your system.
What Are The Options?
Broadly, there are only really four options: MAX992X, NCV1124, LM1815, and for
MS users, the built-in discrete design. The MAX992X based solutions are vastly
superior to the other options, which are, therefore, only included for the sake
of comparison. A synopsis of each option is given below. A table of properties
follows and is supplemented by a set of notes explaining non-obvious things in
detail.
BrickRPM
BrickRPM is a tiny board (about the size of a US dime) which uses the MAX9926
chipset to provide two channels of noise-resistant VR conditioning in a
convenient format suitable for those with modest soldering skills.
JBPerf Dual VR V2.0
JBPerf's Dual VR V2.0 is a small board, nearly double the size and cost of
BrickRPM, but otherwise comparable. The main difference is in the power supply
which is self contained and accepts 12V directly.
SymtechLabs Cam Sync Module
SymtechLabs' Cam Sync Module is a tiny board that uses the MAX9924 IC to provide
a single VR conditioner. Because it's only single channel, the chart below
contains information for two units so as to be comparable with the other options.
DIY MAX9926
It's possible to build a DIY MAX9926 based solution, however the fine pitch
soldering is too difficult for most hobbyists. Also, by the time you've had the
IC, breakout board, and other components shipped, you won't save much over the
BrickRPM module.
NCV1124 Based
Like the MAX992X ICs, this is a tiny surface mount VR conditioner, however
unlike the MAX992X ICs the NCV1124 does not have an adaptive threshold. Because
of this it's much more susceptible able to noise than the Maxim chipset. Another
significant downside of the NCV1124 is that it doesn't use a differential input,
this also contributes to sub-optimum noise performance.
LM1815 Based
Once the flag-ship VR IC, the LM1815 is now an unattractive option with a number
of significant disadvantages when compared to MAX9926 based solutions. Because
these ICs are in DIP format, they can be readily soldered by amateurs, and are
sometimes still used for this reason.
MS V3.0 Built-in
If you are installing a MegaSquirt V3.0 based EMS and only need one VR channel,
it's tempting to use the built in discrete VR conditioner. Unfortunately this
design is prone to problems with noisy signals and requires tuning making it a
prime target for an upgrade.
Comparison
The following table contains a side by side listing of some of the main attributes of each option. Where a detailed explanation is available, it is referenced with a number and clickable link to the notes section further down.
Properties |
BrickRPM |
JBPerf Dual VR |
SymtechLabs VR |
DIY MAX9926 |
NCV1124 |
LM1815 (1) |
MS V3.0 (2) |
Price |
25USD |
45USD |
70USD (for 2) (12) |
~20USD |
~20USD |
~35USD |
N/A |
Size (3) |
Tiny |
Small |
Small (for 2) (12) |
Medium |
Medium |
Large |
Huge |
Noise |
Excellent |
Excellent/Poor (4) |
Excellent/Poor (4) |
User's choice |
Average |
Average |
Poor |
Inputs (5) |
500mW 1210 |
333mW 0805 |
Unknown (13) |
User's choice |
User's choice |
N/A |
N/A |
Power |
5V input |
12V input (6) |
5V input, 12V option (6) |
5V input |
5V input |
5V input |
N/A |
Mounting |
EMS Only (7) |
EMS/Engine bay (4)(6) |
EMS/Engine bay (4)(6) |
User's choice (7) |
User's choice (7) |
EMS Only (7) |
N/A |
Output |
Maxim value |
Fully-loaded (8) |
Unknown (14) |
User's choice |
N/A |
N/A |
N/A |
Mounting |
Solder or DIP-8 socket |
Solder or screws (9) |
Solder or socket strips |
User's choice |
User's choice |
Screws only |
N/A |
Convenience |
Excellent |
Very good (9) |
Very good (12) |
Very poor |
Very poor |
Average |
Good |
Dynamic range |
Excellent (10) |
Excellent (10) |
Excellent (10) |
Excellent (10) |
Average |
Average |
Poor (11) |
The new BrickRPM board is the clear winner for the task at hand. If you need a
VR interface board for your new project, be it for engine position or wheel
speed, choose BrickRPM to get the job done right, on time and on budget.
Likewise, if you're installing a MegaSquirt product and aren't looking forward
to the VR noise troubles that they're famous for, BrickRPM provides you with
robust signal conditioning and fits neatly in the V3.0 prototyping area.
If you need further convincing, take the time to read through the notes below -
they explain everything in detail. At the bottom are a few photographs comparing
BrickRPM with its closest competitor and assorted US currency.
Notes:
- Any LM1815 solution including the Zeal Engineering Daughterboard which is based on this chipset. The price listed is for the Zeal Engineering Daughterboard kit with components. Please note that it contains some other simple circuits and could therefore be cheaper if it was a VR-only design.
- Only available to MegaSquirt users running V3.0 and V3.57 main boards. MS V2.2 and V1.0 boards did not have provision for a variable reluctance input. The V3.0 and V3.57 boards only have one channel built in.
- From left to right: 18x15mm, 28x18mm, ~20x15mm (for two), ~100x43mm, ~140x30mm (for two). Note, the SymtechLabs and Zeal boards are based on JPEG images and known size of the footprints, and the V3.0 discrete design is guessed and fairly inaccurate.
- Only excellent when used inside the ECU enclosure with a short wiring run from the output to the input of the EMS CPU. When used remotely near the VR sensor the output wire is very sensitive to noise. This situation is made worse by use of 1k pullup resistors on the outputs, already a ten times heavier load than the chipset was intended to drive. Due to that, it's not possible to place a useful shunt load at the input of the EMS. Even if this were not the case, the MAX9926 is not capable of driving the loads required to eliminate noise. In short, it only has high noise immunity on its inputs.
- Power handling is required to be high due to the high voltage that the inputs can see on some setups, and the fact that the IC clamps its input pins to the power supply rails. BrickRPM is capable of handling a maximum of 146VRMS continuous assuming suitable thermal conductivity out of the board. The JBPerf board is capable of handling 120VRMS continuous with the same assumption. Peak Voltages higher than these figures are acceptable with a VR wave form due to its lower energy density compared to a pure sine wave.
- On-board power supplies in the JBPerf unit and optionally in the SymtechLabs unit are designed to allow remote mounting of the board near the VR sensor and away from the EMS. This might seem attractive, however it's a bad idea (see 4) and offers no practical benefit in the correct installation inside the EMS box. It only serves to inflate the price, take up more space, and reduce reliability through greater part count.
- It is possible to build your own supply, or run 5V from the EMS box to the board, however it is strongly recommended that you don't do that (see 4).
- The JBPerf Dual V2.0 board is populated with 1k pull up resistors on the MAX IC outputs resulting in a 5mA load while in the low state. Although the datasheet states that the specifications are under conditions of a 5V 1k pull up, it recommends using a value of 10k. We spoke with a Maxim engineer who said "You aren't going to get great performance beyond 2mA. If you need this to output a great amount of current and still get reasonable data I would recommend buffering it with a high power op amp or an external FET.". Irrespective of his opinion loading the device further than the on-board 1k resistor is a very bad idea. As such it's not possible to use a load resistor or drive an LED at the ECU end of the wires when mounted externally. In contrast, if remote-mounting a BrickRPM board (NOT recommended) the included 10k resistor allows an additional 1.2k pull up at the ECU end of the wire to combat noise.
- The board is a little big and heavy for long term reliability with just soldered connections for mounting, so should be screwed down as recommended by JBPerf. Only use the plastic screws/nuts/spacers that are provided, though, or you may damage the power supply. The diameter of the head of an M3 or #5 screw that fits the 3.2mm hole overlaps both 5V and ground traces and could cause a short. Finally, the spacing of the header holes is 21.6mm, putting one set exactly half way between the holes of your perf board, assuming that the other is aligned. This precludes mounting it close to the receiver board and forces the pins used to be on an angle ruling out socket use.
- The MAX992X ICs have adaptive peak threshold and can therefore cleanly receive signals in the range of tens of millivolts to hundreds of volts.
- This circuit requires tuning to specific voltage levels. What this means is that sometimes when tuned correctly for high RPM use, no signal is shown at low RPM. Conversely when tuned correctly for low RPM operation, noise in the higher ranges can sneak through.
- This board only has a single VR interface on it, therefore the cost is doubled for two inputs. Even if only one was required, BrickRPM would still be a cheaper option, and nearly as small. Convenience is marked as very good with the assumption that two are required. If only one is required the convenience level is excellent. Size is rated as small, and not tiny, because you only get half of the functionality for a similar size.
- SymtechLabs, in order to lower power handling requirements and board size have opted for 20k input resistors. Unfortunately this has a negative impact on noise immunity if used as-is, without a shunt resistor.
- From the available photographs it appears to use a 4.2k or 4.7k pull up resistor. This isn't too bad, allowing some headroom for additional loading if used remotely, though not as much as the Maxim-recommended 10k value does.