Facet mosaic: copy user profiles to another receiver?

Is there an efficient way to copy all the user profiles from one Facet mosaic receiver to another? Is there some way via USB to a computer and then from the computer to the second receiver? I feel like I’m overlooking a feature for doing this, and I’m hoping to avoid re-entering by hand several profiles’ worth of settings.

Thanks! --Bill

Use an SD card. Generally speaking, the settings on the SD card will overwrite the settings on a unit. So insert an SD card, make all the settings to the unit you need - these settings will be stored both on the local unit and the SD card. Then power down the unit. Insert the SD card into a new Facet mosaic, and upon power up, the unit will mount the SD card, find the settings file, and apply those settings, overwriting any local settings. We like to think of it as a ‘golden card’ system. We tried to design it so that once you have a good setup, you should be able to deploy it quickly.

@sparky If I recall correctly, the uSD card in a Facet mosaic is under the control of the mosaic-X5, rather than the ESP32. Is the ESP32 able to pass a file, containing the user profiles, to the mosaic-X5 for writing to the card? And, also able to request that the mosaic-X5 read such a file from the card and pass it to the ESP32?

Thanks!

@sparky I removed the uSD card from a Facet mosaic (strictly, a Facet mosaic L-Band, but they’re the same, right?) that was configured with multiple user profiles, after powering down that receiver, and placed the card into another Facet mosaic, then powered the latter receiver on. The profiles from the first receiver did not appear on the second receiver. Looking at the contents of the uSD card on a computer, all I see aside from mosaic-X5 log files are an autorun.inf file and a receiver.ico file.

Both receivers are running ESP32 firmware v2.2 and mosaic-X5 firmware 4.15.0.

Is there something I have to explicitly do to cause the creation of the settings file that you referred to?

Hi Bill (@wjc ),

Thank you for supporting our product - it was a lot of fun to develop. The X5 is such a great chip…

Correct, on Facet mosaic, the SD card is connected directly to the X5, not to the ESP32. The ESP32 has no direct access to it. The upside is that the X5 can log RINEX directly; the downside is that the RTK Everywhere settings are stored in ESP32 flash memory only.

The ESP32 does have limited access to the “Disk” file system through the COM port. It can list disk info (ldi / lstDiskInfo) which includes the total space, free space and the names and sizes of all files. It can list a recorded file (lrf / lstRecordedFile) to the COM port. It can remove a file or files (erf / exeRemoveFile). But I’m not seeing a way to write to a file…

I’ll keep digging. The X5 is so very clever, it’s a full-on embedded computer, there is probably a way. Maybe a way to daisy chain the COM port to DSK1…

I’ll keep thinking about this. If I find anything, I’ll let you know and add it as a Feature Request for the next RTK Everywhere firmware version.

More later,
Paul

@PaulZC OK, manual copying of profiles for now. Thanks for thinking about ways to automate the process. And I agree, the mosaic-X5 is very cool, and the Facet mosaic is a very nice product.

Hi Bill,

Here’s one possibility:

The X5 has a eecm (exeEchoMessage) command which can be used to echo ASCII or a ‘hex’ stream to DSK1. If I send the commands:

eecm,DSK1,"A:Hello world!",all
eecm,DSK1,"H:30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45",none

the X5 creates a file called “log.ecm.A”, and writes the data into it. It prefixes each line with (I think) the GPS week number and time of week:

2377 281764 Hello world!
2377 281905 Hello world!
2377 281908 Hello world!
2377 281909 Hello world!
2377 281910 Hello world!
2377 281911 Hello world!
2377 281912 Hello world!
2377 281912 Hello world!
2377 281913 Hello world!
2377 281914 Hello world!
2377 281915 Hello world!
2377 281916 Hello world!
2377 281917 Hello world!
2377 282174 0123456789@ABCDE

To write the contents and close the file, I had to unmount the disk. But that’s a minor complication.

So, here’s a way we could transfer the RTK Everywhere configuration from one unit to another:

Add a new “Write profile to X5 DSK” option.
This would write the RTK Everywhere profile(s) to log.ecm as outlined above.
Unmount the SD card (exeManageDisk,DSK1,Unmount).
Powering off the Facet mosaic would probably work too - it sends a exePowerMode,Standby before turning the power off.
User transfers the SD card to the second unit.
Add a new “Read profile from X5 DSK” option.
The ESP32 reads the log.ecm file using lstRecordedFile, strips off the Week Time-Of-Week prefix from each line, writes the plain ASCII text to the profile file (in flash (LittleFS)).

I think that would work…

I’ll open an Issue for this on GitHub.

Best wishes,
Paul

Hi Bill (@wjc ),

Issue opened here:

Best wishes,
Paul

@PaulZC Hi, Paul. Thank you for being so responsive! Another thought: Could something be implemented via USB? Using a USB cable to a computer to get a profiles / settings file from a Facet mosaic’s ESP32, or to send one in the other direction, would be very useful. Might that be easier or cleaner to implement?

Hi Bill (@wjc ),

If we make the ESP32 code unmount the SD cards, they would appear as mass storage (flash drives) over USB. You could drag and drop the log.ecm file from one to the other.

Or, we could set up a different daisy-chain through the USB1 or USB2 virtual COM ports and use those for the file transfer, but you would need some simple code running on your computer to forward the data from the donor USB to the recipient USB. A few lines of Python would do it. But maybe not a great solution for some users…?

Another solution would be the DATA port → DATA port “crossover cable” idea I described on GitHub.

What would be easiest for you?

Best,
Paul