Nova R410M timeout sending Config-Requests and tty freeze

I have been using Nova modems for at least 2 years now, and I have to say that while the U201 was very reliable, the R410M has been giving me a headache.

My product is a custom linux PC powering the nova over USB. I have verified the supply can source the 2.4 amps that is supposedly needed.

I frequently see several issues, but the top concern for me right now is that I see the following in my PPPD logs:

Jun 25 20:08:24 daemon.notice pppd[218]: pppd 2.4.7 started by root, uid 0
Jun 25 20:08:24 local2.info chat[220]: abort on (BUSY)
Jun 25 20:08:24 local2.info chat[220]: abort on (NO CARRIER)
Jun 25 20:08:24 local2.info chat[220]: abort on (VOICE)
Jun 25 20:08:24 local2.info chat[220]: abort on (NO DIALTONE)
Jun 25 20:08:24 local2.info chat[220]: abort on (NO ANSWER)
Jun 25 20:08:24 local2.info chat[220]: abort on (DELAYED)
Jun 25 20:08:24 local2.info chat[220]: timeout set to 200 seconds
Jun 25 20:08:24 local2.info chat[220]: report (CONNECT)
Jun 25 20:08:24 local2.info chat[220]: send (AT^M)
Jun 25 20:08:24 local2.info chat[220]: expect (OK)
Jun 25 20:08:24 local2.info chat[220]: AT^M^M
Jun 25 20:08:24 local2.info chat[220]: OK
Jun 25 20:08:24 local2.info chat[220]: – got it
Jun 25 20:08:24 local2.info chat[220]: send (ATDT991#^M)
Jun 25 20:08:25 local2.info chat[220]: expect (CONNECT)
Jun 25 20:08:25 local2.info chat[220]: ^M
Jun 25 20:08:25 local2.info chat[220]: ATDT
99
**1#^M^M
Jun 25 20:08:25 local2.info chat[220]: CONNECT
Jun 25 20:08:25 local2.info chat[220]: – got it
Jun 25 20:08:25 local2.info chat[220]: send (^M)
Jun 25 20:08:25 daemon.debug pppd[218]: Script /sbin/chat -v -s -f /ps/pppd/chat_final finished (pid 220), status = 0x0
Jun 25 20:08:25 daemon.info pppd[218]: Serial connection established.
Jun 25 20:08:25 daemon.debug pppd[218]: using channel 1
Jun 25 20:08:25 daemon.info pppd[218]: Using interface ppp0
Jun 25 20:08:25 daemon.notice pppd[218]: Connect: ppp0 <–> /dev/ttyUSB1
Jun 25 20:08:26 daemon.debug pppd[218]: sent [LCP ConfReq id=0x1 <mru 296> <asyncmap 0x0> <magic 0xe0c72923> ]
Jun 25 20:08:26 daemon.debug pppd[218]: rcvd [LCP ConfReq id=0x0 <asyncmap 0x0> <magic 0xd0600ac5> ]
Jun 25 20:08:26 daemon.debug pppd[218]: sent [LCP ConfAck id=0x0 <asyncmap 0x0> <magic 0xd0600ac5> ]
Jun 25 20:08:26 daemon.debug pppd[218]: rcvd [LCP ConfAck id=0x1 <mru 296> <asyncmap 0x0> <magic 0xe0c72923> ]
Jun 25 20:08:26 daemon.debug pppd[218]: rcvd [LCP DiscReq id=0x1 magic=0xd0600ac5]
Jun 25 20:08:26 daemon.debug pppd[218]: rcvd [CHAP Challenge id=0x1 <5d6cfc71a5e68c63e73db0eebf5a26b0>, name = “UMTS_CHAP_SRVR”]
Jun 25 20:08:26 daemon.debug pppd[218]: sent [CHAP Response id=0x1 <48741a5918ae9de6f5f55337726cf33d>, name = “u”]
Jun 25 20:08:26 daemon.debug pppd[218]: rcvd [CHAP Success id=0x1 “”]
Jun 25 20:08:26 daemon.info pppd[218]: CHAP authentication succeeded
Jun 25 20:08:26 daemon.notice pppd[218]: CHAP authentication succeeded
Jun 25 20:08:26 daemon.debug pppd[218]: sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1 15>]
Jun 25 20:08:26 daemon.debug pppd[218]: sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
Jun 25 20:08:29 daemon.debug pppd[218]: sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1 15>]
Jun 25 20:08:29 daemon.debug pppd[218]: sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
Jun 25 20:08:32 daemon.debug pppd[218]: sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1 15>]
Jun 25 20:08:32 daemon.debug pppd[218]: sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
Jun 25 20:08:35 daemon.debug pppd[218]: sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1 15>]
Jun 25 20:08:35 daemon.debug pppd[218]: sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
Jun 25 20:08:38 daemon.debug pppd[218]: sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1 15>]
Jun 25 20:08:38 daemon.debug pppd[218]: sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
Jun 25 20:08:41 daemon.debug pppd[218]: sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1 15>]
Jun 25 20:08:41 daemon.debug pppd[218]: sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
Jun 25 20:08:44 daemon.debug pppd[218]: sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1 15>]
Jun 25 20:08:44 daemon.debug pppd[218]: sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
Jun 25 20:08:47 daemon.debug pppd[218]: sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1 15>]
Jun 25 20:08:47 daemon.debug pppd[218]: sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
Jun 25 20:08:50 daemon.debug pppd[218]: sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1 15>]
Jun 25 20:08:50 daemon.debug pppd[218]: sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
Jun 25 20:08:53 daemon.debug pppd[218]: sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1 15>]
Jun 25 20:08:53 daemon.debug pppd[218]: sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
Jun 25 20:08:56 daemon.warn pppd[218]: CCP: timeout sending Config-Requests
Jun 25 20:08:56 daemon.warn pppd[218]: IPCP: timeout sending Config-Requests
Jun 25 20:08:56 daemon.debug pppd[218]: sent [LCP TermReq id=0x2 “No network protocols running”]
Jun 25 20:08:59 daemon.debug pppd[218]: sent [LCP TermReq id=0x3 “No network protocols running”]
Jun 25 20:09:02 daemon.notice pppd[218]: Connection terminated.
Jun 25 20:09:02 daemon.debug pppd[218]: Script /ps/pppd/disconnect finished (pid 392), status = 0x7f
Jun 25 20:09:02 daemon.warn pppd[218]: disconnect script failed
Jun 25 20:09:02 daemon.notice pppd[218]: Modem hangup
Jun 25 20:09:12 local2.info chat[393]: abort on (BUSY)
Jun 25 20:09:12 local2.info chat[393]: abort on (NO CARRIER)
Jun 25 20:09:12 local2.info chat[393]: abort on (VOICE)
Jun 25 20:09:12 local2.info chat[393]: abort on (NO DIALTONE)
Jun 25 20:09:12 local2.info chat[393]: abort on (NO ANSWER)
Jun 25 20:09:12 local2.info chat[393]: abort on (DELAYED)
Jun 25 20:09:12 local2.info chat[393]: timeout set to 200 seconds
Jun 25 20:09:12 local2.info chat[393]: report (CONNECT)
Jun 25 20:09:12 local2.info chat[393]: send (AT^M)
Jun 25 20:09:12 local2.info chat[393]: expect (OK)
Jun 25 20:12:32 local2.info chat[393]: alarm
Jun 25 20:12:32 local2.info chat[393]: Failed
Jun 25 20:12:32 daemon.debug pppd[218]: Script /sbin/chat -v -s -f /ps/pppd/chat_final finished (pid 393), status = 0x3
Jun 25 20:12:32 daemon.err pppd[218]: Connect script failed

The timeout sending requests has happened on both firmware versions of the modem, and at seemingly random times.
Interestingly, on the new firmware, I have found that after the first PPPD attempt, the tty will lock up and PPPD is no longer able to talk to the modem. Killing PPPD and connecting manually with microcom shows that the AT command tty port is entirely locked up.

Let me know what other information I need to share to get some help with this.
Has anyone experienced this before?