DIY Arduino Variometer for Paragliding / Делаем Вариометр На Ардуино

13,148

42

31

About: My name is Andrei and I'm from Russia. I love paragliding, photography and making different stuff with my own hands! Hope that my posts can be useful for you! =)

All paraglider and hang glider pilots can be devided into two categories: those who have the variometer and those who want to have it. In this post you'll see, how you can make such device with your owh hands and not pay a lot of money. Of course, the DIY device will not have such precision as the factory one, but it's still enough for flights.

So, let's go...

Important! In the end of the post you can find links to the 3d case models on Thingiverse.com for printing and also updates for BMP280 and BME280 sensors.

/////

Все пилоты парапланов и дельтапланов делятся на два типа: те, у кого есть вариометр, и те, кто не отказался бы его заиметь. В этой инструкции вы увидите, как можно собрать подобный девайс самостоятельно на базе Ардуино Нано, и обойдётся он гораздо дешевле, чем заводской прибор. Разумеется, добиться такой точности, как у заводского, у нас навряд ли получится, но, тем не менее, прибор будет вполне полётопригоден.

Итак, поехали...

Важно! В конце статьи Вы найдёте ссылки на модели под печать корпуса на сайте Thingiverse.com, а также дополнения для желающих построить девайс на датчиках BMP280 и BME280.

Step 1: What We'll Need / Нам Понадобится

Also we'll need some software:

- Arduino IDE - https://www.arduino.cc/en/main/software

- Libraries for BMP180, LCD I2C and for buttons (four attached zip-archives)

After installing the IDE, just unpack archives to "Program Files\Arduino\libraries".

/////

Нам так же понадобится немного софта и библиотек:

- Arduino IDE - https://www.arduino.cc/en/main/software

- Библиотеки для датчика BMP180, LCD экрана с I2C переходником и для правильной работы кнопок (четыре прикреплённых zip-архива)

После установки среды Arduino просто распакуйте архивы по этому пути: "Program Files\Arduino\libraries".

Step 2: Connection Diagram / Схема Подключения

Step 3: Development / Разработка Устройства И Прошивки

Firstly I wanted to make a simple small beeper with a screen to show the vario and altitude values. But then I wanted more and more. As a result the device has a big bulky case with several buttons, but it can do much more useful things than I originally planned! Here are some pictures of the development process.

To reduce the firmware development time, the algorithm of the variometer averager was borrowed from these two awesome projects:

https://www.instructables.com/id/GoFly-paraglidingh...

http://redhats.ru/variometer-arduino-2015/

A lot of thanks to their authors!

P.S. I have to honestly admit, this is my first serious project on Arduino and this is my first code for seven years after graduation from University. Therefore, the code itself is creepy enough, complicated, poorly optimized and all stands on crutches! But it works! And, as is known, if something works - do not touch it! And, in general, this is not a bug, it's a feature! =)

The first version of ino-file - Vario_nX_v1.0.ino!

P.S. The new firmware version Vario_nX_v1.1.ino has more pleasant descent sound! Check it out! =)

P.P.S. The next version - Vario_nX_v1.2.ino

Changes: Added new values to the series of preset values.

For treshold on descent the extended line is: -0.5, -0.7, -0.9, -1.1, -1.3

For treshold on falling the extended line is: -2.5, -3.0, -4.0, -5.0, -6.0, -7.0, -8.0

Px3.S. The next version - Vario_nX_v1.3.ino

Added a "shortcut key" for the LCD backlight ON/OFF.

Now to turn on or off the backlight you just need to enter the MENU by short pressing the Button 1 and then just long press the same button until the device beeps.

/////

Сперва я хотел сделать простую маленькую пищалку с экраном, что бы видеть скороподъёмность и высоту. Но с каждой новой фичей хотелось всё большего. В результате получилась неуклюжая коробка с кнопками, которая умеет делать намного больше полезностей, чем изначально планировалось! На фотках запечатлено несколько моментов процесса разработки.
Что бы не тратить время на изобретение велосипеда, я позаимствовал алгоритм усреднителя из этих двух наикрутейших проектов:

https://www.instructables.com/id/GoFly-paragliding...

http://redhats.ru/variometer-arduino-2015/

