Skip to content

Commit f42d22e

Browse files
committed
Final touch : Adding Dorji to GPS Beacon
1 parent 9dc8e87 commit f42d22e

File tree

4 files changed

+1281
-776
lines changed

4 files changed

+1281
-776
lines changed

Arduino-Sketches/Test/APRS_GPS_GPRMC/APRS_GPS_GPRMC.ino

Lines changed: 80 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
#include <SoftwareSerial.h>
2020

2121
// Defines the Square Wave Output Pin
22-
#define OUT_PIN 2
22+
#define OUT_PIN 12
2323

2424
#define _1200 1
2525
#define _2400 0
@@ -37,6 +37,16 @@
3737
#define _FIXPOS_STATUS 4
3838
#define _STATUS 5
3939

40+
// Defines the Dorji Control PIN
41+
#define _PTT 7
42+
#define _PD 6
43+
#define _POW 5
44+
45+
#define DRJ_TXD 10
46+
#define DRJ_RXD 11
47+
48+
SoftwareSerial dorji(DRJ_RXD, DRJ_TXD);
49+
4050
bool nada = _2400;
4151

4252
/*
@@ -405,7 +415,10 @@ void send_packet(char packet_type)
405415
{
406416
print_debug(packet_type);
407417

408-
digitalWrite(LED_BUILTIN, 1);
418+
digitalWrite(LED_BUILTIN, HIGH);
419+
digitalWrite(_PTT, HIGH);
420+
421+
delay(100);
409422

410423
/*
411424
* AX25 FRAME
@@ -429,6 +442,7 @@ void send_packet(char packet_type)
429442
send_crc();
430443
send_flag(3);
431444

445+
digitalWrite(_PTT, LOW);
432446
digitalWrite(LED_BUILTIN, 0);
433447
}
434448

@@ -538,8 +552,18 @@ void set_io(void)
538552
pinMode(LED_BUILTIN, OUTPUT);
539553
pinMode(OUT_PIN, OUTPUT);
540554

555+
pinMode(DRJ_RXD, INPUT);
556+
pinMode(DRJ_TXD, OUTPUT);
557+
pinMode(_PTT, OUTPUT);
558+
pinMode(_PD, OUTPUT);
559+
pinMode(_POW, OUTPUT);
560+
561+
digitalWrite(_PTT, LOW);
562+
digitalWrite(_PD, HIGH);
563+
digitalWrite(_POW, LOW);
564+
541565
Serial.begin(115200);
542-
gps.begin(9600);
566+
dorji.begin(9600);
543567
}
544568

545569
void print_code_version(void)
@@ -623,13 +647,66 @@ void print_debug(char type)
623647
Serial.end();
624648
}
625649

650+
/*
651+
*
652+
*/
653+
void dorji_init(SoftwareSerial &ser)
654+
{
655+
ser.println("AT+DMOCONNECT");
656+
}
657+
658+
void dorji_reset(SoftwareSerial &ser)
659+
{
660+
for(char i=0;i<3;i++)
661+
ser.println("AT+DMOCONNECT");
662+
}
663+
664+
void dorji_setfreq(float txf, float rxf, SoftwareSerial &ser)
665+
{
666+
ser.print("AT+DMOSETGROUP=0,");
667+
ser.print(txf, 4);
668+
ser.print(',');
669+
ser.print(rxf, 4);
670+
ser.println(",0000,0,0000");
671+
}
672+
673+
void dorji_readback(SoftwareSerial &ser)
674+
{
675+
String d;
676+
677+
while(ser.available() < 1);
678+
if(ser.available() > 0)
679+
{
680+
d = ser.readString();
681+
Serial.print(d);
682+
}
683+
}
684+
685+
void dorji_close(SoftwareSerial &ser)
686+
{
687+
ser.end();
688+
}
689+
626690
/*
627691
*
628692
*/
629693
void setup()
630694
{
631695
set_io();
632696
print_code_version();
697+
698+
delay(250);
699+
700+
dorji_reset(dorji);
701+
dorji_readback(dorji);
702+
delay(1000);
703+
dorji_setfreq(144.390, 144.390, dorji);
704+
dorji_readback(dorji);
705+
706+
Serial.println(' ');
707+
708+
dorji_close(dorji);
709+
gps.begin(9600);
633710
}
634711

635712
void loop()

0 commit comments

Comments
 (0)