TCP/IP <-> UART tunnel


I need to write a program to establish a tunnel between an incoming TCP/IP connection and the UART. There is a Circuit Board attached to the modem UART. I need to wait in my program running on the modem until some host computer establishes a connection to the modem via GPRS TCP/IP and accept this connection and from thereon relay all incoming bytes from TCP/IP to the UART and all bytes from the UART back to TCP/IP. There is no assumptions one can make about the order of events between UART and TCP/IP meaning the bytes can come and go in any order once the connection is established. Is this possible with OpenAT and if so, is there perhaps an example closely resembling this scenario somewhere ?
Thank you


There are two ways you can do that :

  1. Develop with OpenAT your application that will run inside Wavecom module
    If you don’t have any experience, you will need a lot of reading and practice how to use services and libraries.

  2. Drive the Wavecom module through AT commands from an external device connected to UART (PC, circuit board, …)
    In this case the module must have already a software (e.g. edLib software) that you must ask from your distributor.

What do you have in mind?


I will have to go for option 1 because the circuit board connected to the modem cannot be easily changed. is this a complicated program in your opinion to write ?


You can study the sample “Auto TCP Socket Data connection” program from Wavecom. Though it use old (edLib) TCP/IP library, you can learn what you need to do with OpenAT :



Here You can find more details … .php?t=200


That depends on your level of experience with embedded ‘C’ programming, TCP/IP protocols, and any other protocol(s) that will be necessary over the UART to talk to your other system…


Thanks for the responses. I am well versed in C but fairly novice in embedded programming. I will study the proposed material and am sure I’ll win eventually.