Re: Is it possible to update RN4871 Firmware without PicTail Board?
You can update firmware in circuit using your host MCU and an externally available serial port if your hardware supports MCU connection to the following pins: UART_RX, UART_TX, /RST, MODE, and if possible control over VBAT to the RN487x. The basic steps are:
1. (Possibly optional) Have host MCU power down RN487x.
2. Assert reset (hold /RST low).
3. Set MODE pin to low for Update Mode.
4. (Optional step with step 1) Power up the RN487x.
4.1 Pause 10ms or so for power to stabilize.
5. Release from reset (/RST high).
6. Disable MCU interrupts
7. Enter tight loop acting as uart bridge
7.1 Reset watchdog timer
7.2 Check external serial port receive interrupt flag.
7.2.1 If set, read byte from receive register and write it to the transmit register of RN487x uart.
7.3 Check RN487x uart receive interrupt flag.
7.3.1 If set, read byte from receive register and write it to the transmit register of the external uart.
7.4 Check for exit condition. In my case a button press.
8. On exit from loop, enable MCU interrupts.
NOTE: The baud rate of the two uarts MUST be the same. I used 115200 since that is the default for the BT module.
Using isupdate.exe, configure it for the COM port and baud rate being used. Set flash/Embedded per the user guide. Press Connect. You should see something like this: Port connect -> COM1
Browse to you new firmware files. Note, the PATH to these files must be a simple path, no spaces, not too long, etc. Place you new firmware files in something like c:\temp\newFirmware. Select ALL 4 FILES in the browse selection window. Make sure 'Prepare: Load all images' is shown in the Images text box.
Press Update to do the update. You should see all for Banks get updated then End of Write.... is displayed.
Disconnect from the COM port and reboot your device and verify that the new firmware version is running.
Doing this worked for me allowing me to update the firmware on the RN4871 in circuit without direct access its pins. However, my MCU does have access to the required control pins.