Огромное спасибо их авторам!

P.S. Я должен честно признаться, это мой первый серьёзный проект на Arduino и это мой первый код за семь лет после выпуска из универа. Поэтому сам код достаточно жуткий, сложный, плохо оптимизированный и весь стоит на костылях! Но он работает!

А, как известно, работает – не трогай! И, вообще, это не баг, это фича! =)

Первая версия прошивки (ino-файлик) - Vario_nX_v1.0.ino!

P.S. В следующей версии прошивки Vario_nX_v1.1.ino ощутимо изменён звук варика на снижении. Он стал более приятным, не режет слух.

P.P.S. Очередная версия - Vario_nX_v1.2.ino

Изменения: по просьбам братьев-пилотов расширены ряды значений порога срабатывания на сливе и для тревоги.

Новый ряд порога на снижении: -0.5, -0.7, -0.9, -1.1, -1.3
Новый ряд порога при падении: -2.5, -3.0, -4.0, -5.0, -6.0, -7.0, -8.0

А так же в комменты (в коде) добавлены пометки "МОЖНО МЕНЯТЬ!!!". Эти пометки указывают, какие начальные значения можно поправить, что бы более гибко настроить прибор под себя любимого! =) Там, где нет такой пометки, трогать ничего не стоит, иначе код может поломаться!

Px3.S. Следующая версия - Vario_nX_v1.3.ino
Добавлена "быстрая клавиша" для выключения/включения подсветки экрана. Теперь, что бы включить или выключить подсветку, Вам нужно войти в МЕНЮ путём кратковременного нажатия Кнопки 1 и затем снова нажать Кнопку 1 примерно на 1-2 секунды до звукового сигнала.

Step 4: Assembly / Сборка

The assembly doesn't look pretty good. I used a lot of heat-shrink tubing and hot-melt glue, but the elements are fixed firmly, nothing hanging. The BMP180 sensor can be found by the yellow heat-shrink tube. Sensor board is covered with foam rubber.

/////

После сборки в корпус внутрянка выглядит слегка не по-заводскому - сплошняком термоклей и кембрик. Но держится всё намертво, разумеется, если не кидаться прибором в стену! Сам датчик можно найти по изогнутому куску жёлтого кембрика. Плата датчика укутана в поролон.

Step 5: Description / Описание

As a result I got such devise. I'm really bad at painting, so the box looks a little creepy in style of FallOut world. But it works and works not too bad.

The video shows main screens and menu items, also there is a small room test.

Main screen shows you the Vario value, one of three altitudes, air temperature and flight time (and some more features, which are described in more detail in the Instruction manual).

The device has also the screen of Maximal altitudes and the screen of Max and Min Vario values.

The Menu has 11 items:

- Sea level pressure setup

- Vario treshold on climb

- Vario treshold on descent

- LED Vario light ON/OFF

- Button sound ON/OFF

- Falling alarm treshold set

- Falling alarm test mode ON/OFF

- Long beep at certain altitude on climb

- Long beep at certain altitude on descent

- Vario mode (one of two)

- LCD Backlight ON/OFF

All these features are more detailed in the Instruction manual (in English and in Russian).

We also have now the Japanese version of Instruction manual! Many thanks to Osa from Japan, who kindy translated it to his native language!

/////

В результате получился вот такой девайс. Художник из меня не очень, поэтому после покраски прибор выглядит довольно жутко, будто из мира FallOut. Но он работает и работает вполне неплохо.

Видео показывает главные экраны устройства, пункты меню, а так же в нём есть небольшой комнатный тест.

Основной экран после запуска прибора показывает значения вариометра, выбранной высоты, температуры воздуха и полётного времени (и ещё несколько полезных штучек, которые подробно описаны в мануале, приложенном к этому посту). Так же прибор может отображать экран максимальных набранных высот и экран максимального и минимального значений вариометра.

В меню есть 11 пунктов:

- Отображение и ввод давления на уровне моря

- Порог срабатывания вариометра при наборе высоты

- Порог срабатывания вариометра при потере высоты

- ВКЛ/ВЫКЛ светодиодной индикации вариометра

- ВКЛ/ВЫКЛ звука клавиш

