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

Я так понимаю, что это NEO-6M с встроенной пассивной антенной, и выдача сырых данных
сделана с помощью RAM патча. Записанные данные, скажем так, очень плохие
и это связано на мой взгляд с неправильной конфигурацией.
Провалы по 2,3,5 секунд при частоте 1 Hz - это вообще ни в какие ворота не лезет.
Надо

  1. отключить SBAS, от него в данном случае только вред,
  2. отключить все NMEA сообщения,
  3. увеличить скорость последовательного порта как минимум до 57600, хотя при 1 Hz и 9600 должно хватать
    (для “чистых” сырых данных).
    Данные для кинематики лучше всего децимировать на 15 секундный такт с помощью teqc.exe,
    и начинать движение надо конечно с fixed статики.

Да так и есть, он самый. NMEA я оставил, т.к. планирую через блютус (пока ещё не пришёл модуль) на смартфон отправлять. Возможно их можно прорядить отключив ненужные сообщения.
Попробую увеличить скорость порта. Большой ли выигрышный от 5 Hz?

Если оставлять, то GGA

Если данные с базы будут тоже 5 Hz, тогда для “очень точной” RTK да.

Успешно протестированы следующие SiRF прошивки с фазой на неродных девайсах.

  1. GloFiish DX900 GSWLT3.2.5Eten_3.3.01.06-CL31P2.00 установлена на более старую модель Eten Glofiish X650
    Это редкая GSWLT-версия, новее не встречал.

  2. Intermec CN3 GSW3.5.0_3.5.00.00-C35P2.00 встала как родная на Mio A701.

Заводские настройки baudrate у этих прошивок совпадают со скоростью оригинальных девайсов 57600.

Обе протестированные версии поддерживают Extended Ephemeris для холодного старта. Но если честно большого смысла в этом не вижу т.к. в первую очередь их должен поддерживать сам девайс (драйвер виртуального GPS-порта в мобильной винде). Вручную загнать их в аппаратный порт можно используя SiRFDemoPPC 1.16.

(исправлено: опечатки)

Она прошивается обычными методами ? А то я сегодня перепрошил ublox8, а он
после этого потерял связь по USB и это почти кранты.
HTC Athena насколько я помню имеет механизм перепрошивки
из стартового загрузчика
похожий
на старые гармины: со специально упакованным файлом прошивки и цифровой подписью (.nbh формат),
который после распаковки дает такой файл 05_unknown_0x810.nb
в SREC формате


S31500000000370000EA0C0000EAA80000EA0A0000EA4D
S315000000100B0000EA200000000B0000EA270000EABF
...

который можно вернуть обратно в binary:


$ objcopy -I srec -O binary 05_unknown_0x810.nb /tmp/sirf3_athena.bin

Но вот как двигаясь в обратном порядке создать .nbh я уже забыл :rage:

Edit
Нашел https://code.google.com/p/htc-flasher , но надо с ним еще разбираться.

Edit2 Хмм, похоже работает. Так под горячую руку можно и HTC Athena грохнуть :sunglasses:


$ ~/htc-flasher-read-only/src/yang -F /tmp/RUU_signed.nbh -f 05_unknown_0x810.nb -s 64 -t 0x810 -d ATHE100 -c 11111111 -v 1.00.000.0 -l WWE
=== yang v1.1: Yet Another NBH Generator
=== (c) 2008 Pau Oliva Fora - pof @ XDA-Developers

[] Output NBH file: /tmp/RUU_signed.nbh
[] Input files: 05_unknown_0x810.nb
[] SignMaxChunkSize: 64
[] Input types: 0x810
[] Device: ATHE100
[] CID: 11111111
[] Version: 1.00.000.0
[] Language: WWE

[] 0x810 --> 05_unknown_0x810.nb

$ ~/htc-flasher-read-only/src/yang -X RUU_signed.nbh
=== yang v1.1: Yet Another NBH Generator
=== (c) 2008 Pau Oliva Fora - pof @ XDA-Developers

[] Extract NBH file 'RUU_signed.nbh'

Device:   ATHE100
CID:      11111111
Version:  1.00.000.0
Language: WWE

[] Extracting: 00_unknown_0x810.nb
[] Done!

