FCM or Open UART Interface?

Hi everybody!

I’m trying to write an application that reads data from serial port and sends it through GPRS to a remote server (I think it’s a tipical problem).
GPRS side is working correctly but now I’ve to implement a Serial Port side. I’m reading adl user guide to know how to read data from serial port.
In the documentation I see that I can read data using FCM or Open UART Interface and I don’t know which one use.

Can anybody write a comparison betwen this two methods to help me to choose one of them??

Thanks in advance!

I would recommend that you use FCM if at all possible.

FCM is mature and the documentation is reasonable by Wavecom standards.

The Open UART interface is new and the documentation, even by Wavecom standards, is awful - to be polite.

but if the FCM is the old method, it will be obsolete soon?


I don’t think that the Open UART interface is intended to replace FCM.

But you’d have to speak to your Distributor or FAE if you want the definitive answer…

OK Thank you

It all depends what exactly you try to do.

When using FCM, all data goes through OpenAt layer first and, generally, this is OK, but you have to monitor the switch between command and data modes.

With OpenUART, you are on your own – all you get is raw data. You will have to implement your own AT parser.

We use OpenUART because we do have our own AT parser and use of FCM caused us problems when some commands could not be overwritten and we had same AT command executed by OpenAT and us, sometimes with different results.


Very true!
But I would certainly recommend that anyone try FCM first - and only resort to Open-UART if FCM proves unworkable.

This is true.
It does impose a performance overhead - so that could be another reason to choose Open-UART

True - but you also have to do this for Open-UART.
See: AT+WMFM - Inconsistent (and unhelpful) Behaviour

Very true! :open_mouth:
Not only in terms of the target operation - but also in terms of the awful documentation! :angry:

Surely, if you want to implement a custom AT parser, you could do that using FCM in Data mode?

Switching FCM to Data mode bypasses the AT Command processor - can you explain what you mean by this?

Thank you.
I’ve done my app using FCM wich was recomended before by awneil. It has all I need to do a simple application that reads data from serial port and sends it to a server via GPRS and check viability of my system.
I think OpenUART could be usefull to more complex versions of my system.
Thanks to awneil and rudolfl

When in OpenUART mode, OpenAT parser is inactive. In fact, whole UART is inactive as far as OpenAT is concerned. In order to use Open UART, one has to turn corresponding UART flow control OFF with AT+WMFM command.
And documentation is awful, you are right. Took me a while to get it working.

Sorry - you’ve missed my point!

I was asking you to explain what you meant by, “use of FCM caused us problems when some commands could not be overwritten and we had same AT command executed by OpenAT”

Because, as I said, switching FCM to Data mode bypasses the AT Command processor - therefore you shouldn’t have any problems with the AT Command processor provided you have switched FCM to Data mode

We did not use FCM exclusively – only in data mode. We tried to re-define most AT commands and that did not work well.
In addition, we needed to fine control V.24 lines and look at things like framing errors, so we had to go OpenUART anyway.


But how, exactly, was that due specifically to FCM?

Indeed, those are things not possible in FCM.

I will not remember the details now – that was in R.71 firmware and we switched awhile ago.
We had some issues processing “+++” when in FCM mode. We also had some issues with overwriting certain commands in AT mode (ATD, ATQ, AT&W for example).

I wonder if something got broke back in R7.41 ?
or is it just me …

can u share me how to impleament this in tcp_client …

If you can’t even manage to get FCM working, you certainly shouldn’t go anywhere near the Open UART interface!! :open_mouth:

my implementation was very simple… using tcp client example from Sierra and my fcm uart example [url]Simple UART Echo Program].

All read data from uart is sent to server throught TCP socket.

The source codes are there, all you have to do is mix them all and get the solution.

After that, it would be nice that you share your code.

Well, that’s not quite “all” - it does also require that you are have at least a basic competence in ‘C’ programming, which seems to be the stumbling block here.

See: Switch Command mode to data mode

Actually, more than just “basic” competence - especially when it comes to TCP/IP…