- Настройка порога срабатывания сигнализации

- ВКЛ/ВЫКЛ тестового режима сигнализации

- Длинный сигнал при проходе заданной высоты в наборе высоты

- Длинный сигнал при проходе заданной высоты на сливе

- Выбор одного из двух режимов вариометра

- ВКЛ/ВЫКЛ подсветки экрана

Все эти опции подробно описаны в мануале (на английском и русском языках).

А сейчас дополнительно появился мануал на японском языке благодаря Osa - товарищу-пилоту из Японии, за что ему огромное спасибо!

Step 6: Results and Tests / Результаты И Тесты

Here is a small video of the second flight test.

By the time this post was written, the device had passed several elevator tests on the ground for calibration and two final tests in the flight. Several bugs have been fixed, and now, in general, the device is ready. Of course, in future there will be more bugs, but they are unlikely to be critical.

If, or more correctly, when the
device shows up bugs, throw me a description on my E-mail (xonix2004@list.ru), or you can find me in VK or Facebook for more convenient communication. If you know some tricky function that should be built into the variometer, but did not find it in the list of available ones, also write. If it’s possible, I’ll try to implement and upload a new version of the firmware.

Live long and fly safe! =)

/////

А вот небольшое видео со второго испытательного полёта.

К моменту написания данного поста прибор качественно накатался в лифте для калибровки, а так же прошёл два боевых теста в воздухе. Было исправлено несколько багов, и теперь, в принципе, девайс готов к эксплуатации. Конечно, в будущем проявятся ещё баги, но навряд ли они будут критичными.

Если, верней, когда в работе устройства обнаружатся баги, скидывайте мне их описание на мыло (xonix2004@list.ru), или же можете найти меня в ВК или Facebook для более удобного общения. Если вы знаете какую-то хитрую функцию, которая должна быть заложена в вариометр, но не нашли её в списке имеющихся, тоже напишите, по возможности постараюсь реализовать и выложить новую версию прошивки.

Всем пилотам встречного ветра и пусть у вас в полёте ничего не складывается! Летайте безопасно! =)

Step 7: 3D-Printed Box! Finally! / Наконец-то! Корпус Для Печати!

Finally! After almost two years it is time to make a new good box for the vario! Two years were enough to realize what the box will look like and what features it is necessary to include in it. The Solidworks weekend gave a result captured on the photo! =) The new box doesn't differ too much from the previous one in dimentions and shape, but it has some important changes inside. First, everything now has its place, you shouldn't use hot glue now. Second, the box is much more strong. And third, in this box I tried to realise the system which should help to fix the temperature indication bug. This should be achieved by adding a specional isolated channel for the baro sensor. Now it's time to test it! =)

At this moment there are two versions of case available. I recommend you to print the second one (ver.1.2).

The second version has several improvements:

- The battery now can be changed without the whole case disassembly;

- Reduced number of fasteners;

- Reduced the height of the device to about 5 mm;

- A bunch of other small improvements.

Ver.1.1:

https://www.thingiverse.com/thing:3301499

Ver.1.2 (RECOMMENDED):

https://www.thingiverse.com/thing:3321624

Also here is a short timelapse video with modelling, printing and assembly of the device:

/////

Наконец-то, спустя почти два года настал момент напечатать нормальный корпус для прибора. За эти два года стало примерно понятно, как будет выглядеть корпус, и какие обязательные элементы будут в нем присутствовать. В общем, выходные, проведённые в Solidworks дали примерно такой результат как на фото! =) По общим габаритам и форме корпус не сильно отличается от первоначального, но внутри есть некоторые полезные изменения. Во-первых, для всего теперь есть свое место, не надо ничего сажать на термоклей. Во-вторых, печатный корпус гораздо крепче, чем распределительная коробка. В третьих, что на мой взгляд, самое главное, в этом корпусе я постарался реализовать систему, которая должна помочь исправить косяк с завышением показаний температуры за счет создания специального изолированного канала, в который помещается датчик. Собственно, осталось дело за тестированием!.. =)

На данный момент для печати доступно две версии корпуса. Рекомендую к печати именно вторую (1.2), так как она содержит в себе несколько полезных улучшений:

- Батарейка теперь меняется без разборки всего корпуса;

- Уменьшено количество крепежа;

- Уменьшена высота прибора примерно на 5 мм (в руках очень ощутимо!);

- Ну и ещё целая кипа мелких улучшений!

Версия 1.1:

https://www.thingiverse.com/thing:3301499

Версия 1.2 (РЕКОМЕНДУЮ ЕЁ):

https://www.thingiverse.com/thing:3321624

Also here is a short timelapse video with modelling, printing and assembly of the device:

Step 8: Updates (BME280 Version) / Обновления (версия С BME280)

We now also have the sketch for BME280 sensor. Many thanks to Osa from Japan who decided to make a vario with this sensor and shared the changed sketch.

It seems that he used the SparkFunBME280.h library, which you can find here:

https://github.com/sparkfun/SparkFun_BME280_Arduin...

Waiting to his spring tests! ;)

/////

У нас так же теперь имеется версия прошивки для датчика BME280, благодаря небесному брату Osa из Японии! Он задумал собрать девайс именно на этом датчике, и пусть через небольшие костыли, но у него это получилось! Спасибо ему огромное за предоставленный модифицированный код!

Очевидно, он использовал библиотеку SparkFunBME280.h, которую вы сможете обнаружить здесь:

https://github.com/sparkfun/SparkFun_BME280_Arduin...

С нетерпением ждём его весенних тестов! ;)

Step 9: Updates (BMP280 Version) / Обновления (версия С BMP280)

And here is a new firmware version for BMP280 sensor! Many thanks to our fellow Ivan Koshelevsky for it!

Initially the divice was build with Mega board, and after turning on several small bugs appeared. Straight after assembling the device with Nano board everything got fine. So if you are going to use any other board except Nano, get ready to catch and fix bugs! =)

/////

А вот подоспела ещё и версия под датчик BMP280! За нее спасибо огромное нашему коллеге по небу - Ивану Кошелевскому!

Сперва девайс был собран на плате Arduino Mega, но после заливки кода полезли мелкие косяки. После сборки на плате Nano всё встало на свои места. Так что, если задумаете собирать на плате отличной от Nano, будьте готовы отлавливать и фиксить баги! =)

Step 10: Updates (BMP280 + OLED 16x2) / Обновления (BMP280 + OLED 16x2)

Also our friend Ivan changed a sketch to use BMP280 sensor with OLED 16x2 Display.

Here is his sketch and wiring diagram!

P.S. He also found an ideal case for the vario on AliExpress!

https://www.aliexpress.com/item/86-Plastic-Project...

/////

Также Иван адаптировал код под использование датчика BMP280 с дисплеем OLED 16x2.

Вот список его изменений:

- Добавлены переменные relcd и PrintLCD для снижения обновления данных на экране (от Автора статьи: это особенность OLED)

- Исправлена проблема перескока символа при установке давления (там была запятая) (от Автора статьи: если честно, сам не совсем понял, что это за хитрый косяк)

- Убрано меню 11 (подсветка дисплея) (от Автора статьи: для OLED пункт действительно бесполезный)

- Сброс высоты старта при включении (от Автора статьи: в оригинале при включении высота старта всегда считается по давлению 760 мм рт. ст. и должна быть сброшена вручную)

- Исправлен алгоритм вычисления макс/мин значений вариометра (сделана зависимость от высоты, т.к. при включении были неверные значения) (от Автора статьи: тоже не совсем понял)

- Индикация уровня заряда батареи в 4-м главном окне (кнопка 3) и при включении питания (от Автора статьи: очень крутая тема, поскольку Иван применяет для питания 18650 элемент)

- Убрал символ "B" при работе варио (от Автора статьи: в оригинале этот символ служит индикатором срабатывания бипера при отключенном звуке и выключенной LED-индикации)

А вот сам скетч и схема подключения компонентов!..

P.S. А еще он нашел идеальный кейс, который не надо печатать, а можно просто купить на Али!

https://www.aliexpress.com/item/86-Plastic-Project...

Microcontroller Contest 2017

Participated in the
Microcontroller Contest 2017

9 People Made This Project!

