This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

Thread Rating:
  • 2 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
libGPS for TinkerBoard Android
#21
Oh, indeed, the source code on github is not the last. My plan was to update when I found all bugs. Now I have some rare times this message in HereWeGo, but I found that on TB the location was set on 'high precision' and not on 'only device' and I was not able to change. Every reboot it returned to 'high precision'. And my plan was also to disable the debug messages, once it is running without problems.
O.K. I will update the source code on github now, so you can compile it without debug messages.
Reply
#22
Thanks lobo, i'm now using your latest (compiled from source) I'll keep an eye out for any problems but so far all is good.

Usually by the time I have booted android my GPS has a strong signal (SRAM on my gps chipset backed by a supercapacitor for quick re-starts).

Maybe this line:

if (r->fix.accuracy == 99.99){

I don't know much about GPS/NMEA, but this probably should be checked with an epsilon, it may be setting the HAS_ACCURACY flag even though it does not have a lock. Might explain why i don't see the issue with a good antenna? In fact, according to some docs a value >20 here should be ignored (not sure what GPS chips out there in the real world are doing though).

I'll let you know if I find anything.
Reply
#23
I think I am missing something here.
Here are the steps I've taken:
adb root
adb remount
Copied the library over:
adb push gps.default.so /system/lib/hw/

Created a gps.conf
adb shell echo "'GPSPORT /dev/ttyACM0\nGPSSPEED 115200' > /system/etc/gps.conf"  Or should this be 9600?

I've created an sh file install-recovery.sh and copied that over to /system/etc/
Changed the device permissions:
"chmod 666 /dev/ttyACM0"
reboot
I can cat ttyACM0 and I get nmea data
As far as the serial device is concerned it seems to be working, however I am not able to get any app in Android to use this device for location services, such as maps, or GPS coordinates.  Is there something else that needs to be done? I am used to regular linux where everything can point back to gpsd. Pretty sure Android is different in that respect.
Reply
#24
(03-13-2018, 02:27 AM)kyu80 Wrote: I think I am missing something here.
Here are the steps I've taken:
adb root
adb remount
Copied the library over:
adb push gps.default.so /system/lib/hw/

Created a gps.conf
adb shell echo "'GPSPORT /dev/ttyACM0\nGPSSPEED 115200' > /system/etc/gps.conf"  Or should this be 9600?

I've created an sh file install-recovery.sh and copied that over to /system/etc/
Changed the device permissions:
"chmod 666 /dev/ttyACM0"
reboot
I can cat ttyACM0 and I get nmea data
As far as the serial device is concerned it seems to be working, however I am not able to get any app in Android to use this device for location services, such as maps, or GPS coordinates.  Is there something else that needs to be done? I am used to regular linux where everything can point back to gpsd. Pretty sure Android is different in that respect.

Baud rate will depend on your GPS device, I would try 9600 first if your unsure. 

I'm assuming the permissions are not correct on /dev/ttyACM0 after a re-boot? 

I didn't have any luck with the install-recovery.sh method. Instead I tried the boot method mentioned by lobo (first page of this thread). Also, see https://github.com/TinkerBoard/android-6...l/issues/1 maybe that will work for you, much easier but I have not tried it.
Reply
#25
(03-13-2018, 06:23 AM)sleax Wrote:
(03-13-2018, 02:27 AM)kyu80 Wrote: I think I am missing something here.
Here are the steps I've taken:
adb root
adb remount
Copied the library over:
adb push gps.default.so /system/lib/hw/

Created a gps.conf
adb shell echo "'GPSPORT /dev/ttyACM0\nGPSSPEED 115200' > /system/etc/gps.conf"  Or should this be 9600?

I've created an sh file install-recovery.sh and copied that over to /system/etc/
Changed the device permissions:
"chmod 666 /dev/ttyACM0"
reboot
I can cat ttyACM0 and I get nmea data
As far as the serial device is concerned it seems to be working, however I am not able to get any app in Android to use this device for location services, such as maps, or GPS coordinates.  Is there something else that needs to be done? I am used to regular linux where everything can point back to gpsd. Pretty sure Android is different in that respect.

Baud rate will depend on your GPS device, I would try 9600 first if your unsure. 

I'm assuming the permissions are not correct on /dev/ttyACM0 after a re-boot? 

I didn't have any luck with the install-recovery.sh method. Instead I tried the boot method mentioned by lobo (first page of this thread). Also, see https://github.com/TinkerBoard/android-6...l/issues/1 maybe that will work for you, much easier but I have not tried it.

This was the fix. Thank you very much! I had issues getting to that point and ended up having to power the TB using the GPIO, as none of my USB hubs were enough to power the TB.

Now that GPS is working, next up is getting the compass and gyroscope stuff configured.
Reply
#26
Hello,

I am using BU-353-S4 and something it's not right.

in gps.conf i have:
Code:
GPSPORT /dev/ttyUSB0
GPSSPEED 4800


In log i am getting a lot of:
Code:
03-24 16:09:35.530   598  1023 D gps_zkw : gps_state_thread: line = 995, gps thread received 1 events
03-24 16:09:35.530   598  1023 D gps_zkw : gps_state_thread: line = 1054, gps fd event
03-24 16:09:35.530   598  1023 D gps_zkw : gps_state_thread: line = 1067, gps fd received: ° bytes: 1
03-24 16:09:35.530   598  1023 D gps_zkw : gps_state_thread: line = 1071, gps fd event end
03-24 16:09:35.531   598  1023 D gps_zkw : gps_state_thread: line = 995, gps thread received 1 events
03-24 16:09:35.531   598  1023 D gps_zkw : gps_state_thread: line = 1054, gps fd event
03-24 16:09:35.531   598  1023 D gps_zkw : gps_state_thread: line = 1067, gps fd received: å bytes: 1
03-24 16:09:35.531   598  1023 D gps_zkw : gps_state_thread: line = 1071, gps fd event end
03-24 16:09:35.532   598  1023 D gps_zkw : gps_state_thread: line = 995, gps thread received 1 events
03-24 16:09:35.532   598  1023 D gps_zkw : gps_state_thread: line = 1054, gps fd event
03-24 16:09:35.532   598  1023 D gps_zkw : gps_state_thread: line = 1067, gps fd received:  bytes: 1
03-24 16:09:35.532   598  1023 D gps_zkw : gps_state_thread: line = 1071, gps fd event end
03-24 16:09:35.534   598  1023 D gps_zkw : gps_state_thread: line = 995, gps thread received 1 events
03-24 16:09:35.534   598  1023 D gps_zkw : gps_state_thread: line = 1054, gps fd event
03-24 16:09:35.534   598  1023 D gps_zkw : gps_state_thread: line = 1067, gps fd received: x bytes: 1
03-24 16:09:35.534   598  1023 D gps_zkw : gps_state_thread: line = 1071, gps fd event end
03-24 16:09:35.535   598  1023 D gps_zkw : gps_state_thread: line = 995, gps thread received 1 events
03-24 16:09:35.535   598  1023 D gps_zkw : gps_state_thread: line = 1054, gps fd event
03-24 16:09:35.535   598  1023 D gps_zkw : gps_state_thread: line = 1067, gps fd received:  bytes: 1
03-24 16:09:35.535   598  1023 D gps_zkw : gps_state_thread: line = 1071, gps fd event end
03-24 16:09:35.537   598  1023 D gps_zkw : gps_state_thread: line = 995, gps thread received 1 events
03-24 16:09:35.537   598  1023 D gps_zkw : gps_state_thread: line = 1054, gps fd event
03-24 16:09:35.537   598  1023 D gps_zkw : gps_state_thread: line = 1067, gps fd received: α bytes: 1
03-24 16:09:35.537   598  1023 D gps_zkw : gps_state_thread: line = 1071, gps fd event end
03-24 16:09:35.538   598  1023 D gps_zkw : gps_state_thread: line = 995, gps thread received 1 events
03-24 16:09:35.538   598  1023 D gps_zkw : gps_state_thread: line = 1054, gps fd event
03-24 16:09:35.538   598  1023 D gps_zkw : gps_state_thread: line = 1067, gps fd received: å bytes: 1
03-24 16:09:35.538   598  1023 D gps_zkw : gps_state_thread: line = 1071, gps fd event end
03-24 16:09:35.539   598  1023 D gps_zkw : gps_state_thread: line = 995, gps thread received 1 events
03-24 16:09:35.539   598  1023 D gps_zkw : gps_state_thread: line = 1054, gps fd event
03-24 16:09:35.539   598  1023 D gps_zkw : gps_state_thread: line = 1067, gps fd received:  bytes: 1
03-24 16:09:35.539   598  1023 D gps_zkw : gps_state_thread: line = 1071, gps fd event end
03-24 16:09:35.541   598  1023 D gps_zkw : gps_state_thread: line = 995, gps thread received 1 events
03-24 16:09:35.541   598  1023 D gps_zkw : gps_state_thread: line = 1054, gps fd event
03-24 16:09:35.541   598  1023 D gps_zkw : gps_state_thread: line = 1067, gps fd received: x bytes: 1
03-24 16:09:35.541   598  1023 D gps_zkw : gps_state_thread: line = 1071, gps fd event end
03-24 16:09:35.542   598  1023 D gps_zkw : gps_state_thread: line = 995, gps thread received 1 events
03-24 16:09:35.542   598  1023 D gps_zkw : gps_state_thread: line = 1054, gps fd event
03-24 16:09:35.542   598  1023 D gps_zkw : gps_state_thread: line = 1067, gps fd received:  bytes: 1
03-24 16:09:35.542   598  1023 D gps_zkw : gps_state_thread: line = 1071, gps fd event end
03-24 16:09:35.544   598  1023 D gps_zkw : gps_state_thread: line = 995, gps thread received 1 events
03-24 16:09:35.544   598  1023 D gps_zkw : gps_state_thread: line = 1054, gps fd event
03-24 16:09:35.544   598  1023 D gps_zkw : gps_state_thread: line = 1067, gps fd received:  bytes: 1
03-24 16:09:35.544   598  1023 D gps_zkw : gps_state_thread: line = 1071, gps fd event end
03-24 16:09:35.545   598  1023 D gps_zkw : gps_state_thread: line = 995, gps thread received 1 events
03-24 16:09:35.545   598  1023 D gps_zkw : gps_state_thread: line = 1054, gps fd event
03-24 16:09:35.545   598  1023 D gps_zkw : gps_state_thread: line = 1067, gps fd received: x bytes: 1
03-24 16:09:35.545   598  1023 D gps_zkw : gps_state_thread: line = 1071, gps fd event end
03-24 16:09:35.546   598  1023 D gps_zkw : gps_state_thread: line = 995, gps thread received 1 events
03-24 16:09:35.546   598  1023 D gps_zkw : gps_state_thread: line = 1054, gps fd event
03-24 16:09:35.547   598  1023 D gps_zkw : gps_state_thread: line = 1067, gps fd received: x bytes: 1
03-24 16:09:35.547   598  1023 D gps_zkw : gps_state_thread: line = 1071, gps fd event end
03-24 16:09:35.548   598  1023 D gps_zkw : gps_state_thread: line = 995, gps thread received 1 events
03-24 16:09:35.548   598  1023 D gps_zkw : gps_state_thread: line = 1054, gps fd event
03-24 16:09:35.548   598  1023 D gps_zkw : gps_state_thread: line = 1067, gps fd received:  bytes: 1
03-24 16:09:35.548   598  1023 D gps_zkw : gps_state_thread: line = 1071, gps fd event end
03-24 16:09:35.549   598  1023 D gps_zkw : gps_state_thread: line = 995, gps thread received 1 events
03-24 16:09:35.550   598  1023 D gps_zkw : gps_state_thread: line = 1054, gps fd event
03-24 16:09:35.550   598  1023 D gps_zkw : gps_state_thread: line = 1067, gps fd received: x bytes: 1
03-24 16:09:35.550   598  1023 D gps_zkw : gps_state_thread: line = 1071, gps fd event end
03-24 16:09:35.552   598  1023 D gps_zkw : gps_state_thread: line = 995, gps thread received 1 events
03-24 16:09:35.552   598  1023 D gps_zkw : gps_state_thread: line = 1054, gps fd event
03-24 16:09:35.552   598  1023 D gps_zkw : gps_state_thread: line = 1067, gps fd received: x bytes: 1
03-24 16:09:35.552   598  1023 D gps_zkw : gps_state_thread: line = 1071, gps fd event end
03-24 16:09:35.554   598  1023 D gps_zkw : gps_state_thread: line = 995, gps thread received 1 events
03-24 16:09:35.554   598  1023 D gps_zkw : gps_state_thread: line = 1054, gps fd event
03-24 16:09:35.554   598  1023 D gps_zkw : gps_state_thread: line = 1067, gps fd received: å bytes: 1
03-24 16:09:35.554   598  1023 D gps_zkw : gps_state_thread: line = 1071, gps fd event end
03-24 16:09:35.555   598  1023 D gps_zkw : gps_state_thread: line = 995, gps thread received 1 events
03-24 16:09:35.555   598  1023 D gps_zkw : gps_state_thread: line = 1054, gps fd event
03-24 16:09:35.555   598  1023 D gps_zkw : gps_state_thread: line = 1067, gps fd received: α bytes: 1
03-24 16:09:35.555   598  1023 D gps_zkw : gps_state_thread: line = 1071, gps fd event end
03-24 16:09:35.556   598  1023 D gps_zkw : gps_state_thread: line = 995, gps thread received 1 events
03-24 16:09:35.556   598  1023 D gps_zkw : gps_state_thread: line = 1054, gps fd event
03-24 16:09:35.556   598  1023 D gps_zkw : gps_state_thread: line = 1067, gps fd received: å bytes: 1
03-24 16:09:35.556   598  1023 D gps_zkw : gps_state_thread: line = 1071, gps fd event end
03-24 16:09:35.557   598  1023 D gps_zkw : gps_state_thread: line = 995, gps thread received 1 events
03-24 16:09:35.557   598  1023 D gps_zkw : gps_state_thread: line = 1054, gps fd event
03-24 16:09:35.557   598  1023 D gps_zkw : gps_state_thread: line = 1067, gps fd received: α bytes: 1
03-24 16:09:35.557   598  1023 D gps_zkw : gps_state_thread: line = 1071, gps fd event end
03-24 16:09:35.558   598  1023 D gps_zkw : gps_state_thread: line = 995, gps thread received 1 events
03-24 16:09:35.558   598  1023 D gps_zkw : gps_state_thread: line = 1054, gps fd event
03-24 16:09:35.558   598  1023 D gps_zkw : gps_state_thread: line = 1067, gps fd received: å bytes: 1
03-24 16:09:35.558   598  1023 D gps_zkw : gps_state_thread: line = 1071, gps fd event end
03-24 16:09:35.560   598  1023 D gps_zkw : gps_state_thread: line = 995, gps thread received 1 events
03-24 16:09:35.560   598  1023 D gps_zkw : gps_state_thread: line = 1054, gps fd event
03-24 16:09:35.560   598  1023 D gps_zkw : gps_state_thread: line = 1067, gps fd received:  bytes: 1
03-24 16:09:35.560   598  1023 D gps_zkw : gps_state_thread: line = 1071, gps fd event end
03-24 16:09:35.561   598  1023 D gps_zkw : gps_state_thread: line = 995, gps thread received 1 events
03-24 16:09:35.561   598  1023 D gps_zkw : gps_state_thread: line = 1054, gps fd event
03-24 16:09:35.561   598  1023 D gps_zkw : gps_state_thread: line = 1067, gps fd received:  bytes: 1
03-24 16:09:35.561   598  1023 D gps_zkw : gps_state_thread: line = 1071, gps fd event end
03-24 16:09:35.562   598  1023 D gps_zkw : gps_state_thread: line = 995, gps thread received 1 events
03-24 16:09:35.562   598  1023 D gps_zkw : gps_state_thread: line = 1054, gps fd event
03-24 16:09:35.562   598  1023 D gps_zkw : gps_state_thread: line = 1067, gps fd received: f bytes: 1
03-24 16:09:35.562   598  1023 D gps_zkw : gps_state_thread: line = 1071, gps fd event end
03-24 16:09:35.564   598  1023 D gps_zkw : gps_state_thread: line = 995, gps thread received 1 events
03-24 16:09:35.564   598  1023 D gps_zkw : gps_state_thread: line = 1054, gps fd event
03-24 16:09:35.564   598  1023 D gps_zkw : gps_state_thread: line = 1067, gps fd received: f bytes: 1
03-24 16:09:35.564   598  1023 D gps_zkw : gps_state_thread: line = 1071, gps fd event end
03-24 16:09:35.566   598  1023 D gps_zkw : gps_state_thread: line = 995, gps thread received 1 events
03-24 16:09:35.566   598  1023 D gps_zkw : gps_state_thread: line = 1054, gps fd event
03-24 16:09:35.566   598  1023 D gps_zkw : gps_state_thread: line = 1067, gps fd received: x bytes: 1
03-24 16:09:35.566   598  1023 D gps_zkw : gps_state_thread: line = 1071, gps fd event end
03-24 16:09:35.567   598  1023 D gps_zkw : gps_state_thread: line = 995, gps thread received 1 events
03-24 16:09:35.567   598  1023 D gps_zkw : gps_state_thread: line = 1054, gps fd event
03-24 16:09:35.567   598  1023 D gps_zkw : gps_state_thread: line = 1067, gps fd received: x bytes: 1
03-24 16:09:35.567   598  1023 D gps_zkw : gps_state_thread: line = 1071, gps fd event end
03-24 16:09:35.569   598  1023 D gps_zkw : gps_state_thread: line = 995, gps thread received 1 events
03-24 16:09:35.569   598  1023 D gps_zkw : gps_state_thread: line = 1054, gps fd event
03-24 16:09:35.569   598  1023 D gps_zkw : gps_state_thread: line = 1067, gps fd received: µ bytes: 1
03-24 16:09:35.569   598  1023 D gps_zkw : gps_state_thread: line = 1071, gps fd event end
03-24 16:09:35.570   598  1023 D gps_zkw : gps_state_thread: line = 995, gps thread received 1 events
03-24 16:09:35.570   598  1023 D gps_zkw : gps_state_thread: line = 1054, gps fd event
03-24 16:09:35.570   598  1023 D gps_zkw : gps_state_thread: line = 1067, gps fd received: Ç bytes: 1
03-24 16:09:35.570   598  1023 D gps_zkw : gps_state_thread: line = 1071, gps fd event end
03-24 16:09:35.571   598  1023 D gps_zkw : gps_state_thread: line = 995, gps thread received 1 events
03-24 16:09:35.571   598  1023 D gps_zkw : gps_state_thread: line = 1054, gps fd event
03-24 16:09:35.571   598  1023 D gps_zkw : gps_state_thread: line = 1067, gps fd received: ÿ bytes: 1
03-24 16:09:35.571   598  1023 D gps_zkw : gps_state_thread: line = 1071, gps fd event end
03-24 16:09:35.572   598  1023 D gps_zkw : gps_state_thread: line = 995, gps thread received 1 events
03-24 16:09:35.572   598  1023 D gps_zkw : gps_state_thread: line = 1054, gps fd event
03-24 16:09:35.572   598  1023 D gps_zkw : gps_state_thread: line = 1067, gps fd received: Ç bytes: 1
03-24 16:09:35.572   598  1023 D gps_zkw : gps_state_thread: line = 1071, gps fd event end

What this mean?


EDIT:

Found the problem... it's the baud rate, i will try to recompile with support for 4800.

Please lobo if will be a next release can you add support for 4800 too?

Thank you very much! Great work!
Reply
#27
03-25 13:58:54.398 4194 4207 D gps_zkw : gps_hardware_power: line = 1243, /proc/gps open faild, errno 2
03-25 13:58:54.398 4194 4207 D gps_zkw : zkw_gps_start: line = 1264, zkw_gps_start: called
03-25 13:58:54.399 4194 4207 D gps_zkw : gps_state_start: line = 904, Could not send CMD_START command: ret=-1: Bad file descriptor
03-25 13:58:54.399 4194 4207 D gps_zkw : gps_state_start: line = 908, $PCGDC,IDLEOFF,1,*1
[-] The following 1 user Likes djpeng's post:
  • rt_rt
Reply
#28
I wonder that I am never run into this. Need more information.
What is the dongle type?
Version of Android?
Reply
#29
(10-24-2017, 02:05 PM)lobo Wrote: Instead the 'adb reboot bootloader' you can also put a jumper on the volume+ header aside the hdmi port and reboot with an usb cable to your host pc. If it is used the adb variant, it is needed to power the tinker board via the 40p header and connect an usb cable at boot time. In the unpacked directory you'll find the files to modify.
@lobo:
Any idea why no output to HDMI connected TV after 'adb reboot bootloader'?
Reply
#30
Please give more information. Do you have no hdmi output all, also after reboot? Or do have no hdmi output when TB is in bootloader state? The last would be normal as there is only a minimal system active. To have some information you can connect a serial adapter to the usart pins.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)