In BGScript, I know this isn't an option as per here, but what about in the C SDK?
In my custom UART protocol, I could look for a special "uart dfu" command, and when that comes in, update UART configuration to BGAPI mode, and then complete Firmware update.
If the updated firmware sets up the UART as non BGAPI, would that cause any issues?
As a side question - what's the proper way to setup UART in C SDK for BGAPI?
in our latest release (Bluetooth SDK v2.4.2) the BGAPI commands are handled by the user application and not by the stack. This gives you more freedom to modify the handling of incoming/outgoing BGAPI packets.
Please create a "NCP target - Empty" Software Example project in Simplicity Studio, and take a look at the source code, especially ncp_usart.c.
You can configure the USART settings in ncp_usart_conf.h