• AVR Freaks

Hot!Updating RN4871 Firmware

Author
bm28
New Member
  • Total Posts : 9
  • Reward points : 0
  • Joined: 2018/05/09 12:12:17
  • Location: 0
  • Status: offline
2019/04/23 14:14:58 (permalink)
0

Updating RN4871 Firmware

Hi,
 
I have been doing some research on how to update the firmware of the RN4871 and have come up with 2 possible approaches.
 
1.  There is some mention of over the air firmware updates, however, I wasn't able to definitively find out how to do this.  It would seem some level of intervention from Microchip would be needed to accomplish this.
2.  Have my host MCU which is connected to the RN4871 act as a USB to RS-232 device so that the software to update the RN4871 could be used to select the comport the MCU was assigned.  In this example the MCU would just act as a USB to Serial bridge between the computer and the RN4871.
 
Has anyone been able to achieve updating a RN4871 in their product and not on a pictail?
I'm thinking approach #2 outlined above is probably the most sound solution and has the highest chance of success, any thoughts?
 
Thanks,
 
Ben
#1

5 Replies Related Threads

    NKurzman
    A Guy on the Net
    • Total Posts : 17720
    • Reward points : 0
    • Joined: 2008/01/16 19:33:48
    • Location: 0
    • Status: offline
    Re: Updating RN4871 Firmware 2019/04/23 14:26:11 (permalink)
    0
    I put a separate connector on my pcb since the update is done via an EXE run on a PC.
    Additionally know some of the Bluetooth module control lines must be in a specific state to boot load it.
    #2
    bm28
    New Member
    • Total Posts : 9
    • Reward points : 0
    • Joined: 2018/05/09 12:12:17
    • Location: 0
    • Status: offline
    Re: Updating RN4871 Firmware 2019/04/24 06:42:12 (permalink)
    0
    Yes, I did see that P20 needs to be brought to ground at startup for the RN4871 to enter programming mode.
     
    NKurzman, do you have a host MCU which communicates to the RN4871 on your board, if so, do you use asynchronous serial to communicate to the RN4871?
     
    I want to use the EXE Roving Networks made to update the RN4871 and have my host MCU look like a serial port that the Roving Networks software can select.
     
    Then our MCU would just pass the serial data to and from the RN4871 and the computer acting as a bridge.
     
    Thanks,
     
    Ben
    #3
    NKurzman
    A Guy on the Net
    • Total Posts : 17720
    • Reward points : 0
    • Joined: 2008/01/16 19:33:48
    • Location: 0
    • Status: offline
    Re: Updating RN4871 Firmware 2019/04/24 06:50:39 (permalink)
    0
    During programming tristated rx and rx and had the PIC drive the control lines to the programming state. I used an MCP200 eval board Connected to my programming connector to program the module.
    I do not know enough about the programming protocol do you know if using that pic as a bridge would work. You would have to try it
    #4
    bm28
    New Member
    • Total Posts : 9
    • Reward points : 0
    • Joined: 2018/05/09 12:12:17
    • Location: 0
    • Status: offline
    Re: Updating RN4871 Firmware 2019/04/24 07:06:34 (permalink)
    0
    Great, well that sounds encouraging.  We won't have the ability to get access to the device, so we're going to try the USB to UART bridge approach and see how that goes.
     
    I once did a capture of the RS-232 communication from the Roving Networks EXE and compared it to the files used to update the RN4871.  There seemed a lot more going on than just the file data, so reverse engineering their protocol seemed not too feasible.
     
    I'll post our findings here once completed for better or worse.
     
    Ben
    #5
    emathana
    New Member
    • Total Posts : 4
    • Reward points : 0
    • Joined: 2019/05/21 07:02:25
    • Location: Cyprus
    • Status: offline
    Re: Updating RN4871 Firmware 2019/05/22 06:44:35 (permalink)
    0
    I have managed to use iseupdate exe directly by having my MCU act as a Serial to USB bridge.
    Couple of things to note
    - You really need a bit of buffer memory (4k) and use some sort of FIFO implemented since the USB bursts data blocks.
    - Utilize the UART MCU queue as much as possible.
     
    The MCU I used is a PIC32MM0256
     
    Manos
    #6
    Jump to:
    © 2019 APG vNext Commercial Version 4.5