$ md5sum 05_unknown_0x810.nb 00_unknown_0x810.nb 
3e2908b53249788e6222efb5a6eb3ed1  05_unknown_0x810.nb
3e2908b53249788e6222efb5a6eb3ed1  00_unknown_0x810.nb

$ sha1sum 05_unknown_0x810.nb 00_unknown_0x810.nb 
f61b208ee7fcd7728ac139904e6970d71a68286f  05_unknown_0x810.nb
f61b208ee7fcd7728ac139904e6970d71a68286f  00_unknown_0x810.nb

Я успешно прошивал несколько устройств по инструкции http://gps.0xdc.ru/wiki/doku.php?id=sirfstar#прошивка_gps_sirfstariii_на_windows_ce_sirfmemdump

Разобрал приемник Navilock NL-8022MU http://www.navilock.de/produkte/N_62532/merkmale.html?setLanguage=en
Там внутри чип Winbond 25Q80DV
http://www.winbond.com.tw/resource-files/w25q80dv_revf_02112015.pdf
3V 8M-BIT SERIAL FLASH MEMORY WITH DUAL AND QUAD SPI
Конечно нехорошо было ROM 2.01 прошивать с EXT 2.00 (EXT 2.01 я по глупости стер), но тем не менее u-center ничего против не имел:


Starting Flash Firmware Update
Loading and checking firmware image
Load FW binary 'Z:\tmp\EXT_G80.bin'
Binary check success, G80 image valid.
Version: 2.00 (74182) Sep 26 2013 14:42:35
FLASH Base:          0x800000
FW Base:             0x800000
FW Start:            0x86A495
FW End:              0x87A964
FW Size:             0x7A96C
Transfer Packetsize: 512
Transfer Packets:    981
Checking communication link...
Communication link OK.
Identifying receiver updater version at 115200 baud.
Firmware loader version 5.01 detected.
Suitable Multi-ROM image found
Check pass: u-blox8 Multi-ROM image -> u-blox8 ROM2.01-receiver
No valid FW header found in Flash: 0x00000000.
Identifying Flash
Flash: ManID=0xEF, DevID=0x4014
Please provide the flash.xml file in the FIS field

В файле flash.xml информация совпадает с даташитом


  <category cmd="WINBOND" supply="3V">
    <sectorSize>4096</sectorSize>
    <device jedec="xEF4014">
      <sectorCount>256</sectorCount>
    </device>
    <device jedec="xEF4015">
      <sectorCount>512</sectorCount>
    </device>

НО девайс накрылся :roll_eyes: Надо искать аварийный пин…
Не исключено, что флэш маловат, хотя это странно (“стандартный” 0xEF4015 в два раза больше чем 0xEF4014, а Navilock сэкономил).

OK, завтра попробую.

Есть еще оригинальный прошивальщик HTC, он залочен на конкретный порт (COM8 ?) и требует прошивку в формате S- Моторола. Но им успешно шили неродные девайсы, перенаправляя порт сменой настроек в реестре (в основном эти танцы из-за того что прошивальщик HTC, а устройство Fujitsu Loox)
http://gps.0xdc.ru/static/sirf/device/Fujitsu%20Siemens%20Pocket%20Loox%20T830/original/

Оригинал с подробной инструкцией http://4pda.ru/forum/index.php?showtopic=28420 , главное прошивку отттуда не брать.

Извиняюсь, не правильно выразился. Интересует направление вектора. Да, movingbase как раз и нужен, с помощью него сумел найти дельты по трем осям, пока этого более чем достаточно. Спасибо за наводку.

Моя грубая ошибка все таки была, забыл грохнуть FIS для 0xEF4015 :frowning:
Вот картинка модуля http://www.dlbilder.de/produkte/orig/54afb02a3871e5.66999041.jpg
8 контрольных точек хорошо видны, самая близкая это видимо PPS (раз там светодиод),
4 справа (под разъемом) идут куда-то к отсутствующему RS232 чипу, короче задача
найти SAFEBOOT_N сложная :frowning:

Говорит “Can not switch to internal boot mode.” Придется создавать .nbh файл.

Создал новый SREC файл для прошивки, упаковал в .nbh, попробую прошить.


