#26 2014-12-24 07:52:02

reha
Member
Registered: 2014-12-24
Posts: 2

Re: PicoAPRS, world's smallest APRS Transceiver with KISS TNC

Hi Taner,
I do have some works (I designed all including pcb) on Arduino based uC cards. One of the is ATMega644p based .. it is twice in resources wrt 328p but very important feature is it has 2 UART .. you can have a look at www.mfnode.com and I will be so happy to present one to you if you would like to try. At least, I will be happy, if I can have some contribution to your very very nice work. regards, reha

Offline

#27 2014-12-24 11:54:10

Stanley
Member
From: Kuala Lumpur, Malaysia
Registered: 2014-12-01
Posts: 65
Website

Re: PicoAPRS, world's smallest APRS Transceiver with KISS TNC

DB1NTO wrote:

Hi John, hi Stanley,
you can download the updated version from my modified MicroAPRS class with comment parsing at http://mailtext.de/MicroAPRS.zip
Please let me know if it works for you. I make some tests (APRS and MIC-E formated Data) and think it works...

Taner

Dear Taner,

Thanks for the updated libs... great stuff...

The updated MicroAPRS libs with comment parsing is working fine... no more displaying those coordinates or mic-e compressed strings...

Are there any checking of valid callsign from the libs as I get some some garbage / random characters during the initial booting stage from the modem ?

My show_packet function, the way I displayed it on 2 lines with a toggle are not too efficient.. any suggestions codes would be appreciated ... :-

void show_packet()
{
    char *posit, *pmsgTo, *call, *pcomment, *pmsg;
    char type, pmsgID;
    long lat, lon;
        static boolean nextLine = 0;

    microaprs.decode_posit(packet, &call, &type, &posit, &lon, &lat, &pcomment, &pmsgTo, &pmsg, &pmsgID);

    if (type == 58) // 58 = "!" = Message
    {
        if (startsWith(MYCALL, pmsgTo))
        {
                    mCounter++;
                    oled.setCursor(2,0);
                    clear3Line();                       
                    oled.setCursor(2,0);
                    oled.print("F:");
                    oled.print(call);
                    oled.setCursor(3,0);
                    oled.print("M:");
                    oled.print(pmsg);
                   
                    // Beep 3 times
                    digitalWrite(buzzerPin,HIGH);  // Buzz the user
                    delay(100);
                    digitalWrite(buzzerPin,LOW);
                    delay(100);
                    digitalWrite(buzzerPin,HIGH);  // Buzz the user
                    delay(100);
                    digitalWrite(buzzerPin,LOW);
                    delay(100);
                    digitalWrite(buzzerPin,HIGH);  // Buzz the user
                    delay(100);
                    digitalWrite(buzzerPin,LOW);
                   
                nextLine ^= 1 << 1;  // Toggle nextLine
        }
    }
    else // Not message, decode , calculate and display packets
    {          
            wayPointLatitude = lat;       
            wayPointLongitude = lon;

            wayPointLatitude = wayPointLatitude / 1000000;
        wayPointLongitude = wayPointLongitude / 1000000;

        distanceToWaypoint = calculateDistance();
        bearing = calculateBearing();
 
            // Check for valid decoded packets
            if ( strlen(call) < 12 ) {
            lastRx = millis();
            packetDecoded++;

                if ( !nextLine ) {
                    oled.setCursor(2,0);
                    clear3Line();
                    oled.setCursor(2,0);
                    oled.print(call);
                    oled.print(" ");
                    if (distanceToWaypoint < 1000 ) {
                      oled.print(bearing, 0);
                      oled.print("d ");                     
                      oled.print(distanceToWaypoint,1);
                      oled.print("km");
                    }

                    oled.setCursor(3,0);
                    oled.print(pcomment);
                } else {
                    oled.setCursor(5,0);
                    clear3Line();
                    oled.setCursor(5,0);
                    oled.print(call);
                    oled.print(" ");                   
                    if (distanceToWaypoint < 1000 ) {
                      oled.print(bearing, 0);
                      oled.print("d ");                     
                      oled.print(distanceToWaypoint,1);
                      oled.print("km");                   
                    }
                   
                    oled.setCursor(6,0);
                    oled.print(pcomment);                  // Updated to display commnets instead of posit
                }  // endif !nextLine
               
          } // endif check for valid packets

              // Toggle the nextLine
              nextLine ^= 1 << 1; 
    }
}


