In Field Update - 2.0.8 to 2.1.3

HI Team,
I’m trying to figure out how I’m going to use the IFU on a SC20260D-based product we have in the field. I inherited this product from another engineer and I am having trouble getting the IFU to work updating my application with older firmware version to the latest - it will update the firmware fine then it will wipe the application without installing the new TCA and I have to download it manually. Does this have to do with 2.1.3 changing the way that the updater works?

Here is my code that I’m using to fire the IFU:

     try{
                                updater.AuthenticateFirmware(out var versionFw);
                                try
                                {
                                    updater.AuthenticateApplication(out var versionApp);
                                    // create updating screen and flush
                                    scrn.FillRectangle(DataDefs.LacoBckrnd, 0, 0, 800, 480);
                                    scrn.DrawString(RetString("updatesoftwaremsg"), DataDefs.fontArial_36, DataDefs.LacoDataFont, 220, 200);
                                    scrn.DrawString(RetString("wait99"), DataDefs.fontArial_36, DataDefs.LacoDataFont, 250, 250);
                                    scrn.Flush();
                                    updater.FlashAndReset();  // never returns
                                }
                                catch
                                {
                                    //Application authentication failed.
                                    Stat.UpdateErrorcode = 4;
                                    Stat.UpdateSoftware = false;
                                }

                            }
                            catch
                            {
                                //Firmware authentication failed.
                                Stat.UpdateErrorcode = 3;
                                Stat.UpdateSoftware = false;
                            }

Am I missing a step here? What can I do to make sure that when our next software release comes out our customers will be able to update properly?

If this is expected behavior, that’s fine - it’s not clear, and I want to be able to get a game plan up and running for when this next software update gets pushed out to customers in a couple months.

No. Ifu allows you to update firmware, application or both. However, we have reworked ifu in 2.1 but I do not think it broke compatibility on internal flash. I think only if you use external flash it got broken.

We are trying our best not to break compatibility but this was absolutely necessary to rework ifu.

I highly recommend starting with 2.1 as it should be locked for good. Try updating your application using 2.1 and let us know if this face any issues.

Oh here is an important part that I think you are facing. The firmware and the application need to be compatible. If you update the firmware but not the application then the firmware will refuse to load your application since it is incompatible. I think you are assuming the application is deleted but it is there. Simply the firmware refused to load it.

Everything leaving the shop now will have 2.1 on it, however, all of our units in the field are currently on 2.0.8 and I need to figure out how to update them to 2.1.

We are using the external flash module so unfortunately we may be SOL.

Also - I am providing the prerequisite firmware with the *.tca file - is my code properly using both, or is it just updating the firmware and quitting? When I’m trying these updates it has both a 2.1.3 based application and the 2.1.3 firmware loaded onto the USB drive.

Ok then your problem is related to the use of external flash I am guessing. If this is extremely critical we may be able to do a hack for you but a manual update maybe much easier and more economical.

Hack would be nice, and we have a couple months, but if push comes to shove I feel bad asking for that. I don’t doubt most of our customers to be able to do this on their own with a sheet of instructions and a download link to the config tool, but not all of our customers are quite as savvy. However, it’'s very possible that the powers that be on my end would really sit on me to make it work, and in turn I on you.

Out of curiousity, the firmware seems to update just fine, and retain the settings for external flash and extended heap - is this what you are referring to?

No, the application size on external flash was reduced

So I’ve been told that we really can’t work with a manual update on this one. How much beer would I have to buy you guys to make a hack happen?

Please email support with all version numbers and details so we can investigate for you. There will be some cost so please consider a manual update.

After discussing with the team, they suggest trying this:

  1. Make a new temp application 2.1 that does not use external flash but does implement IFU, let’s call it TempApp
  2. Send your TempApp through IFU to your 2.0 device and update
  3. Your device is now running 2.1 firmware but does not have the correct app.
  4. Send your final application through IFU and you now can use external flash

Please let us know if this works.

Will do. It may take a day or two for me to get around to making a basic app that will do it, but I’ll let you know as soon as i know if it works.

1 Like

UPDATE:

Gus’ suggestion does work. If you’re using 2.0 and need IFU to get to 2.1 with external flash, this solution will get you there.

2 Likes