04-30-2020 10:48 AM
First I want to say that I'm loving the community edition of LabVIEW and the LINX package so far!
I was curious if there are any plans to add support for Arduinos with ARM cpus such as any of the MKR boards or the Nano 33 line to the LINX package? Using an Arduino board with WiFi or BLE built in directly from LabVIEW would be a nice feature.
05-16-2020 04:17 PM
First off I'm not NI so take my initial remarks with a grain of salt!
I don't expect NI to officially support additional devices anytime soon. The number and types of devices are just too vast to provide a uniform interface via Linx or to provide firmware for every device people might want to use.
What I recommend doing is developing your own firmware for the Arduino that uses your own communication protocol that you can then use with direct VISA calls from the PC / Pi and even better you can encapsulate all of these in a driver class of sorts. With this method you wouldn't even use any of the Linx VIs. This will also give you much better performance capabilities than are provided via the one-action-at-a-time linx functions for supported devices; you'd be able to offload some behavior to the controller if you're trying to move beyond periodically checking some inputs and toggling some outputs. This would be identical to writing software using a custom programmed Arduino with Python, C#, C++, etc.
Eventually I suspect the community will develop a whole whack of open source libraries for working with various prototyping boards and other devices though unless even more of the Linx toolkit is open sourced (the lower level calls to serial, I2C, etc) it will be unlikely that any of these will plug in with the Linx Toolkit itself and would remain separate.
05-16-2020 07:31 PM
Thanks for your support, the method you suggest is viable as long as the acquisition and processing of sensor signals is purely under the Arduino platform
05-16-2020 07:49 PM
Perhaps I missed something, you asked about Arduinos. Is there a specific situation you have in mind? If there's something you couldn't do via the normal Arduino platform you wouldn't be able to do it through Linx, and generally you can do less through Linx than even the Arduino IDE since you're limited to features they've implemented in their firmware.
05-16-2020 07:58 PM
And in regards to the WiFi / BT / BLE LabVIEW has UDP/TCP, Bluetooth, and Serial communication methods you could use to talk to the custom firmware you've developed for those boards. Since BLE is hot firey garbage on Windows (at least last I've checked and on some googling just now) and LabVIEW doesn't have native BLE support what I've done in the past for a BLE project is use a dongle that presents as a serial port and built my own BLE stack for that dongle that manages all the states for advertisements, profiles, connections, messaging, etc. Basically BLE <-> windows PC is a no go, but the other approaches you'd accomplish just as outside of LabVIEW.