/arduino-variometer

Arduino based variometer with accelerometer, screen, gps and sdcard code

Primary LanguageC++

############################
# Arduino based variometer #
############################

Features :
---------
- High precision altitude with improved ms5611 code
- High precision vertical velocity with InvenSense accelerometer (optionnal)
- Screen display with Nokia 5110 : altitude, vertical speed, ground speed, glide ratio and more (optionnal)
- Ground speed and glide ratio with GPS device (optionnal)
- Flight tracking with SD card reader and GPS (optionnal)
- Bluetooth communication with external device (optionnal)
- Battery level (optionnal)


How to build :
--------------
Pre-build kits can be found here :

https://github.com/prunkdump/variometer-kits

Contact me for more informations at prunkdump@gmail.com


Variometer Wiring :
-------------------

See schematic.pdf for full diagram.

ms5611/mpu9250 board :
SDA -> Arduino A4
SCL -> Arduino A5
VCC -> Battery RAW +
GND -> GND

Speaker (simple) :
Speaker + -> 120 Ohms resistor -> Arduino D9
Speaker - -> Arduino D10

Speaker (amplified with L9110) :
L9110 IA -> Arduino D9
L9110 IB -> Arduino D10
L9110 OA -> Speaker +
L9110 OB -> Speaker -
L9110 VCC -> Battery RAW +
L9110 GND -> GND

Nokia 5110 board :
SCLK -> Arduino D13
DIN/MOSI -> Arduino D11
DC -> any Arduino pin (default D4)
CS -> any Arduino pin (default D3)
RST -> any Arduino pin (default D2)
VCC -> regulated 3.3V !
GND -> GND

GPS board :
GPS TX pin -> Arduino RX pin
GPS RX pin -> any Arduino pin (only used for GPS configuration)
GPS VCC -> Battery RAW +
GPS GND -> GND

SD card reader :
CS -> any Arduino pin (default A0)
MOSI -> Arduino D11
SCLK -> Arduino D13
MISO -> Arduino D12
5V -> Battery RAW +
GND -> GND

Bluetooth module :
Bluetooth RX pin -> Arduino TX pin
Bluetooth TX pin -> arduino pin with interrupt capatibility (default D8, used only for Bluetooth configuration)
Bluetooth VCC -> Battery RAW +
Bluetooth GND -> GND

Battery level unit (voltage divisor) :
Arduino Analog pin (default A2) -> 270 kOhms resistor -> Battery RAW +
Arduino Analog pin (default A2) -> 1 MOhms resitor -> GND


Code configuration :
--------------------

!!! Don't skip this step !!!
Open ./libraries/VarioSettings/VarioSettings.h and check all the parameters.
To "comment" a line put a "//" at the beginning.


If you embed an SD card reader :
--------------------------------

Compile and upload "SetVarioParameters" sketch and run it. This store
the "pilot" parameters in EEPROM. This must be done just one time.


!!! Don't skip this step !!!
Make a less than 2Go partition (typically 1,5Go) on the SD card. And
format it in FAT16.


If you embed an InvenSense accelerometer :
------------------------------------------

Don't forget to set the model in "VarioSettings.h". Next compile and
upload "calibration_nointeractive" sketch. And follow this procedure :

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

This must be done just one time.

---------------------------------
YOU CAN NOW TRY YOUR VARIOMETER !
---------------------------------