An Arduino Uno uses for the default USB communication either an FTDI chip in early versions or a microcontroller that emulates/replicates the FTDI chip communication.
Is this type of USB communications the same as the Conexxant CX930xx modems use as well?
What I want to achieve is to emulate the nessesary AT commands using the ATCommand library to replicate the modem's AT command instruction set. The things that I want to emulate are:
- The modem USB communication
- The subset of AT commands required for enabling/disabling an incomming call with Caller id
- Returning a "fake" incoming call with or without CallerId depending on the provided options from the PC via the AT commands
For the last two I can somehow manage. But I don't know whether the existing FTDI chip/USB microcontroller uses the nessesary protocols that modems use as well. I mean would it be enough if I just replace the hardware and vendor ID or do I need to emulate another type of USB communication as well?
The modem that I want to emulate is the: https://support.lenovo.com/us/en/solutions/pd003647-lenovo-usb-modem-overview
What I want to achieve is to fake an incomming call instead of using the actual modem. The reason why is, because I want to provide my own data towards modem-interfacing desktop application that use CallerId. Instead of using the actual modem I would love to have a fake one where I can emulate various scenarios.
-
What modem are you talking about. They also make modems that are RS232 which would be a bit easier to interface with. I would suggest using a Mega because it has a second serial port, other boards will work as well. Try these links they may have something you may like: radi.com/modular29.htm or radi.com/modular51.htmGil– Gil2022年08月11日 20:15:34 +00:00Commented Aug 11, 2022 at 20:15
-
I am talinkg for this modem easytechnology.gr/plerophorike-kai-tablet/upologistes/diktuaka/… It is a USB one and is used for CallerId applications. I want to emulate it and send to the PC fake incomming calls like a normal modem would do.Dimitrios Desyllas– Dimitrios Desyllas2022年08月11日 20:56:14 +00:00Commented Aug 11, 2022 at 20:56
-
to the OS, the arduino looks like a serial port without a connected modemjsotola– jsotola2022年08月11日 21:40:41 +00:00Commented Aug 11, 2022 at 21:40
1 Answer 1
Commonly USB modems use two layers of communication that are relevant for your issue.
A virtual serial communication device, known as CDC/ACM, Communication Device Class, and Abstract Control Model, respectively.
Modem control protocol, known as Hayes command set, vulgo "AT command set", on top of this.
Both layers are generally independent of each other. You can use the virtual serial communication for any other purpose. And you can transport the Hayes commands and replies over any other communication stream.
Most Arduino compatible devices reveal themselves as CDC/ACM to a PC, you can check this for example on Windows in the Hardware Manager. Therefore, the underlying transport layer exists for you.
But to answer your concrete question: No, the second layer (AT commands) is missing. It is not necessary for the upload process or the serial monitoring.
But you can write a sketch that implements that set of commands you would like use use for your application.
-
So I need to change the Vendor Id at Uno's Mega 16u2/8U2 and just make it to be seem as any modem I want to and via the sketch on MEGA 328p to emulate the AP command instruction set right;Dimitrios Desyllas– Dimitrios Desyllas2022年08月12日 07:10:55 +00:00Commented Aug 12, 2022 at 7:10
-
In the comment above assume that I already have a sketch that emulates the hayes command set.Dimitrios Desyllas– Dimitrios Desyllas2022年08月12日 07:23:28 +00:00Commented Aug 12, 2022 at 7:23
-
Yes, that should work. Does the PC application or the PC driver need this specific VID/PID to accept the device? CDC/ACM was meant to be VID/PID independent...the busybee– the busybee2022年08月12日 07:40:43 +00:00Commented Aug 12, 2022 at 7:40
-
Well some applications that I need to use may require that (eg. during modem detection)Dimitrios Desyllas– Dimitrios Desyllas2022年08月12日 08:00:42 +00:00Commented Aug 12, 2022 at 8:00