How-To Guides¶
Practical step-by-step instructions for common RTK Base operations using the REST and MQTT APIs.
Update Firmware over 4G (MQTT)¶
When the RTK Base is connected via 4G and HTTP access is not available, firmware updates can be triggered over MQTT using the generic command topic.
Command:
aws_pub -t "base/EURB1000066/cmd" -m '{"cmd_type":"updateBase","cmd_param":{"url":"http://base-update.yamabiko.eu/static/3.0.20.bin"}}'
What happens:
- The base downloads the firmware from the provided URL
- Progress can be monitored via
base/{SN}/infoorGET /get-infounderbase.update - The base automatically reboots into the new firmware after a successful download and verification
Check update status:
Change SVIN to Manual and Set XYZ¶
Switch the reference position source from survey-in to manual, and provide fixed ECEF coordinates.
Via REST¶
curl 192.168.4.1/change --data '{
"gnss-ref-chosen": "manual",
"gnss-ref-manual-x": 4027734.8896,
"gnss-ref-manual-y": 323515.0065,
"gnss-ref-manual-z": 4918530.3819,
"gnss-ref-manual-acc": 0.5000
}'
Via MQTT¶
# Send configuration change
aws_pub -t "base/EURB1000066/change/post" -m '{
"gnss-ref-chosen": "manual",
"gnss-ref-manual-x": 4027734.8896,
"gnss-ref-manual-y": 323515.0065,
"gnss-ref-manual-z": 4918530.3819,
"gnss-ref-manual-acc": 0.5000
}'
# Wait for response on: base/EURB1000066/change/resp
# Expected: {"result":"ok","leftover":{}}
Field reference:
| Field | Type | Description |
|---|---|---|
gnss-ref-chosen |
string | Set to "manual" to use manual reference |
gnss-ref-manual-x |
float | X coordinate (ECEF, meters) |
gnss-ref-manual-y |
float | Y coordinate (ECEF, meters) |
gnss-ref-manual-z |
float | Z coordinate (ECEF, meters) |
gnss-ref-manual-acc |
float | Accuracy estimate (meters) |
Verify the change:
Change 4G Operator¶
Manually select a mobile network operator when the base is equipped with a 4G modem.
Step 1: Scan for available operators¶
Wait approximately 200 seconds for the scan to complete. You will loose communication during this time
Step 2: Retrieve scan results¶
Read the response on base/EURB1000066/info and locate the modem.scan section:
{
"modem": {
"scan": [
{"plmn": 20601, "name": "Proximus", "act": 258},
{"plmn": 20610, "name": "Orange B", "act": 258},
{"plmn": 20620, "name": "BASE", "act": 258},
{"plmn": 20612, "name": "206 12", "act": 256}
]
}
}
Fields:
plmn: Public Land Mobile Network code (use this to select)name: Human-readable operator nameact: Access technology (256 = GSM, 258 = LTE) (!! Bitmask)
Step 3: Select the desired operator¶
Response on base/EURB1000066/change/resp:
Alternative: Via REST¶
# Trigger scan
curl -X POST "192.168.4.1/system?mobile-scan"
# Wait ~200 seconds, then get info
curl 192.168.4.1/get-info | jq '.modem.scan'
# Select operator
curl 192.168.4.1/change --data '{"mobile-operator":20601}'
Quick Reference¶
| Operation | REST | MQTT |
|---|---|---|
| Update firmware | POST /system?firmware=URL or POST /update-firmware?esp |
base/{SN}/cmd with {"cmd_type":"updateBase",...} |
| Change SVIN to manual | POST /change with gnss-ref-chosen=manual and XYZ |
base/{SN}/change/post with same JSON |
| Scan operators | POST /system?mobile-scan |
base/{SN}/cmd with "mobile-scan" |
| Select operator | POST /change with {"mobile-operator":PLMN} |
base/{SN}/change/post with same JSON |
For the complete list of configuration fields, see the REST API reference. For the full topic listing, see the MQTT API reference.