Chris Litwin 3 years ago in IQANrun updated by Gustav Widén (System support) 3 years ago 11

Is there any way to speed up the MD4 firmware update over CAN?

You can greatly speed up the time it takes to get from the MD4 by having the right firmware in the IQANrun firmware cache. 

But for sending an update, there is not much you can do. Make sure the Diagnostics bus is not shared with any non-IQAN modules is a good step, as other CAN nodes will usually continue to send messages and eat up precious bandwith. But this is how most systems look already today. 

I think that to really improve it, we'd need to make an update to get increased bitrate on the bus, from the 250 kbps that the diagnostics bus is at today. 


So if I send the project over a higher speed bus it will be faster? For example a 500kbps J1939 bus or a high speed expansion bus?



Sorry Chris, I realize my reply was rather confusing mixing different topics. 

The Diagnostics bus is currently fixed to 250 kbps. Robust and predicable, but not very fast. 

It is not possible to connect with IQANdesign/IQANrun to a bus that runs a different speed than 250 kbps.

The IQAN hardware support higher bitrates (500 kbps on MD4), but we'd need to introduce new functionality in the software tools to have the possibility to use this for faster update times over CAN. 

I have a similar questionm.  I want to use IQANrun for programming (sending) project file to a multi-master system (2x MD4-7 and 3x MC43).  They will be green modules.  I dont want to give IQANdesign to the technicians, so would like to use IQANrun (security reasons and cost).  But, given these are green units, the download time is really long as its the FW and application to be installed. 

On oanther application, its taking me 25-30mins to program 1x MC41 module, so when we go to the Multi Master system, this will take significant time.

I dont understand your reference above to cache'ing the FW in IQANrun?  I thought the application file from IQANdesign (*.idax) already contained the FW and application together?  Why is the FW not used by IQANrun.

Perhaps I am not fully understading the process?  Can you add some clarity please.



That is interesting Julian, are you saying it takes you 25-30 minutes to update one single IQAN-MC41 via CAN?? 

The MC4x firmware is only about 300 kB and updating just one MC41 should take only about a minute or so. 

Updating an MD4 via CAN is another story, that does take significant amount of time whenever there is a firmware update. 

Even with the smallest version update possible it is > 10 MB that has to be sent. 

The MD4 you connect to over Ethernet will be fast, but the other MD4 will have its firmware updated via CAN.

I think that for a system with two MD4 displays, it is well worth the time to connect to both of them individually over Ethernet. First to make the firmware update in one of them, and then plug in to the other with all modules connected on CAN for the complete update. 

Sorry about the confusing reference to IQANrun firmware cache, what I was referring to was the get operation, like get clone. Project files ( .idax ) and clone files (.ircx) contain both application and firmware. When getting a clone file, it helps a lot if IQANrun already has the specific firmware version in its cache on the PC, then it is only the application that has to be retrieved. When you get clones or open project- or clone files in IQANrun, it automatically adds the firmware to the cache, making subsequent get clone operations much leaner. 

Thanks Gustav...

To answer the MC41 question:  Yes, it takes 25-30 full minutes to send a project to the MC41 (when its green).  The dowload starts out quite fast, then stops for ages,  and progresses really slow.  Finally after 20-25 mins it starts again and completes.  I have done this a few times now, and the same result.  I used IQANDesign on one MC41 unit, and it was much faster.  But IQANrun is very slow.  I use a KVASER CAN-USB connector and a mini harness direct to the CANA port oft he MC41...which is configured as the Diagnostics chanell in the project.  Are there any requirements in terms of termination resistors?  I have 1x 120ohm int he circuit...should I be using 2x?  Are there any options I have not ticked anywhere?  

The 2x MD4-7 displays are 75m apart..each has its own Ethernet port to use.. but the are all connected as Multi-master system over this distance.  I am unsure how to donwload to only 1x master module and not all.  Are there more connection and download options that can be chosen to limit download to only the connected MD4?



I struggle to find any reason as to why IQANrun and IQANdesign would take different time to send. 

Julian, are you using the same version (e.g. 6.04) on IQANrun and IQANdesign? 

The part of the software that interface with the CAN card is normally the same, but if you have different versions on IQANdesign and IQANrun, then they can differ. 

Regarding termination, you need one termination at each end of the CAN bus. 

All IQAN master have a sofware controlled termination, which is default set to Yes on all CAN buses. (see master module properties in IQANdesign)

So if you have your 120 ohm external termination at the CAN card, and have the MC41 CAN-A set to Terminate Yes, you have the two terminations you need. 

For my suggestion about Ethernet, there is no software option to not route to the other modules after the MD4 you are connected to has been updated. What I usually do is that I only power up one MD4 at a time (which is easy on the bench but tricker in the machine where you need to access the fuse box). Or I just manually abort after updating the first MD4. 

I struggle as well...

Same version of IQANrun and IQANdesign..both at 6.04

If the MC41 is green from factory (out of the box), does this still have a default termination resistor enabled in the installed FW?  The problem is only with green module.  

I am using KVASER CAN-USB lefe lite V2.  Are there any settings on this aaptor that effect this connection speed?  It appears to be all automatically configured in any case.

I may be able to control what modules power up on the MultiMaster bus.  So maybe I can use this process to isolate half the system and connect over ethernet to one MD4-7 and MC43 group.  Then disconnect and power on the remaining modules and connect to other MD4  over ethernet and program the remaining.  



Yes, a module straight from production that does not yet have an application in it will default terminate on all CAN buses. 

One difference with a brand new module is that you almost always make a firmware update. For an MD4 there are several MB that needs to be sent, but in the case of a single MC41 the firmware update is small. 

For the question about adapter settings, the bit rate is set automatically by IQANdesign/IQANrun. 

With (current) versions of IQANdesign/IQANrun, the bitrate for the diagnostics is 250 kbps.

Actually - Can I also ask.  Would there be any influence from other J1939 devices being active on the other CAN channel(s) (ie channel B) during programming that will affect the module programming?   

Is there a requirement to always disable other devices from the other CAN channels when programming these modules?



If other nodes are on the Diagnostics bus, that will for sure reduce the available bandwith. It is highly recommended to not share the diagnostics bus, and even a warning in IQANdesign about this. 

Traffic on other buses than the diagnostics bus should only have a very limited impact on the module being updated, we have never seen any reason to recommend switching off other modules. But as a troubleshooting step, it is worth testing. And we have recently found a problem with J1939 PDU1 messages addressed to the IQAN master, solved in IQANdesign 6.05.