Ability to add flash memory (for configuration) to SAM-M8Q (spi)?

I purchased a SAM-M8Q to upgrade the gps unit in a telescope due to its small size and built in USB-C port for programming. [I need to program it to transmit at 4800 baud and every 1.5 seconds instead of the default 9600 / 1 second.]

Unfortunately, after I received it, I discovered that the M8Q doesn’t have any flash to store configuration, making it useless for my purpose. [I had to buy a BN-220 elsewhere, and a TTL serial adapter to program it.]

My question: Is there any way you could add a SPI flash memory chip to the SAM-M8Q via the exposed pinouts and use it to save the configuration? [I don’t need to log data, so the smallest possible memory chip should be plenty…]

Pointers as to the chip to use and how to hook it up, or confirmation that this is basically impossible?

Thanks,
Jay

Might be easier to add a Pro Mini or other small Arduino that sets up the M8Q for you at power up. It would configure the M8Q then pass data from the M8Q onto your telescope. Should only take a dozen lines or so of code to do.

I considered a small PIC or something, but I’m space constrained (the 1x1” SAM-M8Q board takes up almost half the available space). Plus I’m trying to keep things simple. If I can solder on 4-8 wires deadbug to set up a SPI flash chip that can hold configuration data the M8Q just uses I’m fine with that, but I don’t really want to program a co-processor to initialize things, or do some type of passthrough.

I’ve also reached out to u-blox to see if their eFuse solution can set the baud rate (I’m relatively sure it can) and make the update rate slower (not as sure). I’m not too familar with how to “blow” the eFuses (if it can be done via UART or requires high voltage to a specific pin) but I’m hoping u-Blox can tell me. [They don’t document it in the public datasheets.]

I don’t think they export enough PIO to permit a QSPI to be attached.

Beitian has an assortment of better designed uBlox based UAV receivers, with small FLASH to permit configuration / retention.

uBlox has OTP codes for baud rates for M8’s in the MAX-M8 integration guides, and I’ve published a few. Changing other settings for messages and rates is more involved, and I’m only interested in touch that in a pay-to-play sense.

The M9/M10 are more simple to configure as they use configuration keys. The remaining space in OTP is then the primary limitation.

No special voltages required, commands independent of interface used.

What specific messages does the telescope expect? Do you have any brand/model specifics?

Typically the $GxGSV sentences overwhelm at 4800 baud.

As @YellowDog suggests, perhaps you can use a RPi Pico, or small equivalent, as an interposer to process an external or cabled GNSS, and emit faux NMEA Sentences to the telescope.

The telescope only needs the $GPRMC message, the reason to slow the rate down to 1.5 or 2 seconds is so that it doesn’t get overwhelmved with everything else.

I’ve already got a BN-220 on order (and the extra TLL to USB adapter needed to configure/program it). I was excited by the SAM-M8Q module because of the small size and built in USB-C programming interface. If I can still use it with the proper eFlash OTP configuration or even a soldered configuration saving chip that would be nice.

To close out this thread. I’ve been in communication with u-Blox support, and they confirmed that the M8Q can set 4800 as a default baud rate in the OTP (one time programmable) eFlash using the following command:

B5 62 06 41 09 00 01 01 30 81 00 00 00 00 FC FF 20

Unfortunately, you can’t change the rate or pick specific messages to disable, so it doesn’t look like the M8Q will work for me. [If sparkfun ever upgrades to use the M10Q that particular chip DOES allow you to set arbitrary commands / labels in the OTP eFlash memory…]

So, I’ll probably be using the BN-220 module in the telescope and save the SAM-M8Q for some other project (probably with a host computer to program/configure it on bootup). [Which is a shame, as the built in USB-C / Serial port was a big advantage over the BN-220.]

We do sell the M10Q :smiley:

Yes, but unfortunately your breakout board for the M10Q is

  1. too chonky to fit in my space.
  2. does not include the built in USB-C / serial port for programming without extra hardware

Now if you had an M10Q mounted like the SKU: GPS-30018 SAM-M8Q board, that would be great.

[I was specifically looking for a solution where I could educate people on how to solder the 4 wires to get it connected to the telescope and program easily with just a USB-C cable. The BN-220 module fits correctly, but requires an extra part (USB→TLL serial adapter) and wiring to program.]

>>Unfortunately, you can’t change the rate or pick specific messages to disable..

It is possible, it’s just more involved.

The DAN-F10N is (just like the M10Q board) physically too large, I need the 1”x1” form factor.

u-Blox tech support gave me the OTP eflash command to always boot up at 4800 baud, which solved half my problem. They told me that you couldn’t change the rate using OTP / eFlash on the M8Q.

But,they offered me a command that locks it to (only use) GPS (and ignore all other nations satellites) which greatly reduces the number / volume of GSV messages. I hope that this will allow me to use the stock 1Hz rate without overrunning the buffers.

If anybody else is viewing this message and also needs those (non-reversible, one time only, permanent flashing) commands for the ublox M8Q, they are:

4800 Baud:
B5 62 06 41 09 00 01 01 30 81 00 00 00 00 FC FF 20

GPS constellation only lock:
B5 62 06 41 09 00 01 01 31 81 00 00 00 00 01 05 2C

On the oscilloscope the output looks good (clear gap after each burst of data sent once a second) so I’m hopeful it will actually work with my telescope.

Jay

>>They told me that you couldn’t change the rate using OTP / eFlash on the M8Q.

I’d wager $20 that I can..

1 Like

Well, unfortunately it is now a moot point, as I’ve determined that the telescope I’m using it with provides a 3.3v power supply, 3.3v level shifted RX line, but it pulls the TX line up to 5 volts, which burnt out the TX line on my M8Q. So, I’m going to have to use a BN-220 module that supports 5 volt TTL levels. [And requires the use of an external USB→TTL serial board to program…on the plus side, it has flash, so I can program the 4800 baud and 1.5 or 2 second rate easily without needing any magic eFlash/OTP commands.]

1 Like