From 5936cb6083ed4b81d9c222e740411c4da8c69511 Mon Sep 17 00:00:00 2001 From: Carlos Henriques Date: Tue, 9 Nov 2021 20:05:00 +0000 Subject: [PATCH] update readme --- README.md | 71 ++++++++++++++++++++++++++++++++++------- img/old-bootloader.png | Bin 0 -> 19387 bytes 2 files changed, 59 insertions(+), 12 deletions(-) create mode 100644 img/old-bootloader.png diff --git a/README.md b/README.md index c32d4ea..4d85c81 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,63 @@ # XCTRACK_vario DO IT YOURSELF ! -Variometer for XCTRACK (https://xctrack.org/) base on ms5611 high precision pressure and temperature sensor and LK8000 -It's works with USB or Bluetooth on XCtrack ! +## Table of Contents -Power consumption ~ 0.1W ( a little bit more with bluetooth ) +- [Overview](#overview) +- [Components](#components) +- [Step by step](#step-by-step) +- [Diagrams](#diagrams) + * [USB support only](#usb-support-only) + * [USB and bluetooth support](#usb-and-bluetooth-support) +- [Known issues](#known-issues) + +## Overview + +Variometer for [XCTRACK](https://xctrack.org/) based on MS5611 high precision pressure and temperature sensor and LK8000. + +It works via USB or Bluetooth on XCtrack! + +Power consumption ~0.1W (a little bit more with bluetooth) Based on Arduino Vario by Benjamin PERRIN 2017 / Vari'Up Based on Arduino Vario by Jaros, 2012 and vario DFelix 2013 https://github.com/LK8000/LK8000/blob/master/Docs/LK8EX1.txt -parts : -- arduino nano with ftdi chip ( or ch340g chip since xctrack 0.9.3) -- ms5611 pressure and temperature sensor -- bluetooth module in option ( hc-05 or hc-06 or cpp module ) -- usb mini - micro - type c OTG cable (if USB mode) , depends on your phone +### Components +- Arduino Nano with FTDI chip (or ch340g chip since xctrack 0.9.3) +- MS5611 pressure and temperature sensor +- bluetooth module in option (hc-05 or hc-06 or cpp module (ZS-040)) +- USB mini/micro/type c OTG cable (if USB mode), depends on your phone aliexpress - - PLA box 3D printing Onshape - + ![alt text](img/xctrack512.jpg) -## with usb support only +## Step by step + +You will need to download the MS5XXX library by Roman Schmitz. For this, go to Tools -> Manage Libraries and search for "MS5xxx"; install the library done by Roman Schmitz. + +If you want to use it as only usb, just upload the code in XCTRACK_VARIO_MS5611. + +To use it as bluetooth, simply change the following code + +``` +#define USB_MODE // usb by default +// #define BLUETOOTH_MODE // uncomment this line and comment the line above for bluetooth mode +``` + +to + +``` +// #define USB_MODE // usb by default +#define BLUETOOTH_MODE // uncomment this line and comment the line above for bluetooth mode +``` + +Note: To build this vario, you *may* be able to use other Arduinos besides the nano: simply connect the SCL/SDA of the MS5611 to the respective SCL/SDA ports of your Arduino. + +## Diagrams + +### USB support only ![alt text](img/vario_MS5611.png) @@ -29,8 +65,19 @@ parts : ![alt text](img/usb-c_soldered.jpg) -## with usb and bluetooth support +### USB and bluetooth support ![alt text](img/vario_MS5611_bluetooth.png) ![alt text](img/usb-mini_bluetooth_soldered.jpg) + + +### Known issues + +#### The arduino seems bricked +You may have connected the SCL/SDA ports wrong. If you can't upload to your arduino, disconnect it from the computer, press and hold the reset button, plug it back (don't release the reset), and click upload: when the IDE says that is uploading (after compiling ends) release the reset button. + +#### Can't upload +Assuming you are using a nano, you may have an older bootloader version. Change the processor to "ATmega328P (Old Bootloader)" + +![img.png](img/old-bootloader.png) \ No newline at end of file diff --git a/img/old-bootloader.png b/img/old-bootloader.png new file mode 100644 index 0000000000000000000000000000000000000000..2280646eb8c49e26f4b1bd1ceac57375e29e9667 GIT binary patch literal 19387 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 m3T2b1tE-c=l|rF>82<%NdLINy4l_Rh0000