# Fibocom FM350-GL AT Commands Reference

Complete list of AT commands from **Fibocom FM350 AT Commands User Manual V2.10** (2023).  
Source: `Fibocom_FM350_AT Commands User Manual_V2.10.pdf` in this repo.

**Tip:** To get the modem’s own list at runtime, use **`AT+CLAC`** (List of All Available AT Commands).

---

## Sending AT commands (FM350-GL)

```bash
cat /dev/ttyUSB1 & CAT_PID=$!
sleep 0.3
echo -e 'YOUR_COMMAND\r' > /dev/ttyUSB1
sleep 2
kill $CAT_PID 2>/dev/null
```

Use `/dev/ttyUSB1` when modem is in **USB Mode 40** (0e8d:7126). In Mode 41, AT commands do not work.

**If AT commands get no response:** run **`/usr/local/bin/diag-at-port.sh`** on the device to check serial ports, permissions, and which port responds to `AT`. See WEBGUI.md → Troubleshooting: No modem AT data.

---

## 1. Basic / test

| Command | Description |
|---------|-------------|
| `AT` | Test communication (expect `OK`) |
| `ATE0` / `ATE1` | Disable / enable command echo |
| `A/` | Repeat last command |

---

## 2. Modem information (Ch. 3)

| Command | Description |
|---------|-------------|
| `AT+CGMI` / `AT+GMI` | Manufacturer ID |
| `AT+CGMM` / `AT+GMM` | Model ID |
| `AT+CGMR` / `AT+GMR` | Revision / firmware version |
| `AT+CGSN` / `AT+GSN` | IMEI (product serial number) |
| `AT+CIMI` | IMSI |
| `AT+CNUM` | MSISDN(s) (phone number) |
| `AT+CCID` / `AT+ICCID` | SIM ICCID |
| `AT+EID` | eSIM EID |
| **`AT+CLAC`** | **List of all available AT commands** |
| `AT+SIMTYPE` | Current SIM type |
| `AT+CFSN` | Factory serial number |
| `AT+GTGATR` | Answer to Reset (ATR) info |
| `AT+GTAPPVER` | sAP firmware version |
| `AT+GTBASELINEVER` | Baseline version |
| `AT+GTPKGVER` | Firmware package version |
| `AT+GTMCFWVER` | Firmware original version |
| `AT+GTCUSTPACKVER` | Operator image version |
| `AT+GTCFGELEMVER` | Customized image version |
| `AT+GTCUSTDATAVER` | Device parameters image version |
| `AT+GTCURCAR` | Current carrier ID and name |
| `AT+GTLOCKCAR` | Carrier lock mode |
| `AT+GTESIMCFG` | eSIM function |

---

## 3. Modem control (Ch. 4)

| Command | Description |
|---------|-------------|
| `AT+CFUN` | Phone functionality (e.g. reset: `AT+CFUN=1,1`) |
| `AT+GTDUALSIM` | Dual SIM switch |
| `AT+CMEC` | Mobile termination control mode |
| `AT+CMER` | Mobile termination event reporting |
| `AT+EFUN` | Functionality for multiple SIM |
| `AT+MSMPD` | SIM hot plug enable/disable |
| `AT+CPWROFF` | Switch off MS |

---

## 4. Call control (Ch. 5)

| Command | Description |
|---------|-------------|
| `ATD` | Dial (data call) |
| `ATH` | Hang up |
| `AT+CUSD` | Unstructured Supplementary Service Data (USSD) |

---

## 5. Phone book & clock (Ch. 6–7)

| Command | Description |
|---------|-------------|
| `AT+CPBS` | Select phone book memory |
| `AT+CPBR` | Read phone book entries |
| `AT+CPBF` | Find phone book entries |
| `AT+CPBW` | Write phone book entry |
| `AT+CCLK` | Read/set system date and time |

---

## 6. SMS (Ch. 8)

