Hi Andrew, and thanks for your reply.
The solution I have developed is probably beyond the capacity of an Arduino. My device, called Spotter, includes an Orange Pi (OPi) attached to a custom circuit board with power supply, power management, audio amplifier (for an external speaker), cooling fan support, 3-axis acc/gyro, diagnostic LEDs, 4 analog inputs, and routing (to the OPi) for 2 RS-232 connectors. The OPi includes 8gb of flash too, so I don’t need to use (expensive and unreliable) SD cards.
I’m using Linux because Spotter performs text-to-speech (TTS) to interact with the school bus driver. Spotter also includes geo-spatial data (map data) so it can speak turn-by-turn directions. 99% of the firmware is written in Java (using JNI to control and interact with gyro, accelerometer, power management PIC) where multi-threading makes it very easy to create separate thread for turn-detection, speak, handle keyboard, control LEDs, etc., etc.
I’m not sure I would save money by avoiding the OPi. It costs about $23 (delivered) and in qty 1,000 I don’t think I could buy the equivalent parts for that prices. I’ve had some discussions with the manufacturer of the OPi and at qty 2,000 they are willing to make a custom run leaving off some hardware I don’t need (e.g. ethernet and IR) to lower the cost a bit. Also, using the OPi give me access to Armbian/Ubuntu which is pretty well maintained, so I avoid all the problems of porting Linux to a custom board. And, of course, Java is happy on Linux.
You’re definitely right about saving money on the ublox module. Paying $50 for a NovaM is a lot. I’m certainly considering using the module in my custom board. At present, however, I have immediate need for an LTE solution. If I can get the NovaM working reliably that will solve my immediate problem and prove that the R410 module is one I can use.
Again, thanks for you help.