LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

LINX + Startup Executable

Solved!
Go to solution

I am new to the Makerhub/LINX concept and the moderators on the LabviewMakerhub.com forum either have decided that my question is too basic to post or no one is looking at new posts at all.

Anyways

I wanted to confirm one thing: if I want to use startup executable (Local I/O with startup executable according to LINX architecture FAQ) I need an unit that supports an OS. Is that correct?

Two examples of platforms provided on the website are BeagleBone or Raspberry Pi. Are there any other that can be used in startup executable mode?

 

regards

0 Kudos
Message 1 of 9
(3,783 Views)

Hello Niklasson,

I am sorry to hear you are stuck with your question for some time already.

 

Maybe I can provide some insight, however I am not sure if I understand your question fully.

In general, your hardware indeed needs to run an OS; most (all?) are Linux-based. Every OS I know can launch a third-party application (here: your LabVIEW application) on system start-up. Main question is if your development environment can set up such an automatic startup automated, or if you have to do it manually.

 


Two examples of platforms provided on the website are BeagleBone or Raspberry Pi. Are there any other that can be used in startup executable mode?


Which webpage exactly are you referring to? Raspberry is a piece of hardware that support different OS's, e.g. Raspbian, Ubuntu Mate, CentOS, gentoo, Kali, OpenWRT, OctoPi etc. Therefore I wonder if that sentence you quoted means to refer to default Raspbian only.


if I want to use startup executable [...] I need an unit that supports an OS. Is that correct?


This is the part I don't fully understand. My answer would be "yes, you need an OS on your unit", but I am sure that's not what you wanted to know. Could you please help me to understand by rephrasing your question?

 


Ingo – LabVIEW 2013, 2014, 2015, 2016, 2017, 2018, NXG 2.0, 2.1, 3.0
CLADMSD
0 Kudos
Message 2 of 9
(3,748 Views)

Hello ikaiser,

 

Thanks for the reply.

I was refering to the LINX website: LINX Faq where they describe how the different platforms can be used with LINX.

The thing I was focusing on was that hardware platforms mentioned (Raspberry/BeagleBone) actually support an OS, because as far as I understand if you don't have an OS on a board you can only use it as I/O and you need an external PC/mobile (or something else) that runs the actual code (executable) and handles the communication with sensors.

 

So I guess the answer I was looking for was actually "yes, you need an OS on your unit" but that is where I start to speculate about other architectures and how one can execute code (LabView code in particular) on a micro-controllers/FPGA processors etc.

I am interested if anyone has experience of using other hardware platforms like for example TI micro-controllers.

 

Main question is if your development environment can set up such an automatic startup automated, or if you have to do it manually.

How do you understand "manually" in this context? The host starting a program on a target?

 

0 Kudos
Message 3 of 9
(3,726 Views)

Hi,

Thanks for your elaborate reply. The page you linked helps a lot. You are right. Using the LINX firmware (technically now this is the OS), you can use the target as a "dumb sensor" only. All your code will be executed on e.g. an external PC. With a "real" OS like Linux in place, the target itself can execute your code.

It seems that the two modes LINX implements are closely related to the normal LabVIEW workflow. You can develop on your PC, click "Run", and have the code executed on the target interactively ("Local I/O"). This helps a lot during development, as you have a Front Panel showing all information on your PC, you can step through your code, debug etc. (Note: In normal LabVIEW, you can even start code, disconnect your PC, and reconnect to the target later-on.) When you are done with development, you can "compile" the code, transfer it to the target as a "Startup exe", and have the target execute your code whenever it is powered ("Local I/O with a Startup Executable").

 


Main question is if your development environment can set up such an automatic startup automated, or if you have to do it manually.

How do you understand "manually" in this context? The host starting a program on a target?


I meant the deployment process. You compile the startup exe in LabVIEW. Automatical would be: It copies the exe to the target, sets it up as startup, and you are done. Manual would be: You compile the exe, copy it to the target (via FTP, USB drive, SSH...), and then configure a startup script in Linux to execute it when the device boots.

