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
Antenna Tracker for tracking a moving model aircraft or drone with a small high-gain UHF or SHF antenna
License: GNU General Public License v3.0
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
Hi,
I found two possible bugs using those configurations:
#define Telemetry_In 0 // Serial Port (default) - all protocols
and
#define PROTOCOL 6 // LTM
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:
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);
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);
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?)
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; }
compile error.txt
Hi I have problem with compiling code for my LILYGO T-DISPLAY
Would you be open to having this project converted into a PlatformIO project? I'm thinking of doing a fork with exactly that.
It's an extension for Visual Studio Code which makes life a lot easier as a programmer, while still utilizing the arduino framework. Also supports proper debugging on most boards.
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
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.
will this tracker work with ELRS protocol and ardupilot FC ?
cheers
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).
#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
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?
Thank you again!
Tiago
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.
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
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......
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
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....
Its possible to work with blackpill F411? What need to change?
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.
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?
Hi,
I tested latest stable release and there is not implemented Display option
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.
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?
#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:)
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.
Can you help me ?
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:
If someone has some input or help on this matter, please leave a message here.
Thank you @zs6buj for a great code!
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
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...?
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!
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.
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)?
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
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.
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.
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?
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
Hello,
does it work with the R9M 2019 ACCESS protocol? The U360UTS has trouble with it maybe this could be an alternative.
Thank you!
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?
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) {
^
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
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
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
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 ?
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
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.
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
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
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
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:
looks like there is not rule for HMC5883L compass (I am using it)
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 ;(
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 :(
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.
I installed the libraries by copying them into user\Documents\Arduino\libraries
installed STM32DUINO library as per here https://github.com/stm32duino/wiki/wiki/Getting-Started
set my configuration in config.h
as required, servo uS, no compass, bluepill STM32F103C8 etc..
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?)
manually add #define __BluePill_F103C8__
in config.h line 178
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?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.