|
1 |
| -# mbed-os-example-cellular |
| 1 | +# Example cellulaur application for mbed OS |
2 | 2 |
|
| 3 | +This is a simple example based upon mbed-os celular APIs that demonstrates a simple TCP or UDP echo transaction with a public echo server. |
| 4 | + |
| 5 | +## Getting started |
| 6 | + |
| 7 | +This particular Cellular application uses a Cellular network and network-socket APIs that are provided as a part of [mbed-os](github.com/armmbed/mbed-os). |
| 8 | + |
| 9 | +The program uses a [generic celular modem driver](https://github.com/ARMmbed/mbed-os/tree/master/features/netsocket/cellular/generic_modem_driver) utilizing an external IP stack (LWIP) standard 3GPP AT 27.007 AT commands to setup the cellular modem and registers to the network. |
| 10 | + After registration, the driver opens up a PPP (point-to-point protocol) pipe using LWIP with the cellular modem and connects to internet. This driver currently supports UART data connection type only between your cellular modem and MCU. |
| 11 | + |
| 12 | +For more information on ARM mbed-os cellular APIs and porting guide, please visit [mbed-os Cellular Docs](https://docs.mbed.com/docs/mbed-os-api-reference/en/latest/APIs/communication/cellular/). |
| 13 | + |
| 14 | +### Download the application |
| 15 | + |
| 16 | +```sh |
| 17 | +$ mbed import mbed-os-example-cellular |
| 18 | +$ cd mbed-os-example-cellular |
| 19 | + |
| 20 | +#OR |
| 21 | + |
| 22 | +$ git clone [email protected]:ARMmbed/mbed-os-example-cellular.git |
| 23 | +$ cd mbed-os-example-cellular |
| 24 | +``` |
| 25 | + |
| 26 | +### Change the network and SIM credentials |
| 27 | + |
| 28 | +See the file `mbed_app.json` in te root directory of your application. This file contains all the user specific configurations needed by your application. |
| 29 | +Provide the pin code for your SIM crad as well as any APN settings if needed, e.g., |
| 30 | + |
| 31 | +```json |
| 32 | + "sim-pin-code": { |
| 33 | + "help": "SIM PIN code", |
| 34 | + "value": "\"1234\"" |
| 35 | + }, |
| 36 | + "apn": { |
| 37 | + "help": "The APN string to use for this SIM/network, set to 0 if none", |
| 38 | + "value": "\"internet\"" |
| 39 | + }, |
| 40 | + "username": { |
| 41 | + "help": "The user name string to use for this APN, set to zero if none", |
| 42 | + "value": 0 |
| 43 | + }, |
| 44 | + "password": { |
| 45 | + "help": "The password string to use for this APN, set to 0 if none", |
| 46 | + "value": 0 |
| 47 | + } |
| 48 | +``` |
| 49 | + |
| 50 | +### Selecting socket type (TCP or UDP) |
| 51 | + |
| 52 | +You can choose which socket type the application should use, e.g., |
| 53 | + |
| 54 | +```json |
| 55 | + |
| 56 | + "sock-type": "TCP", |
| 57 | + |
| 58 | +``` |
| 59 | + |
| 60 | +### Turning Modem AT echo trace on |
| 61 | + |
| 62 | +If you like details and wish to know about all the AT interactions between the modem and your driver, turn on the modem AT echo trace. |
| 63 | +Set `modem_trace` field value to be true. |
| 64 | + |
| 65 | +```json |
| 66 | + "modem_trace": { |
| 67 | + "help": "Turns AT command trace on/off from the cellular modem, defaults to off", |
| 68 | + "value": true |
| 69 | + }, |
| 70 | +``` |
| 71 | + |
| 72 | +### Board support |
| 73 | + |
| 74 | +The [generic celular modem driver](https://github.com/ARMmbed/mbed-os/tree/master/features/netsocket/cellular/generic_modem_driver) used by this application is written using only a standard AT command set and the uses PPP with a full fledge mbed-supported external IP stack. These abilities make the driver essentially generic, i.e., non-vendor specific. However, this particular driver is written for onboard-modem types, i.e., the modem exists on the mbed-enabled target as oppose to plugin-modules (shields). For more details, please check documentation [mbed-os Cellular Docs](https://docs.mbed.com/docs/mbed-os-api-reference/en/latest/APIs/communication/cellular/). |
| 75 | + |
| 76 | +Examples of mbed-enabled boards with onboard modem chips can be, [u-blox C027](https://developer.mbed.org/platforms/u-blox-C027/) and [MultiTech MTS Dragonfly](https://developer.mbed.org/platforms/MTS-Dragonfly/). |
| 77 | + |
| 78 | +## Compiling the application |
| 79 | + |
| 80 | +Use mbed-cli commands to generate a binary for the application, e.g., in case of GCC use the following command: |
| 81 | + |
| 82 | +```sh |
| 83 | +$ mbed compile -m YOUR_TARGET_WITH_MODEM -t GCC_ARM |
| 84 | +``` |
| 85 | + |
| 86 | +## Running the application |
| 87 | + |
| 88 | +Drag and drop the application binary from `BUILD/YOUR_TARGET_WITH_MODEM/GCC_ARM/mbed-os-example-cellular.bin` to your mbed-enabled target hardware which appears as a USB device on your host machine. |
| 89 | + |
| 90 | +Attatch a serial console emulator of your choice (e.g., putty, minicom, screen etc) to your USB device, set the baudrate to be 115200 and reset your board by pressing reset button. |
| 91 | + |
| 92 | +You should see an output similar to this: |
| 93 | + |
| 94 | +``` |
| 95 | +mbed-os-example-cellular, Connecting... |
| 96 | + |
| 97 | + |
| 98 | +Connection Established. |
| 99 | +UDP: Sent 4 Bytes to echo.u-blox.com |
| 100 | +Received from echo server 4 Bytes |
| 101 | + |
| 102 | + |
| 103 | +Success. Exiting |
| 104 | +
|
| 105 | +``` |
3 | 106 |
|
0 commit comments