I suggest that you check with Siemens that you have a recent version of
firmware in the MC35. I have used the TC35T, MC35T and MC45 in designs,
and I have experienced quite a few bugs in specific AT commands in early
firmware releases, many of which were corrected in later upgrades.
I haven't used the "AT+CMGL" command at all, so I'm unable to confirm a
problem, but Siemens should be able to advise you. To give a flavour of
the sort of obscure problems that I have seen, the following command
works fine on TC35 V03.10 firmware (as reported by "ATI") but fails on
MC35 V05.00 firmware, and MC45 V01.04 and V02.04 firmware:
AT^SM20=1^SSYNC=1 (fails with ERROR)
However, these commands work fine on their own, or together but in the
> I have experienced quite a few bugs in specific AT commands in
> early firmware releases, many of which were corrected in later
I'll check on that. We probably all have come across (frustrating)
instances of devices being buggy or with optimistic specs. I won't
bore you with the story of the weeks I wasted on a factory sample
that turned out to be a reject pre-production prototype. grrrrr
One command I do seem to have trouble with is the CNMI 1,1 to
activate the /RING0 line. Quite often it returns an error and needs
to be sent again. Other times it seems perfectly OK. And BTW,
AFAICT the hardware manual has the polarity of /RING0 wrong,
which I discovered early on, and it's kind of subconciously tainted
my attitude towards this particular unit since then. I wouldn't be at
all surprised to find that some functions are officially flakey
As I mentioned before though, figuring out the AT commands, both
the standard and enhanced, and their many available parameters is
a job and a half in itself. I need to talk to Siemens and find out which
ones are vital and which are optional. Possibly this is a cause of the
inconsistency - there may be something missing from the set-up that
makes the MC35 operate solidly
> I guess this doesn't help much directly, but it may reassure you that
> your sanity is not in doubt. :-)
Jinx <.....joecolquittKILLspam@spam@CLEAR.NET.NZ> wrote:
>One command I do seem to have trouble with is the CNMI 1,1 to
>activate the /RING0 line. Quite often it returns an error and needs
>to be sent again. Other times it seems perfectly OK. And BTW,
>AFAICT the hardware manual has the polarity of /RING0 wrong
It should be active low, so that the RS-232 RI line pulses positive when
a call is received. It's a good line to connect to an /INT pin, because
it goes active not only when an incoming call is received but also just
before an unsolicited result code is sent. Furthermore, I think it's
possible to delay the sending of this code by keeping /RTS0 high while
the host wakes up, and then driving it low when it is ready to process
the serial data. This, together with the Cyclic Sleep modes, should
make it possible to design a system which sleeps while waiting for an
event and draws only a few mA in this mode (mostly for the GSM module
which remains registered on the network but idle).
I haven't yet tried out these last few features, though (I'm just going
by the manual!) so there may be some nasty bugs awaiting me in a real
implementation. As you say, it's enough of a job to work out how to use
the basic GSM functions, let alone the arcane options.
Most of the bugs that I have found have been in the newer MC45 module.
The older TC35 seems relatively solid, although its firmware has now
reached at least release 05.00 (what does that indicate?). I've checked
my notes, and the MC45 bugs that I have found so far include:
1. AT^SM20=1^SSYNC=1 returns an ERROR, whereas AT^SSYNC=1^SM20=1 is OK.
2. ATV0 doesn't change all responses to numeric forms [fixed in V02.04]
3. If signal strength is low, module gives up hunting for a GSM network
and returns +CREG: 0,3 (registration denied) instead of continuing
indefinitely with +CREG: 0,2 (searching). [fixed in V02.04]
4. Some AT commands on the same line as AT&F are ignored. For example,
AT&FV0 doesn't switch to numeric responses. Work-around: send AT&F
on its own.
5. ATS0=0 returns an ERROR response if no SIM card is inserted. This
is usually an error condition but, oddly, ATS0? returns a response
of "000" and OK.
I hope this helps.
All the best.
Chapmip Technology, UK
> >AFAICT the hardware manual has the polarity of /RING0 wrong
> It should be active low, so that the RS-232 RI line pulses positive
> when a call is received. It's a good line to connect to an /INT pin
As far as I can determine, /RING0, on this unit, is active high. ie it's
normally low and goes high for those conditions you mention. I thought
at first this was due to differences between the TC35 (the actual
cellular engine) and the MC35, which is a TC35+interface, but the
description is in the interface manual, so ???? Anyway, it's hooked
up to INT1 with a rising edge detect and seems to work alright
That's not to say I'm running it on deficient commands that someone
at Siemens will tell me "makes it work upside-down" !!
Cheers for the errors/fixes mentioned. I've a collection of those too.
It's quite disappointing and means silly extra work
Jinx <joecolquittKILLspamCLEAR.NET.NZ> wrote:
>As far as I can determine, /RING0, on this unit, is active high. ie it's
>normally low and goes high for those conditions you mention. I thought
>at first this was due to differences between the TC35 (the actual
>cellular engine) and the MC35, which is a TC35+interface, but the
>description is in the interface manual, so ???? Anyway, it's hooked
>up to INT1 with a rising edge detect and seems to work alright
Just for information...
The MC35 module from Siemens is an upgraded version of the TC35 module
which adds GPRS support (whereas the TC35 only handles circuit-switched
data). There are, however, "-T" suffixed (terminal) versions of both,
which consist of the module in a black plastic boxes with integral SIM
card drawer and an interface board which provides regulated power to the
module, converts the logic-level serial interface signals into "RS-232"
levels on a 9-pin D connector, and brings out the audio signals via
another connector. From your description, I'd assume that you're using
either the TC35-T or the MC35-T.
The MC45 (new tri-band) modules that I have used show the /RING0 signal
working in the expected sense: logic high whilst idle and going low for
an incoming call (1 second pulses every five seconds for a voice call,
or continuous for a data call). The TC35-T that I worked with showed
the external RI line sitting at -6V whilst idle (which also suggests a
logic high on the internal logic signal).
I assume that, when you say "active high", you're referring to the logic
state. If so, then it sounds as if the MC35 (at least, the version that
you have) is a different animal. This doesn't surprise me, though. I
wasn't expecting to find bugs in basic AT commands on the newer modules
because I imagined that these would all have been ironed out on earlier
modules - but I did. It looks as if Siemens haven't been able to port
tried-and-trusted code from their mature modules to the new ones without
breaking it in places.
I have some sympathy with GSM manufacturers, though. The GSM AT command
set seems to me to be incredibly bloated -- you can certainly tell that
it was designed by a committee. It must be quite a challenge to carry
out tests which are extensive enough to catch most bugs, so I suppose
it's inevitable that some slip through - at least, in early versions.
Good luck in checking with Siemens for possible firmware bugs. I guess
it would be a result if it explains the problems that you're seeing. I
think it may be possible to upgrade the firmware in the Siemens modules
yourself using a special serial protocol, but I've never tried it: I've
just sent the modules back to the distributor for re-flashing.
All the best.
Chapmip Technology, UK
> From your description, I'd assume that you're using
> either the TC35-T or the MC35-T
It's not marked as such, simply MC35
> The TC35-T that I worked with showed the external RI line sitting
> at -6V whilst idle
> I assume that, when you say "active high", you're referring to the logic
> state. If so, then it sounds as if the MC35 (at least, the version that
> you have) is a different animal
/RING0 on the DB9 is at 0V, and shows positive-going activity
I'd long ago stopped assuming that manufacturer's datasheets are
the final error-free authority on their own products. They should be
and you would fervently hope that they are, but so often they bloody
well aren't. And guess which poor saps it's left to to find that out
> think it may be possible to upgrade the firmware in the Siemens
> modules yourself using a special serial protocol, but I've never tried
> it: I've just sent the modules back to the distributor for re-flashing
I shall be having "deep and meaningful discussions" with both
Siemens and my customer (who gave me the wretched thing to
sort out). The hours estimate for this job is already pear-shaped
and I'd rather be doing something constructive. Fortunately the
PIC side of things is going smoothly
On pin 9 of the DB9 connector on the black plastic box? I'd expect that
to be a bipolar (RS-232 style) signal rather than a logic-level signal.
As such, 0V is an undefined state (should be < -3V for a "one" and > +3V
for a "zero", IIRC). Many receivers will interpret 0V as a "one", but
there's not much voltage margin on that.
Is it possible that the negative voltage generator on the MAX232-like
chip inside the box is not working? If so, then this might also cause
some "one" bits on its serial data output to be missed by your receiver
at the other end, especially at higher data rates when line capacitance
slows the transitions. This seems to fit with the symptoms that you're
seeing: some "one" bits in the data turning into zeroes.
On the other hand, I may be barking up completely the wrong tree...
Chapmip Technology, UK
> >/RING0 on the DB9 is at 0V, and shows positive-going activity
> On pin 9 of the DB9 connector on the black plastic box?
> I'd expect that to be a bipolar (RS-232 style) signal
> Is it possible that the negative voltage generator on the
> MAX232-like chip inside the box is not working?
I'm sure it's fine. Voltages on the DB9 pins are -10, +10 or 0
with nothing connected. These reduce to +/- 7 with the PC or
PIC (via the MAX232) connected
I've studied the serial waveform very carefully with an analogue
scope, DSO and logic analyser. There is no breakdown in the
signal. Characters recorded by the PIC are those actually sent
from the MC35. I need to get more information from Siemens,
hopefully in the next couple of days, about this particular unit