Skip to content
APRS with DRA818 module
Other C++
  1. Other 84.7%
  2. C++ 15.3%
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
exemples update oled Sep 20, 2016
DRAPRS.cpp MAJV2 Jun 20, 2016
DRAPRS.h
DRAPRSV1.zip MAJ Jun 26, 2016
DRAPRSV2.zip add Aug 25, 2016
LiquidCrystal_I2C.zip update Mar 28, 2016
LiquidCrystal_SSD1306.zip update oled Sep 20, 2016
README.md Update README.md Mar 28, 2016
TNC_ID51.zip ID51_TNC.ino Dec 8, 2015
ch341_hl-340.zip drivers Jan 9, 2016
keywords.txt Create keywords.txt Jun 10, 2015
mini-dra818V2.zip update 27/11/2016 Nov 27, 2016
prog sans compil V2.1.zip update software Aug 9, 2016
tracker aprs.cfg MAJ Jun 26, 2016

README.md

#ARDUINO APRS and DRA818 module library # F4GOH Anthony f4goh@orange.fr

Mars 2016

Use this library freely with Arduino 1.0.6

Update protocols

  • APRS AFSK AX25 on freq1 ans freq2
  • RTTY 45 bauds on freq1 + freq shift
  • Hellschreiber on freq1 (see command "Set pin number and Frequency" above)

Installation

To use the DRAPRS library:

  • Go to https://github.com/f4goh/DRAPRS, click the Download ZIP button and save the ZIP file to a convenient location on your PC.

  • Uncompress the downloaded file. This will result in a folder containing all the files for the library, that has a name that includes the branch name, usually DRAPS-master.

  • Rename the folder to DRAPRS.

  • Copy the renamed folder to the Arduino sketchbook\libraries folder.

  • you must add Arduino TimerOne library :
    Go to http://playground.arduino.cc/Code/Timer1

Usage notes

To use 4x20 characters LCD Display, the LiquidCrystal_I2C and WIRE libraries must also be included.

#include <SoftwareSerial.h>
#include <TimerOne.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DRAPRS.h>

Change your callsign into unsigned char array

// track char array
unsigned  char     track[72]={'F'<<1,'4'<<1,'G'<<1,'O'<<1,'H'<<1,' '<<1,0x60,              //avant APTT4 7 octets (0-6)
                           'F'<<1,'4'<<1,'G'<<1,'O'<<1,'H'<<1,' '<<1,('0' + 12) << 1,     //F4GOH-11 7 octets (7-13)
                           'W'<<1,'I'<<1,'D'<<1,'E'<<1,'1'<<1,' '<<1,('0' + 1) << 1,      //WIDE1-1 7 octets (14-20)
                           'W'<<1,'I'<<1,'D'<<1,'E'<<1,'2'<<1,' '<<1,('0' + 1) << 1 | 1 , //WIDE2-1   fin ssid lsb =1 7 octets (21-27)
                           0x03,0xf0,                                                     //ctrl, pid 2 octets (28-29)
                           '/','1','5','0','4','5','2','h',      //heure 8 (30-37)
                           '4','8','5','1','.','2','0','N','/','0','0','2','2','0','.','9','2','E',      //lat, long 18 octets (38-55)
                           '>','7','3',' ','A','n','t','h','o','n','y',' ',' ',' ',' ',' '};               //commentaire 15 car

change GPS speed to 4800 bauds if you need

gps.begin(9600);

Set pin number and Frequency

 Beacon.begin(bfPin, ledPin, 1200, 2200, 350);   //analog pin, led pin, freq1, freq2, shift freq

DRA818 speed must be 9600 bauds

dra_serial.begin(9600);

change frequency into dra_serial.println...

// Format˖AT+DMOSETGROUP=BWˈTX_FˈRX_FˈTx_subaudioˈSQˈRx_subaudio
// AT+DMOSETGROUP=0,144.8000,144.8000,0000,4,0000
// SQ 0 à 8

byte configDra818()
{
char ack[3];
int n;
digitalWrite(PwDw, HIGH);
delay(2000);  //wait 2000ms to be awake
dra_serial.println(F("AT+DMOSETGROUP=0,144.8000,144.8000,0000,4,0000"));
ack[2]=0;
while (ack[2]!=0xa)
{
if (dra_serial.available()>0) {
                               ack[0]=ack[1];
                               ack[1]=ack[2];
                               ack[2]=dra_serial.read();
                               }
}
digitalWrite(PwDw, LOW);
return (ack[0]==0x30) ? 1 : 0;
}
You can’t perform that action at this time.