RTKlib/постпроцессинг

В сборник документации:
“Analysis of dynamic generation and real time transmission of RTCM 3.1
geodetic transformation messages” http://geozilla.de/files/8_ENGLISH_V2_PPT_CartographicInstituteValencia.pdf

А что надо включать в выдачу RXM-RAWX ?

У ublox-M8 нет RXM-RAW. RXM-RAWX сделан для выдачи в том числе данных других GNSS.

Для того чтобы было видно, перешилась ли прошивка или нет, поменял буковку ‘a’
на ‘r’ в версии:


--- /tmp/05_SIRF3GPS_0x810.nb    2015-04-13 21:57:02.000000000 +0200
+++ /tmp/GSWLT3.0.0-SDKHT_3.1.01.00-SDKLT001P1.00r.srec   2015-04-13 23:46:55.000000000 +0200
@@ -5218,7 +5218,7 @@
 S3150001461057FB18AA51F002FC0CCD51F057FB041CB4
 S315000146200D1CD5E04753574C54332E302E302D53A5
 S31500014630444B48545F332E312E30312E30302D53BA
-S31500014640444B4C5430303150312E30306100000033
+S31500014640444B4C5430303150312E30307200000022
 S3150001465025732000F2640060D8660060A8660060D9
 S31500014660286500600000C0FFFFFFDF410000C0FFBA
 S31500014670FFFFDFC100000018C079D741EC84FFFFBE


Перепрошил SPL на версию без проверки сертификатов, разлочил заодно и радио.
Но проклятый sirf3 все равно не перепрошивается и ругается совсем странными словами (ошибка 02 80 07 00 в HTCflasher не предусмотрена):


FSEND: [progress 0]
   0% [----------------------------------------------------------------------]
FSEND: [wdata 100000 fec6da23]

RSEND: [HTCS]

RSEND: [HTCE]
GET:
[
00000:  48 54 43 20 4b 65 79 0d 0d 0a 53 69 67 6e 61 74  |HTC Key...Signat|
00010:  75 72 65 20 65 72 72 6f 72 28 30 29 20 30 20 21  |ure error(0) 0 !|
00020:  3d 20 34 38 0d 0a 43 6c 65 61 72 20 4e 42 48 20  |= 48..Clear NBH |
00030:  74 61 67 0d 0d 0a 48 54 43 53 02 80 07 00 00 00  |tag...HTCS......|
00040:  00 00 37 dd 36 d7 48 54 43 45                    |..7.6.HTCE      |
]

[] NBH PART ENDED

