# Monarch GMo2PS update over UART0 when in Console mode

**URL:** <https://forum.sequans.com/t/monarch-gmo2ps-update-over-uart0-when-in-console-mode/631>\
**Category:** LTE-M / NB-IoT (Monarch)\
**Tags:** uart\
**Created:** [September 21, 2026, 9:11am UTC](https://forum.sequans.com/t/monarch-gmo2ps-update-over-uart0-when-in-console-mode/631 "2026-09-21T09:11:32Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jeremy\_Warmbier](https://avatars.discourse-cdn.com/v4/letter/j/9dc877/32.png) [@Jeremy\_Warmbier](https://forum.sequans.com/u/Jeremy_Warmbier)\
**Post date:** [September 21, 2026, 9:11am UTC](https://forum.sequans.com/t/monarch-gmo2ps-update-over-uart0-when-in-console-mode/631/1 "2026-09-21T09:11:32Z")

</div>

I have a custom PCB with a GMo2SP that only maps UART0 through an FTDI UART to USB IC. I am using the PXL development SDK to write an application that runs on the GM02SP.

I want to have the ability to print some application state debug info to UART0 for viewing in a terminal on my laptop, so I experimented with configuring UART0 as a “console” vs. it’s default “at” behavior using:

`AT+SQNHWCFG="uart0", "enable", "rtscts", "115200", "8", "none", "1", "console"`

`AT^RESET`

After configuring UART0 to console, I am now unable to successfully program new firmware onto the GM02SP over UART.

I am thinking that perhaps I need to catch the device in the bootloader wiht a reset while requesting programming entry since maybe there is no way to issue an AT command on a UART channel configured as console.

I have tried the various recovery methods and CLI sfu commands listed in “Monarch-Monarch2-SoftwareUpgradeProcedure-Rev.9.pdf” without success.

The 2 things would like advice on is:

1. How do I recover this device so that I can program it.
2. What is the recommended method to print data from a running PXL application to UART0 to be able to report out the state of the applicaiton.

Any advice is greatly appreciated.

Jeremy

---

<div class="post-metadata">

**Author:** ![Xi\_liu](https://avatars.discourse-cdn.com/v4/letter/x/8e8cbc/32.png) [@Xi\_liu](https://forum.sequans.com/u/Xi_liu)\
**Post date:** [September 23, 2026, 2:31am UTC](https://forum.sequans.com/t/monarch-gmo2ps-update-over-uart0-when-in-console-mode/631/2 "2026-09-23T02:31:04Z")

</div>

Hi

The device only support one console, by default it is UART2. If you only set UART0 to console but not set UART2 to something like at, The configuration is conflict and UART0 will not work properly.

Do you have FFH pin test point on your custom PCB? If you are able to pull up it with 1.8V, we can provide a firmware to recover it.

For PXL application, it mainly print log to console port. If you want to use UART0 as console port, please configure UART2 to AT then you are safe.

---

<div class="post-metadata">

**Author:** ![Jeremy\_Warmbier](https://avatars.discourse-cdn.com/v4/letter/j/9dc877/32.png) [@Jeremy\_Warmbier](https://forum.sequans.com/u/Jeremy_Warmbier)\
**Post date:** [September 23, 2026, 7:54am UTC](https://forum.sequans.com/t/monarch-gmo2ps-update-over-uart0-when-in-console-mode/631/3 "2026-09-23T07:54:40Z")

</div>

I do have access to the FFH pin test point on the PCB. Do I pull it up to 1.8v at the same time power is applied to the Monarch module to place the module in a recovery mode and then use SFU to program the recovery binary that you porvide? Do I need to continually hold the FFH pin at 1.8v or just momentarily?

Thank you for the help.

---

<div class="post-metadata">

**Author:** ![Xi\_liu](https://avatars.discourse-cdn.com/v4/letter/x/8e8cbc/32.png) [@Xi\_liu](https://forum.sequans.com/u/Xi_liu)\
**Post date:** [September 24, 2026, 6:55am UTC](https://forum.sequans.com/t/monarch-gmo2ps-update-over-uart0-when-in-console-mode/631/4 "2026-09-24T06:55:02Z")

</div>

Hi

Thanks for confirming that you can reach the FFH test point. The recovery sequence is:

1. With the module powered off, pull FFH up to 1.8 V.
2. Power up or reset the module while FFH is held high, so it boots into FFH mode.
3. Load the FFH firmware to reset configuration to default.
4. Release FFH and power-cycle the module.

I’ll send the recovery firmware and exact SFU command line separately. But before that can you please confirm the module variant and the firmware version (by `ATI` and `ATI1`)

After recovery, set UART2 to AT before you set UART0 to console, so that only one console is configured.

---

<div class="post-metadata">

**Author:** ![Jeremy\_Warmbier](https://avatars.discourse-cdn.com/v4/letter/j/9dc877/32.png) [@Jeremy\_Warmbier](https://forum.sequans.com/u/Jeremy_Warmbier)\
**Post date:** [September 29, 2026, 4:44am UTC](https://forum.sequans.com/t/monarch-gmo2ps-update-over-uart0-when-in-console-mode/631/5 "2026-09-29T04:44:15Z")

</div>

I can get the monarch into a mode where it will respond OK to the AT command, but responds with ERROR for commands like ATI, ATI1, AT+BMOD?

There is also a mode of operation where the device will not resond to any UART AT command provided to it.

I am uncertain how to get it to respond positively to ATI nad ATI1. Do you have any suggestions?

---

<div class="post-metadata">

**Author:** ![Jeremy\_Warmbier](https://avatars.discourse-cdn.com/v4/letter/j/9dc877/32.png) [@Jeremy\_Warmbier](https://forum.sequans.com/u/Jeremy_Warmbier)\
**Post date:** [October 13, 2026, 8:50am UTC](https://forum.sequans.com/t/monarch-gmo2ps-update-over-uart0-when-in-console-mode/631/6 "2026-10-13T08:50:47Z")

</div>

Xi,

Thank you for the help up to this point. We will be revising the custom PCB design and I wanted to confirm a couple things:

1. If the design only has access to 1 UART and we are using a PXL application, we should be choosing UART1 to bettter support module configuration and programming during development and manufacturing.
2. It seems the easiest method for using an eSIM is to us a pre-provisioned eSIM for the PCB build. However, if using an unprovisioned eSIM, will it be possible to provision it with only access to UART1 or will access to a second UART be needed?

Your advice is greatly appreciated.

---

<div class="post-metadata">

**Author:** ![Xi\_liu](https://avatars.discourse-cdn.com/v4/letter/x/8e8cbc/32.png) [@Xi\_liu](https://forum.sequans.com/u/Xi_liu)\
**Post date:** [October 20, 2026, 9:32am UTC](https://forum.sequans.com/t/monarch-gmo2ps-update-over-uart0-when-in-console-mode/631/7 "2026-10-20T09:32:20Z")

</div>

Hi Jeremy,

1. The module supports a single console (UART2 by default). If your board only exposes one UART, it is best to keep it as the AT/programming port and avoid mapping it as console, so configuration and firmware updates always remain possible. UART1 as the AT port is a valid choice. PXL application can use two ways to print debug information:
  1. **Unsolicited output:** emit it as a URC, e.g. `+APPLOG: ...`.
  2. **On demand:** register a custom command such as `AT+APPLOG?` with `ATD_BEGIN_COMMAND`. Have it return a ring buffer that the app fills, using `atdWriteResponse()`. This is the safer option because it doesn’t interleave with other AT responses.

2. For eSIM provisioning, can you please clarify what tool will be used to provision it? If the tool only requires AT command access(most of the case) then it should be fine.
3. We strongly recommended to keep test points for UART2 for debug purpose.

Best regards, Xi
