LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Dynamically put cRIO Chassis & Cards in FPGA Mode

Solved!
Go to solution

Hello,

 

I have an .EXE which deploys a .rtexe to cRIOs, that part works fine.

 

However, whenever a cRIO upgrades to a new LabVIEW version, you must add it to a project, add the FPGA, and then change the chassis to FPGA mode.

 

Additionally, I have to change the C series cards to FPGA mode when they first are purchased.


I would like to automate this process.

  • How can you programmatically upgrade the cRIO LabVIEW version? (Without using NI MAX on the user end)
  • How can you change the chassis to FPGA mode programmatically?
  • How can you change the C series cards to FPGA mode?
0 Kudos
Message 1 of 13
(1,164 Views)
Solution
Accepted by topic author Gryffin

The comissioning of multiple cRIO with a set baseline is best done by using an image. Install one cRIO as you want, make an image of it and restore that image to all others. This can be done from NI Max or through the use of the NI System Control API. And if you want to spend extra money on it in exchange for ease of use you could use NI System Link. This among other things offers you a way to manage all your NI systems across the network.

 

There is however no documented way to change a chassis from Scan Mode to FPGA mode or back through an API call. We tried that and got even NI support involved but we did not get a solution for that.

Rolf Kalbermatter
My Blog
Message 2 of 13
(1,117 Views)

I have to deploy to a cRIO-9040, a cRIO-9034, and a cRIO-9048.

 

If I make an image of the 9040, would it work for the other two? Or do I have to create 3 images?

0 Kudos
Message 3 of 13
(1,077 Views)

@Gryffin wrote:

I have to deploy to a cRIO-9040, a cRIO-9034, and a cRIO-9048.

 

If I make an image of the 9040, would it work for the other two? Or do I have to create 3 images?


Not sure about 9043 and 9048 but 904x and 903x definitely need different images!

Rolf Kalbermatter
My Blog
0 Kudos
Message 4 of 13
(1,073 Views)

Does the system image also update the firmware or must I do that seperately?

0 Kudos
Message 5 of 13
(1,067 Views)

@Gryffin wrote:

Does the system image also update the firmware or must I do that seperately?


Not sure about the Get/Set System Image of the NI System Configuration API, but I am sure that Replication and Deployment Utility also updates the firmware (.lvbitx). I think you need to create a separate image for different model of cRIO.

-------------------------------------------------------
Control Lead | Intelline Inc
0 Kudos
Message 6 of 13
(1,059 Views)

For the 904x you can set the mode programmatically, there is an example for it. See also here https://forums.ni.com/t5/Real-Time-Measurement-and/Chassis-Programming-Mode-Where-is-setting-stored/...

0 Kudos
Message 7 of 13
(1,054 Views)

The term firmware is a little unspecific in this case. There is the actual controller firmware, which is basically the bootloader (BIOS/UEFI in PC speak) and the possible FPGA bitfile. Both can be considered firmware in that sense but the bootloader is NI provided (basically U-Boot, an embedded Linux bootloader similar to grub) while the FPGA lvbitx is provided by the user.

 

I'm not sure the image actually replaces the U-Boot loader at all. That loader is basically needed to install the image, so if the image would replace the U-Boot loader too, that would be almost a Münchhausen feat.

 

Good find about the 904x feature support. I forgot about that. When we looked at that, the customer was considering using 904x but had dozen of 903x deployed already. So that did not help. In the meantime the 904x are actually cheaper than the 903x for quite some time already, so the customer in question would only order the newer 904x chassis anymore. Might have to revisit that section of our project.

Rolf Kalbermatter
My Blog
0 Kudos
Message 8 of 13
(1,050 Views)

So for the 9034, there is no way to programmatically change it to FPGA mode?

0 Kudos
Message 9 of 13
(1,005 Views)

I have decided to make System Images of the various models of cRIO to install the necessary software and I have made a utility to automatically update the firmware (U-Boot Loader, not .lvbitx, I dynamically deploy those) to the latest version.

 

I am having issues with the "Create System Image File.vi".

 

To even run this VI, you must run it on an external PC and the cRIO must be in Install Mode.

Then, you must specify a path (on the cRIO) to save the image to.

 

However, I cannot seem to specify a path on the cRIO which allows the creation of the ZIP file.

You must specify the file path from Windows, thus, I cannot specify a path like "/tmp/sysImage.zip", I can only enter a path in the Windows format like: "C:\sysImage.zip".

 

Can someone please give me an example of a path (Destination File) to give this VI which allows me to save the image?

 

Gryffin_0-1682526404897.png

 

 

 

0 Kudos
Message 10 of 13
(1,002 Views)