Jump to content

Deploying LabVIEW Code to Arduinos

Filipe Altoe

Recommended Posts

Hi ViSci;


I may take you up on your offer of becoming a beta tester. Not sure exactly when we will reach that stage; but it is coming soon for sure if we want to keep the March time lime for release. :)

Answering your question; yes, the compiler supports all basic LabVIEW primitives structures (case structs, for, while, sequence) as well as subVIs along with over 100 other LabVIEW primitives. A lot of work! But we are excited about the doors something like this may open to the LabVIEW community.

One thing to keep in mind though is that Arduinos (especially the little UNO :) ) are very small embedded micro controller targets. Therefore, even though the compiler will support arrays and strings, like LabVIEW does, one needs to be extra careful when using those constructs as they are memory vortexes. They will suck the life out of an Arduino Uno very quickly.

Link to comment

Currently; we have done all our testing with LV2014 and will release the first version for that version only. If the community requests other versions, we may do that based on the volume of the requests. It will be a paid tool; however, we are aligning ourselves with the makers movement; i.e. it will be very low cost. The actual price of the license is still being decided on and I will share with the community as soon as it has been defined.

Link to comment

Michael is right. It does not use the C code gen toolkit; otherwise it would cost $10k + a tinny little bit for the Arduino piece. 

This way we can charge just $(a tinny little bit for the Arduino piece). :)


Not only that but we have better control over the type of optimization we do that is more specific to the Arduino target. As you can imagine, if we were to leave the result of the LabVIEW code interpretation without any optimization on the code generation side, we would starve an Arduino Uno before we could complete the "Hello World!" sentence of the test VI.  :shifty:

Btw; check out this video we just posted showing a demo of the compiler.


  • Like 1
Link to comment

Wow this is a fantastic demo.  I can't wait to see more when it is released.  I have several Unos, a Mega 2560, and a couple Teensy 3.1 which is an arduino compatible ARM based micro with lots more functionality.   While your site doesn't mention Teensys it will probably be one of the things I try once it is released.


EDIT:  Also what is there a pricing scheme planned for this toolkit?

Link to comment

Very nice!

My kids' elementary school has the district's only school-based MakerSpace program.  I volunteer teaching 3rd-6th graders to use Lego Mindstorms NXT.  With that giving them the background into graphical programming, this would be a great next step.

Edited by Gary Rubin
  • Like 1
Link to comment

A portion of the development is being done on a Mac; so I don't think it should be a problem. :)

But we haven't done any specific testing as of yet to officially claim we support it. As for the Teensy; it will be supported. Any official Arduino target released by the Arduino organization will for sure be supported.

I'm really looking forward to getting this to high schools and potentially even middle school. We haven't decided on pricing as of yet. We will have two versions; base and professional. One targeted to the hobbyists and the other for more complex professional applications. I'm passionate about the makers movement; therefore, pricing will be in line with it for sure. Based on how much work this has been so far; we should charge $10k per license (like NI does for its C code gen). :)

But it won't happen.

  • Like 1
Link to comment
  • 3 weeks later...

Filipe, this is great. I've been programming with LabVIEW (desktop, Real-Time and FPGA) for about 10 years and this is the best thing to happen to LabVIEW since the Event structure and FPGA programming. It's the best thing to happen to LabVIEW in 10 years!


I've been requesting, some would say badgering, National Instruments to do something like you've got under development for 3 years now. Thanks to Arduino Complier for LabVIEW, I don’t have to wait for NI or rely on them.


This is a game changer.


The fact that you got it to work on a very resource limited Arduino UNO is impressive. It would be nice, sometime in the future, to consider the Arduino DUE, with a 32 bit microcontroller running at 84 MHz (rather than 8 bit running at 16 MHz). Better still, there's the Texas Instruments TM4C1294 LaunchPad which has an ARM M4F core, running at 120 MHz, Ethernet and much more - all for just $20. It would be great to one day see a LaunchPad Compiler for LabVIEW. The Launchpad has Energia, which brings the Wiring and Arduino framework to the LaunchPad, which may make it a good fit to you future plans.


