Skip to content

Copy edit README.md #19

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 14, 2017
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 16 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
# Example cellular application for mbed OS

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.
This is an example based on `mbed-os` cellular APIs that demonstrates a TCP or UDP echo transaction with a public echo server.

## Getting started

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).
This particular cellular application uses a cellular network and network-socket APIs that are part of [`mbed-os`](github.com/armmbed/mbed-os).

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.
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.
The program uses a [generic cellular modem driver](https://github.com/ARMmbed/mbed-os/tree/master/features/netsocket/cellular/generic_modem_driver) using an external IP stack (LWIP) standard 3GPP AT 27.007 AT commands to setup the cellular modem and registers to the network.

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/).
After registration, the driver opens a point-to-point protocol (PPP) 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.

For more information on ARM mbed OS cellular APIs and porting guide, please visit the [mbed OS cellular documentation](https://docs.mbed.com/docs/mbed-os-api-reference/en/latest/APIs/communication/cellular/).

### Download the application

Expand All @@ -25,8 +26,7 @@ $ cd mbed-os-example-cellular

### Change the network and SIM credentials

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.
Provide the pin code for your SIM crad as well as any APN settings if needed, e.g.,
See the file `mbed_app.json` in the root directory of your application. This file contains all the user specific configurations your application needs. Provide the pin code for your SIM card, as well as any APN settings if needed. For example:

```json
"sim-pin-code": {
Expand All @@ -49,18 +49,17 @@ Provide the pin code for your SIM crad as well as any APN settings if needed, e.

### Selecting socket type (TCP or UDP)

You can choose which socket type the application should use, e.g.,
You can choose which socket type the application should use. For example:

```json

"sock-type": "TCP",

```

### Turning Modem AT echo trace on
### Turning modem AT echo trace on

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.
Set `modem_trace` field value to be true.
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. Set the `modem_trace` field value to be true.

```json
"modem_trace": {
Expand All @@ -71,23 +70,23 @@ Set `modem_trace` field value to be true.

### Board support

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/).
The [generic cellular modem driver](https://github.com/ARMmbed/mbed-os/tree/master/features/netsocket/cellular/generic_modem_driver) this application uses was written using only a standard AT command set. It uses PPP with an mbed-supported external IP stack. These abilities make the driver essentially generic, or nonvendor specific. However, this particular driver is for onboard-modem types. In other words, the modem exists on the mbed Enabled target as opposed to plug-in modules (shields). For more details, please see our [mbed OS cellular documentation](https://docs.mbed.com/docs/mbed-os-api-reference/en/latest/APIs/communication/cellular/).

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/).
Examples of mbed Enabled boards with onboard modem chips include [u-blox C027](https://developer.mbed.org/platforms/u-blox-C027/) and [MultiTech MTS Dragonfly](https://developer.mbed.org/platforms/MTS-Dragonfly/).

## Compiling the application

Use mbed-cli commands to generate a binary for the application, e.g., in case of GCC use the following command:
Use mbed CLI commands to generate a binary for the application. For example, in the case of GCC, use the following command:

```sh
$ mbed compile -m YOUR_TARGET_WITH_MODEM -t GCC_ARM
```

## Running the application

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.
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.

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.
Attach a serial console emulator of your choice (for example, PuTTY, Minicom or screen) to your USB device. Set the baudrate to 115200, and reset your board by pressing the reset button.

You should see an output similar to this:

Expand All @@ -102,5 +101,4 @@ Received from echo server 4 Bytes

Success. Exiting

```

```