Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GPS Hardware #160

Closed
travisgoodspeed opened this issue Jul 7, 2016 · 14 comments
Closed

GPS Hardware #160

travisgoodspeed opened this issue Jul 7, 2016 · 14 comments

Comments

@travisgoodspeed
Copy link
Owner

While #155 is to get support for booting on units with GPS support, this issue is to actually use the GPS hardware, which is a Jumpstar JS-M710 module.
http://en.defenstar.com/products_detail/&productId=44.html

A photo from atg in the IRC channel shows the module. We don't yet have a pinout.
qtthj9w

Close this issue when GPS is supported.

@ghost
Copy link

ghost commented Jul 8, 2016

Module is Defenstar JS-M710 http://en.defenstar.com/products_detail/&productId=44.html No datasheet available.
I think GPS UART is at ZIF connector pins 19 and 20. Connectors and flex cable have been increased from 24 to 26pins to accomodate this.
Main board should be different too in GPS units, MD390 and RT8 without GPS have 24pin connectors.

@travisgoodspeed
Copy link
Owner Author

Hopefully the differences aren't major. If at all possible, I'd like to hook a few low-level I/O functions and produce an image that's compatible with both forks of the hardware.

@f4nen
Copy link

f4nen commented Jul 8, 2016

There is a product specification online with a pinout for at least the GPS module:
http://www.docin.com/p-888414669.html
Cheers!

@d235j
Copy link
Collaborator

d235j commented Jul 9, 2016

Here's the PDF. Looks to be MediaTek MT3337-based.
JS-M710.pdf

@zarya
Copy link
Contributor

zarya commented Aug 28, 2016

GPS dataframe from the MD390 as received by BM

Data Header (12 bytes): 0d 05 03 20 c3 1f 2c a4 00 1b c1 4e -- ......,....N
Data Continuation (12 bytes): 70 0d 08 84 28 15 54 41 80 18 66 2a -- p...(.TA..f*
Data Continuation (12 bytes): 70 0d 08 84 28 15 54 41 80 18 66 2a -- p...(.TA..f*

But it looks like the implementation on the radio side is kinda broken as the radio reports sending 5 blocks but it only sends 2

@ghost
Copy link

ghost commented Sep 4, 2016

GPS module TXD is connected to MCU USART3_RX (pin 56). GPS RXD is not connected, although the signal is present in the FPC connector.

Protocol is NMEA at 9600bauds: GPGGA, GPGLL, GPGSA, GPGSV, GPRMC and GPVTG.

@aeickho
Copy link
Collaborator

aeickho commented Sep 4, 2016

Thanks this is a nice info...

We close this issue when we are "understanding" the gps part ;)

@travisgoodspeed
Copy link
Owner Author

Do we understand why D13 won't boot on GPS devices and S13 won't boot on non-GPS devices yet? What was Pin 56 used for non non-GPS devices?

@ghost
Copy link

ghost commented Sep 4, 2016

I don't have my 380 anymore. According to the published schematics (known to not fully match with md380), pin 55 and 56 are PLL_LD and PLL_CS (PLL SPI bus). In MD390 with GPS they used these pins for GPS USART and added two 100K pull-up resistors.

MD-390 with GPS main board:
img_20160904_184748

@ghost
Copy link

ghost commented Sep 12, 2016

Hi all. Given no one got a clue about the GPS data format, i decided to inject simulated NMEA frames into my MD390 and dump the decoded DMR frames with DSD. With help of a friend (EA4EOZ) we almost got all the information needed. Will post soon!

@ghost
Copy link

ghost commented Sep 14, 2016

Just to close this issue:

bit 2 : 1=N, 0=S
bit 3 : 1=E, 0=W
bit 4 : Fix
bits(5:11): Speed in knots/2
bits(12:18): Latitude. Degrees
bits(19:24): Latitude. Minutes integer part
bits(25:38): Latitude. Minutes decimal part
bits(39:46): Longitude. Degrees
bits(47:52): Longitude. Minutes integer part
bits(53:66): Longitude. Minutes decimal part
bits(67:80): Altitude in meters, only least 8bits used (bug)
bits(81:96): Garbage?

Only data from $GPRMC is used. Course is not encoded and altitude is buggy: just 8bits are used so no negative or higher than 255m elevations are allowed.

@trolfe
Copy link

trolfe commented Sep 17, 2016

Thanks for the format info - I have done some coding and I think the speed knots/2 is more likely to be speed m/s? Also to clarify the Min decimal part are decimals x 10000? Great work and really useful info.

@ghost
Copy link

ghost commented Sep 20, 2016

It's knots/2 (knots >> 1). I've reversed it using fake NMEA GPRMC frames. Also drive tests shows it's pretty spot on.
You are right about the decimal part.

@travisgoodspeed
Copy link
Owner Author

Closing issue as S13 is stable and we can continue GPS reversing from there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants