after short test i was satisfied of gps + iot, so i have bought 10 more.
Diving deeper into deploying them i have found they work ONLY 27 MIN!!!.
now, beside the fact quectel doesnt share with me its cooltools/coolwatcher HOW AM I SUPPOSE TO WORK WITH 27mins!! before it goes to reboot, or freeze if connected to com.
i have downloaded the latest driver to work with qpy(quectel python functions), previous fw version doesnt support this fun idea.
currently i am highly disappointed in this product and i wonder why would quectel keep making them if they last only 27min and have a horrible gps chip(?) (jumping 1 to 20m from reference point constantly with 18used gps, hdop 0.8).
HELP ME please, am i missing something?
my code was the simples ever:
write to file every min 1 line of log. the log it didnt pass 27min…
Thank you for providing the detailed information. We understand your concern, especially since the module consistently reboots or freezes after approximately 27 minutes.
Regarding the EC200UAUAA with QPY_OCPU_BETA0001_EC200U_AUAA_FW.bin, we would like to clarify that the firmware you are currently using is a QuecPython OCPU beta firmware. The QuecOpen SDK documentation and debugging tools are not necessarily directly applicable to QuecPython, so we would not recommend concluding that the issue is caused by the QuecOpen software watchdog based solely on those documents.
For the 27-minute reboot/freeze, we need to determine the actual reset reason rather than speculate. The possible causes include a firmware/software exception, watchdog reset, memory/resource issue, or hardware/power-related reset.
Please provide the following information so that we can investigate this with our R&D team:
The complete QPY script that reproduces the issue.
The QPYCom log covering the period from startup until the 27-minute failure.
Whether the module reboots completely or only becomes unresponsive.
Whether the issue occurs when the GPS function is disabled.
Whether the issue occurs with a minimal script that only writes one line to a file periodically.
The module’s VBAT voltage and power supply capability, particularly during network transmission.
The exact firmware and QPYCom versions currently being used.
For the GPS position fluctuation, 18 satellites and HDOP 0.8 do not by themselves guarantee that the reported position will remain within a few metres of a fixed reference point. GNSS accuracy can also be affected by antenna performance, multipath, sky visibility, interference, and the positioning solution itself. We can further check this with R&D once we have the GNSS logs and test conditions.
Regarding Coolwatcher, I have reached out to you via email regarding your request for the Coolwatcher tool. Please check your email for further information.
3. with FW: QPY_OCPU_BETA0001_EC200U_AUAA_FW.bin when the module connected to USB it freeze because by default the dump function is enabled within the module. to disable the freeze i used AT command: AT+QDBGCFG=“dumpcfg”,1 . when i didnt use USB Connection the device would restart and keep on going.
the issues occurs with or without gps running.
yes, its my log test scrip i attached.
everything is good, stable power supply.
QPY_OCPU_BETA0001_EC200U_AUAA_FW.bin
i tried everything to make the measurement as clear as possible comparing the performance to ATGM332D-5NR32 , which is stable. using same gps antenna.
i rather not give me you my gps log as its private information.
thank you for the CoolWatcher, i downloaded it.
i have switch to older FW and now my code doesnt crash every 27min. i think someone placed watchDog in newer beta version and forgot to refresh it.
1. CODE:
"""S10.0b silent runtime witness for EC200U QuecPython.
After the startup banner this test prints nothing. Once per minute it appends
an uptime and heap record to /usr/s10_witness.log. The retained file tells us
whether QuecPython continued running after QPYcom output disappeared.
"""
import gc
import utime
TEST_STAGE = "S10.0b"
DIAGNOSTIC_VERSION = "1.1.18"
WITNESS_INTERVAL_MS = 60000
WITNESS_PATH = "/usr/s10_witness.log"
def python_free_memory():
try:
if hasattr(gc, "mem_free"):
return gc.mem_free()
except Exception as error:
return "error:{}".format(error)
return "unsupported"
def append_witness(uptime_s):
gc.collect()
with open(WITNESS_PATH, "a") as witness_file:
witness_file.write("uptime_s={} python_free={}\n".format(
uptime_s, python_free_memory()))
print("==========================================")
print(" EC200U stability isolation {} v{}".format(
TEST_STAGE, DIAGNOSTIC_VERSION))
print(" silent witness: no output after this banner")
print(" file: {} interval_s=60".format(WITNESS_PATH))
print("==========================================")
# Start each programmed run with an unambiguous new witness file.
with open(WITNESS_PATH, "w") as witness_file:
witness_file.write("stage={} version={}\n".format(
TEST_STAGE, DIAGNOSTIC_VERSION))
start_ms = utime.ticks_ms()
last_witness_ms = utime.ticks_add(start_ms, -WITNESS_INTERVAL_MS)
while True:
now_ms = utime.ticks_ms()
if utime.ticks_diff(now_ms, last_witness_ms) >= WITNESS_INTERVAL_MS:
append_witness(utime.ticks_diff(now_ms, start_ms) // 1000)
last_witness_ms = now_ms
utime.sleep_ms(100)