Firmware update using TFTP
IO Modules
No replies yet. Be the first to reply.
Join the discussion.
IO Modules
No replies yet. Be the first to reply.
Join the discussion.
Share projects and connect with makers.
Joined before the site update? first.
New to WIZnet Makers?
We sent a verification link to your address. Open it to activate your account, then log in.
Accounts from this email provider are reviewed by an administrator after verification. Approval usually takes one business day.
Already have an account?
Enter your email address. If it belongs to an account, we'll send a link to set a new password. Members who joined before the site update use this to set their password.
If an account uses that address, we sent a link to set a new password. The link works once and expires in 30 minutes.
Know your password?
Need an account?
RE: Firmware update using TFTP
by mason WIZnet ·
Hi, I’m Mason for WIZnet.
What do you use a complier?
If your compiler does not output the .bin file, you have to convert .hex to a .bin file.
I recommend Segger’s JFlash
Execute JFlash. And open your .hex file. And click “File → the save data file as”.
You can change the file format to bin.
Thank you.
RE: RE: Firmware update using TFTP
by jtg ·
Thanks for your answer, Mason, that’s much appreciated.
I compile with Keil, and after your advice, I have now used J-Flash to convert the output hex-file to .bin.
I am able to transfer the .bin file to the Development Kit, but i get the following log after the transfer is complete:
0> :INFO:In nrf_bootloader_init
0> :INFO:In real nrf_dfu_init
0> :INFO:running nrf_dfu_settings_init
0> :INFO:Enter nrf_dfu_continue
0> :INFO:Single: Invalid bank
0> :INFO:Enter nrf_dfu_app_is_valid
0> :INFO:Return false in valid app check
0> :INFO:After real nrf_dfu_init
0> :INFO:After nrf_bootloader_init
0> :INFO:Running nrf_bootloader_app_start with address: 0x0001f000
0> :INFO:Disabling interrupts
0> :INFO:Setting SD vector table base: 0x0001f000
And then the application never starts, and it looks like the application is not valid for some reason: “INFO:Return false in valid app check”
The applications I have tried, are from SDK 12.2.
One of them is found in the DFU examples: examples\dfu\ble_dfu_send_hex\test_images_update_nrf52
The other is the Blinky example: examples\ble_peripheral\experimental_ble_app_blinky
None of them works when i convert them to .bin and transfer them via TFTP.
It would be great if an example .bin file that works could be provided here or in the GitHub example so it would be possible to confirm that the setup is correct.
RE: Firmware update using TFTP
by mason WIZnet ·
Hi,
I attached “firmware.bin”.
The firmware.bin file is SDK 12.2 ble_app_hrs project.
Please test the bin file.
firmware.bin (31.1 KB)
If an error occurs, Please follow the steps below.
Thank you.
RE: RE: Firmware update using TFTP
by jtg ·
Thanks for your help, Mason, it works now.
The error I did, was using SoftDevice v3.0.0 that was provided with SDK 12.2. Switching to SoftDevice v3.1.0 solved the problem.
Thank you.
RE: Firmware update using TFTP
by jtg ·
I have one extra question: Is there a similar example for nRF52840 or any plans about making one?
RE: Firmware update using TFTP
by mason WIZnet ·
I am glad that you have successfully tested it.
There is no additional plan yet. But if you tell me other example you want, We will review it.
RE: Firmware update using TFTP
by jtg ·
It would be really great with a similar example to the one you have already created, but for nRF52840 using SDK 14.2.
I have been able to establish connection from a nRF52840 and WIZ5500io moduoe to the TFTP server and seemingly download the file, but application is not running. When reading the memory address where the application should be placed it only contains the letters “meout 5” followed by zeros, which suggests the connection timeouts and not actually downloads anything. An example for how to do this properly would be much appreciated.
Update: Using Wireshark I’m able to see that all data is transferred and ACK’ed as it should. The problem must be on the firmware side when copying the data to the application region.