Stanley
9W2SVT/ N5SVT
http://9W2SVT.blogspot.com

Offline

#28 2014-12-24 12:01:24

Stanley
Member
From: Kuala Lumpur, Malaysia
Registered: 2014-12-01
Posts: 65
Website

Re: PicoAPRS, world's smallest APRS Transceiver with KISS TNC

Taner, did the libs check for status ">" type of packet ??

It does not seems to be working ...

My SVTrackR sent out 1 status every 10 packets but I did not see it decoded...
>SVTrackR v1.0 5.24V S:9 B:0.51 U:21.32 Seq:70

S = Sats
B = distance to base in km
U = uptime in minutes

I just use alligator clips the audio-out from another SVTrackR to audio-in to a SVTrackR to test for this..

Last edited by Stanley (2014-12-24 12:07:33)


Stanley
9W2SVT/ N5SVT
http://9W2SVT.blogspot.com

Offline

#29 2014-12-24 12:47:19

DB1NTO
Member
Registered: 2014-12-01
Posts: 52

Re: PicoAPRS, world's smallest APRS Transceiver with KISS TNC

@ reha,
Thank you. Maybe some contribution to make a PCB will help me to make my project flying wink
I think i will use ATmega 1284. Because it has double size of Flash to 644. So it's more space for updates...

@Stanley,
great to hear that it works.
There is no checking for valid packages. But it looks for a packet beginning with "SRC: [" If it not begins so, the packed will be ignored.
Because your line toggle, i will look later for this.
At this time, i'm trying to port my code to the new LibAPRS library from Mark...

Offline

#30 2014-12-24 12:49:25

DB1NTO
Member
Registered: 2014-12-01
Posts: 52

Re: PicoAPRS, world's smallest APRS Transceiver with KISS TNC

@All,

i updated the Library again today to decode Status messages.

Message will placed in "pcomment"...

Download at: www.mailtext.de/MicroAPRS.zip

Cheers Taner
DB1NTO

Offline

#31 2014-12-24 20:52:58

reha
Member
Registered: 2014-12-24
Posts: 2

Re: PicoAPRS, world's smallest APRS Transceiver with KISS TNC

Hi Tamer
certainly I would like to contribute. but only possible problem is, I use proteus not eagle.. reha

Offline

#32 2014-12-25 07:26:12

Stanley
Member
From: Kuala Lumpur, Malaysia
Registered: 2014-12-01
Posts: 65
Website

Re: PicoAPRS, world's smallest APRS Transceiver with KISS TNC

Dear Taner,

Thanks for the update codes on the Status ... as I needed to ship some SVTrackR with the Status display, I wrote it as, very similar to yours.. :-

    else if (type == '>' ) {
    // Check for status type
    char *comment = posit;
    *pcomment = comment;
  } ....


And for the garbage chars at the beginning .. I put a checking for the boolean .. fix it...

    if ( microaprs.decode_posit(packet, &call, &type, &posit, &lon, &lat, &pcomment, &pmsgTo, &pmsg, &pmsgID) ) {
                ....
        }


Stanley
9W2SVT/ N5SVT
http://9W2SVT.blogspot.com

Offline

#33 2014-12-25 07:31:20

Stanley
Member
From: Kuala Lumpur, Malaysia
Registered: 2014-12-01
Posts: 65
Website