The last sentence on the page you linked states that it can do automatically: "Creation and deployment of the startup app is controlled from the development PC."

 

 

My conclusion, considering the LINX FAQ you linked is, it seems like the workflow resembles the normal LabVIEW / cRIO workflow very closely.


Ingo – LabVIEW 2013, 2014, 2015, 2016, 2017, 2018, NXG 2.0, 2.1, 3.0
CLADMSD
0 Kudos
Message 4 of 9
(3,719 Views)

What are you experiences ikaiser with RaspberryPi/BeagleBone or other boards? Have you developed LabView applications for them?

0 Kudos
Message 5 of 9
(3,704 Views)

Not sure if you came across this page, but it may clear some things up:

https://www.labviewmakerhub.com/doku.php?id=learn:libraries:linx:misc:linx-internals

 

My experience is with the Raspberry Pi 3b+.  Was able to get a compiled startup exe deployed and running successfully to this target, which sounds like what you are trying to do.  To the question about deploying to targets other than RBP or BB, you would have to figure out how to run the "LV chroot" that contains the special LV 2014 run-time engine.  This is probably possible for targets running a Linux-based OS, but probably not easy.

 

Important takeaways:

-Raspberry Pi 2b+ minimum, I don't know about BB

-LV 2014 only for developing, compiling, deploying startup exe to Raspberry Pi, NI did not carry support forward to new version of LabVIEW IDE.

-Will need to connect Raspberry Pi to the internet to pull the "LV chroot" and its dependencies to your target from online feeds; otherwise, you will need to manually download and install these components

0 Kudos
Message 6 of 9
(3,696 Views)

Thanks for the link. Yes, I have seen it and it was that website that made me start this thread 🙂

 

What OS did you have on Raspberry? I assume that the standard is Raspbian, but I am wondering whether the LINX target configuration work regardless which OS one has (for example Windows 10 IoT?).

0 Kudos
Message 7 of 9
(3,689 Views)
Solution
Accepted by topic author Niklasson
What are you experiences ikaiser with RaspberryPi/BeagleBone or other boards? 

Only Raspberrys, 3B and 3B+. All headless with Raspbian. Mainly for networking stuff, firewall, DNS filter, VPN server, nagios.

 

Have you developed LabView applications for them?

Never.

 


What OS did you have on Raspberry? I assume that the standard is Raspbian, but I am wondering whether the LINX target configuration work regardless which OS one has (for example Windows 10 IoT?).


From How does the LINX Target Configuration dialog work?: "The Target Configuration dialog connects to a BeagleBone Black or Raspberry Pi 2/3 via SSH and then runs a series of commands just as you might do through a SSH terminal." Sounds like this works only on Linux-based OS's. (I know that newer versions of Windows 10 include an SSH server, but other information shows it will not work)

 

From How do I start/stop the LabVIEW run-time daemon on a BBB/RPi2?: "[...] If you SSH into the target you can also run sudo systemctl stop labview.service to stop the LabVIEW run-time and sudo systemctl start labview.service to start the LabVIEW run-time." These commands are clearly Linux, not Windows.

 

Also What is a chroot? Why does LabVIEW run within a chroot instead of as a normal Linux application on t...: "The LabVIEW run-time engine is compiled with options that make it incompatible with the system libraries that are included in the default operating system images used with the BBB and RPi2/3, so the chroot allows us to include a set of system libraries for LabVIEW to use that are compiled with options that are compatible." Chroot is Linux as well, definitely no Windows-compatible LabVIEW executables here.

 


Ingo – LabVIEW 2013, 2014, 2015, 2016, 2017, 2018, NXG 2.0, 2.1, 3.0
CLADMSD
0 Kudos
Message 8 of 9
(3,667 Views)

Yes, that looks like Linux alright.Thanks for the clarification, I've missed that part.

0 Kudos
Message 9 of 9
(3,650 Views)