AP510 APRS

I recently got my amateur radio certificate and was interested doing some APRS messaging so I purchased a Sainsonic AP510. It’s a nice little TNC with GPS, bluetooth and a thermometer.

It comes with minimal documentation in 4 languages and no software to configure it.

There’s a Yahoo Group that has firmware, configuration software and upgrade software. It’s annoying that you need to sign up for a Yahoo account to download the files there.

There’s also a Chinese website that has more firmware and some forums ( the Yahoo site has mined most needed data from there )

There’s also a good French website that explains how to flash the firmware and has some files needed for windows 7.

I found a German site that explains the serial cable pinout.

Upgrading the firmware

Standard disclaimer: this has worked for me but if it fails and bricks your AP510 I’m not responsible.

So far I have only gotten this to work on Windows, it will run under Wine but won’t connect. On windows XP these files AVRTTupdata.exe.zip and the VB6 runtime will be enough. On any newer windows MSCOMM32.OCX and MSSTDFMT.DLL will be required as well.

Make sure the ini file is in the same directory as the AVRTTupdata when you run it as it has the correct setup for the AVR in the AP510. The first time you run AVRTTUpdata it will be in Chinese, select language and put it into English.

  1. Use the option->comport menu item to chose the correct comport. Don’t change any of the other settings.
  2. Use the folder icon to load the hex file into the Upgrade tool.
  3. Turn off the AP510.
  4. Push and hold the power button on the AP510.
  5. While still holding the power button push the chip icon and the download will begin.
  6. Keep holding the power button until the download completes.

Voila your AP510 is now upgraded.

Linux Configuration tool

Update: This is deprecated use chirp instead as it now supports the AP510

The windows configuration tool is in the archive above. I didn’t want to start up a VM each time to change the config so I wrote a simple python tool AP510-setup to configure it. You’ll need to edit the script to change the comport, callsign and other settings. I’ve licensed it GPL V2 and please send me any improvements you make to the script.

To use the script:

  1. Edit the configuration
  2. Turn the AP510 off
  3. Start the script
  4. Turn the AP510 back on
  5. The script should dump the current settings, update the new settings and then dump the new settings

EDIT: Jan was nice enough to reverse engineer a schematic for the AP510.