Re: PicoAPRS, world's smallest APRS Transceiver with KISS TNC

DB1NTO wrote:

@ reha,
Thank you. Maybe some contribution to make a PCB will help me to make my project flying wink
I think i will use ATmega 1284. Because it has double size of Flash to 644. So it's more space for updates...

Isn't using the teensy 3.1 a better choice (much much more powerful )  and it supports 3.3V directly , it cost like US$20 ...

All my previous projects, I just made PCBs with a socket for mini pro, so I probably do the same for the teensy 3.1 ... less parts / routing to worry about ...

Are the teensy 3.1 easily available in yr area ?


Stanley
9W2SVT/ N5SVT
http://9W2SVT.blogspot.com

Offline

#34 2014-12-25 10:34:38

DB1NTO
Member
Registered: 2014-12-01
Posts: 52

Re: PicoAPRS, world's smallest APRS Transceiver with KISS TNC

Hi Stanley,

thanks for your code update.

I know about Teensy. But i will made a very small PCB (from professional PCB maker) for my tracker.
Teensy uses the MK20DX256VLH7 CORTEX4 MCU. It has 64 Pins so it is more difficult to handle, bigger than a ATmega 1284 (more room on PCB) and slightly more expensive.

I don't know if we can use the code 1:1?
Have you tried this? I don't have a teensy at this moment.

The MK20DX256VLH7 has a built in DAC. It does not need a ladder resistor line to make a (very smooth 12 bit!) sine wave on output and just ONE pin for audio out.
Because this, we need to make changes on code. Maybe Mark can take a look to it. I will make a separate post for this.

Taner

Offline

#35 2015-01-06 11:41:46

la3bna
Member
Registered: 2014-12-18
Posts: 18

Re: PicoAPRS, world's smallest APRS Transceiver with KISS TNC

Just a quick question Tanner.

I understand that connecting the radio to the microAPRS modem, did you use Marks circiut?

Offline

#36 2015-01-06 12:00:27

DB1NTO
Member
Registered: 2014-12-01
Posts: 52

Re: PicoAPRS, world's smallest APRS Transceiver with KISS TNC

Hi la3bna,

no, i use a small Arduino Pro mini like this http://www.ebay.de/itm/221532713661
Round about 2,20 US $

Taner

Offline

#37 2015-01-08 19:24:19

aaitvedan
Member
Registered: 2014-12-18
Posts: 8

Re: PicoAPRS, world's smallest APRS Transceiver with KISS TNC

Hello Taner,
I try to build your project, i'm new with Adruino and not much experience with C but so far so good!
When I let Adruino check your code at a certain point it comes with a compile error with the following output:

