An update on SIM808. It is just a stop-gap solution,
but it buys us some time.
The changes I’ve made / problems I’ve had:
- Power button needs to be held for 1 second to
power down/up the modem (SIM908 was much faster). Not a bad
issue, but it did waste a week going back and forth trying
to find the cause.
- The SIM808 doesn’t echo LineFeed characters. That
is a pain for DIAG mode console, but doesn’t affect anything
else. Only workaround possible is to use a terminal program
that can map CR->CRLF, or CF->LF (and live with the
horrible display in DIAG mode). We’ll just develop on SIM908
modules or use a fancy terminal emulator. I guess if people
are using scripts to talk to DIAG mode, they may need some
tuning if they are expecting CRLF and just getting CR now.
- GPS initialisation (this is the biggy - more
below).
- Build profile in version string. This is just a
simple fix to include a #define in the build profiles, and
to include that where we show the version string. It means
that as well as the version of firmware, we can now see the
build profile. Helpful for support of new users.
The biggest issue has been with GPS initialisation.
Looking at the current code:
#ifdef
OVMS_INTERNALGPS
// Using
internal SIM908 GPS:
rom char
NET_INIT1[] = "AT+CGPSPWR=1;+CGPSRST=0;+CSMINS?\r";
rom char
NET_REQGPS[] = "AT+CGPSINF=2;+CGPSINF=64;+CGPSPWR=1\r";
#else
// Using
external GPS from car:
rom char
NET_INIT1[] = "AT+CSMINS?\r";
#endif
So, if the build profile includes OVMS_INTERNALGPS (ie; one or
more vehicles in the profile require GPS), then we use a big
sequence of initialisations
"AT+CGPSPWR=1;+CGPSRST=0;+CSMINS?\r”. We have two issues with
this:
- We’re powering up the GPS, even if the actual
vehicle we selected doesn’t need SIM908/808 GPS. That costs
watts - and with my new fancy bench power supply I got for
OVMS v3 development (ok, cheap chinese ebay) I can now see
exactly how much ;-).
- The SIM808 randomly doesn’t like AT+CGPSPWR=1 and
in particular seems to hate it 100% of the time it is
included with other options. You get an ERROR response back
from the modem, and as this is done in NET_STATE_DOINIT, it
looks like a SIM card error (but is nothing to do with SIM
card). We just never saw AT+CGPSPWR=1 fail on SIM908.
Now, as well as the #defined OVMS_INTERNALGPS to
enable the SIM908/808 GPS, we’ve also got NET_FN_INTERNALGPS in
net_fnbits which is set during vehicle module initialisation.
The first brings in the code, the second should turn it on.
Except it doesn’t. The first one turns it on.
Accordingly, I’m having to change the net.{h,c}
layer to split off GPS initialisation into its own states and
use a simple AT+CGPSPWR=1 for vehicles that require SIM908/808
GPS and AT+CGPSPWR=0 for vehicles that don’t. I’ve taken the
opportunity to switch from using OVMS_INTERNALGPS to using
NET_FN_INTERNALGPS in net_fnbits as the decision as to whether
to power up the SIM908/808 GPS or not.
Building and testing that has taken me the most
time. It is almost done, and I should be able to commit the code
soon.
Production firmware then goes to the manufacturer in
China, and we give the go-ahead for the production run. We
should have the modules back in stock towards the end of March /
first thing in April.
Regards, Mark.
P.S. I can actually recommend that cheap(ish)
chinese ebay power supply. It’s available from various eBay
sellers, or
banggood. Controls are precise, output is rock
solid, ammeter is as accurate as my multi-meter, and it is built
like a tank.
_______________________________________________
OvmsDev mailing list
OvmsDev@lists.teslaclub.hk
http://lists.teslaclub.hk/mailman/listinfo/ovmsdev