--- /tmp/sirf3_athena_orig.srec 2015-04-09 11:11:12.000000000 +0000
+++ /tmp/sirf3_athena_phase.srec        2015-04-09 11:11:10.000000000 +0000
@@ -5116,7 +5116,7 @@
 S31500013FB0287920722879002833D02670019801AE1D
 S31500013FC06060301C8030416980692061E16005A92B
 S31500013FD003C96061A16107A903C951F0E1FEE0616E
-S31500013FE09EA0016840682A2260622162311CA031CC
+S31500013FE024A8016840682A2260622162311CA0313E
 S31500013FF0088B20856879105500203218C0322318A5
 S31500014000527A203301300A28DA72F6DB488BE086D1
 S31500014010888B208728886087E87930342073A879CF

Edit

В вики https://code.google.com/p/htc-flasher/wiki/YANG было написано


The NBH files created using yang are not signed with the HTC certificate, 
so you’ll need a method to bypass signature checking on your device bootloader.

и действительно все оказалось не так просто


RSEND: [HTCE]
GET:
[
00000:  52 61 77 55 6e 68 61 73 68 3a 20 45 52 52 4f 52  |RawUnhash: ERROR|
00010:  20 69 6e 20 53 42 4c 5f 56 65 72 69 66 79 50 61  | in SBL_VerifyPa|
00020:  63 6b 65 74 2c 20 68 72 3d 30 78 38 30 30 30 34  |cket, hr=0x80004|
00030:  30 30 35 2c 64 77 53 65 71 3d 31 0d 0a 52 61 77  |005,dwSeq=1..Raw|
00040:  55 6e 68 61 73 68 3a 20 45 52 52 4f 52 20 69 6e  |Unhash: ERROR in|
00050:  20 53 42 4c 5f 56 65 72 69 66 79 50 61 63 6b 65  | SBL_VerifyPacke|
00060:  74 2c 20 68 72 3d 30 78 38 30 30 30 34 30 30 35  |t, hr=0x80004005|
00070:  2c 64 77 53 65 71 3d 31 0d 0a 49 6d 61 67 65 20  |,dwSeq=1..Image |
00080:  43 65 72 74 20 69 73 20 65 72 72 6f 72 0d 0d 0a  |Cert is error...|
00090:  43 6c 65 61 72 20 4e 42 48 20 74 61 67 0d 0d 0a  |Clear NBH tag...|
000a0:  48 54 43 53 02 80 06 00 00 00 00 00 92 0e 6a 1c  |HTCS..........j.|
000b0:  48 54 43 45                                      |HTCE            |
]

[!!] CERTIFICATE ERROR

Пересобрал консольный конвертер, скачать можно там же
http://geodesist.ru/forum/threads/Программа-работы-с-бытовыми-навигаторами-в-практике-геодезиста.5101/page-27#post-471942


MID 7 - (опционально, но очень желательно) данные часов

Там же поправка на дрифт часов, как без нее жить то ?

ClockBias это результат уравнивания, т.е. величина вычисляемая. Случайно обнаружил что GNSS Solutions берёт фазовые данные и без неё, даже разрыва в фазе нет.
В основном он нужен чтобы привести данные к разумным величинам т.к. не все программы понимают псевдодальности по 60,000 км.

Логично, единственная “некрасивость” в том, что метка времени будет тоже “местная”, интересно как teqc на это отреагирует.

Да, самим уравнениям-то все равно, так как там стоит сумма псевдодальности и сдвига часов,
а вот например NVS драйвер такие вещи не любит


        /* Error checking */
        if (((raw->obs.data[n].P[0]) < -10E6) || ((raw->obs.data[n].P[0]) > +60E6)) {
            trace(2,"obs.data[%d].P=%e unlikely to be correct\n", n, raw->obs.data[n].P[0]);
            
            /* Unlikely to be possible if the clock bias does not run free */
            /* there could be an error in the stream */
            return -1;
        }


u-blox тоже изменил выдачу временных меток между RXM-RAW и RXM-RAWX: если раньше она была
принудительно выровнена на границу ±1 ms (в зависимости от направления дрифта TCXO), то теперь данные выдаются “как есть”.

В сборник документации:
“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.