Skip to content

Commit 22b1127

Browse files
New release
1 parent a6574c5 commit 22b1127

28 files changed

+38383
-788
lines changed

Character_Updater/BOOT_Func.ino

+49-49
Original file line numberDiff line numberDiff line change
@@ -9,66 +9,66 @@
99
// This is interesting to avoid writing to APM during bootup if OSD's TX is connected
1010
// After that, it continue in normal mode eg starting to listen MAVLink commands
1111

12-
//#define barX 5
13-
//#define barY 12
12+
#define barX 5
13+
#define barY 12
1414

15-
//void loadBar() { //change name due we don't have CLI anymore
16-
// int waitTimer;
17-
// byte barStep = 0;
15+
void loadBar() { //change name due we don't have CLI anymore
16+
int waitTimer;
17+
byte barStep = 0;
1818

1919
// Write plain panel to let users know what to do
20-
// panBoot(barX,barY);
20+
panBoot(barX,barY);
2121

22-
// delay(500); // To give small extra waittime to users
22+
delay(500); // To give small extra waittime to users
2323
// Serial.flush();
2424

2525
// Our main loop to wait input from user.
26-
// for(waitTimer = 0; waitTimer <= BOOTTIME; waitTimer++) {
26+
for(waitTimer = 0; waitTimer <= BOOTTIME; waitTimer++) {
2727

2828
// How often we update our progress bar is depending on modulo
29-
// if(waitTimer % (BOOTTIME / 8) == 0) {
30-
// barStep++;
29+
if(waitTimer % (BOOTTIME / 8) == 0) {
30+
barStep++;
3131

3232
// Update bar it self
33-
// osd.setPanel(barX + 12, barY);
34-
// osd.openPanel();
35-
// switch(barStep) {
36-
// case 0:
37-
// osd.printf_P(PSTR("\x8c\x8d\x8d\x8d\x8d\x8d\x8d"));
38-
// break;
39-
// case 1:
40-
// osd.printf_P(PSTR("\x8a\x8d\x8d\x8d\x8d\x8d\x8d"));
41-
// break;
42-
// case 2:
43-
// osd.printf_P(PSTR("\x89\x8b\x8d\x8d\x8d\x8d\x8d"));
44-
// break;
45-
// case 3:
46-
// osd.printf_P(PSTR("\x89\x89\x8b\x8d\x8d\x8d\x8d"));
47-
// break;
48-
// case 4:
49-
// osd.printf_P(PSTR("\x89\x89\x89\x8b\x8d\x8d\x8d"));
50-
// break;
51-
// case 5:
52-
// osd.printf_P(PSTR("\x89\x89\x89\x89\x8b\x8d\x8d"));
53-
// break;
54-
// case 6:
55-
// osd.printf_P(PSTR("\x89\x89\x89\x89\x89\x8b\x8d"));
56-
// break;
57-
// case 7:
58-
// osd.printf_P(PSTR("\x89\x89\x89\x89\x89\x89\x8b"));
59-
// break;
60-
// case 8:
61-
// osd.printf_P(PSTR("\x89\x89\x89\x89\x89\x89\x89"));
62-
// break;
63-
// case 9:
64-
// osd.printf_P(PSTR("\x89\x89\x89\x89\x89\x89\x89\x89"));
65-
// break;
66-
// }
67-
// osd.closePanel();
68-
// }
33+
osd.setPanel(barX + 12, barY);
34+
osd.openPanel();
35+
switch(barStep) {
36+
case 0:
37+
osd.printf_P(PSTR("\xf1\xf2\xf2\xf2\xf2\xf2\xf2"));
38+
break;
39+
case 1:
40+
osd.printf_P(PSTR("\xef\xf2\xf2\xf2\xf2\xf2\xf2"));
41+
break;
42+
case 2:
43+
osd.printf_P(PSTR("\xee\xf0\xf2\xf2\xf2\xf2\xf2"));
44+
break;
45+
case 3:
46+
osd.printf_P(PSTR("\xee\xee\xf0\xf2\xf2\xf2\xf2"));
47+
break;
48+
case 4:
49+
osd.printf_P(PSTR("\xee\xee\xee\xf0\xf2\xf2\xf2"));
50+
break;
51+
case 5:
52+
osd.printf_P(PSTR("\xee\xee\xee\xee\xf0\xf2\xf2"));
53+
break;
54+
case 6:
55+
osd.printf_P(PSTR("\xee\xee\xee\xee\xee\xf0\xf2"));
56+
break;
57+
case 7:
58+
osd.printf_P(PSTR("\xee\xee\xee\xee\xee\xee\xf0"));
59+
break;
60+
case 8:
61+
osd.printf_P(PSTR("\xee\xee\xee\xee\xee\xee\xee"));
62+
break;
63+
case 9:
64+
osd.printf_P(PSTR("\xee\xee\xee\xee\xee\xee\xee\xee"));
65+
break;
66+
}
67+
osd.closePanel();
68+
}
6969

70-
// delay(1); // Minor delay to make sure that we stay here long enough
71-
// }
72-
//}
70+
delay(1); // Minor delay to make sure that we stay here long enough
71+
}
72+
}
7373

