Giter VIP home page Giter VIP logo

anttracker's Introduction

AntTracker

Antenna Tracker for tracking a moving model aircraft or drone with a small high-gain UHF or SHF antenna. Supports Mavlink 1 & 2, Frsky D legacy, X S.Port and Passthru, CRSF, LTM, and GPS

Please click on WiKi above

anttracker's People

Contributors

bsh314 avatar mric3412 avatar oldrootbeer avatar pascal-m avatar zs6buj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

anttracker's Issues

R9M ACCST S.PORT connexion / mavlink detection

Hello,

I have

  • R9M ACCST version ( the older version of the ACCESS protocol )

  • Aduplane V4.1.0
    image

  • SERIAL PROTOCOL 23

I dont't know if my process or connexion wirring it's ok or not

  1. connct Sport from R9M to pin 27 ESP32
    image
  2. powerup plane, wait fix 3D
  3. powerup radio and recive = telemetry OK
  4. check logs :
    image

Thannks a lot

360 servo

can anyone help please
ive set up my tracker on V2.29.05, everything seems to work fine other than the AZ movement.
i have a 360 servo but it only moves 180. ive checked the output of the PWM and ran servo test to see the output.
when the tracker first loads its set to point 180 (PWM value of 3736. then in the servo test i run it as below, when it tries to test 360 it doesnt move and reads the same as 180 then when it tests 0 degrees it moves down to pwn 769.
please correct me if im wrong but setting the start point at 180 it should have a mid point on the pwm then move left and right from that when moving to 0 and 360

when setting the servo movement to 180 i get pwm 3719 max, 2253 mid and 802 low, so seems to be an issue when 360 is configured

void TestServos() {
delay(8000);
moveServos(180 (pwm 3736)
delay(8000);
moveServos(180 (pwm 3736)
delay(8000);
moveServos(359 (pwm 3736)
delay(8000);
moveServos(359 (pwm 3736)
delay(8000);
moveServos(0 (pwm 769 )
delay(8000);
moveServos(0 (pwm 769)
delay(8000);
moveServos(azStart, elStart);

#define Test_Servos // Move servos through their limits, then try box_hdg every 45 degrees of circle

#define Az_Servo_360 // Means the azimuth servo can point in a 360 deg circle, elevation servo 90 deg
// Default (comment out #define above) is 180 deg azimuth and flip over 180 deg elevation

#define azStart 180 // 0 deg = left, 90 deg = straight ahead, 180 deg = right, 270 deg = behind
#define elStart 45 // 0 = horizontal, 90 = vertical

#define Servo_Slowdown 5 // Default 0 - Try 5, 10.. ms/degree to limit angular velocity

// Set the degree range of the servos here. Do not adjust servo mechanical limits here.
#if defined Az_Servo_360 // 1 x 360, 1 x 90 (or 180) servos
int16_t minAz = 0; // Az lower limit in degrees, left of tracker facing flying field
int16_t maxAz = 359; // Az upper limit in degrees
int16_t minEl = 0; // El lower limit in degrees, horizontal
int16_t maxEl = 90; // El upper limit in degrees, straight up
AntTrack_360AZ.zip

Problems using LTM protocol

Hi,
I found two possible bugs using those configurations:

#define Telemetry_In 0 // Serial Port (default) - all protocols
and
#define PROTOCOL 6 // LTM

First problem

In the file AntTrack.ino, row 978, the function CheckStatusAndTimeouts(); // and service status LED is called.
That function is definited in the file Utilities.ino, and contains the following code:

if ((millis() - hbGood_millis) > ((2*timeout_secs) * 1000)) { mavGood = false; hbGood = false; }

This code is ran regardless of the protocol selected in config.h file.

The problem is that the function LTM.ino does not upgrade the variable hbGood_millis, so the variable hbGood will always be false.

I thought of 3 possible solutions:

  1. in the file AntTrack.ino, row 978, the function CheckStatusAndTimeouts(); // and service status LED , don't call the function if we are using LTM mode (check variable PROTOCOL);

  2. same thing in the file Utilities.ino, we don't run the if statement mentioned before if we are using LTM mode (check variable PROTOCOL);

  3. in the file LTM, after the while cycle: while (iLth==0) { // CheckStatusAndTimeouts(); iLth=Serial1.available(); }
    add hbGood_millis = millis();

I chose the 3th option and it is working correctly. Is it the best solution?
Edit: after the while cyle in the file LTM.ino, it's already present the row: hbGood = 1;, so the best solution should be the second that i mentioned before. But in this case I lose the possibility to check a possible timeout (right?)

Second problem

I don't know why, but if I lost the signal (e.g. disconnecting the battery), lat and lon received values are still not zero. This will cause the variable gpsGood to remain True even though the aircraft's FC (and GPS also) was turned off. The other variables, however, immediately become zero (e.g. iSat ).

Possible solution:
In file LTM.ino (row 133-136) change
if ((!(Lat == 0)) && (!(Lon == 0))) { gpsGood=1; new_GPS_data = true; }
to
if ((!(Lat == 0)) && (!(Lon == 0)) && (iSat > 0) ) { gpsGood=1; new_GPS_data = true; }

Frsky X8R smart port

Hi

Thanks for developing this tracker & the support you provide. I read your RC group thread and still a little bit confused most probably due to my lack on knowledge in this area!

If I'm to use X8R receiver and feed telemetry data from FC to smart port and then receive that on either my taranis or jumper T16 can I then extract telemetry data (what's required for the tracker ) through one of the pins in the module bay on the back of either radio ?

If so do I need 5V to 3.3V level converter ?

Thanks

failed to get led status

I managed to upload the firmware, after that I tested it with telemetry qlrs, I have un-coment qlrs on the code, but I only get the led flashing slowly, well without telemetry, with telemetry cables connected, even with the gps key still getting the led flashing slowly, can't find out what errors happened to my settings.

Express LRS

will this tracker work with ELRS protocol and ardupilot FC ?

cheers

Help on several topic

Hi!
First of all congratulations for the amazing project and secondly thank you for sharing with us.
I'm facing some issues on which I need your support.
I have a LILYGO® TTGO T-Display ESP32 1.14" ST7789 Colour LCD, and a 360deg servo (AZ) together with a 90deg servo (EL).

  1. My AZ servo limits are 555us (0deg) and 2475us (359deg).
    What should be my minAzPWM and maxAzPWM to be inserted on this part of the code? I'm a bit confused with "right and left".

#if defined STM32F1xx - my STM32 based tracker has different servos
minAzPWM = 600 - right because mine is reversed, yours may differ
maxAzPWM = 2200 - left
minElPWM = 700 - front
maxElPWM = 2300 - back
#else
minAzPWM = 625 - right (because mine is reversed) maxAzPWM = 2240 - left minElPWM = 700 - front
maxElPWM = 2257; // back
#endif

  1. Using the serial monitor to debug I get this error just after TestServos:

E (307496) gpio: gpio_set_level(226): GPIO output gpio_num error

This message is looping and filling the monitor outuput, which makes hard to make any debug. Googling the issue points maybe to TFT_eSPI lib, but even after changing it with a different version and messing with some settings I get no sucess. Do you have any clue what can be the origin of the error?

  1. The only time I get the servos moving and have have active tracking is when I set "3 Trackerbox_Compass" as heading source. When I set "4 Trackerbox_GPS_And_Compass" the system never moves, although I have a correctly detected GPS with lock. Note: I'm using MissionPlanner simulation to feed MAVLINK messages to the tracker, and normally the planner reports only 10 sats. Is it somehow related?

Thank you again!
Tiago

General questions and version discrepancies

Hi, I am very interested in building this tracker (LTM and Mavlink-BT options). But first I have noticed some version discrepancies. The LTM version is v0.22 and mavlink is 0.37. Why they are not at the same stage? And do I need to decide witch protocol I have to use or it determines the protocol automatically? That would be great because I probably use Mavlink AND LTM depending on Aircraft.

Also I've seen on RC groups some code supporting an OLED I2C display. Is this already part of your code? This would be great if we could have some configuration options (like protocol selection) and/or for some status data.

Support for Stepper Motors

Hi,

The antenna tracker is amazing and works well.

Will there be an support for Stepper motors as they have better holding torque for bigger antennas.

Thank you

INAV: calculating altitude problem with FrSky

Hello and sorry for disturbing again,

i found a small bug, which is probably no problem for an IT-expert:

INAV submits the altitude relative to ground after starting up FC.
If this altitude varies a little bit, for example to -1m, i get the height of 65535. As i mention, this is a problem by converting
data types (some data type) to integer....
After this, because minAltAg is over threshold (for example 4m), tracking begins.
And after this, the code crashes after swapping altitude around between 65.535 and 0 meters :-(
I tried several things such declaring gpsAlt as u_int16 and so on but i´m not deep enough in IT to understand it correct.
EDIT: This problem only appears in INAV, not in Betaflight. Betaflight just seems to ignore altitudes below 0.

Do you have any suggestions? Thanks ins advance......

Problems with push button

Hello im having problems using the button
I tried every gpio on the board and in any ot them the push button works
now i set it to pin 34 and the other pin to gnd but nothing
i dont know if you can do something but if you cant i see that im not the first to have that problem and it worked on version 2.18.7 so if you can at least add the old ones like you used to
I will be grateful
All the other features works (compass telem in....._)
#if (ESP32_Variant == 1) // ESP32 Dev Module
uint8_t in_rxPin = 27; // uart1
#define in_txPin 17
uint8_t gps_rxPin = 13; // uart2 for tracker box GPS if applicable
#define gps_txPin 4
bool rxInvert = true; // ONLY FOR FrSky S.Port, NOT F.Port, NOT MAVLINK
#define SetHomePin 34 // LOW == pushed
#define StatusLed 25 // Off=No good GPS yet, flashing=good GPS but home not set yet, solid = ready to track
#define BuiltinLed 99
#define azPWM_Pin 32 // azimuth servo (can't be 34,35,36,39 because input only !!)
#define elPWM_Pin 33 // elevation servo(can't be 34,35,36,39 because input only !!)
#define BuiltinLed 02 // PB1

#define displaySupport       // uncomment me if you have a SSD1306 display
#if (defined displaySupport)   // Display type defined with # define displaySupport   
  #define SSD1306_Display         // OLED display type    
  /* Below please choose either Touch pin-pair or Digital pin-pair for display scrolling
   *  Pin == 99 means the pin-pair is not used
   */ 
  #define Pup           99        // Board Button 1 to scroll the display up
  #define Pdn           99        // Board Button 2 to scroll the display down   
  #define Tup           33        // Touch pin to scroll the display up
  #define Tdn           32        // Touch pin to scroll the display down   
      
  #define SDA           21        // I2C OLED board and/or Compass
  #define SCL           22        // I2C OLED board and/or Compass
  #define display_i2c_addr      0x3C       // I2C OLED board

Calculating issue of heading

Hello,

Everything works fine in the Code: great config, compiling, getting Data via Protocol, getting GPS, compass heading..
BUT: calculation of heading is not correct:

21:42:22.500 hom.lat = 47.9879341 hom.lon = 7.8289866 hom.alt = 300 cur.lat = 47.9878387 cur.lon = 7.8294182 cur.alt = 292 cur.alt_ag = 0
21:42:22.505 hc_vector.az= 236.05 hc_vector.el= 0.00 hc_vector.dist= 14388836 Elapsed= 117.559

I tried own GPS (Option 4) and GPS on plane: Same Problem!

At least, distance can not be true, it should be around 35m.
Do you have any advice?
Thanks in advance....

Blackpill F411

Its possible to work with blackpill F411? What need to change?

Frsky r9m telemetry questions

Hi I have been searching for an antenna tracker I could use with Inav and the frsky r9m system. I have gps telemetry coming into my radio from my FC. Can I hook up this antenna tracker to the smart port at the back of the module with wires or a bluetooth link? I'm hoping I'm correct with my assumption that this is how it works.

Thanks in advance.

esp32 dev board - not working

anyone can help me?

I am using:

betaflight + fport R9mm

X9D + R9M ACCESS - S.PORT + GND pins used

esp32 dev board

#define ESP32_Variant 1

OLED display GND, 5V, SDA - PIN 21, SCL - PIN 22

#define Display_Support

#define SSD1306_Display

Serial port on PIN27, GND

#define Telemetry_In 0

GY-271 GND, 5LV, SDA - PIN 21, SCL - PIN 22

const uint8_t Heading_Source = 2;

nothing else is connected or changed in config...

oled display is working, but in debug I can see that no telemetry is going inside... I tried inverter and the same... on the screen is that telemetry is not going into esp32 board

Any idea what should be wrong? could be, that I dont have in my flat any gps sats found? zero values comes from taranis..

Is there any possibility to switch in config FAKE VALUES?

20210225_091223

20210225_090441

Warnings during compile

It compiles and uploads but is it normal to have so many warnings?
I'm using a blue pill "Generic STM32F103C Series" board, variant 128k flash, 72mhz cpu, programmer AVR ISP

C:\Users\robyb\Documents\Arduino\AntTrack_v2.14\AntTrack_v2.14.ino: In function 'boolean PacketGood()':

C:\Users\robyb\Documents\Arduino\AntTrack_v2.14\AntTrack_v2.14.ino:783:7: warning: statement is a reference, not call, to function 'exit' [-Waddress]

   exit;

       ^

C:\Users\robyb\Documents\Arduino\AntTrack_v2.14\AntTrack_v2.14.ino:783:7: warning: statement has no effect [-Wunused-value]

C:\Users\robyb\Documents\Arduino\AntTrack_v2.14\AntTrack_v2.14.ino:791:7: warning: statement is a reference, not call, to function 'exit' [-Waddress]

   exit; 

       ^

C:\Users\robyb\Documents\Arduino\AntTrack_v2.14\AntTrack_v2.14.ino:791:7: warning: statement has no effect [-Wunused-value]

C:\Users\robyb\Documents\Arduino\AntTrack_v2.14\AntTrack_v2.14.ino:799:7: warning: statement is a reference, not call, to function 'exit' [-Waddress]

   exit;  

       ^

C:\Users\robyb\Documents\Arduino\AntTrack_v2.14\AntTrack_v2.14.ino:799:7: warning: statement has no effect [-Wunused-value]

C:\Users\robyb\Documents\Arduino\AntTrack_v2.14\AntTrack_v2.14.ino:807:7: warning: statement is a reference, not call, to function 'exit' [-Waddress]

   exit;  

       ^

C:\Users\robyb\Documents\Arduino\AntTrack_v2.14\AntTrack_v2.14.ino:807:7: warning: statement has no effect [-Wunused-value]

C:\Users\robyb\Documents\Arduino\AntTrack_v2.14\AntTrack_v2.14.ino:815:7: warning: statement is a reference, not call, to function 'exit' [-Waddress]

   exit;  

       ^

C:\Users\robyb\Documents\Arduino\AntTrack_v2.14\AntTrack_v2.14.ino:815:7: warning: statement has no effect [-Wunused-value]

C:\Users\robyb\Documents\Arduino\AntTrack_v2.14\AntTrack_v2.14.ino:824:9: warning: statement is a reference, not call, to function 'exit' [-Waddress]

     exit;  

         ^

C:\Users\robyb\Documents\Arduino\AntTrack_v2.14\AntTrack_v2.14.ino:824:9: warning: statement has no effect [-Wunused-value]

C:\Users\robyb\Documents\Arduino\AntTrack_v2.14\AntTrack_v2.14.ino: At global scope:

C:\Users\robyb\Documents\Arduino\AntTrack_v2.14\AntTrack_v2.14.ino:845:6: warning: unused parameter 'S' [-Wunused-parameter]

 void OledPrintln(String S) {

      ^

C:\Users\robyb\Documents\Arduino\AntTrack_v2.14\AntTrack_v2.14.ino:887:6: warning: unused parameter 'S' [-Wunused-parameter]

 void OledPrint(String S) {

      ^

In file included from C:\Users\robyb\Documents\Arduino\AntTrack_v2.14\Compass.ino:3:0:

C:\Users\robyb\Documents\Arduino\libraries\Adafruit_Sensor-master/Adafruit_Sensor.h:146:16: warning: unused parameter 'enabled' [-Wunused-parameter]

   virtual void enableAutoRange(bool enabled) {};

                ^

C:\Users\robyb\Documents\Arduino\AntTrack_v2.14\GetProtocol.ino: In function 'uint16_t DetectProtocol(uint32_t)':

C:\Users\robyb\Documents\Arduino\AntTrack_v2.14\GetProtocol.ino:107:1: warning: control reaches end of non-void function [-Wreturn-type]

 }

 ^

C:\Users\robyb\Documents\Arduino\AntTrack_v2.14\Mavlink.ino: In function 'void Mavlink_Receive()':

C:\Users\robyb\Documents\Arduino\AntTrack_v2.14\Mavlink.ino:190:59: warning: '*((void*)& msg +37)' may be used uninitialized in this function [-Wmaybe-uninitialized]

           ap_gps_status = (ap_sat_visible*10) + ap_fixtype; 

                                                           ^

C:\Users\robyb\Documents\Arduino\AntTrack_v2.14\Mavlink.ino:191:11: warning: '*((void*)& msg +36)' may be used uninitialized in this function [-Wmaybe-uninitialized]

           if(ap_fixtype > 2)  {

           ^

C:\Users\robyb\Documents\Arduino\AntTrack_v2.14\Mavlink.ino:233:65: warning: '*((void*)& msg +34)' may be used uninitialized in this function [-Wmaybe-uninitialized]

           ap_hdg = mavlink_msg_global_position_int_get_hdg(&msg);             // Vehicle heading (yaw angle) in degrees * 100, 0.0..359.99 degrees          ap_ap_amsl = mavlink_msg_attitude_get_yaw(&msg);                // Yaw angle (rad, -pi..+pi)

                                                                 ^

In file included from C:\Users\robyb\Documents\Arduino\libraries\mavlink_types/common/common.h:30:0,

                 from C:\Users\robyb\Documents\Arduino\libraries\mavlink_types/common/mavlink.h:25,

                 from C:\Users\robyb\Documents\Arduino\AntTrack_v2.14\AntTrack_v2.14.ino:164:

C:\Users\robyb\Documents\Arduino\libraries\mavlink_types/common/../protocol.h:276:49: warning: '*((void*)& msg +32)' may be used uninitialized in this function [-Wmaybe-uninitialized]

 { return *(const TYPE *)(&_MAV_PAYLOAD(msg)[ofs]);}

                                                 ^

C:\Users\robyb\Documents\Arduino\AntTrack_v2.14\Mavlink.ino:55:21: note: '*((void*)& msg +32)' was declared here

   mavlink_message_t msg;

                     ^

In file included from C:\Users\robyb\Documents\Arduino\libraries\mavlink_types/common/common.h:30:0,

                 from C:\Users\robyb\Documents\Arduino\libraries\mavlink_types/common/mavlink.h:25,

                 from C:\Users\robyb\Documents\Arduino\AntTrack_v2.14\AntTrack_v2.14.ino:164:

C:\Users\robyb\Documents\Arduino\libraries\mavlink_types/common/../protocol.h:276:49: warning: '*((void*)& msg +30)' may be used uninitialized in this function [-Wmaybe-uninitialized]

 { return *(const TYPE *)(&_MAV_PAYLOAD(msg)[ofs]);}

                                                 ^

C:\Users\robyb\Documents\Arduino\AntTrack_v2.14\Mavlink.ino:55:21: note: '*((void*)& msg +30)' was declared here

   mavlink_message_t msg;

                     ^

C:\Users\robyb\Documents\Arduino\AntTrack_v2.14\Mavlink.ino:230:63: warning: '*((void*)& msg +28)' may be used uninitialized in this function [-Wmaybe-uninitialized]

           ap_vx = mavlink_msg_global_position_int_get_vx(&msg);               //  Ground X Speed (Latitude, positive north), expressed as m/s * 100

                                                               ^

C:\Users\robyb\Documents\Arduino\AntTrack_v2.14\Mavlink.ino:229:77: warning: '*((void*)& msg +24)' may be used uninitialized in this function [-Wmaybe-uninitialized]

           ap_alt_ag = mavlink_msg_global_position_int_get_relative_alt(&msg); // Altitude above ground (millimeters)

                                                                             ^

C:\Users\robyb\Documents\Arduino\AntTrack_v2.14\Mavlink.ino:228:68: warning: '*((void*)& msg +20)' may be used uninitialized in this function [-Wmaybe-uninitialized]

           ap_amsl33 = mavlink_msg_global_position_int_get_alt(&msg);          // x Supposedly altitude above mean sea level (millimeters)

                                                                    ^

C:\Users\robyb\Documents\Arduino\AntTrack_v2.14\Mavlink.ino:131:7: warning: 'msg.__mavlink_message::msgid' may be used uninitialized in this function [-Wmaybe-uninitialized]

       switch(msg.msgid) {

       ^

Sketch uses 79200 bytes (60%) of program storage space. Maximum is 131072 bytes.
Global variables use 6704 bytes (32%) of dynamic memory, leaving 13776 bytes for local variables. Maximum is 20480 bytes.

Compilation issues while having heading source 4=Trackerbox_GPS_And_Compass set

Hello, I'm getting the following compilation issue when I set the :

#define Heading_Source 4 // 1=Flight_GPS, 2=Flight_Computer, 3=Trackerbox_Compass 4=Trackerbox_GPS_And_Compass

Getting the following error message in the arduino ide:

C:\Users\Esterlin\Downloads\AntTracker-master 1\AntTracker-master\Beta\AntTrack\GPS.ino: In function 'void getTrackerboxLocation()': GPS:147:9: error: 'tboxGPS' was not declared in this scope if (tboxGPS.encode(gpsSerial.read())) { ^ GPS:168:9: error: 'dt' was not declared in this scope dt.yyyy = yyyy - 1900; // epoch year ^ GPS:175:32: error: 'getEpoch' was not declared in this scope epochSync = getEpoch(dt); ^ exit status 1 'getBaud' was not declared in this scope

If I set the heading source to 3, Tracker box compass, the program compiles and works properly,

This is happening in both stable and beta versions.

I'm I missing something?

Bug found in Compass.ino

#if defined Compass_Align
fHeading = applySensorAlignment(fHeading, Compass_Align);
#endif

Change Compass_Align to Compass_Rotation :)

Sorry, I'm writing this from a phone, can't use proper formatting. Also it would be good to see one day compass calibration and tilt compensation.

Great project anyways, all the fpv community should thank you for this:)

compile error and missing smartport telemetry sensors

Hello.

When i try to set #define Heading_Source 3 // 3=Trackerbox_Compass
i get a compile error "'uint_16' was not declared in this scope "
at line 92 in compass : fHeading = (float)wrap360((uint_16)val);"

The other issue is i only get a few telemetry sensors .
I use Inav + radiomatster TX16s +R9M ACCST in Fport with an inverted HC05 pluged in the back of the R9M.
Connection is ok , the esp32 receive telemetry but only GPS, Heading,arming and RSSI.
This setup work great on another tracker (U360gts) but I need a 180°/180° tracker so your project look promising.

Capture

Can you help me ?

[Feature Request] Change telemetry protocol using external/onboard button

Hello!

I'm trying to build an RubyHD/OpenHD ground station that includes an antenna tracker based on this repo and it's great work.

As RubyHD/OpenHD is an digital system and a lot of my models are still using analog video system, I want to be able use ATT part of the station independently from RubyHD/OpenHD system that provides Mavlink2 telemetry directly to ATT. In case of analog models I usually take an LTM telemetry from my tx16's internal bluetooth module to my phone/ATT.

As ESP32 has multiple spare serial ports and general propose pins, additional bluetooth and a button/switch can be added. The idea is: When PINX is LOW, uart0 and Mavlink should be used . When PINX is HIGH, uart1 and LTM should be used.

I'll try to fork this repo and add this feature.

Requerements:

  • Multiple input UARTs
  • Set per-UART telemetry type and speed
  • Current UART port change on STARTUP
  • [Optional] Soft serial port
  • [Optional] On-the-fly telemetry type change for current UART

If someone has some input or help on this matter, please leave a message here.
Thank you @zs6buj for a great code!

Waiting for GPS lock

Hi,
I have successfully compiled the code onto the stm32 board. Everything seems to be working - the OLED says:
AntTracker by zs6buj
Setting up Bluetooth
Hdg source = craft's GPS
Found Telem 57600b/s
MavLink 1 found
Waiting for GPS lock
MavLink telemetry good!
The only thing is - it is stuck at the Waiting for GPS lock, even when I have 11 satellites. But, when I power off my drone, it continues saying walk out 10 meters then push the button(this still doesn't work.)
I have tried to debug it by connecting my USB to TTL's Rx and tx pins to the board, but when I open the serial port(after uncommenting //debug all) nothing is there. I have it set to new line, 9600 baud. Do you know how I could fix this? Thank you so much for all the help, I really appreciate it.
Thanks,
Arjun M

wifi

on my esp32 dev board, when I'm debugging wifi, system will not recognize command at 2.17.7 AntTracker.ino #337 WiFi.onEvent(WiFiEventHandler);

and is there some wiki how it should work? because I cannot see any wifi broadcasting if I am using wifi mode 1 - AP even mode 3
maybe some settings...?

Help getting serial telemetry on bluepill board

Hi @zs6buj

Firstly I want to thank you for this project.

But I'm facing 2 problems (in this topic I'll only address 1, the other is with another card so I'll open another topic)

My senate.
I designed the antenna to use with my Radiomaster TX16s

In the TX16s I placed a bluetooth module (hc05 master mode) through the UART output

In the antenna I use the bluepill board and I have another HC05 (slave mode).

I already did the test using the 2 hc05 and both are "talking"

also test connecting the cell phone via Bluetooth to the TX16S and I can read the telemetry using the telemetry viewer app

but for some reason the tracker doesn't understand this telemetry.

My link system is crossfire using mavlink, and my airplane run Inav.

see below that the board turns on, starts, identifies what has something in serial using baud rate 115200 (which is the connection speed between the 2 HC05) but after that the tracker screen shows "no telemetry" several times

18:55:11.473 -> Starting AntTrack version:2.20.04
18:55:11.473 -> Default I2C pins are defined in Wire.h
18:55:11.473 -> Display support activated: Landscape
18:55:11.473 -> 64x128 text_size=1 char_w_px=6 char_h_px=8 scr_h_ch=8 scr_w_ch=21
18:55:11.515 -> Target Board = 1 STM32F1xx
18:55:11.515 -> Serial Telemetry In
18:55:11.547 -> Selected protocol is AUTO
18:55:11.547 -> headingsource = 2 FC Compass
18:55:11.579 -> Testing Servos
18:55:22.618 -> Serial port rx pin -61 is IDLE_HIGH, regular rx polarity retained
18:55:22.618 -> autoBaud - sensing pin 195
18:55:22.890 -> Serial input baud rate detected is 115200 b/s

Any idea what might solve it?

in advance, thank you very much!

Compilation ESP32

I get the following error which seems to point to a STM32 library:

In file included from C:\Users\Elmar\Documents\GitHub\AntTracker\AntTrack_v2.15\EEPROM.ino:6:0:
C:\Users\Elmar\Documents\Arduino\libraries\EEPROM/EEPROM.h:4:20: fatal error: wirish.h: No such file or directory
compilation terminated.
exit status 1
Error compiling for board ESP32 Dev Module.

[Feature Request] BLE Support for Telemetry

Ant Tracker seems to be a great and smart solution. What i miss: BLE Support for getting temelemtry Data. When an external TX is connected to taranis X-Lite, there is no easy serial Port available. Why Not usw BLE, like in "Telemetry Viewer" (Smartphone App)?

Bluetooth ESP32 Dev board and TBS Crossfire

Hello,
I can not operate the internal Bluetooth connection of the ESP32 Dev board with TBS crossfire.
It seems to me that a little bit of code is missing to support the internal Bluetooth of the ESP32 Dev board.
Thank you

Naze32

HI,
(I'll order a Naze32 to take a look at. Problem is that our postal service is super slow. Maybe I can find it on Amazon. Their shipping is way faster)
I can send you NAZE32, and if you like, I can redesign a PCB for you and make a prototype so you can have more time to debug the software.

fixed wing heading

First of all: nice job!
Second: i don't know if you are aware of that but it's quite common for a fixed wing to use gps module without compass (or with compass not wired). With this kind of setup the heading on the ground is not reliable at all.
Is it possible to define the GS heading by placing the aircraft as close as possible to the GS, then press the button to record the home point, then move the aircraft few (10) meters in the right direction, and then press the button again to calculate the heading?
Thanks.

Cannot set home annttrackwifi

I tried to build the AntiWifi and LED status according to the instructions, except when I pulled up the GPio5, the LED kept blinking fast, does that mean I haven't made a home determination, is there a wrong step I made?

API for serial port telemetry_in. to control over USB.

hi guys,
Please help.
i got a ttgo t-beam v1.1 bored that i want to control over the USB.
i'm trying to find any mentioned for using the serial API on the web, but i did not find anything.
Someone is familiar with this API?
can you send me the syntax that I need to use?
a link to documentation or an example is great to.
10xx

R9M 2019 ACCESS

Hello,
does it work with the R9M 2019 ACCESS protocol? The U360UTS has trouble with it maybe this could be an alternative.
Thank you!

Error installing on stm32 blue pill

Hello.

I followed the steps from the link https://www.rcgroups.com/forums/showthread.php?2942118-Build-a-Reliable-and-Cheap-Antenna-Tracker-this-Weekend-%C2%96-by-zs6buj/page44 in your answer #657

and everything is ok, however I am getting the error with the serial ports.

#if defined STM32F1xx
#if defined NoGenericSerial
// NOTE NOTE NOTE NOTE! In IDE select Tools/U(S)ART support: "Enabled (no generic 'Serial')"
// Now we map USARTS in a sensible way
HardwareSerial Serial(USART1); //rx1=PA10 tx1=PA9 - for flashing and monitor
HardwareSerial Serial1(USART2); //rx2=PA3 tx2=PA2 - for telemetry in
HardwareSerial Serial2(USART3); //rx3=PB11 tx3=PB10 - for GPS if present
#endif
#include <SoftwareSerial.h>
SoftwareSerial inSerial(in_rxPin, in_txPin, rxInvert); // RX=10, TX=11
#endif

#define log Serial // USB / Serial

i get the error below

config.h:850:33: error: 'Serial' was not declared in this scope; did you mean 'Serial3'? 850 | #define log Serial // USB / Serial | ^~~~~~

could you help me to solve it?

'HUD_ARROW_OFFSET' was not declared in this scope

S E L E C T E S P B O A R D V A R I A N T ===================

#define ESP32_Variant 7

Utilities:1440:11: error: 'HUD_ARROW_OFFSET' was not declared in this scope

   if (HUD_ARROW_OFFSET == 999) {

       ^

Arduino Uno/Mega and Bluetooth

Hi,
Would this work with the Arduino Uno/Mega 2560? Also, I saw the code written for bluetooth - does it work with the hc05? Also, is it possible to bind the hc05 with the tbs crossfire since the crossfire requires you to accept a passkey? From my understanding, LCDs are not yet supported?
Thanks in advance,
Arjun M

GPIO output gpio_num error

Anyone any idea what caused this error I'm getting? Code compiles and uploads fine,
Two different versions loaded on and the problem is the same in both.

Serial monitor output

version to work with BLE

Starting AntTrack version:2.19.07
Setting up wire I2C SDA:21 SCL:22
Display support activated: Landscape
135x240 text_size=2 char_w_px=12 char_h_px=16 scr_h_ch=8 scr_w_ch=20
Target Board is Target Board = 3 ESP32 / Variant is LILYGO® TTGO T-Display ESP32 1.14 inch ST7789 Colour LCD
FrSky BLE In
Selected protocol is F.Port 1
E (2610) gpio: GPIO can only be used as input mode
E (2611) gpio: gpio_set_level(226): GPIO output gpio_num error

Dynamic heading source = 4 Tracker Box Compass
Compass type HMC5883L expected
Servo slowdown factor is 10ms per degree of rotation
autoBaud - sensing pin 13
Tracker box GPS baud rate detected is 9600b/s
BLE Start - Scanning....
Display width of 20 exceeded for |BLE Start - Scanning....|
Forming a connection to d0:2e:ab:b1:d1:60

  • Connected to server
  • Found our service
  • Found our characteristic
    We are now connected to the BLE Server.
    E (7576) gpio: gpio_set_level(226): GPIO output gpio_num error

Version to work with serial port

Starting AntTrack version:2.19.10
Setting up wire I2C SDA:21 SCL:22
Display support activated: Landscape
135x240 text_size=2 char_w_px=12 char_h_px=16 scr_h_ch=8 scr_w_ch=20
Target Board = 3 ESP32 / Variant is LILYGO® TTGO T-Display ESP32 1.14 inch ST7789 Colour LCD
Serial Telemetry In
Selected protocol is Mavlink 1
Dynamic heading source = 4 Tracker Box Compass
Compass type HMC5883L expected
Testing Servos
autoBaud - sensing pin 13
Tracker box GPS baud rate detected is 9600b/s
E (13470) gpio: gpio_set_level(226): GPIO output gpio_num error

tracker display

I am using
air side
arduplane
pixhawk4mini
rx8r
passthrough sport
ground
taranis x9d

I would like to display on screen plugged to esp32 the same data as yaapu (messages, gps, altitude, flight modes...)

Is it available from code / libraries ?

tracking box add Local GPS

This is another very good project of antenna tracker. I've used ardupilot AAT; u360gts, and I'm looking forward to adding more features,In future versions, will the tracking box add its own GPS to realize tracking on the move

frsky D

Sorry 1st if I am in the wrong.
How do I set to use Frsky D? The setup I have is matek f411 (inav3.0.1) with Frsky D and TX16s. The plan would be to forward the telemetry from tx16s through one of the uarts (telemetry mirror). Any help would be appreciated. Thank you.

Config for Auto Connect Bluetooth

Hi! now i use board ESP32.
Where is configurator in "config.h" to ESP32 auto connect with my bluetooth module HC-5?

My bluetooth module HC-5 is "kusnendar fpv" & password: 1234
My modulw HC-5 transmitt telemetry mavlink from openHD

WIFI CONNECT ISSUE

HI zs6buj:
first many thanks for create this nice project and great work.
i try to use ESP32 with the main board and try to use my cross fire mirco V2'S wifi connect to tracker and i try to use STA mode and UDP port to connect.
i set remortIP address to 192.168.4.101 and port is 14550. which show below and my crossfire mavlink output UDP port also is 14550. so i think this should be work but i failed.
the OLED show connect correctly, but no more information show and no mavlink data feedback, i checked AntTrack_v2.14.ino file and it show if right connect OLED will show "client connected" so i think my connect is failed.
actully i just have poor knowledge about code, so i'm not sure if there have some mistake for my setting.
so my question is how to set local IP/PORT and remort IP/Port for STA or AP mode?

below is my information:
crossfire wifi AP IP: 192.168.4.1
crossire wifi mavlink UDP port:14550

image
image

tracker is not working

finally had little time for this project and go out... but, connect all, wat for GPS fix and tracker just sitting on the same place and dont turning around... duno why...

this is from debug from my bench at home
Tracker_LOG.txt
and my config
config.txt
using R9 + R9mm reciever, F.Port fw; here on R9 module is hooked up HC05 master bluetooth module (baud 57600)
X9D+ with latest OpenTX fw
KWAD has latest betaflight version
and in Tracker I am using version 2.17.8; on pin27 is hooked up HC06 slave bluetooth module with same baud rate like HC05

looks like all telemetry data are comming in between RX and tracker,
compass debug is able to show me proper angle of tracker, servos are moving properly with servo debug

bugs in code

Hi,

I found some bugs in 2.17.6:

1/ revers elevation
if #define ReverseElevation is used, then this in Servos.ino is wrong - row #81 elt = 180 - el;

2/ for #define HMC5883L and undefine //#define QMC5883L that message will appear:

image

looks like there is not rule for HMC5883L compass (I am using it)

compilation

no matching function for call to 'Adafruit_SSD1306::Adafruit_SSD1306(int, int, TwoWire*, int)'
what is wrong,

Heltec Wifi Kit 32
i cant find the error ;(

ESP32 Dev Module - Help

I'm also trying to put the code in an ESP32 Dev Module (NodeMCU-ESP32 DevKITV1)

I placed all the libraries (from the ALL folder and also from the ESP32 folder), in my IDE I selected the ESP32 Dev Module board

To install the board I used the link https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json and installed ESP32 Boards (by Espressif System) version 2.0.14

And just for a check (of the libraries) I ask him to compile the code, but even without any changes I receive several errors, I don't know where I'm going wrong in my IDE, is there any other option besides selecting the COM port and the board version ?

I also tested by editing what I wanted, such as wifi telemetry, and I also receive several missing file errors, below I leave the IDE errors for each of the scenarios.

1 - Errors without any changes just the board selection in the IDE

In file included from C:\Users\bruno.roza\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.14\cores\esp32/esp32-hal.h:87,
from C:\Users\bruno.roza\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.14\cores\esp32/Arduino.h:36,
from C:\Users\bruno.roza\AppData\Local\Temp\arduino\sketches\2FADA379EA7959E8A65BE99444603820\sketch\AntTrack.ino.cpp:1:
C:\Users\bruno.roza\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.14\cores\esp32/esp32-hal-spi.h:49:19: error: expected unqualified-id before numeric constant
#define SPI_MODE0 0
^
c:\Users\bruno.roza\OneDrive\Documentos\Arduino\libraries\SPI/SPI.h:39:15: note: in expansion of macro 'SPI_MODE0'
const uint8_t SPI_MODE0 = 0x00; ///< CPOL: 0 CPHA: 0
^~~~~~~~~
C:\Users\bruno.roza\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.14\cores\esp32/esp32-hal-spi.h:50:19: error: expected unqualified-id before numeric constant
#define SPI_MODE1 1
^
c:\Users\bruno.roza\OneDrive\Documentos\Arduino\libraries\SPI/SPI.h:40:15: note: in expansion of macro 'SPI_MODE1'
const uint8_t SPI_MODE1 = 0x01; ///< CPOL: 0 CPHA: 1
^~~~~~~~~
C:\Users\bruno.roza\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.14\cores\esp32/esp32-hal-spi.h:51:19: error: expected unqualified-id before numeric constant
#define SPI_MODE2 2
^
c:\Users\bruno.roza\OneDrive\Documentos\Arduino\libraries\SPI/SPI.h:41:15: note: in expansion of macro 'SPI_MODE2'
const uint8_t SPI_MODE2 = 0x10; ///< CPOL: 1 CPHA: 0
^~~~~~~~~
C:\Users\bruno.roza\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.14\cores\esp32/esp32-hal-spi.h:52:19: error: expected unqualified-id before numeric constant
#define SPI_MODE3 3
^
c:\Users\bruno.roza\OneDrive\Documentos\Arduino\libraries\SPI/SPI.h:42:15: note: in expansion of macro 'SPI_MODE3'
const uint8_t SPI_MODE3 = 0x11; ///< CPOL: 1 CPHA: 1
^~~~~~~~~
In file included from C:\Users\bruno.roza\Downloads\AntTracker-master\AntTracker-master\source\stable\v2.20.04\AntTrack\config.h:592,
from C:\Users\bruno.roza\Downloads\AntTracker-master\AntTracker-master\source\stable\v2.20.04\AntTrack\AntTrack.ino:126:
c:\Users\bruno.roza\OneDrive\Documentos\Arduino\libraries\Wire\src/Wire.h:44:5: error: 'i2c_t' does not name a type; did you mean 'ino_t'?
i2c_t * i2c;
^~~~~
ino_t
c:\Users\bruno.roza\OneDrive\Documentos\Arduino\libraries\Wire\src/Wire.h:64:5: error: 'i2c_err_t' does not name a type; did you mean 'esp_err_t'?
i2c_err_t last_error; // @stickbreaker from esp32-hal-i2c.h
^~~~~~~~~
esp_err_t
c:\Users\bruno.roza\OneDrive\Documentos\Arduino\libraries\Wire\src/Wire.h:87:5: error: 'i2c_err_t' does not name a type; did you mean 'esp_err_t'?
i2c_err_t writeTransmission(uint16_t address, uint8_t* buff, uint16_t size, bool sendStop=true);
^~~~~~~~~
esp_err_t
c:\Users\bruno.roza\OneDrive\Documentos\Arduino\libraries\Wire\src/Wire.h:88:5: error: 'i2c_err_t' does not name a type; did you mean 'esp_err_t'?
i2c_err_t readTransmission(uint16_t address, uint8_t* buff, uint16_t size, bool sendStop=true, uint32_t *readCount=NULL);
^~~~~~~~~
esp_err_t
exit status 1
Compilation error: exit status 1

2 - Errors after selecting wifi telemetry

c:\Users\bruno.roza\OneDrive\Documentos\Arduino\libraries\WiFi\src\ETH.cpp:22:10: fatal error: eth_phy/phy.h: No such file or directory
#include "eth_phy/phy.h"
^~~~~~~~~~~~~~~
compilation terminated.
exit status 1
Compilation error: exit status 1

In this second case, I already went through the library and added several files, but each time there are more and more errors :(

telemetry USB, request

Hi, it's me again.
I hope not to have missed another software option, but would it be feasible to use the micro usb connection on the bluepill to receive telemetry data? Most of the 433/915mHz telemetry kits i see online have one module with plain serial output and the other one with usb output. Having USB support would make the them compatible with this antenna tracker and this could also simplify the wiring.

Compilation issues for STM32F108C8 on ArduinoIDE

  1. I installed the libraries by copying them into user\Documents\Arduino\libraries

  2. installed STM32DUINO library as per here https://github.com/stm32duino/wiki/wiki/Getting-Started

  3. set my configuration in config.h as required, servo uS, no compass, bluepill STM32F103C8 etc..

  4. set arduino ide board type:
    image

  5. get "no board defined" error: AntTrack.ino:126: config.h:210:4: error: #error "No board type defined!" (Was I supposed to declare that or does the IDE do that bit?)

  6. manually add #define __BluePill_F103C8__ in config.h line 178

  7. error during compilation:

D:\User_HDD\Google Drive\Projects\RC gear\STM32 antenna tracker\AntTracker-master\Source\AntTrack\EEPROM.ino: In function 'int32_t EEPROMReadlong(uint16_t)':
EEPROM:156:27: error: no matching function for call to 'EEPROMClass::read(uint16_t&, uint16_t*)'
  156 |     EEPROM.read(addr, &two);
      |                           ^
In file included from D:\User_HDD\Google Drive\Projects\RC gear\STM32 antenna tracker\AntTracker-master\Source\AntTrack\EEPROM.ino:94:
C:\Users\User\AppData\Local\Arduino15\packages\STMicroelectronics\hardware\stm32\2.1.0\libraries\EEPROM\src/EEPROM.h:201:11: note: candidate: 'uint8_t EEPROMClass::read(int)'
  201 |   uint8_t read(int idx)
      |           ^~~~
C:\Users\User\AppData\Local\Arduino15\packages\STMicroelectronics\hardware\stm32\2.1.0\libraries\EEPROM\src/EEPROM.h:201:11: note:   candidate expects 1 argument, 2 provided
EEPROM:157:29: error: no matching function for call to 'EEPROMClass::read(int, uint16_t*)'
  157 |     EEPROM.read(addr+1, &one);
      |                             ^
In file included from D:\User_HDD\Google Drive\Projects\RC gear\STM32 antenna tracker\AntTracker-master\Source\AntTrack\EEPROM.ino:94:
C:\Users\User\AppData\Local\Arduino15\packages\STMicroelectronics\hardware\stm32\2.1.0\libraries\EEPROM\src/EEPROM.h:201:11: note: candidate: 'uint8_t EEPROMClass::read(int)'
  201 |   uint8_t read(int idx)
      |           ^~~~
C:\Users\User\AppData\Local\Arduino15\packages\STMicroelectronics\hardware\stm32\2.1.0\libraries\EEPROM\src/EEPROM.h:201:11: note:   candidate expects 1 argument, 2 provided
Multiple libraries were found for "Wire.h"
 Used: C:\Users\User\AppData\Local\Arduino15\packages\STMicroelectronics\hardware\stm32\2.1.0\libraries\Wire
 Not used: D:\User_HDD\Documents\Arduino\libraries\Wire
Multiple libraries were found for "EEPROM.h"
 Used: C:\Users\User\AppData\Local\Arduino15\packages\STMicroelectronics\hardware\stm32\2.1.0\libraries\EEPROM
 Not used: D:\User_HDD\Documents\Arduino\libraries\EEPROM
Multiple libraries were found for "Servo.h"
 Used: C:\Users\User\AppData\Local\Arduino15\packages\STMicroelectronics\hardware\stm32\2.1.0\libraries\Servo
 Not used: D:\Programs\Arduino\libraries\Servo
 Not used: D:\User_HDD\Documents\Arduino\libraries\Servo
Multiple libraries were found for "SPI.h"
 Used: C:\Users\User\AppData\Local\Arduino15\packages\STMicroelectronics\hardware\stm32\2.1.0\libraries\SPI
 Not used: D:\User_HDD\Documents\Arduino\libraries\SPI
exit status 1
no matching function for call to 'EEPROMClass::read(uint16_t&, uint16_t*)'

Windows 10 x64
Arduino IDE 1.8.18

Has anyone seen this before?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.