I tried the now (effectively) discontinued LabVIEW Embedded for ARM (LEFA). It had a lot of potential, but failed in our evaluation (http://forums.ni.com/t5/LabVIEW-Embedded/LabVIEW-Embedded-Performance-Testing-Different-Platforms/m-p/1882581  ). LEFA was OK with a single loop, but when multiple loops were implemented, performance fell such that only about 10% of the CPU was available.


How is your multiple loop performance? Is there any significant degradation?


I look forward to this product. I think it's going to be revolutionary. I even more look forward to a more powerful platform such as the Arduino DUE or LaunchPad.


I’m not sure of your business model, but opening up to the community would get many of the functions such as filtering, FFT, etc going.

Link to comment

Thanks for this Vito! We are certainly excited about it and it is great to get feedback from the community. Actually, the first release will indeed support the Due, Yun, Mega and Leonardo, along with the Uno. So we got the official Arduino targets covered. Since we are targeting having the same compiler supportting all these targets, and, as you know, the Uno has only 2k of memory, we decided not to implement multithreading on the first version. This, is however, intended to be just the first release, and we are hoping the feedback from the community as feedback will help us focus on what is more important to the user base first. 


As Engineers, we ourselves started falling into the trap of adding lots of LabVIEW features into the compiler. Then we realized (duh) that LabVIEW has been a work in progress for 30 years and by dozens of R&D Engineers working full time on it. We couldn't possibly attempt to match its full feature set at a first release. We figured it would be best to have something released in a reasonable time frame, collect the feedback from the community, and let that better guide us in gradually adding the most asked for features first.


Hopefully the level of adoption will gives fuel to keep improving the compiler and even maybe porting it to other targets, :yes:  

Link to comment



Great to hear that the first release will support the Arduino Due. Given that the Texas Instruments TM4C1294 LaunchPad can be programmed with Energia and that Energia uses Wiring and Arduino framework, do you think it would be a big effort to target it? The big attractions are built in Ethernet (and lots more) and a $20 price tag.


If I understand you correctly, the first release will only allow a single loop operation. If so, this will be very limited. Good enough to get a taste for what it can do, but not good enough to use for serious applications. Even a simple mechanism where a "node" would signify "release" so that multiple loops can be run one after the other when released may be a good stop gap measure.


The ability to run multiple loops will be essential to get market takeup.




Link to comment

If I understand you correctly, the first release will only allow a single loop operation. If so, this will be very limited. 

I disagree.  The C++ code developed in the Arduino IDE is essentially a single loop operation.  When you have full control over a CPU (or Micro) you can get a lot done in a single loop.  Sure this isn't the way most Windows based LabVIEW development is done, but that's because we have crazy powerful CPUs with lots of cores to get stuff done with.  I'd be content with this toolkit if it only ever supported a single loop.

Link to comment

hooovahh, one of the features of LabVIEW is parallel loops. Sure you can get things done without it, but one of the significant features is not there.


I hope single loop operation will be attractive enough, as I'd like to see takeup of this product so that it continues to be developed.


I'd like to see LabVIEW compiler for Arduino become what LabVIEW Embedded for ARM was supposed to be.


I programme microcontrollers in C. A single loop works, but then I have a SysTick event that fires every 10 ms to lets me do other things and all "events" fire an interrupt that allows the "event" to be addressed. Maybe the LabVIEW compiler for Arduino will nicely handle interrupts, which may be enough.


What do people think about a "release" command that can be inserted in a loop to yield CPU to the next loop?


All things said, I want this product to succeed. It has great potential.

Link to comment
  • 1 month later...

Filipe & Team,


Congratulations on the successful launch of the Arduino Compatible Compiler for LabVIEW!  I'm among your first paid customers and am very impressed with your accomplishment.  


What is the mechanism for providing feedback and feature requests for future releases?  (Top among them for me would be a timed loop, ideally one with very fine timing capability.)


Hope to see you at NI Week.




--Scott Jordan

Link to comment
  • 10 months later...

Hi Filipe & Team,

First, thanks for the compiler. I would like to use this compiler for my Home Laboratory.

Because I keep switching  between computer and laptop to interface with NI add-on card for desktop.

Is there any way to change activation between desktop and laptops vice versa.

Is the activation one time for the user. I can use it to activate offline or only using web.

Any procedure to deactivate and activation procedure will be helpful.

Thanks & regards


E-mail: tresbien_praveen@yahoo.com

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...

Important Information

By using this site, you agree to our Terms of Use.