# \[SL8082T\] UART Interface / WAKE\_N, FW R7.50

**URL:** <https://forum.sierrawireless.com/t/sl8082t-uart-interface-wake-n-fw-r7-50/6971>\
**Category:** Legacy AirPrime modules\
**Created:** [January 20, 2014, 8:29am UTC](https://forum.sierrawireless.com/t/sl8082t-uart-interface-wake-n-fw-r7-50/6971 "2014-01-20T08:29:32Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![sbechstedt](https://avatars.discourse-cdn.com/v4/letter/s/9f8e36/32.png) [@sbechstedt](https://forum.sierrawireless.com/u/sbechstedt)\
**Post date:** [January 20, 2014, 8:29am UTC](https://forum.sierrawireless.com/t/sl8082t-uart-interface-wake-n-fw-r7-50/6971/1 "2014-01-20T08:29:32Z")

</div>

Hi all,

i am evaluating the SL8082T as a replacement for our old GSM module. Since our design is quite old, i have to connect the module via the UART interface to the host.

Now i have trouble getting this setup to work. According to the document “4111992 Product Technical Specification & Customer Design Guidelines for AirPrime SL808x” it should be possible to switch the UART with the command AT+WHCNF to an 8-Wire Serial Interface which uses the WAKE\_N pin as hardware RING signal. But with AT+WHCNF i can only set FIFO buffer sizes… it seems to me the meaning of this command has completely changed. When i measure the state of the WAKE\_N pin it always sticks to 0V (GND, active, with pull up to 1V8).

Is there anything i can do to get the WAKE\_N pin to work as RING signal with the SL8082T?

Thanks,  
Stephan

---

<div class="post-metadata">

**Author:** ![ado1](https://avatars.discourse-cdn.com/v4/letter/a/4af34b/32.png) [@ado1](https://forum.sierrawireless.com/u/ado1)\
**Post date:** [January 20, 2014, 8:55am UTC](https://forum.sierrawireless.com/t/sl8082t-uart-interface-wake-n-fw-r7-50/6971/2 "2014-01-20T08:55:20Z")

</div>

Hi Stephan,

For now, the SL8082T is only available with a 4-wire uart (but maybe available on a SL8082).

On this product, Be careful to use the OpenAT documentation (the last one looks to be “AT commands Interace Guide for firmware 7.52”), and not the documentation for SL808x (both module doesn’t use the same AT commands).

Thanks.

---

<div class="post-metadata">

**Author:** ![sbechstedt](https://avatars.discourse-cdn.com/v4/letter/s/9f8e36/32.png) [@sbechstedt](https://forum.sierrawireless.com/u/sbechstedt)\
**Post date:** [January 20, 2014, 9:48am UTC](https://forum.sierrawireless.com/t/sl8082t-uart-interface-wake-n-fw-r7-50/6971/3 "2014-01-20T09:48:01Z")

</div>

Thank you for your info. The datasheet for the SL Series is somehow confusing, since it does not make a difference between the original and the T variant.

Guess i have to create an Open AT application to simulate the hardware RING signal over a GPIO pin.

Stephan

---

<div class="post-metadata">

**Author:** ![sbechstedt](https://avatars.discourse-cdn.com/v4/letter/s/9f8e36/32.png) [@sbechstedt](https://forum.sierrawireless.com/u/sbechstedt)\
**Post date:** [January 20, 2014, 5:24pm UTC](https://forum.sierrawireless.com/t/sl8082t-uart-interface-wake-n-fw-r7-50/6971/4 "2014-01-20T17:24:32Z")

</div>

Hi all,

i spent my day looking for a workaround for my problem with the hardware RING problem.

Now i can proudly presend my Solution:

```auto
static adl_ioDefs_t GpioConfig = ADL_IO_GPIO | 1 | ADL_IO_LEV_HIGH | ADL_IO_DIR_OUT;
static s32 GpioHandle;

void Timerhdl(u8 ID, void *Context)
{
    TRACE (( 1, "Timer handler" ));

    adl_ioWriteSingle(GpioHandle, &GpioConfig, TRUE);
}

bool UnSohdl(adl_atUnsolicited_t *UnSo)
{
    TRACE (( 1, "RING handler" ));

    adl_tmrSubscribe(FALSE, 1, ADL_TMR_TYPE_100MS, Timerhdl);

    adl_ioWriteSingle(GpioHandle, &GpioConfig, FALSE);

	return TRUE;
}

void main_task ( void )
{
	ascii *UnSostr = adl_strGetResponse(ADL_STR_CRING);

	if (UnSostr != NULL) {
		GpioHandle = adl_ioSubscribe(1, &GpioConfig, ADL_TMR_TYPE_TICK, 0, 0);
		if (GpioHandle >= 0) {
			adl_ioWriteSingle(GpioHandle, &GpioConfig, TRUE);

			TRACE((1, "Registering Handler to URC +CRING"));
			adl_atUnSoSubscribe(UnSostr, UnSohdl);
		} else {
			TRACE((1, "Could not subscribe to GPIO1: %ld", GpioHandle));
			if (GpioHandle == ADL_RET_ERR_DONE) {
				TRACE((1, "Error: %ld", (GpioConfig & ADL_IO_ERR_MSK) >> ADL_IO_ERR_POS));
			}
		}

		adl_memRelease(UnSostr);
	} else {
		TRACE((1, "Could not get response ADL_STR_CRING"));
	}
}
```

The given code registers a callback handler for the unsolicited result code “+CRING”. In the callback the signal GPIO1 is set to 0 (active state) and a one-shot timer of about 100ms is started. In the timer handler the GPIO1 is finally set back to 1 (inactive state).

Stephan