Recommendations

  • Fandom Contest

    Fandom Contest
  • Sensors Contest

    Sensors Contest
  • Pets Challenge

    Pets Challenge

31 Discussions

0
None
XONIXPierre-AlexandreS

Reply 2 months ago

Thank you very much for your kind words! Really glad this project can be useful for you! =)

0
None
ThierryL23

9 months ago

Hi, thanks for sharing...
Im building one and I would like to know if you measured the delay between changing in vertical speed and vario response.

I hope in the near future I can include a bluetooth in this project to use with flight apps.

Thanks again.

2 replies
0
None
XONIXThierryL23

Reply 9 months ago

Hi!
Well, approximately the delay is somewhere between 0.5 and 1.0 seconds. If you want, you can count it more precisely by yourself using the room test video.
BT upgrade is a cool idea. Also wanted to make it, but there was no necessity. If you make it, it would be cool if you could share the manual! =)

0
None
ThierryL23XONIX

Reply 9 months ago

Thanks!!!
Of course I will :)

0
None
AmjadK17

Question 9 months ago

Much appreciate you sharing this with us. Just finished putting it together. The sound is pretty low, what to do with that?

2 answers
0
None
AmjadK17AmjadK17

Answer 9 months ago

Have changed parameters for up and down beep and that seems to have helped a bit

0
None
XONIXAmjadK17

Reply 9 months ago

Really glad you liked it! =)

So what's with the sound now? Did you totally solve the problem?

0
None
matimolfino

Question 1 year ago

how can i make it so it just beeps, no lcd, no botons, just that it beeps when im going up?

1 answer
0
None
XONIXmatimolfino

Answer 1 year ago

Hi!

Well, to do that you really need to throw out almost everything except averager code and sound output code.

Or you can write to the author of this video on Youtube. He made exactly what you need. Maybe he'll be kind enough to tell more about his device!

https://www.youtube.com/watch?v=runBtB6qQPA

Good luck!

0
None
Knackebrod

1 year ago

Thanks for the detailed instructions! Will be building one this year!

1 reply
0
None
XONIXKnackebrod

Reply 1 year ago

Great! Ask if you have any questions! =)

0
None
Knackebrod

Question 1 year ago

How does the screen hold up in bright sunlight? Still readable?
Would the same system work with a transflective TFT also work?

1 answer
0
None
XONIXKnackebrod

Answer 1 year ago

In the bright sunshine the screen is a little less contrast but still readable.

And the algorythm should work with any type of screen, but you need to adapt the code to your screen

0
None
laisch

Question 1 year ago

Really nice job! Thx for sharing!

To make the battery lasting a little bit longer, is it possible to remove the red power led on the I2C converter platine? on the arduino i already removed it because I knew it's possible, but on the I2C i don't know if it's essential for correct powering the display.

Is it possible to use EEPROM.write on a nano? I want try to store the settings I made (like treshold, lights,..). Maybe a suggestion for a further firmware version ;)

Just a tip for people struggling with their I2C display. I changed the address of the display a few times in the sketch and got no effect (still no textoutput). But then I realized the poti on the back of the display wich handles the contrast. Turning it a little bit helped ;)

Thx again!
Thomas

2 answers
0
None
laischlaisch

Answer 1 year ago

Thx for reply. Yes, removing the led was no problem, it still works ;)

I just added a few pictures. Components enclosed in a wooden box, and a softshell holder to fix it on to the harness.

Just flew with it today and it works like a charm :)

0
None
XONIXlaisch

Answer 1 year ago

Hi! Thanks! =)

About the LED. I also thought about removing that LED, but after making a box, successfully forgot about it! But you can try, I don't think something horrible is going to happen!

Well, yep, you can use EEPROM on Nano! And this is a feature for the next firmware version, but unfortunatelly long repair in my apartment steals all my free time. But you also can try to do it yourself! According to manuals it's pretty easy! =)

And with the potentiometer I had the same thing! =)) Forgot to describe it in the instructable!

So good luck! Waiting for the pictures of your vario! =)

0
None
XONIXEdsonL14

Answer 1 year ago

Hi!
Can you give me more info about the problem?
What pins you can't find?

0
None
EdsonL14

Question 1 year ago

Olá
não entendi direito como ligar o display