레이블이 gps인 게시물을 표시합니다. 모든 게시물 표시
레이블이 gps인 게시물을 표시합니다. 모든 게시물 표시

2015년 3월 19일 목요일

android에서 USB GPS Module 확인 방법

hardkernel에서 판매 중인 USB GPS Module입니다.

ODROID에 연결하면 아래와 같이 /dev/ttyACM0 노드가 생깁니다.

root@odroidxu3:/ # ls -l /dev/ttyACM0                                        
crw-rw-rw- gps      gps      166,   0 2015-03-19 16:46 ttyACM0

cat으로 노드를 읽어 보면 NMEA 값이 출력이 됩니다.

root@odroidxu3:/ # cat /dev/ttyACM0                                            
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,1,1,04,06,,,22,16,,,21,18,,,23,23,,,28*7C
$GPGLL,,,,,,V,N*64
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,1,1,04,06,,,22,16,,,21,18,,,22,22,,,22*76
$GPGLL,,,,,,V,N*64
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,1,1,04,06,,,22,16,,,21,18,,,22,22,,,21*75
$GPGLL,,,,,,V,N*64
$GPRMC,,V,,,,,,,,,,N*53
^C
130|root@odroidxu3:/ # 

google apps을 설치하고 GPS를 사용하는 app을 실행하면 adb logcat으로도 GPS 정보가 올라오는지 확인이 가능합니다.


D/libmbm-gps( 3167): Got an nmea string, parsing.
D/libmbm-gps( 3167): Received: $GPRMC,,V,,,,,,,,,,N*53
D/libmbm-gps( 3167): RMC
D/libmbm-gps( 3167): Got an nmea string, parsing.
D/libmbm-gps( 3167): Received: $GPVTG,,,,,,,,,N*30
D/libmbm-gps( 3167): unknown sentence 'GPVTG
D/libmbm-gps( 3167): Got an nmea string, parsing.
D/libmbm-gps( 3167): Received: $GPGGA,,,,,,0,00,99.99,,,,,,*48
D/libmbm-gps( 3167): GGA
D/libmbm-gps( 3167): Got an nmea string, parsing.
D/libmbm-gps( 3167): Received: $GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
D/libmbm-gps( 3167): GSA
D/libmbm-gps( 3167): Got an nmea string, parsing.
D/libmbm-gps( 3167): Received: $GPGSV,1,1,00*79
D/libmbm-gps( 3167): GSV
D/libmbm-gps( 3167): NR sat: 'GSV'
D/libmbm-gps( 3167): Got an nmea string, parsing.
D/libmbm-gps( 3167): Received: $GPGLL,,,,,,V,N*64
D/libmbm-gps( 3167): GLL
D/libmbm-gps( 3167): Got an nmea string, parsing.
D/libmbm-gps( 3167): Received: $GPRMC,,V,,,,,,,,,,N*53
D/libmbm-gps( 3167): RMC
D/libmbm-gps( 3167): Got an nmea string, parsing.
D/libmbm-gps( 3167): Received: $GPVTG,,,,,,,,,N*30
D/libmbm-gps( 3167): unknown sentence 'GPVTG
D/libmbm-gps( 3167): Got an nmea string, parsing.
D/libmbm-gps( 3167): Received: $GPGGA,,,,,,0,00,99.99,,,,,,*48
D/libmbm-gps( 3167): GGA
D/libmbm-gps( 3167): Got an nmea string, parsing.
D/libmbm-gps( 3167): Received: $GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
D/libmbm-gps( 3167): GSA
D/libmbm-gps( 3167): Got an nmea string, parsing.
D/libmbm-gps( 3167): Received: $GPGSV,1,1,01,18,,,28*7B
D/libmbm-gps( 3167): GSV
D/libmbm-gps( 3167): NR sat: 'GSV'
D/libmbm-gps( 3167): nmea_reader_parse: GSV message with total satellites 1
D/libmbm-gps( 3167): update sv status
D/libmbm-gps( 3167): Got an nmea string, parsing.
D/libmbm-gps( 3167): Received: $GPGLL,,,,,,V,N*64
D/libmbm-gps( 3167): GLL
D/libmbm-gps( 3167): Got an nmea string, parsing.
D/libmbm-gps( 3167): Received: $GPRMC,,V,,,,,,,,,,N*53
D/libmbm-gps( 3167): RMC
D/libmbm-gps( 3167): Got an nmea string, parsing.
D/libmbm-gps( 3167): Received: $GPVTG,,,,,,,,,N*30
D/libmbm-gps( 3167): unknown sentence 'GPVTG
D/libmbm-gps( 3167): Got an nmea string, parsing.
D/libmbm-gps( 3167): Received: $GPGGA,,,,,,0,00,99.99,,,,,,*48
D/libmbm-gps( 3167): GGA
D/libmbm-gps( 3167): Got an nmea string, parsing.
D/libmbm-gps( 3167): Received: $GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
D/libmbm-gps( 3167): GSA
D/libmbm-gps( 3167): Got an nmea string, parsing.
D/libmbm-gps( 3167): Received: $GPGSV,1,1,01,17,,,21*7D
D/libmbm-gps( 3167): GSV
D/libmbm-gps( 3167): NR sat: 'GSV'
D/libmbm-gps( 3167): nmea_reader_parse: GSV message with total satellites 1
D/libmbm-gps( 3167): update sv status
D/libmbm-gps( 3167): Got an nmea string, parsing.
D/libmbm-gps( 3167): Received: $GPGLL,,,,,,V,N*64
D/libmbm-gps( 3167): GLL