FSEND: [progress 77]
  77% [#####################################################-----------------]
FSEND: [wdata 4a25a f7591b41]

RSEND: [HTCS]

RSEND: [HTCE]
GET:
[
00000:  45 52 52 4f 52 3a 20 4e 4f 20 68 65 61 64 65 72  |ERROR: NO header|
00010:  20 6d 61 74 63 68 65 64 0d 0a 45 52 52 4f 52 3a  | matched..ERROR:|
00020:  20 4e 4f 20 68 65 61 64 65 72 20 6d 61 74 63 68  | NO header match|
00030:  65 64 0d 0a 49 6d 61 67 65 20 43 65 72 74 20 69  |ed..Image Cert i|
00040:  73 20 65 72 72 6f 72 0d 0d 0a 43 6c 65 61 72 20  |s error...Clear |
00050:  4e 42 48 20 74 61 67 0d 0d 0a 48 54 43 53 02 80  |NBH tag...HTCS..|
00060:  06 00 00 00 00 00 92 0e 6a 1c 48 54 43 45        |........j.HTCE  |
]

[!!] CERTIFICATE ERROR

Чувствую, что без дизассемблирования SPL не обойдется…
Не исключено, что там BOOTSEL подключен к какому-то GPIO.

Я так понимаю менять антенну (верхняя на картинке) на другую и подобные автомобильные смысла нет, т.к. усиление одинаковое?

внутри черной круглой коробочки таже керамическая патч-антена, только в защитной обертке.
набор антен, удовлетворяющих нужным требованиям, не слишком большой.

Если перестать гоняться за фиксированным решением (что вообще-то утопия для одночастотников, тем более бытовых), то автомобильные антенны вполне нормальные. Эффект не в усилении, а в возможности поднять их над головой.

Самое главное это прямая видимость спутников и минимальное отражение от левых объектов, в том числе и от земли (хуже всего мокрой).

У Tallysman патч-элемент круглый (и dual-feed, но это уже детали), чем достигается меньшая азимутальная зависимость
диаграммы направленности. Вообще мы говорим о сантиметровых поправках,
которые большинство здесь не заинтересуют.

Это чересчур пессимистичная оценка: при разумных расстояниях до базы (<20 km)
двухчастотник на самом деле не нужен. Просто люди осваивающие бюджеты предпочитают
покупать Trimble и Leica. К сожалению u-blox им в этом потакает, хотя мог уже вчера сделать
приемник с L2C на базе ublox-M8: задача только в разработке прошивки и я по косвенным
признакам уверен, что они ее уже написали. Так же как и прошивку для галилео,
про которую мне больше года назад было прямо сказано: да, она есть, но мы тебе ее не дадим :stuck_out_tongue:

Если говорить про постобработку - да, возможно достаточно L1 (подольше делать инициализацию и стоять на точках). Но люди, покупающие Trimble и Leica, в первую очередь думают про RTK, надежность решения и скорость работы. И то возникают нешуточные проблемы, приходится переделывать.
Одно дело как мы ковыряться в носу “могу сегодня поэкспериментировать, могу - завтра”, другое - работа от рассвета до заката.

Я тут как-то раньше писал, что во встроенной навигационной системе Audi MMI 3G и 3GP используются чипы antaris4 и
на более поздних моделях ublox6, а к сырым данным можно добраться, если зайти как root через telnet
и USB-Ethernet (ASIX Electronics AX88172/178/772). Но пароль оказался непростым


root:HS2Kc/fQEhQLc:177:0:0

и никто его вроде как и не знает.
Выяснилось, что у этого навигатора есть возможность AutoRun: см. http://turbo-quattro.com/archive/index.php/t-14480.html
и http://www.tetherbox.info/download
Достаточно положить в корневой каталог SD карты или USB флешки скрипт с названием “copie_scr.sh” закодированный
при помощи вот этого алгоритма http://pastebin.com/8nw7r7XM
и таким образом например отредактировать /etc/shadow с паролем (наших людей естественно в первую
очередь при этом интересует активация ворованных карт).
В результате можно будет подключить например raspberry pi по ethernet напрямую
к штатному навигатору, который использует встроенную антенну на крыше.
Или даже скомпилировать rtklib для SH4 и использовать прямо на навигаторе :sunglasses:
Ресурсы там вроде как для этого есть


CPU: SH7785 (>= 5th cut, clk mode 20. 4xDDR), 792MHz
RAM: 512 MB (probed, DBCONF=e30002)
FLASH: Spansion S29GL512N (32bit): 512 sectors x 256K
FPGA: PL_MMI3G_PLUS_FPGA_9411_D1_10281A (0ms)

RAM  : 128 MB @0x08000000
RAM  : 128 MB @0x40000000
NVRAM: 36 MB @0x5dc00000
RAM  : 220 MB @0x50000000
FLASH: 128 MB @0x00000000
FPGA IRQ: Interrupt Controller ID:33 Ver:2.1.0 ILVL:7 Lines:255

а также доступ к CAN шине (правда не совсем той которая нужна, но усредненную
скорость считать можно).

Дизассемблировал и сравнил с исходниками Linux для Athena, которые вроде основаны вот
на этой таблице http://web.archive.org/web/20101102032632/http://htc-linux.org/wiki/index.php?title=Athena_CPLD1
Там есть такой GPIOD0


GPIOD0   0x0001   GPS power (=0 ?)

который при перепрошивке через SPL устанавливается =1 (внутренние команды ‘gpsf’ и ‘gpsn’)
То есть это не GPS power, а скорее всего и есть тот самый BOOTSEL. Но с этим еще надо экспериментировать.

Сделал, убрал пароль, и сумел соединиться с навигатором. Потом нашел этот линк:
http://turbo-quattro.com/showthread.php?14949-telnet&p=343135&viewfull=1#post343135

Последовательные порты используются следующим образом:


/dev/ser1 console   par=none bits=8 stopb=1 baud=115200
/dev/ser2 GPS       par=none bits=8 stopb=1 baud=57600

/dev/serfpga1 BT    par=none bits=8 stopb=1 baud=1843200
/dev/serfpga2 GSM   par=none bits=8 stopb=1 baud=115200
/dev/serfpga3 IPOD  par=none bits=8 stopb=1 baud=57600

Очень надеюсь, что /dev/serfpga2 соединен с GSM модемом Siemens AC 75
http://support.ewon.biz/download/Modem/Siemens-AC75-AT_Command.pdf
но проверить это не так просто: нет в прошивке ни ‘cu’, ни ‘chat’ ни ‘minicom’,
остается только ‘echo’ и ‘cat’ пользоваться.
Нашел вот пакет G-Kermit gku100.sh4-qnx-6.21 (привет из начала 1990’х),
может заработает.
rtklib нормально собирается с помощью gcc-4.4-sh4-linux-gnu https://wiki.debian.org/SH4
так что шансы собрать его для QNX очень очень хорошие, надо только найти соответствующий SDK.
Еще есть проблема такого плана: навигатор делает настоящий Dead Reckoning, и поэтому
NMEA данные из порта /dev/ser2 считывает демон vdev-flexgps и передает их на /dev/flexgps
и магические устройства в /dev/ndr/* (об этом позже).
Так что еще предстоит отучить vdev-flexgps от /dev/ser2 и кормить его другим способом


Driver for GPS receicer with ANTARIS3 or ANTARIS4 Chipset ATR06xx 
and receiver with standart NMEA Specification
Options: 
      -v      Be verbose (-VV: be more verbose).
      -V      Enable advanced GPS receiver debug features
      -c      Specify the GPS sio devicename (default /dev/ser2)
      -g      Specify the GPS config file
              (e.g. /HBpersistence/navi/gps_config/GPS.cfg)
      -d      Specify the debug channel devicename
      -n      Use driver in standard NMEA mode (no firmware update supported!)
      -r      Forced GPS start mode 0=Flash start, 1=ROM start
              (Flash start is default)
      example: vdev-flexgps -vv -c/dev/ser2 -d/hbsystem/multicore/navi/g -g/HBpersistence/navi/gps_config/GPS.cfg &
      example: vdev-flexgps -vv -n -c/dev/gps -d/hbsystem/multicore/navi/g

INF заголовок antaris4. LIC без сырых данных, но это излечимо:


$GPTXT,01,01,02,ANTARIS ATR062x HW 00040001*2E
$GPTXT,01,01,02,EX0    Apr 12 2006 12:35:45*64
$GPTXT,01,01,02,INT EXT0 (RCV) HB 1.01 Apr 12 2006 12:36:12*74
$GPTXT,01,01,02,LIC 45CF-6311-188B-04EA-22C6*2C

На чипе Winbond замкни на минус
СLK(6 пин), при включении в по usb после 2-3 секунд быстро отсоедини массу. Система должна увидеть ublox и можно перепрошить заново Flash. С первого раза может не видеть Winbond…( можешь проверить через u-center с помощью команд )
Ps. neo M8n удалось вернуть к жизни после кривой перепрошивки))

Сразу видно профессионала :sunglasses:
Все заработало.

Плучил модуль NEO-M8N c Ebay. В комплекте идет активная patch антенна 25x25мм. Еще на плате разведено место для SMA разъема - три площадки с правого краю. Когда придут разъемы, займусь модернизацией и сделаю для антены длинный кабель.

Поставил u-center, разбираюсь с модулем. Не нашел как посмотреть версию прошивки. У меня в логе нет сообщений вида:


$GPTXT,01,01,02,HW ...
$GPTXT,01,01,02,ROM ...

только навигационные NMEA.

Также, не нашел в wiki как включить сообщения RXM-RAW, RXM-SFRB, TRK-MEAS, TRK-SFRBX на M8N.

Разведено, конечно, хмм. Но учитывая цену модуля придираться не стоит.

Кликнуть на UBX->MON->VER.

RXM-RAW и RXM-SFRB у него нет. Включить в u-center или в rtknavi ?

Да вроде нормально сделано. Мне кажется будет лучше чем подключать pigtail ufl-sma.

В rtknavi, и еще что отправить в порт при инициальзации для отдельного data logger.

Версия:


2.01 (75331)
PROTVER 15.00
FIS 0xEF4015 (79189)
MOD NEO-M8N-0
GPS;SBAS;GLO;BDS;QZSS

Стандартная для USB была https://github.com/tomojitakasu/RTKLIB/blob/master/data/ubx_m8n_bds_raw_1hz.cmd ,
но ее надо

  1. поправить для UART1
  2. отключить SBAS (CFG-SBAS)
  3. правильно установить CFG-PRT
  4. только после этого увеличить CFG-RATE (если надо)

Вот тут есть полная конфигурация для USB http://gpsforum.geospector.de/phpbb/viewtopic.php?f=3&t=3503&start=30#p16656
но ее надо поправить для UART1 и на синтакс rtknavi.

Стандартная EXT CORE 2.01. Более свежая только 2.30 от M8T, но с ней есть некоторые проблемы.
Особенно забавно в свете http://lists.osgeo.org/pipermail/foss-gps/2015-April/001349.html

Edit
CFG-PRT в “полной” бинарной форме как пример:


# UART1=57600
B5 62 06 00 14 00 01 00 00 00 D0 08 00 00 00 E1 00 00 07 00 03 00 00 00 00 00 DE C9
# UART1=57600 UBX only
B5 62 06 00 14 00 01 00 00 00 D0 08 00 00 00 E1 00 00 01 00 01 00 00 00 00 00 D6 8D

# UART1=115200
B5 62 06 00 14 00 01 00 00 00 D0 08 00 00 00 C2 01 00 07 00 03 00 00 00 00 00 C0 7E
# UART1=115200 UBX only
B5 62 06 00 14 00 01 00 00 00 D0 08 00 00 00 C2 01 00 01 00 01 00 00 00 00 00 B8 42

Для rtklib будет тогда иметь вид (в описании баг, к тому же можно было бы
там использовать strtol() вместо atoi()):


# "CFG-PRT   portid res0 res1 mode baudrate inmask outmask flags res2" <- UBX4
# "CFG-PRT   portid res1 txrd mode baudrate inmask outmask flags res2" <- UBX8
#            {FU1,  FU1,FU2, FU4,  FU4,       FU2,    FU2,     FU2, FU2},    /* PRT */
# UART1=57600 UBX only
#B5 62 06 00 14 00 01 00 00 00 D0 08 00 00 00 E1 00 00 01 00 01 00 00 00 00 00 D6 8D
!UBX CFG-PRT     1      0     0   2256 57600  1          1         0      0 

А зачем мучиться, проще купить переходник ipx-sma.

usm78-gis, спасибо за подсказки.
Настроил порт 115200 in/out UBX. C CFG-MSG пришлось повозится, но разобрался. Включил TRK-MEAS, TRK-SFRBX, NAV-TIMEGPS и NAV-CLOCK - вижу эти сообщения в консоли.
Попробывал обработать в rtknavi и convbin из rtklib 2.4.5b. Заметил, что в rtklib отображается меньше спутников, чем приемник показывает в сообщениях NMEA/NAV-SAT. Но условия приема были плохие, на открытом месте надеюсь будет нормально.