7474

Character_Updater/Character_Updater.ino

+15-22
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
6868
#include "wiring.h"
6969
#endif
7070
#include <EEPROM.h>
71-
//#include <SimpleTimer.h>
71+
#include <SimpleTimer.h>
7272
#include <GCS_MAVLink.h>
7373

7474
#ifdef membug
@@ -95,7 +95,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
9595
FastSerialPort0(Serial);
9696
OSD osd; //OSD object
9797

98-
//SimpleTimer mavlinkTimer;
98+
SimpleTimer mavlinkTimer;
9999

100100

101101
/* **********************************************/
@@ -134,7 +134,7 @@ void setup()
134134

135135
// Just to easy up development things
136136
#ifdef FORCEINIT
137-
InitializeOSD();
137+
// InitializeOSD();
138138
#endif
139139

140140

@@ -149,19 +149,18 @@ void setup()
149149
// }
150150

151151
// Get correct panel settings from EEPROM
152-
readSettings();
153-
for(panel = 0; panel < npanels; panel++) readPanelSettings();
154-
panel = 0; //set panel to 0 to start in the first navigation screen
152+
// readSettings();
153+
// for(panel = 0; panel < npanels; panel++) readPanelSettings();
154+
// panel = 0; //set panel to 0 to start in the first navigation screen
155155
// Show bootloader bar
156156
// loadBar();
157-
delay(2000);
158-
Serial.flush();
157+
159158
// Startup MAVLink timers
160-
//mavlinkTimer.Set(&OnMavlinkTimer, 120);
159+
mavlinkTimer.Set(&OnMavlinkTimer, 120);
161160

162161
// House cleaning, clear display and enable timers
163-
// osd.clear();
164-
//mavlinkTimer.Enable();
162+
// osd.clear();
163+
// mavlinkTimer.Enable();
165164

166165
} // END of setup();
167166

@@ -175,7 +174,7 @@ Serial.flush();
175174
void loop()
176175
{
177176

178-
/*if(enable_mav_request == 1){//Request rate control
177+
if(enable_mav_request == 1){//Request rate control
179178
//osd.clear();
180179
//osd.setPanel(3,10);
181180
//osd.openPanel();
@@ -190,15 +189,10 @@ void loop()
190189
osd.clear();
191190
waitingMAVBeats = 0;
192191
lastMAVBeat = millis();//Preventing error from delay sensing
193-
}*/
194-
195-
//Run "timer" every 120 miliseconds
196-
if(millis() > mavLinkTimer + 120){
197-
mavLinkTimer = millis();
198-
OnMavlinkTimer();
199192
}
193+
200194
read_mavlink();
201-
//mavlinkTimer.Run();
195+
mavlinkTimer.Run();
202196
}
203197

204198
/* *********************************************** */
@@ -212,13 +206,12 @@ void OnMavlinkTimer()
212206

213207
setHomeVars(osd); // calculate and set Distance from home and Direction to home
214208

215-
209+
216210

217211
setFdataVars();
218-
219-
checkModellType();
220212
}
221213

214+
222215
void unplugSlaves(){
223216
//Unplug list of SPI
224217
#ifdef ArduCAM328

Character_Updater/Font.ino

+3-4
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@ void uploadFont()
1212
osd.clear();
1313
osd.setPanel(6,9);
1414
osd.openPanel();
15-
osd.printf_P(PSTR("Character Update in progress"));
15+
osd.printf_P(PSTR("Please wait until|OSD reboots!"));
1616
delay(2000);
1717
osd.closePanel();
1818

1919

20-
Serial.printf_P("Ready for Font\n");
20+
Serial.printf_P(PSTR("Ready for Font\n"));
2121

2222
while(font_count < 256) {
2323
int8_t incomingByte = Serial.read();
@@ -84,12 +84,11 @@ void uploadFont()
8484
osd.write_NVM(font_count, character_bitmap);
8585
byte_count = 0;
8686
font_count++;
87-
Serial.printf_P("Character update is done Done|please upload the normal FW");
87+
Serial.printf_P(PSTR("Char Done\n"));
8888
}
8989
}
9090

9191
// character_bitmap[]
9292
}
9393

94-
9594

Character_Updater/MAVLink.ino

+12-22
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,13 @@ void read_mavlink(){
4141
} else {
4242
crlf_count = 0;
4343
}
44-
// if (crlf_count == 3) {
45-
// uploadFont();
46-
// }
44+
if (crlf_count == 3) {
45+
uploadFont();
46+
}
4747
}
4848