| Command | Description |
|---------|-------------|
| `AT+CSCS` | Character set |
| `AT+CSMS` | Select message service |
| `AT+CPMS` | Preferred message storage |
| `AT+CMGF` | Message format (0=PDU, 1=text) |
| `AT+CSCA` | SMS centre address |
| `AT+CSMP` | Set SMS text mode parameters |
| `AT+CSDH` | Show SMS text mode parameters |
| `AT+CNMI` | New message indications |
| `AT+CNMA` | New message acknowledgement |
| `AT+CMGL` | List messages |
| `AT+CMGR` | Read message |
| `AT+CMSS` | Send message from storage |
| `AT+CMGW` | Write message to storage |
| `AT+CMGD` | Delete message |
| `AT+CGSMS` | Select service for MO SMS |
| `AT+CMGS` | Send message |
| `AT+CSAS` | Save SMS settings |
| `AT+CRES` | Restore SMS settings |
| `AT+CMMS` | More messages to send |
| `AT+CSCB` | Select cell broadcast messages |

---

## 7. SIM / security (Ch. 10)

| Command | Description |
|---------|-------------|
| `AT+CPIN` | PIN management (e.g. PIN enter) |
| `AT+CPWD` | Change password |
| `AT+CLCK` | Facility lock |
| `AT+CSIM` | Generic SIM access (transmit) |
| `AT+CRSM` | Restricted SIM access |

---

## 8. Network (Ch. 11)

| Command | Description |
|---------|-------------|
| `AT+CSQ` | Signal quality (RSSI) |
| `AT+CESQ` | Extended signal quality (5G: ss_rsrq, ss_rsrp, ss_sinr) |
| `AT+CREG` | Network registration status (2G/3G) |
| `AT+CGREG` | GPRS registration |
| `AT+CEREG` | EPS (LTE/5G) registration |
| `AT+COPS` | Operator selection |
| `AT+CPOL` | Preferred operator list |
| `AT+COPN` | Operator names |
| `AT+CEMODE` | RAT mode (e.g. LTE/5G preference) |
| `AT+PACSP` | RAT priority / URC |
| `AT+ERAT` | RAT (radio access technology) |
| `AT+EPBSEH` | (RAT / band related) |
| `AT+EPRATL` | (RAT list) |
| `AT+GTACT` | Active RAT / band info |
| `AT+GTCCINFO` | Cell / connection info |
| `AT+GTCAINFO` | Carrier aggregation info |

---

## 9. GPRS / PDP context (Ch. 12) – data connection

| Command | Description |
|---------|-------------|
| `AT+CGDCONT` | Define PDP context (set APN, etc.) |
| `AT+CGATT` | Packet domain attach/detach |
| `AT+CGACT` | PDP context activate/deactivate |
| `AT+CGPADDR` | Show PDP addresses (assigned IP) |
| `AT+CGEQREQ` | QoS profile (requested) |
| `AT+CGCMOD` | PDP context modify |
| `AT+CGDATA` | Enter data state |
| `AT+CGDSCONT` | Define secondary PDP context |
| `AT+CGCONTRDP` | PDP context read dynamic parameters (IP, DNS, MTU) |
| `AT+CGSCONTRDP` | Secondary context read dynamic parameters |
| `AT+CGTFTRDP` | (Context read dynamic parameters) |
| `AT+CSCON` | Connection state (e.g. 5G NR state) |
| `AT+EIAAPN` | (APN / interworking) |
| `AT+E5GOPT` | 5G option |
| `AT+EAPNACT` | APN activation |
| `AT+GTDNS` | Get/set DNS for context |

---

## 10. Hardware / platform (Ch. 13)

| Command | Description |
|---------|-------------|
| **`AT+GTUSBMODE`** | **USB mode (40 = RNDIS, 41 = extended)** |
| `AT+GTFMODE` | (Firmware / feature mode) |
| `AT+GTDIPCMODE` | Dual IPC mode |
| `AT+GTREGWRITE` | Register write (platform) |
| `AT+GTRXPATHEN` | Rx path enable |
| `AT+GTTXPWR` | Max TX power |
| `AT+GTSAR3DBFB` | 3 dB per CC power setback (SAR) |

---

## 11. Body SAR (Ch. 14)

| Command | Description |
|---------|-------------|
| `AT+BODYSAREN` | Enable/disable body SAR |
| `AT+BODYSARMODE` | Control mode |
| `AT+BODYSARRULE` | Regulatory rule |
| `AT+BODYSARTRIGIDX` | SAR table trigger index |
| `AT+BODYSARON` | Trigger SAR (SW mode) |
| `AT+BODYSARPROFILE` | SAR table index to modify |
| `AT+BODYSARCFG` | Max TX power limit (antenna combination) |
| `AT+BODYSARVER` | SAR NVM version |

