If you have previously built the Jeti AltMeter you can simply update that to Jeti VarioMeter. Or you can build a new one, parts sure aren’t expensive!
Jeti VarioMeter can be built with BMP085, BMP180, BMP280 or the most accurate BME280. The BME280 is preferred for better accuracy, price is about the same.
You need to jump into magnificent world of Ebay once again, parts needed:
- Arduino Pro Mini 3.3V 8Mhz (Or equivalent) Example link to Ebay here.
- BMP085, BMP180, BMP280 or BME280 (MS5611 and LPS311AP-support is experimental), Example link to Ebay here and here and here. (BMP280 or BME280 recommended)
- Little wire and shrink-wrap.
Note: Sensor needs to be I2C sensor, meaning it has to have SCL and SDA pins!
- Measures Altitude in meters or feet
- Calculates zero when powered, does not bother about sea-level etc.
- Measures temperature in celsius or fahrenheit
- Variometer outputs vertical speed in m/s or ft/s
- Measures airpressure in hPa or inHG
- Measures humidity in rH (BME280 required)
- User selectable localization option between EU or US units
- Possibility to reset altitude manually
- Same firmware for all sensors, user selectable sensor with Jetibox
- Can be used with Jetibox also (Humidity not available)
- Vario-filters values adjustable via Jetibox
- Automatic reset of Arduino to default values on first boot
There is two altitude-values available. “Altitude” is absolute altitude, this is the altitude sensor is sending. The “Rel. Altit” is relative altitude and is automatically set to zero after a while. This is the altitude you want to know when you ask “how high above ground my model is.”
Using voice announcement on these are also different, Jeti announces “Altitude” as “Absolute altitude nn meters” and “Relative Altitude” as “Altitude nn meters”.
Connecting sensors to Arduino is easy, there’s only four wires between these:
- Sensor VIN or VCC -> Arduino VCC
- Sensor GND -> Arduino GND
- Sensor SCL -> Arduino A5
- Sensor SDA -> Arduino A4
Check connections in pictures below.
Note that A4 and A5 might be in different physical places if you’re using a cheap china-board!
You also need the connection to Jeti receiver:
- Arduino pin 3 -> Receiver signal
- Arduino RAW -> Receiver positive
- Arduino GND -> Receiver negative
NOTE: Some boards have GRN where my boards have GND. Do NOT use GRN, use GND!
Resistor: There is no 2.4k resistor in VarioMeter, if you have it in your Altmeter and you are updating there is no need to remove it.
If you wan’t to use Arduino Nano, read this post.
Connections – Arduino to BMP180, BMP280 or BME280 with 4 pins
Schematic – Arduino to BMP180, BMP280 or BME280 with 6 pins
For BMP180 placement I solved it really easily, a drop of glue and BMP180 sits nicely on top of Atmega processor. One could argue that this would create erratic readings due temperature but in this application the accuracy is well inside desired based on testing.
The size of sensor is practically the same as Arduino Pro Mini, so size really should not be an issue:
Note – Important
There’s one thing you need to note. In the actual sensor-component has a tiny hole, you should not cover this! So make sure the surrounding air has a clear way in to that one. Placing the sensor is also something you need to think of, sensor should not be in direct wind or any other place where draft or wind could cause erratic readings. Best solution is to wrap the sensor in soft foam that protects the sensor from direct wind and draft.
VERY sensitive, really accurate based upon my testing. Accuracy is 0.1 to 0.2 meters (less than one feet) which is perfectly fine.
Programming Jeti VarioMeter
Go and get the suitable .hex or .ino (Named RCT_VarioMeter) file from my Github here. Easiest method is RCT Firmware Uploader + .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.
Difference between BMP180 and BMP280 and note on BMP280’s
Some BMP280 are different than others, if your sensor does not work try to change the line 37 in Adafruit_BMP280.h from
#define BMP280_I2CADDR (0x76)
#define BMP280_I2CADDR (0x77)
Big thanks to David Woods for his finding! RC-Thoughts packaged library is with 0x76, my BMP280 works with that.
In the Jeti Transmitter – Usage?
As usual head on to sensor-setup and look for device “RCT” with sensor “Altitude” and “Temperature”, sensor defaults to BMP280 with EU-units (Left picture below):
Then you have new sensors you can use as any other sensor:
Whole Jetibox-menu looks like this:
If you want to use Jetibox (transmitters or hardware-box) or you want to change between EU and US units open the Jetibox:
Press right to go to altitude and vario-display:
Press right to go to temperature and pressure display:
Press right to go to altitude reset. This is needed sometimes since some of you keep their models powered for longer periods and air-pressure will change during the day.
After pressing down you will get back to altitude-screen.
That was the “daily usage”. Going further to right in menu are the settings.
Jeti VarioMeter stores settings in it’s EEPROM-memory. On first start after programming firmware sensor checks if there are any settings stored and if not it stores default settings to memory and blinks five times.
- Sensor module is detected automatically
- Vario Filters and Deadxone set automatically per sensor module-type
Setting up the Jeti VarioMeter
In Jetibox go past the Altitude reset-screen. First is the filters for vario. Filter X is at 0.88 as default and Filter Y is at 0.15. Adjusting these you can change the behavior of Vario. For example changing Filter X closer to 0.99 will make more stable value but also slower reaction. During first tests Deadzone is recommended to put as zero. You can play with the values and adjust them to your liking.
First is Filter X, pressing Up or Down changes the value by 0.01, pressing Up and Down at the same time add 0.10 and pressing Left and Right at the same time resets value to 0.01. Valid value-range is 0.01 to 0.99. Pressing right takes you to next screen.
Next up is the same for Filter Y, usage is the same as above. Pressing right takes you to next screen.
Next is the Deadzone, valid range is 0 to 100. During setup-flights this is recommended to be at 0, default value is 3, change the value with Up and Down buttons and press right to continue.
Next up is the screen-confirmation of detected sensor-module, you should see your sensor-type here. If firmware does not recognize your module check wiring first.
To change units between EU and US press right when in sensor-type screen. Change the units by pressing down:
After this press right to enable or disable the additional sensor-value “Raw Vario”. This can be very useful if you want to tinker with Vario’s filter-values. Default value is off
Next up is saving the settings. After pressing Down sensor is restarted automatically. Remember to search your sensors in transmitter if you changed Raw Vario-settings or units.
Last option is to reset sensor to default values. If you choose to do this sensor is restarted automatically with defautl settings.
Version 1.2 has a great improvement on performance. This is most recognizable on Vario where speed and accuracy is remarkably better!
One reader made a comparison between RCT Jeti VarioMeter version 1.0 and Jeti MVario, results are quite nice as can be seen here:
Big thanks goes to scimart for testing!
- 1.0 Initial release
- 1.1 Altitudes redefined and library error corrected
- 1.2 Added possibility to use more sensors, Vario-calculation reworked totally. Thanks to nightflyer88 for Vario-filter!
- 1.3 Added initial reset-function and filter-settings for user, corrected BMP085/BMP180 altitude-bug, small adjustment to serial speed due receiver-compatibility
- 1.4 Added experimental support for MS5611 and LPS311, reworked Jetibox-menus for better user-experience, fixed a Jetibox bug with 15/16 characters.
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, this will not bankrupt you in any way :)