소스 코드는 아래에서 확인이 가능합니다.


GPS 노드 이름이 다르거나 baud rate가 다르면 build.prop에 아래 부분을 수정 하시면 GPS library에서 두 정보를 읽어 처리 하도록 되어 있습니다.

ro.kernel.android.gps=/dev/ttyACM0
ro.kernel.android.gps.speed=9600

2013년 9월 3일 화요일

ODROID-XU Update.zip included GMS(Gapps)01-Dec-2013

Last recovery firmware
http://dn.odroid.com/ODROID-XU/Firmware/01-10-2014/

last update firmware
http://dn.odroid.com/ODROID-XU/Firmware/02-13-2014/

and GApps Installer
http://codewalkerster.blogspot.kr/2013/11/universal-1-click-gapps-installer-for.html


https://drive.google.com/folderview?id=0B5aZmgmqP9rORjhTbVhqYVgySlE&usp=sharing

https://www.dropbox.com/s/amgthsz8tjfsd8b/update.zip

https://www.dropbox.com/s/amgthsz8tjfsd8b/update.zip

https://www.dropbox.com/s/szu2yax7ew08p6q/update.zip.md5sum

https://www.dropbox.com/s/szu2yax7ew08p6q/update.zip.md5sum

01 Dec 2013
support USB Gps attached by serial modem(like ttyACM or ttyUSB)

26 Nov 2013
fix 720P usb camera problem(UVC).

13 Nov 2013
support HSDPA USB dongle Modem(huawei e173)
test version.



http://www.alibaba.com/product-gs/1009044157/TJ_W803_Similar_specs_Same_Quality.html?s=p

07 Nov 2013

Asix Ethernet Adapter bug Fix.
The lock that would cause the usb3 to gigabit lan adapter is now fixed and merged.
http://git.odroid.in/odroid/linux/commit/85f0fa36e8117bd831ee9737d899f3fe5890eaac
reverse portrait screen.
ODROID-XU issue where 48kHz audio couldn't be played via alsa is now fixed.


02 Nov 2013
support UHS class for microSD.

25 Oct 2013
fix this issue.
http://forum.odroid.com/viewtopic.php?f=63&t=2111

19 Oct 2013
Update for Expansion board.
Exansion board example app.
https://www.dropbox.com/s/tbffdto7nulafuk/ExpansionBoardExample.apk



10 Oct 2013
for Kinect.
add feature CONFIG_USB_DEVICEFS.
add node for Kinect in uevnet.odroidxu.rc
add feature CONFIG_HID_APPLE.

04 Oct 2013
fix screen color problem.
http://forum.odroid.com/viewtopic.php?f=73&t=2363#p18874

01 Oct 2013
Enable ethernet on automatically.

25 Sep 2013
If ax88179(gigabit) Ethernet via USB 3.0 and smsc95xx(10/100) Ethernet via USB 2.0 is connected at the same time, then control ax88179 modules first.
It is enabled to set static IP setting for gigabit Ethernet.

23 Sep 2013
add ethernet setting for static IP


16 Sep 2013
1. fix OdroidUpdate app.
After validate update.zip, Extract update.zip automatically.
2. remove EDID function, just set HDMI phy from boot.ini.
Must update boot.ini
Example, here
http://dn.odroid.com/ODROID-XU/boot.ini/09-16-2013/




9 Sep 2013
Download update.zip and update.zip.md5sum





Move update.zip and update.zip.md5sum file from Download folder to root.




Unzip update.zip


There is update folder.


Run ODROID-XU updater app.


Click "Validate file" button.


Checking option.



and start update.

booting...


2013년 7월 4일 목요일

Use USB GPS for ODROID

android에 외장형 USB GPS를 연결하여 보자.

아래 보이는 USB 타입 GPS는 ACM 드라이버로 붙습니다.

http://www.ascenglobal.com/info.asp?id=139

kernel에서 ACM을 추가한다.
*** USB Device Class drivers ***                                                                                                
<*>   USB Modem (CDC ACM) support
< >   USB Printer support


아래 링크에서 gps 소스를 다운 받는다.
https://www.dropbox.com/s/tp8zp5grnpis51r/libodroid-gps.tar.gz


device/hardkernel/proprietary/libodroid-gps에 압축을 푼다.


device.mk에 gps가 포함이 되도록 수정한다.
# gps
PRODUCT_PACKAGES += \
    gps.$(TARGET_PRODUCT)

BoardConfig.mk
# GPS                                                                
BOARD_HAVE_ODROID_GPS := true
BOARD_SUPPORT_EXTERNAL_GPS := true 

uevent.odroid[X].rc
 62 #for gps
 63 /dev/ttyACM0    0666    gps     gps
 64 /dev/ttyUSB0    0666    gps     gps


hardware/libhardware/hardware.c
 91     /* Check that the id matches */
 92     if (strcmp(id, hmi->id) != 0) {
 93         ALOGE("load: id=%s != hmi->id=%s", id, hmi->id);
 94         status = -EINVAL;
 95         goto done;
 96     }
 97
 98     //codewalker
 99     if(hmi->dso)
100         hmi->dso = handle;
101
102     /* success */
103     status = 0;