{"id":5310,"date":"2018-04-25T17:53:25","date_gmt":"2018-04-25T17:53:25","guid":{"rendered":"https:\/\/www.use-snip.com\/kb\/?post_type=ht_kb&#038;p=5310"},"modified":"2019-12-23T16:24:20","modified_gmt":"2019-12-23T16:24:20","slug":"how-not-to-succeed","status":"publish","type":"ht_kb","link":"https:\/\/www.use-snip.com\/kb\/knowledge-base\/how-not-to-succeed\/","title":{"rendered":"How not to succeed, RTKLIB"},"content":{"rendered":"<p>This article is motivated by an increasing number of users, often with <strong>RTKLIB based tools<\/strong>, who are unable to connect their Base Station data to <strong><span style=\"color: #0000ff;\">SNIP<\/span><\/strong>.\u00a0 And as a consequence, are unable to connect their Rover device(s) as well.<\/p>\n<h3>A common &#8216;bad&#8217; setup<\/h3>\n<p>Consider the following two log entries taken off the <a href=\"http:\/\/www.RTK2go.com\" target=\"_blank\" rel=\"noopener noreferrer\">RTK2go.com<\/a> Caster.\u00a0 This shows two events that are endlessly repeating until the the automatic <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/banning-abusive-users-simple\/\" target=\"_blank\" rel=\"noopener noreferrer\">IPban<\/a> thresholds are reached (the user then resumes in ~15 minutes when the ban lapses).<\/p>\n<p>In the exchange shown below, we first have a connection from a popular client\u00a0 (<a href=\"http:\/\/lefebure.com\/software\/ntripclient\/\" target=\"_blank\" rel=\"noopener noreferrer\">LefebureNTRIPClient<\/a>) seeking to connect to a mountPt that simply is not present at that time.<\/p>\n<p style=\"padding-left: 30px;\">[<span style=\"color: #0000ff;\">C9389<\/span>]: New Client [#C9389] appears to an NTRIP Client connecting from 103.xx.xx.11:49432 with:<br \/>\n[<span style=\"color: #0000ff;\">C9389<\/span>]: An NTRIP Client sent: ====================== (148 chars)<\/p>\n<pre style=\"padding-left: 30px;\"> GET \/ABCDEFG HTTP\/1.0\r\n User-Agent: NTRIP LefebureNTRIPClient\/20131124\r\n Accept: *\/*\r\n Connection: close\r\n Authorization: Basic ZWFxaxJxOxJxVxFxRxNx<\/pre>\n<p style=\"padding-left: 30px;\">=END=<br \/>\n[<span style=\"color: #0000ff;\">C9389<\/span>]: No matching mount point, requested: [ABCDEFG], sending Caster Table and disconnecting.<br \/>\n[<span style=\"color: #0000ff;\">C9389<\/span>]: Disconnected client &#8216;xxxxx #C9389&#8217; from: 103.xx.xx.11:49432 at 09:57:38.001 AM (local)<br \/>\n[<span style=\"color: #0000ff;\">C9389<\/span>]: Client &#8216;xxxxx&#8217; #C9389 [103.xx.xx.11:49432] Disconnect (tried to mount ABCDEFG, not in table), 148 Bytes in, 8.12 KB out, Connected: 012 mSec<\/p>\n<p>This is a normal disconnect event when an <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/question-what-is-an-ntrip-client\/\" target=\"_blank\" rel=\"noopener noreferrer\">NTRIP Client<\/a> requests a mountPt that is not present.<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #008000;\"><strong><em>TIP:\u00a0<\/em><\/strong><\/span> You can use the <strong>SNIP::STATUS<\/strong> command (if it is enabled on that node) to see a list of all the mountPts that were once present on the stream but are no longer present.\u00a0 Scroll to the bottom of the listing.\u00a0 This command is helpful for the NTRIP Client user to confirm the requested mountPt was there to begin with.\u00a0 For the RTK2go.com site, <a href=\"http:\/\/www.rtk2go.com:2101\/SNIP::STATUS\" target=\"_blank\" rel=\"noopener noreferrer\">here is the link<\/a> for this<\/p>\n<hr \/>\n<p>&nbsp;<\/p>\n<p>The very next second, we have a connection from RTKLIB (acting as an <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/question-what-is-an-ntrip-server\/\" target=\"_blank\" rel=\"noopener noreferrer\">NTRIP Server<\/a>) to <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/the-pushed-streams-tab\/\" target=\"_blank\" rel=\"noopener noreferrer\">PUSH-In<\/a> data to <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span>.\u00a0 The format is plain but correct (it provides no Caster Table entry\u00a0 &#8211; that is okay <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> will fix it with auto-parse).\u00a0 Therefore the new data stream is accepted and added to the Caster Table for other parties to see and use.<\/p>\n<p style=\"padding-left: 30px;\">[<span style=\"color: #0000ff;\">C9390<\/span>]: Client [#C9390] appears to an NTRIP Server connecting from 103.xx.xx.11:49433<br \/>\n[<span style=\"color: #0000ff;\">C9390<\/span>]: A remote NTRIP Server (was a Client) sent us: ====================== (68 chars)<\/p>\n<pre style=\"padding-left: 30px;\"> SOURCE BETATEST ABCDEFG\r\n Source-Agent: NTRIP RTKLIB\/2.4.2\r\n STR:<\/pre>\n<p style=\"padding-left: 30px;\">=END= (an inbound PUSH-In data connection attempt)<br \/>\n[<span style=\"color: #0000ff;\">ABCDEFG<\/span>]: New NTRIP PUSH-In Stream [#I1495, From: 103.xx.xx.11:49433]<br \/>\nestablished at Wed 09:57:39 AM (local)<br \/>\n[<span style=\"color: #0000ff;\">ABCDEFG<\/span>]: New PUSH-In Stream [#I1495 started from C9390] connected,<br \/>\nat Wed 09:57:39 AM (Local)<br \/>\n[<span style=\"color: #0000ff;\">ABCDEFG<\/span>]: NTRIP Client [#C9390] becomes an NTRIP Server PUSH-In stream [#I1495, <span style=\"color: #0000ff;\">ABCDEFG<\/span>]<br \/>\n[<span style=\"color: #0000ff;\">ABCDEFG<\/span>]: Now is awaiting first data from [103.xx.xx.11 : 49433]<\/p>\n<p style=\"padding-left: 30px;\">[<span style=\"color: #0000ff;\">ABCDEFG<\/span>]: NTRIP PUSH-In Server [#I1495, ABCDEFG] disconnecting from its slot,<br \/>\n68 Bytes in, 12 Bytes out, connected: 10.409 seconds<br \/>\n[<span style=\"color: #0000ff;\">ABCDEFG<\/span>]: PUSH-In Server stream ABCDEFG [#I1495] was Removed,<br \/>\ndeclared stale: xx:xx@103.xx.xx.11:49433\/ABCDEFG<\/p>\n<p>As a review of the above will show, <span style=\"color: #ff6600;\">the <strong>ABCDEFG<\/strong> data stream never provided any data once it was connected<\/span>.<\/p>\n<p>The 68 bytes in the initial connection were the request, the 12 bytes back were the <em>200 Ok<\/em> reply.\u00a0 Nothing occurred with this stream thereafter (in fact the Caster was dealing with other clients during this interval).<\/p>\n<p>After 10~12 seconds of this, <span style=\"color: #0000ff;\"><strong>SNIP<\/strong> <\/span>disconnects any data stream that has never sent any data.<\/p>\n<p style=\"padding-left: 30px;\">[<em>Details<\/em>:\u00a0 If the data stream has sent data in the past, a longer time out period of 90 seconds is used. Additional logic is also used if the same stream tries to <em>reconnect<\/em> during this time.\u00a0 It can be common for cellular links to experience connectivity problems, but here we are concerned with RTKLIB connecting where there is no data available to be sent.]<\/p>\n<p>The remote device then retries and the process repeats.\u00a0 Independent of this, the NTRIP Client tries in vain to connect to a stream that, even when present, sends to no data.<\/p>\n<h3>What went Wrong?<\/h3>\n<p>At the sender end, they have reached the <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> Caster and correctly connected to it\u00a0 (IP, port, and password work).<\/p>\n<p>At the sender end (the RTKLIB tool, probably the STRSVR\u00a0 (<em>stream server<\/em>) tool or RTKNAVI in the <em>Log Streams<\/em> mode) no data was ever sent out.\u00a0 This could be due to several reasons but the two most common are:<\/p>\n<ul>\n<li>The source data stream is not providing any data<\/li>\n<li>The &#8220;conversion&#8221; setting in STRSVR\u00a0 do not result in any messages to send<\/li>\n<\/ul>\n<p>Correct this and it will work fine.<\/p>\n<p>Or at least you will send your data to the <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> Caster and then on to others.<\/p>\n<h3>What went Wrong, part II<\/h3>\n<p>The next step that folks often forget is that every Base Station MUST tell others the where it is at (it&#8217;s precise <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/post-processing-your-measurements-by-opus-and-others\/\" target=\"_blank\" rel=\"noopener noreferrer\">ECEF location<\/a> once determined, but in this tool it is entered as LLH values).\u00a0 In the absence of this information, you will see messages coming to the rover device, but no fix\/float process will start.\u00a0 In the RTKLIB STRSVR\u00a0 tool this data is entered in the <strong>Options&#8230;<\/strong> button at the bottom of the window.<\/p>\n<p>The <strong>Options<\/strong> dialog looks like the below.\u00a0 This example uses a popular modification of the <a href=\"http:\/\/www.rtklib.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">RTKLIB<\/a> tools available from <a href=\"http:\/\/rtkexplorer.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">RTK Explorer<\/a> which you can download from <a href=\"http:\/\/rtkexplorer.com\/downloads\/rtklib-code\/\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5706\" src=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2018\/10\/NonsenseLLH-ECEF-inRTKLIB-Options.png\" alt=\"\" width=\"500\" height=\"490\" srcset=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2018\/10\/NonsenseLLH-ECEF-inRTKLIB-Options.png 500w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2018\/10\/NonsenseLLH-ECEF-inRTKLIB-Options-300x294.png 300w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2018\/10\/NonsenseLLH-ECEF-inRTKLIB-Options-50x50.png 50w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2018\/10\/NonsenseLLH-ECEF-inRTKLIB-Options-60x60.png 60w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2018\/10\/NonsenseLLH-ECEF-inRTKLIB-Options-320x314.png 320w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/p>\n<p>Note the section marked in red where the ECEF values are enter as LLH.\u00a0 <strong><span style=\"color: #008000;\"><em>Aside<\/em><\/span><\/strong>, when sent in RTCM3 message (either MT1005 or MT1006) the raw data is sent as ECEF.<\/p>\n<p>If you are getting data but are unable to &#8220;use it&#8221; confirm you are getting a MT1005 or MT1006 with the grossly correct Base Station location.\u00a0\u00a0 If you have your own copy of <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> (which after all is preferred) you can use several different tools in <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> to see the RTCM3 messages and their internal contents.\u00a0 If it is working, but the position is &#8220;off&#8221; in some way, it is likely your precise position differ between what is sent and whatever is defined as &#8220;truth&#8221; are using different frame of reference (the datum and its realization).<\/p>\n<p>Here is the above nonsensical position being displayed in the <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> <em>tooltip<\/em> for the stream<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5705\" src=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2018\/10\/NonsenseLLH-ECEF-inRTKLIB.png\" alt=\"\" width=\"430\" height=\"275\" srcset=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2018\/10\/NonsenseLLH-ECEF-inRTKLIB.png 430w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2018\/10\/NonsenseLLH-ECEF-inRTKLIB-300x192.png 300w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2018\/10\/NonsenseLLH-ECEF-inRTKLIB-50x32.png 50w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2018\/10\/NonsenseLLH-ECEF-inRTKLIB-320x205.png 320w\" sizes=\"auto, (max-width: 430px) 100vw, 430px\" \/><\/p>\n<p>Current copies of <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> will also alert the operator when a stream sends in ECEF\/LLH values that make no sense, such all zeros or the two poles.\u00a0 [You can in fact use the <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/moving-base-stations-reported-position-silly-example\/\" target=\"_blank\" rel=\"noopener noreferrer\">PFAT translations<\/a> feature to move a base to thousands of km from its real location, but this would typically only be used for tests and is an rather advanced topic.]<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5708\" src=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2018\/10\/NonsenseLLH-ECEF-inRTKLIB-console.png\" alt=\"\" width=\"700\" height=\"240\" srcset=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2018\/10\/NonsenseLLH-ECEF-inRTKLIB-console.png 700w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2018\/10\/NonsenseLLH-ECEF-inRTKLIB-console-300x103.png 300w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2018\/10\/NonsenseLLH-ECEF-inRTKLIB-console-50x17.png 50w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2018\/10\/NonsenseLLH-ECEF-inRTKLIB-console-600x206.png 600w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2018\/10\/NonsenseLLH-ECEF-inRTKLIB-console-320x110.png 320w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Understanding and resolving this issue at the Base Station side overcomes the most common problem(s) that RTKLIB users have with any NTRIP Caster.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This article is motivated by an increasing number of users, often with RTKLIB based tools, who are unable to connect their Base Station data to SNIP.\u00a0 And as a consequence, are unable to connect their Rover device(s) as well. A common &#8216;bad&#8217; setup Consider the following two log entries taken [&hellip;]<\/p>\n","protected":false},"author":13,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"ht-kb-category":[113],"ht-kb-tag":[225,417],"class_list":["post-5310","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-rtk-lib","ht_kb_tag-rtklib","ht_kb_tag-strsrv"],"_links":{"self":[{"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb\/5310","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb"}],"about":[{"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/comments?post=5310"}],"version-history":[{"count":18,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb\/5310\/revisions"}],"predecessor-version":[{"id":6839,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb\/5310\/revisions\/6839"}],"wp:attachment":[{"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/media?parent=5310"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb-category?post=5310"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb-tag?post=5310"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}