-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
lte_send_atcmd_sync says inappropriate I/O for device #12309
Comments
Hi @gcmurray1990 thanks for bring this issue to our attention. About the warning you can fix using: %"PRIx32" @SPRESENSE @masayuki2009 any idea why this error is happening? |
@acassis Thank you for the quick reply. I understand that you all are busy, but is there anything I can do to help, or something I can clarify? |
@gcmurray1990 I never used that LTE API, so I'm not much useful here, however looking the function lte_send_atcmd_sync() at apps/lte/lapi/src/lapi_other.c is seems like it doesn't apply directly to a serial line (this is way you saw -25 error: NOTTY). Look at lapi_req() it communicates with some socket, that is really strange. I suspect this LTE is not a generic LTE libray, but something specific for Sony ALT1250. If that is the case I think we need to move apps/lte to apps/modem/alt1250. @SPRESENSE since you are the author of that library, could you please help here? |
Hi, @gcmurray1990 Please see document below to find a network stack structure in NuttX. |
With some changes, LTE lib works also with nrf91 (you just need to get rid of alt1250 specific code). |
@raiden00pl did you get it working? |
yes, but this lib is designed to work with socket interface, not a simple serial device. To make this work you have to implement usersock device with LTE_CMDID ioctls like here nuttx/arch/arm/src/nrf91/nrf91_modem_sock.c Line 479 in 07f0e0c
|
Nice! Thank you @raiden00pl !!! Maybe it could be a reference for @gcmurray1990 !!! |
Maybe we need some board profile example to nRF91, when I git grep CONFIG_LTE_LAPI it only returns |
@raiden00pl , @acassis , and @SPRESENSE Thank you all for being so helpful and looking into this. I appreciate everyone's time very much. |
You are welcome, if you face some issue integrating usrsocket to support SIM7600G-H please let us know |
I am using NuttX 12.2.1 on an stm32 nucleo f103rb with a SIM7600G-H to try to use an AT command (via the LTE library).
This is how I am using the AT command:
int customhello_main(int argc, char *argv[])
{
char respbuff[15];
int x = lte_send_atcmd_sync("AT\r", 3,
respbuff, 15,
15);
printf("%s", respbuff);
printf("%d",x);
return 0;
}
In summary I am just sending an AT command hoping to get “OK”, but instead am getting the error code -25 (inappropriate i/o for device). I tried finding more info on this error but it is very general.
How do I set up IO appropriately for AT commands and avoid these issues?
More details:
For configuration: I have GPIO debug features enabled. Under stm32 peripheral support, I have USART2 enabled for the SIM . Under I/O I have FILE stream enabled. Under networking, I have late driver init, udp, and tcp enabled. Under LTE I have deprecated API enabled.
I have tried using USART1 instead of USART2, but I am getting the same error.
Also, when running make, I am seeing this:
CC: chip/stm32_dumpgpio.c In file included from chip/stm32_dumpgpio.c:34:
chip/stm32_dumpgpio.c: In function 'stm32_dumpgpio':
chip/stm32_dumpgpio.c:110:9: warning: format '%x' expects argument of type 'unsigned int', but argument 4 has type 'uint32_t' {aka 'long unsigned int'} [-Wformat=]
110 | _info("GPIO%c pinset: %08x base: %08x -- %s\n",
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
111 | g_portchar[port], pinset, base, msg);
| ~~~~~~
| |
| uint32_t {aka long unsigned int}
chip/stm32_dumpgpio.c:110:28: note: format string is defined here
110 | _info("GPIO%c pinset: %08x base: %08x -- %s\n",
| ~~~^
| |
| unsigned int
| %08lx
The text was updated successfully, but these errors were encountered: