If you are using a fuel-powered model you might be interested in fuel consumption. So let’s make a affordable DIY-sensor!
Jeti Fuel Sensor
As it’s custom with DIY-sensors, dive into teh interwebs and get some parts:
- Arduino Pro Mini 5V 16Mhz (Or equivalent) Example link to Ebay here.
- Suitable flow sensor, look below.
- Little wire and shrink-wrap.
NOTE: Make sure you get the 5V 16Mhz version of Arduino Mini Pro! Flow-module needs 5VDC.
Once assembled this will be what you have. I suggest to put the Arduino inside shrink-wrap for protection in the final version. Also if you wish you can put the Arduino on longer wires from flow-module.
Features and operating modes
Sensor is simple, here’s the features:
- Fuel consumption in ml
- Fuel flow speed in ml/m
- Fuel gauge in percentage left in tank
- Tank size set via Jetibox
- Jetibox-compatible
- User calibrated via Jetibox
- Consumption possible to reset via Jetibox
- Option to store consumption and remaining percentage between flight and reset with digital output
- Possibility to use any BT Bio Tech flow-sensor with pulse output and 5VDC operating current
The Biotech-manufactured sensor Jetimodel uses has a reported range of 15 to 800ml/m or 50 to 3000ml/m depending on model you choose. In this sensor you can use any flow-sensor from BT Bio Tech as long as it has pulse-output and has 5VDC operating voltage. Compare to examples below.
Different flow-sensor modules available I could find online:
- 15 to 800ml/m from Conrad – Item 155374-89
- 50 to 3000ml/m from Rapidonline – Item 50-0028
Both flow-modules are the corrosive fluid-version so they will take any fuel you give them without damage.
Prototype module is from Conrad and is the 15-800ml/m version. Fuel Sensor works with any 5V flow-sensor! Only requirements are 5VDC operating voltage and pulse output.
NOTE: When installing and using the sensor note the flow direction!
Connections
Connection are simple and if you have built any DIY-sensors before they are familiar:
- Flow sensor VCC -> Arduino VCC
- Flow sensot GND -> Arduino GND
- Flow sensor SGN -> Arduino 2
You also need the connection to Jeti receiver:
- Arduino 3 -> Receiver signal
- Arduino RAW -> Receiver positive
- Arduino GND -> Receiver negative
Optionally you can also use receivers Digital Output to reset values with Digital Output, connection is one wire
- Arduino 5 -> Receiver output defined as Deigital Output
NOTE: Some boards have GRN where my boards have GND. Do NOT use GRN, use GND!
Schematic
Connection schematic below says it all:
Programming Jeti Fuel Sensor
Go and get the suitable .hex or .ino (Named RCT-FuelSensor) file from my Github here. Easiest method is RC-Thoughts Firmware Uploader here + .hex-file. With Arduino and .ino you need to use the libraries included in Github repository. For info on how to use these look in RFID-sensor how-to here.
Jeti Fuel Sensor in Sensors
As usual, go to Main Menu -> Timers/Sensors -> Sensors/Logging Setup and do a sensor search. You will find a new sensor with three values:
After that you can get fuel-values to your main screen:
Jeti Fuel Sensor Settings
After connecting sensor to receiver head on to Jetibox and MX-screen, then down and you are in the Fuel Sensor:
Pressing right takes you to Jetibox-screen with values in real-time:
Consumption is reset on sensor power-cycle. If you need to reset it without powering down the sensor it can be done in the next screen to the right. Press Down to reset, press right to move on.
Here is the tank size screen. As default tank is at 0ml in size. To increase with a step 1000 press Down, increase with a step of 100 press Up, to increase with 50 press Up and Down. If you miss or need to reset, press Left and Right to reset to zero. After this go to next screen by pressing Right.
Next up is the calibration, we need to teach the sensor the amount of pulses it gives when one liter of fuel is used. In first start of sensor or if sensor is reset to defaults it shows calibration value of zero. If calibration is done already it shows the *-sign after calibration-value. If you want to re-calibrate press left & right to reset calibration-value to zero.
Set your sensor so you can pass one liter (1000ml) of fuel through it. When you have pumped exactly one liter through stop and you should see the amount of pulses your flow-sensor gives with one liter. Pumping speed has no difference as long as it’s around the sensors capabilities. The more accurate you measure the one liter the more accurate the sensor will be in use. Here is my 15-800ml sensor as example after one liter fuel has passed through.
If you are not happy to calibration press Left and Right at the same time to reset and do a new one liter pump. If you have made several sensors you do not have to pump one liter through every sensor (added in v.1.5). When you are in calibration screen you can also enter the calibration value manually:
As picture says, press down to add 1000, up to add 100 and up & down to add 10 to calibration value. If you made an error press left and right to reset to zero and start over. After calibration is done and all settings are saved there is a *-sign after the calibration value, here is an example:
After you are done press right, here you need to decide if you will use sensor’s reset-function. If enabled sensor will store consumed fule-value and remaining percentage after flight. (value is stored after 15 seconds with no flow). You also need to configure a Digital Output from receiver to Arduino’s pin 5. (Example is further below). Press Down to change between Yes and No.
After you are done press right to reset/save-screen. if you want to reset fuel-sensor to defaults (zero-size tank, uncalibrated) press Up and Down at the same time, sensor reset’s and blinks Arduino led once. If you want to save current setup (tank size, calibration,reset-function) simply press right, sensor reset’s and blinks Arduino led once.
After saving all settings you’re done!
Setting up the Reset-function
If you chose to use the reset via Digital Ouptu you need to configure a channel for this. So let’s make one. Go to Function Assignment and create new function, here I named it as “FuelReset”, assign a control (switch for example) for it:
After this go to Servo Assignment and define a channel for the function, here it’s on channel 10:
Next power up the model, go to Device Explorer and Define one of your receivers to Digital Output in Pin Config, here I used OutputPin 4:
Last thing you need to do is to point the “FuelReset”-channel to OutputPin 4, so go to Device Explorer and outputs, define the FuelReset to OutputPin 4:
Make sure the channel-value is 100% and goes to -100% on reset.
Now you have it, fuel sensor reset with a switch. Jetibox-reset is also of course still available.
Using sensor values in transmitter
Here’s a screenshot of values on main screen:
Values in itself are simple. You get the fuel flow meaning how fast fuel is consumed and you get the total amount of fuel used. You can set your alarms any way you like, for example to notify you with “Low Fuel” after 2500ml is consumed. You can also use the ready percentage-value named “Remaining” that tells you in percentage how much fuel you have left.
Could really not be more simple and useful than that :)
Comments on Jeti Fuel Sensor
The actual flow-modules are the same module as the on in Jetimodel’s flow sensors. That equals to same accuracy, and with calibration function they are very accurate.
There is one drawback with DIY-solution, we need to make the fuel line connection ourselves. But that’s DIY, and maybe we can make that for the price-difference :)
Version history
- 1.0 Initial release
- 1.1 Added tank size setting and fuel remaining percentage
- 1.2 Fixed fuel remaining display bug and negative percentage
- 1.3 Redone menus and calibration, allows BT Bio Tech flow-modules with various pulse-counts
- 1.4 Added possibility store consumption and remaining-% to memory between flights
- 1.5 Added possibility for manual setting of calibration-value
- 1.6 Changed calibration-screen to show calibration-value if calibration is done.
- 1.7 Corrected a calculation-code error
Disclaimer
Always make sure everything works as it should. Do not use faulty devices. neither RC-Thoughts and/or me are in any way liable or responsible for anything you do with your equipment or to others with equipment used as described here. You should never use LUA-apps for operation-critical functions.
If you find something that is not working or is behaving strangely please let me know. I’m a car-mechanic by training, not a programmer-geek :)
Most important thing
Is to have fun building and using, this will not bankrupt you in any way :)