---

## 12. TA-SAR (Ch. 15)

| Command | Description |
|---------|-------------|
| `AT+GTTASEN` | Enable/disable TA-SAR |
| `AT+GTTASMODE` | Control mode |
| `AT+GTTASRULE` | Regulatory rule |
| `AT+GTTASCTRL` | TA-SAR control parameters |
| `AT+GTTASTRIGIDX` | SAR table trigger index |
| `AT+GTTASON` | Trigger TA-SAR (SW mode) |
| `AT+GTTASPROFILE` | SAR table index to modify |
| `AT+GTTASCFG` | Max TX power limit (antenna combination) |
| `AT+GTTASCLEAR` | Clear TA-SAR config |
| `AT+GTTASSTATE` | Current TA-SAR state |
| `AT+GTTASVER` | SAR NVM version |
| `AT+GTTASPLMNEN` | PLMN switch TA-SAR algorithm |

---

## 13. Tunable antenna (Ch. 16)

| Command | Description |
|---------|-------------|
| `AT+GTANTTUNINGEN` | Enable/disable tunable antenna |
| `AT+GTANTTUNEMODE` | GPO/MIPI tuning mode |
| `AT+GTANTCTRLMODE` | SW/HW tuning control |
| `AT+GTANTPROFILE` | Effective profile (SW mode) |
| `AT+GTANTGPOCFG` | GPO tuning values |
| `AT+GTANTTUNERCFG` | Tuner register value |
| `AT+GTANTMIPICFG` | MIPI tuning value |

---

## 14. FCC lock (Ch. 17)

| Command | Description |
|---------|-------------|
| `AT+GTFCCLOCKMODE` | FCC lock/unlock mode |
| `AT+GTFCCLOCKSTATE` | FCC lock/unlock state |
| `AT+GTFCCEFFSTATUS` | Current FCC status |
| `AT+GTFCCLOCKGEN` | Modem challenge (FCC lock) |
| `AT+GTFCCLOCKVER` | FCC lock verify challenge |

---

## 15. Thermal (Ch. 18)

| Command | Description |
|---------|-------------|
| `AT+GTTHERMAL` | Fibocom thermal management on/off |
| `AT+GTTHMLEN` | Actuator feature enable |
| `AT+GTSENRDTEMP` | Thermal sensor current |
| `AT+GTZONERDMAXTEMP` | Thermal zone max temperature |
| `AT+GTACTRDLEVEL` | Actuator current level |
| `AT+GTTHMLTIMER` | Thermal time interval |
| `AT+GTTHMLTIMES` | Thermal management running time |
| `AT+GTZONEWRTHD` | Write zone threshold |
| `AT+GTZONERDTHD` | Read zone threshold |

---

## 16. GNSS (Ch. 19)

| Command | Description |
|---------|-------------|
| `AT+GTGPSSWITCH` | GNSS enable/disable |
| `AT+GTGPSPOWER` | GNSS power control |
| `AT+GTGPSDELAID` | Start mode (e.g. A-GPS) |

---

## 17. Error reporting (Ch. 20)

| Command | Description |
|---------|-------------|
| `AT+CMEE` | Mobile equipment error report (0/1/2) |
| `AT+CEER` | Extended error report |

---

## Commands used in this project

| Command | Use |
|---------|-----|
| `AT` | Connectivity test |
| `AT+CSQ` | Signal strength (e.g. status/healthcheck) |
| `AT+CGDCONT=1,"IP","<APN>"` | Set APN |
| `AT+CGDCONT?` | Read PDP context (APN) |
| `AT+CGACT=1,1` | Activate PDP context 1 |
| `AT+CGPADDR=1` | Get modem IP |
| `AT+CGCONTRDP=1` | Get DNS, MTU, connection params |
| `AT+GTUSBMODE?` | Check USB mode |
| `AT+GTUSBMODE=?` | List supported USB modes |
| `AT+GTUSBMODE=40` | Set RNDIS (Mode 40) |
| `AT+CFUN=1,1` | Full reset modem |

For full syntax, parameters, and response codes see **Fibocom_FM350_AT Commands User Manual_V2.10.pdf**.
