[Ovmsdev] Integration of Simcom 7670 and changes to Simcom Powering

Info info at zeitnitz.eu
Sat Mar 29 22:13:11 HKT 2025


Hi Michael,
thanks for testing.

The results look odd, so I went back to the schematics of OVMS modules 
and realized, that I was mistaken. The PWRKEY pin is actually inverted 
in the modules as well. This definetly explains the strange behaviour.

I changed now the logic in simcom_powering.h and the inverted PWRKEY 
level is now the default.

Could you please run another test?

Best regards
   Christian

Am 29.03.2025 um 09:25 schrieb Michael Balzer via OvmsDev:
> Christian,
>
> well done on the 7670 support :-)
>
> I've just done some first tests of your branch on the 7600, which 
> turned up some issues. Logs attached:
>
>   * Cold boot failed in 2 of 3 test boots, with the driver getting
>     stuck in a loop (poweredon / identify / muxstart)
>   * Regular shutdown fails to power down the modem in time -- for a
>     deep sleep phase, this would mean the modem will remain powered on
>   * After a crash, the modem driver gets somehow stuck in PowerOffOn state
>
> It seems the test for reaction ("AT") sometimes gets skipped, even 
> though the modem isn't ready yet.
>
> On the failed cold boot log, you can see this at the end:
>
> *I (389178) cellular-modem-auto: Power Cycle*
> I (389178) Simcom: Power Cycle - T_off 2500 ms - T_on 200 ms
> D (389178) events: Signal(system.modem.poweringon)
> D (389188) events: Signal(egpio.output.0.low)
> D (391678) events: Signal(egpio.output.0.high)
> D (396678) events: Signal(egpio.output.0.low)
> D (396878) events: Signal(egpio.output.0.high)
> *I (396878) cellular: State: Enter Identify state
> D (396978) cellular: tx-cmd: AT+CGMM*
> D (396978) cellular: tx-cmd: AT+CGMM
> D (396978) cellular: tx-cmd: AT+CGMM
> D (396978) cellular: tx-cmd: AT+CGMM
> D (396978) cellular: tx-cmd: AT+CGMM
> D (396978) cellular: tx-cmd: AT+CGMM
> D (396978) cellular: tx-cmd: AT+CGMM
> I (397008) cellular: Identified cellular modem: SIM7600/Experimental 
> support for SIMCOM SIM7600
> D (397008) cellular: Remove old 'auto' modem driver
> I (397008) cellular: Set modem driver to 'SIM7600'
> *I (397008) cellular: State: Enter PoweredOn state*
> D (397008) events: Signal(system.modem.installed)
> D (397008) events: Signal(system.modem.poweredon)
> D (406178) cellular: tx-cmd: 
> AT+CPIN?;+CREG=1;+CGREG=1;+CEREG=1;+CTZU=1;+CTZR=1;+CLIP=1;+CMGF=1;+CNMI=1,2,0,0,0;+CSDH=1;+CMEE=2;+CSQ;+AUTOCSQ=1,1;E0;S0=0
> D (408178) cellular: tx-cmd: AT+CGMR;+ICCID
> D (416178) cellular: tx-cmd: AT+CMUX=0;+CATR=6
> D (434808) cellular: mux-rx-line #0 (2/46): OK
> *D (434808) cellular: mux-rx-line #0 (3/39): RDY*
> D (434808) cellular: mux-rx-line #0 (12/23): +CPIN: READY
> D (434808) cellular: mux-rx-line #0 (8/11): SMS DONE
> D (434808) cellular: mux-rx-line #0 (7/0): PB DONE
> I (434808) cellular: State: Enter MuxStart state
> D (434808) events: Signal(system.modem.muxstart)
>
>
> Regards,
> Michael
>
>
> Am 26.03.25 um 13:13 schrieb Info Zeitnitz via OvmsDev:
>> Dear all,
>> I finished to integrate the Simcom 7670 modem into the OVMS code.
>> See 
>> https://github.com/zbchristian/Open-Vehicle-Monitoring-System-3.git 
>> branch update_cellular.
>>
>> Modem Powering
>> ===============
>> I had problems to get the 7670 working with the current code. The 
>> modem was stuck in a power cycle loop.
>>
>> I checked the Simcom documentation for the 4 models 5360, 7000 
>> series, 7600, 7670 and the powering procedure via the PWRKEY pin is 
>> the same, but with different on/off timing. Depending on the 
>> hardware, the PWRKEY can be inverted as well. This is the case for my 
>> Lilygo TCall board, but I think not for the OVMS HW versions. At 
>> least version 3.1 connects the corresponding MAX7317 pin directly to 
>> the modem.
>>
>> Assuming, that all hardware versions use the PWRKEY procedure for 
>> powering, I streamlined the code and moved the corresponding 
>> functions into separate files (simcom_powering.cpp and 
>> simcom_powering.h). This avoids the duplication of the code.
>>
>> All this leads to substantial changes in ovms_cellular and 
>> ovms_cellular_modem_driver as well.
>>
>> The code works now perfectly for the 7670, but testing is required 
>> for all other models.
>> If my assumptions about the OVMS HW versions are not correct, or the 
>> modems do not work as documented, some modifications might be needed.
>>
>> GNSS Location
>> ============
>> The 7670 no longer accepts the currently used AT commands to obtain 
>> the location  as a GRMC sentence. So, I added code to the new 7670 
>> class to request the location via the AT+CGNSSINFO command.
>> Since this has to be send explicitly again and again,  I implemented 
>> a corresponding call in the StatusPoller of the 7670.
>> All the NMEA related code has been adapted to handle the 
>> corresponding CGNSSINFO response.
>>
>>
>> In conclusion, before doing a pull request, it would make sense that 
>> the code is tested with the other hardware and modem models.
>>
>> So, tell me what you think and if the general strategy of the mods 
>> make sense to you.
>>
>> Best regards
>>   Christian
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> OvmsDev mailing list
>> OvmsDev at lists.openvehicles.com
>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev
>
> -- 
> Michael Balzer * Am Rahmen 5 * D-58313 Herdecke
> Fon 02330 9104094 * Handy 0176 20698926
>
> _______________________________________________
> OvmsDev mailing list
> OvmsDev at lists.openvehicles.com
> http://lists.openvehicles.com/mailman/listinfo/ovmsdev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openvehicles.com/pipermail/ovmsdev/attachments/20250329/67866e4e/attachment.htm>


More information about the OvmsDev mailing list