U8glib/utility/u8g_font_data.c.o:(.progmem.u8g_font_5x8+0x0): multiple definition of `u8g_font_5x8'
APRS-TRX-128_64-OL.cpp.o:(.progmem.u8g_font_5x8+0x0): first defined here

I tried the U8glib version 1.16 and 1.17 library but both versions give the same result.
What am I doing wrong?

Renné PA1RP

Last edited by aaitvedan (2015-01-08 19:25:12)

Offline

#38 2015-01-08 20:05:01

DB1NTO
Member
Registered: 2014-12-01
Posts: 52

Re: PicoAPRS, world's smallest APRS Transceiver with KISS TNC

Hi Renné,

just remove the lines 8 - 116
beginning with

const u8g_fntpgm_uint8_t u8g_font_5x8[1693] U8G_FONT_SECTION("u8g_font_5x8") =

Taner Schnker

Last edited by DB1NTO (2015-01-08 20:05:20)

Offline

#39 2015-01-08 21:15:19

aaitvedan
Member
Registered: 2014-12-18
Posts: 8

Re: PicoAPRS, world's smallest APRS Transceiver with KISS TNC

Thanks Taner, that did the job!

Renné

Offline

#40 2015-01-10 12:11:10

la3bna
Member
Registered: 2014-12-18
Posts: 18

Re: PicoAPRS, world's smallest APRS Transceiver with KISS TNC

Tanner. I mean the audio connection between the radio unit and the microAPRS modem.

Offline

#41 2015-01-10 14:06:15

DB1NTO
Member
Registered: 2014-12-01
Posts: 52

Re: PicoAPRS, world's smallest APRS Transceiver with KISS TNC

The audio connection is ONE wire to a resitor ladder. That's all. The resistor ladder is soldered from ME directly on the small Arduino board.

Offline

#42 2015-01-10 14:51:52

la3bna
Member
Registered: 2014-12-18
Posts: 18

Re: PicoAPRS, world's smallest APRS Transceiver with KISS TNC

OK. Did you use the same as Mark?

Offline

#43 2015-01-10 15:33:27

DB1NTO
Member
Registered: 2014-12-01
Posts: 52

Re: PicoAPRS, world's smallest APRS Transceiver with KISS TNC

The resistors?
Yes. Just small SMD (SMT) type

Offline

#44 2015-01-10 20:14:10

aaitvedan
Member
Registered: 2014-12-18
Posts: 8

Re: PicoAPRS, world's smallest APRS Transceiver with KISS TNC

Hi Taner,

I try to get some data on the display, using only one pro mini programmed with your code and an OLED (the one from ebay) connected. (Should I see something?)
I see I2C data and clock on the lines but nothing on the display.
Which I2C address do you use to address the display. I can't find it in your code. Or do I have to set this via the u8glib library?

73, Renné

Offline

#45 2015-01-10 20:22:45

la3bna
Member
Registered: 2014-12-18
Posts: 18

Re: PicoAPRS, world's smallest APRS Transceiver with KISS TNC

Renné you could program a i2c scanner andre find the display. Some og the displays need to have pull-up resistors added.

Try this:
playground.arduino.cc/Main/I2cScanner

God luck. De la3bna

Offline

#46 2015-01-10 20:43:26

aaitvedan
Member
Registered: 2014-12-18
Posts: 8

Re: PicoAPRS, world's smallest APRS Transceiver with KISS TNC

Thanks la3bna, I will try the scanner. I did add pull-ups. The data and clock looks fine on the oscilloscope.

Renné PA1RP

Offline

#47 2015-01-11 14:49:45

DB1NTO
Member
Registered: 2014-12-01
Posts: 52

Re: PicoAPRS, world's smallest APRS Transceiver with KISS TNC

Hi Renné,

yes, you must see TIME / DATE
LAT LON SPEED

Without connected GPS just 0000 but something to see on OLED.

Pull ups not needed. Just connect the two data pins from oled to A3 / A4 on Arduino...

Offline

#48 2015-01-11 21:14:28

aaitvedan
Member
Registered: 2014-12-18
Posts: 8

Re: PicoAPRS, world's smallest APRS Transceiver with KISS TNC

Hi Taner,
Are you sure about A3 / A4? I thought SCL=A5 and SDA=A4. Am I correct?
Had I2C scanner running without succes. Scanning...No I2C devices found. So I think there is something wrong with the displays.

Renné PA1RP

Offline

#49 2015-01-12 07:42:11

DB1NTO
Member
Registered: 2014-12-01
Posts: 52

Re: PicoAPRS, world's smallest APRS Transceiver with KISS TNC

Hi Renné,

sorry, you are right.
It's A4 / A5!

Taner

Offline

#50 2015-01-18 03:40:31

np4zb10
Member
Registered: 2015-01-18
Posts: 4

Re: PicoAPRS, world's smallest APRS Transceiver with KISS TNC

HI DB1NTO,
great project, I would like to build one. Please let me know do I really a microaprs modem?
or I can use one Arduino pro mini.? There are Sketches that turn the Arduino into a TNC.
Please let me know

Offline

Board footer

Powered by FluxBB