4949
//trying to grab msg
5050
if(mavlink_parse_char(MAVLINK_COMM_0, c, &msg, &status)) {
51-
lastMAVBeat = millis();
5251
mavlink_active = 1;
5352
//handle msg
5453
switch(msg.msgid) {
@@ -62,14 +61,14 @@ void read_mavlink(){
6261
osd_mode = (uint8_t)mavlink_msg_heartbeat_get_custom_mode(&msg);
6362
//Mode (arducoper armed/disarmed)
6463
base_mode = mavlink_msg_heartbeat_get_base_mode(&msg);
65-
// if(getBit(base_mode,7)) motor_armed = 1;
66-
// else motor_armed = 0;
64+
if(getBit(base_mode,7)) motor_armed = 1;
65+
else motor_armed = 0;
6766

6867
osd_nav_mode = 0;
69-
/*lastMAVBeat = millis();
68+
lastMAVBeat = millis();
7069
if(waitingMAVBeats == 1){
7170
enable_mav_request = 1;
72-
}*/
71+
}
7372
}
7473
break;
7574
case MAVLINK_MSG_ID_SYS_STATUS:
@@ -89,8 +88,6 @@ void read_mavlink(){
8988
osd_lon = mavlink_msg_gps_raw_int_get_lon(&msg) / 10000000.0f;
9089
osd_fix_type = mavlink_msg_gps_raw_int_get_fix_type(&msg);
9190
osd_satellites_visible = mavlink_msg_gps_raw_int_get_satellites_visible(&msg);
92-
osd_cog = mavlink_msg_gps_raw_int_get_cog(&msg);
93-
eph = mavlink_msg_gps_raw_int_get_eph(&msg);
9491
}
9592
break;
9693
case MAVLINK_MSG_ID_VFR_HUD:
@@ -117,8 +114,8 @@ void read_mavlink(){
117114
// nav_bearing = mavlink_msg_nav_controller_output_get_nav_bearing(&msg);
118115
wp_target_bearing = mavlink_msg_nav_controller_output_get_target_bearing(&msg);
119116
wp_dist = mavlink_msg_nav_controller_output_get_wp_dist(&msg);
120-
alt_error = mavlink_msg_nav_controller_output_get_alt_error(&msg);
121-
aspd_error = mavlink_msg_nav_controller_output_get_aspd_error(&msg);
117+
// alt_error = mavlink_msg_nav_controller_output_get_alt_error(&msg);
118+
// aspd_error = mavlink_msg_nav_controller_output_get_aspd_error(&msg);
122119
xtrack_error = mavlink_msg_nav_controller_output_get_xtrack_error(&msg);
123120
}
124121
break;
@@ -142,23 +139,16 @@ void read_mavlink(){
142139
break;
143140
case MAVLINK_MSG_ID_WIND:
144141
{
145-
// if (osd_climb < 1.66 && osd_climb > -1.66){
146-
osd_winddirection = mavlink_msg_wind_get_direction(&msg); // 0..360 deg, 0=north
147-
osd_windspeed = mavlink_msg_wind_get_speed(&msg); //m/s
148-
// osd_windspeedz = mavlink_msg_wind_get_speed_z(&msg); //m/s
149-
// }
142+
osd_winddirection = abs(mavlink_msg_wind_get_direction(&msg)); // 0..360 deg, 0=north
143+
osd_windspeed = mavlink_msg_wind_get_speed(&msg); //m/s
144+
// osd_windspeedz = mavlink_msg_wind_get_speed_z(&msg); //m/s
150145
}
151146
break;
152147
case MAVLINK_MSG_ID_SCALED_PRESSURE:
153148
{
154149
temperature = mavlink_msg_scaled_pressure_get_temperature(&msg);
155150
}
156151
break;
157-
case MAVLINK_MSG_ID_GLOBAL_POSITION_INT:
158-
{
159-
osd_home_alt = osd_alt - (mavlink_msg_global_position_int_get_relative_alt(&msg)*0.001);
160-
}
161-
break;
162152
default:
163153
//Do nothing
164154
break;

Character_Updater/OSD_Config.h

+8-21
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
#define BatA_BIT 3
2222
#define Bp_BIT 4
2323
#define GPSats_BIT 5
24-
#define COG_BIT 6
24+
//#define GPL_BIT 6
2525
#define GPS_BIT 7
2626

2727
// panB_REG Byte has:
@@ -49,7 +49,7 @@
4949
#define Off_BIT 1
5050
#define WindS_BIT 2
5151
#define Climb_BIT 3
52-
#define Tune_BIT 4
52+
//#define Tune_BIT 4
5353
#define CALLSIGN_BIT 5
5454
#define RSSI_BIT 6
5555
#define Eff_BIT 7
@@ -84,9 +84,9 @@
8484
#define panGPSats_en_ADDR 30
8585
#define panGPSats_x_ADDR 32
8686
#define panGPSats_y_ADDR 34
87-
#define panCOG_en_ADDR 36
88-
#define panCOG_x_ADDR 38
89-
#define panCOG_y_ADDR 40
87+
//#define panGPL_en_ADDR 36
88+
//#define panGPL_x_ADDR 38
89+
//#define panGPL_y_ADDR 40
9090
#define panGPS_en_ADDR 42
9191
#define panGPS_x_ADDR 44
9292
#define panGPS_y_ADDR 46
@@ -163,9 +163,9 @@
163163
#define panClimb_en_ADDR 182
164164
#define panClimb_x_ADDR 184
165165
#define panClimb_y_ADDR 186
166-
#define panTune_en_ADDR 188
167-
#define panTune_x_ADDR 190
168-
#define panTune_y_ADDR 192
166+
//#define panTune_en_ADDR 188
167+
//#define panTune_x_ADDR 190
168+
//#define panTune_y_ADDR 192
169169
#define panEff_en_ADDR 194
170170
#define panEff_x_ADDR 196
171171
#define panEff_y_ADDR 198
@@ -185,13 +185,6 @@
185185
#define panDistance_x_ADDR 226
186186
#define panDistance_y_ADDR 228
187187

188-
#define SIGN_MSL_ON_ADDR 876
189-
#define SIGN_HA_ON_ADDR 878
190-
#define SIGN_GS_ON_ADDR 880
191-
#define SIGN_AS_ON_ADDR 882
192-
#define MODELL_TYPE_ADD 884
193-
#define AUTO_SCREEN_SWITC_ADD 886
194-
#define OSD_BATT_SHOW_PERCENT_ADDR 888
195188
#define measure_ADDR 890
196189
#define overspeed_ADDR 892
197190
#define stall_ADDR 894
@@ -212,12 +205,6 @@
212205

213206
#define OSD_CALL_SIGN_ADDR 920
214207
#define OSD_CALL_SIGN_TOTAL 8
215-
#define FW_VERSION1_ADDR 930
216-
#define FW_VERSION2_ADDR 932
217-
#define FW_VERSION3_ADDR 934
218-
#define CS_VERSION1_ADDR 936
219-
#define CS_VERSION2_ADDR 938
220-
#define CS_VERSION3_ADDR 940
221208

222209
#define CHK1 1000
223210
#define CHK2 1006

0 commit comments

Comments
 (0)