8 thoughts on “AP510 APRS

  1. i have had my unit for 2 months never got working I try on 2 different computers on will not even read the config file the other defaults to com port 1 and is nothing else plugged in to computer. Is a peace of junk and no help. I buy cause i wanted something to work aprs that said was easy to set up and worked wow what a lie.

  2. sounds like you didnt press and hold button till it bleeped

    1 make sure ap510 is turned off. (press and hold red button for 10 sec)
    2 plug in usb cable into computer
    3 start 20140702 ap510 config.exe
    4 plug micro usb into ap510 aprs
    5 click “read config” in display it will say “please restart AP510 connecting…..” and it will count”
    6 press red button for 4 second till it bleeps.
    7 “read successfully” should now be displayed.
    8 now change setting and the click write config.
    9 turn off ap510 and unplug.

    ps. in callsign it uses 6 spaces if your callsign is 5 long put a space at the end of it.

    hope that helps

  3. Howdy. I have spent the past 2 weeks trying to get an AP510 working, unsucessfully.

    Someone previously got his callsign and SSID in it, somehow, but when he gave it to me to figure out more of it, he gave me a straight through USB cable. I wonder if that could have popped the serial input, or did they actually use a little bit of common sense and put some kind of circuit input protection – like Zener diodes and at least a 100 ohm series resistor between that USB connector and the raw 3 volt pins on the processor?

    Now that I have the proper programming cable, I have gotten a couple of intelligible strings back at 9600 baud after power-up, but cannot get either Chirp or 20140702 ap510 config.exe to actually talk to the device. I’m going to try and solder up a data scope interface tomorrow to physically capture the serial data back and forth as these programs attempt to talk to the thing. However, I’m not really optimistic about getting the thing working given the number of man-hours and lack of success even when following the instructions on several sites to the letter today.

    At 9600 baud with PuTTY, I put the literal string
    ^MAT+BEEP=0
    (with carriage return at the end) into the clipboard, plugged the cable into the powered-down unit, mashed and held the red button, and about 500 milliseconds after that while still holding the button, pasted the string into the PuTTY window to transmit it.

    To my surprise, it inserted the string OK in the middle of another string, namely
    AT+BAUD3OKffff followed by a few more gibberish characters and then another OK, followed by the fellow’s callsign and SSID and what looked like a status packet.
    Exact string except for callsign obfuscated to protect him from embarrassment:
    xx5xxx-7>APAVT5:>AP510 4.14V +35,5CX

    The whole sequence that was captured looks like this:
    ÷ÿxcallsign-7>APAVT5:>AP510 4.12V +35,3CX
    AT+BAUD3OKffff`æxuþíxOKcallsign-7>APAVT5:>AP510 4.14V +35,5CX
    AT+BAUD3ffff`æxffæàføff`fæ~

    I have a Baofeng UV5R with a patch cable to the sound card of the Windows computer running AGWPE and APRSIS32, and every 60 seconds have been capturing actual packets going out on 144.39 from this unit. I have a dummy load on the AP510 to not QRM the network while trying to debug the thing.

    Any idea what else I’m doing wrong? Is there a different update or a tweak to the Chirp Python code module that supports the AP510? Is this thing maybe running either a newer or more obsolete firmware that is incompatible with the most recent build of Chirp? (I think it’s the most recent build, at least as of 2 weeks ago when I started messing with this thing)

    Is there any way to identify the firmware in the device if I can’t communicate with it in any meaningful manner?

    What about, is there a comprehensive list of the builds of yyyymmdd ap510 config.exe and which firmware versions each are compatible with? Maybe then I can actually match up things and get it working. Because at this point, it’s useless being unable to change the beacon rate to something reasonable, or get to and fix any of the other configuration parameters.

    I have a list of things I’d have done differently designing the thing, both in hardware and firmware, but that’s for another day.

  4. The AP510 is really a piece of junk but they did design it so that a straight through cable won’t harm it.

    If you can’t get chirp ( or the config app ) to talk to it you might need to upgrade the firmware. The yahoo group has info on upgrading it.

    For the upgrade or config continuously tapping or holding the button sometimes allows it to connect. Before you can send any data to it you must get it into configuration mode . IIRC you need to send some kind of string to get it into config mode.

    Unfortunately mine no longer works so I can’t help debug on this end. I replaced the LDO on it once already but the heat dissipation on the board is so bad the second one fried too. I just can’t be bothered to replace it again.

  5. Thanks for the reassurance that the straight through cable didn’t pop the serial port. After barking up the wrong tree for 2 weeks, now it kind of confirms that the config mode entry is a seriously hit and miss roll of the dice.

    Just opened the case and looked around, and got some surprises. They use the Dallas Semi DS18B20 “One Wire” digital thermometer chip. Nice. I have a handful of those in my R&D inventory.

    The LDO, according to its data sheet, is supposed to be rated at up to 300 ma output, but as an engineer I think I see why you saw it overheating. I have a product that uses a close cousin of this chip in the exact same pinout and package. I put a huge expanse of unbroken copper beneath and extending out all around this chip on my circuit board design. I intentionally laid out the solder mask and paste stencil so the entire heat sink back and tab of the chip are reflow soldered to this expanse of copper. On my circuit, it doesn’t even feel warm to the touch, much less get hot enough to self-destruct. The heat sink on my design is massive overkill, mostly because when stuff comes in for repair, I feel like I let people down if it wasn’t because Homer Simpson did something stupid with the product in the field.

    I’m thinking of automating the button press / configuration mode sequence. While I’ve tried the YouTube process a couple of times, evidently there’s some nuances of timing and rhythm in the internal choreography of configuration mode change that I haven’t mastered yet.

    I could wire a relay across the button signals, and then step through hundreds of power button duration and time delay between button press and attempt to program the thing, with millisecond precision. That might finally quantify the timing window of button press vs configure mode and make it possible to draw a timing diagram that would let a novice actually set up the device.

    I am guessing that I need to run AVRTTupdata.exe and then try to upload 20140703(4800) AVRT5 .hex ? Or is there another more recent build I’m not aware of?

    I used youtube-dl on https://www.youtube.com/watch?v=qmtVvKav_LU and have watched it, paused and replayed the little sequence about the button press about a dozen times to try and build some “muscle memory” as to what sequence is supposed to work.

    It still doesn’t work after 20 iterations.

    Update. I actually get a connect response from AVRTTupdata.exe, which then finally delivers an error of X Too many retry! X Update fail. Of course this doesn’t fix the problem but it is further than I’ve gotten with any of those programs to date.

    And now I think I’ve bricked it. It won’t power up like it used to do. fixing to google to see if it can be fixed, or if my best option is just carry it out the door, walk to the alley, throw it in the dumpster, and let it go to the landfill.

    However, I have yet to get a read config to work yet after 20 iterations with 20140702 ap510 config.exe

  6. Rather than wiring up a relay to catch the reset why not wire in a ISP or JTAG port. Then you could program it using avrdude and even if you have bricked it you could recover it.

  7. omg it worked for me – chirp has deprecated support but your lovely python configure.py worked for me. thanks tons! i am sorry yours overheated.

    >>> import configure
    Read:
    Read: MQUA?
    Read: @SETUP
    Read: @SETUP
    Read: @SETUP
    Read: @SETUP
    Read: @SETUP
    Read: @SETUP
    Read: @SETUPw?
    Read:
    Read: ?x
    Read:
    Read:
    Read:
    SETUP

    Got setup
    Writing 11 : Callsign @01redacted06
    Return : OK
    Writing 4 : PTT delay @026
    Return : OK
    Writing 4 : Path @051
    Return : OK
    Writing 4 : TX mode @071
    Return : OK
    Writing 7 : Update rate @080900
    Return : OK
    Writing 11 : Comment @09Comment

    Return : OK
    Writing 10 : Status @10Status

    Return : OK
    Writing 6 : Digipeat @1200

    Return : OK
    Writing 11 : Frequency @16144.3900
    Return : OK
    Writing 4 : beep @170
    Return : OK
    Writing 17 : Smart Beacon @182d??–
    Return : OK
    New Config
    line 2 :
    line 19 : 00=AVRT5 20140829
    line 12 : 01=redacted0
    line 6 : 02=6
    line 6 : 03=1
    line 6 : 04=1
    line 6 : 05=1
    line 7 : 06=>/
    line 6 : 07=1
    line 9 : 08=0900
    line 12 : 09=Comment
    line 11 : 10=Status
    line 7 : 12=00
    line 6 : 13=0
    line 8 : 14=0PP
    line 33 : 15=????????????????????????????
    line 13 : 16=144.3900
    line 6 : 17=0
    line 19 : 18=2d??–
    hex: 31:38:3d:00:32:00:64:00:b4:00:b4:00:2d:00:2d:00:0f:0d:0a
    line 6 : 19=?

  8. @Alton Don’t dump it. If it does not power up, it is possibly transistor Q3. I had also bricked my device, because I measured and checked ‘too much’ with battery on, that was a failure. Even if switched off, the device is under voltage. Q3 is the real ‘main switch’ of the device… and later on: F1A and F1B (see drawings). With pressing the button, you only start the Atmega, which sends a ‘power enable’ signal to the base of Q3, which conducts and switches the device steady on. If there is no ‘power enable’ from the Atmega, then the problem is there.
    73 guenter

Leave a Reply

Your email address will not be published. Required fields are marked *