Boredom is a mother of all inventions, so to this one. Had nothing to do and was browsing through my “million-box” to see what’s there. (Million box is a box with million different parts without any order, we all have one…)
Came across a BMP180 pressure-sensor and since I knew this have been used to make altitude sensors I thought let’s make one for Jeti too.
Why do this when Jeti has MAlti EX? Honestly, no particular reason. Well, MAlti EX is 55€, this is under 5€. And sometimes just altitude and perhaps temperature is enough. And this is customizable.
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.
- BMP180 or BMP280 Example link to Ebay here and here
- Little wire and shrink-wrap.
- Measures Altitude in meters, feet, km, mile, yard (Conversion done in transmitter)
- Calculates zero when powered, does not bother about sea-level etc.
- Measures temperature in celsius or fahrenheit (Conversion from celsius done in transmitter)
- Altitude can be reset to zero via Jetibox any time (v.1.2 and up)
- Can be used with Jetibox also
Connecting BMP180 or BMP280 to Arduino is easy, there’s only four wires between these:
- BMP180/BMP280 VIN -> Arduino VCC
- BMP180/BMP280 GND -> Arduino GND
- BMP180/BMP280 SCL -> Arduino A5
- BMP180/BMP280 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 -> 2.4kΩ resistor AND receiver signal
- Arduino pin 4 -> 2.4kΩ resistor
- Arduino RAW -> Receiver positive
- Arduino GRN -> Receiver negative
Connections – Arduino to BMP180 or BMP280
Schematic – Arduino to BMP280
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:
Then print a cute small label and use some shrink-wrap:
Note – Important
There’s one thing you need to note. In the BMP180 or BMP280 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 one meter (3-4 ft) which is perfectly fine.
Programming Jeti Altmeter
Go and get the suitable .hex or .ino (Named RCT_Altmeter_180 or RCT_Altmeter_280) file from my Github here. Easiest method is XLoader + .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”:
If you need other values than meters this is also the place where to change that, Jeti takes care of conversion.
Then you have new sensors you can use as any other sensor:
If you wan’t to check values with Jetibox (Hardware Jetibox or transmitters Jetibox, both work):
Note that in Jetibox values are always in meter and celsius.
The way sensor works is that it sets altitude to zero when started. Some users like to keep their models powered for longer periods even between flights and simce airpressure can change so does the altitude the sensor measures. So in v.1.2 I added a altitude reset via Jetibox.
So in Jetibox when seeing the altitude and temperature-screen go to right and you will come to reset-screen:
As the screen says, press down-button to reset current altitude to zero. You will then see a confirmation-screen:
Pressing left-button takes you to start, simple and effective!
- 1.0 Initial release
- 1.1 Added temperature and Jetibox
- 1.2 Added altitude reset via Jetibox
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 :)