Hobbyist Toolkit

Showing results for 
Search instead for 
Did you mean: 

Contributing to the LINX toolkit?

Go to solution

tl;dr: any guidance on contributing to the LINX toolkit and/or sharing firmware for new boards? I've made some tweaks that could be useful and might do more if I know how to get them out to the world.


Adafruit's Feather M0 WiFi board has been popular with past student projects, and since the course content features LabVIEW pretty prominently, I thought it'd be nice if the students had the option of LINX to control the boards.


Though I have relatively little idea what I'm doing, I got the MakerHub repo off Github and put together (mostly) working firmware for the Feather from the extant Arduino libraries. In the process, I came across a fair bit of unimplemented functionality on both the Arduino and LabVIEW sides (e.g., analog output VIs but no corresponding handler on the board, and code to report ADC/DAC resolution though none of the VIs ever check the value).


I figure at least some of what I've done will be useful to someone, but I'm not sure what's the "right" way to contribute modifications to the toolkit. I get the impression that development isn't super active these days, but it's clearly not abandonware if NI put out a new package a few months ago (plus LV Community Edition).


The board firmware is pretty easy to share independent of the toolkit (post on Github, copy to the Arduino library path, flash the example sketch, and use like any other LINX board). I'd love to fill in some of the gaps on the LV side as well, but I'm less clear how to get those modifications out to the world...




0 Kudos
Message 1 of 17

I'm myself interested in this and have been working on the shared library behind Linx, but mostly to improve its functionality for the Raspberry Pi and to a lesser degree Beaglebone Back. I have tried to keep the WiringDevice (the base of all Arduino and similar devices) in mind but haven't spend much work on that.


Some of the things you mention like AI/AO reference voltages etc. are most likely not really implemented since their functionality is flawed. For some of the boards it is very feasible that these settings may not apply to the board as a whole but rather to individual channels or a subset of the channels.


What I did was simply cloning the official Linx github repository and working on that in my free time (which has a tendency to limit the effort quite a bit).


I'll try to get some reaction from NI on that but they are in most aspects very silent about everything in the last year or so, not just Linx or the LabVIEW Community Edition.

Rolf Kalbermatter
My Blog
0 Kudos
Message 2 of 17



I wanted to use the LINXx for an adafruit Feather M0 RFM69. However, my labview version is 2018 and LINXx only support 2019 and over. Is there a way you could update it ? 

Thanks !

0 Kudos
Message 3 of 17

If your LabVIEW application is non-commercial then use the latest Community Edition.  If it is a commercial application then you will need to upgrade your LabVIEW version.

David Wilt
The New Standard LLC
0 Kudos
Message 4 of 17
Accepted by topic author CBC_Girard

We recently posted information on how to contribute to LINX here.

Message 5 of 17


Not sure how this help me; I feet like I don't understand what I'm reading on Github. Can I use pull requests to request help adapting the firmware to my board ? 



0 Kudos
Message 6 of 17

Hi LonelyHunter,


No, pull requests let outsiders who have a modified version of a code library (like me) send the library's creator(s) the modifications so they can add them to the "official" library code if they like the changes. Suggestions/requests/bug reports usually get posted on the Issues tab.


Instead of using the installer in the LINXx package I wrote, you can just unzip the attached folder in your Arduino libraries directory, and flash this sketch to get the appropriate firmware on your board. It's developed for the WiFi version of the Feather M0, but it should work fine with your RFM69 version (no guarantees, since I don't have that particular board to test).


[Caveat: the LINXx package adds a few VIs that configure/enable the analog inputs/outputs for the Feather, so without it LabVIEW can't control the analog output, and I think the analog reads will be off by a factor of 4]


Hope that helps,


0 Kudos
Message 7 of 17

Followup question about contribution:


At least in VIPM, LINX only has a minimum LabVIEW version of 2011. I imagine any VIs we'd hope to merge  should also be saved for LV 2011, right?

0 Kudos
Message 8 of 17

@CBC_Girard wrote:

Followup question about contribution:


At least in VIPM, LINX only has a minimum LabVIEW version of 2011. I imagine any VIs we'd hope to merge  should also be saved for LV 2011, right?

That would seem excessive. The earliest version that Linx currently supports is 2013 of 2014 and only in the old Digilent package. Linx development was resumed with 2019 in preparation for the Community Edition although it was mostly minor bugfixes and cosmetic changes. The final package was only released for 2020.


It would be of course nice if the VI sources in the package weren’t just for the latest and greatest LabVIEW version and if there is no pressing reason because of a new feature that is used, it would be nice if NI would at least keep the usual (current version and at least 3 previous version) support for installers but parts of the Linx installer contain special files such as the RT project provider for Rpi and.BBB boards that seems to be pretty version critical.


And NI has of course several incentives to not support very old LabVIEW versions with new releases. One is maintenance and testing. It’s a reall pain in the ass to support older versions properly as you should test everything after every change. Also they have no interest to spend time and money into something for people who have elected to not spend some money to stay up to date with newer versions or in the case of the Community Edition to do a lot of costly effort to avoid the users of the free version the inconvenience of having to upgrade to a newer version.

Rolf Kalbermatter
My Blog
0 Kudos
Message 9 of 17

Thanks for your follow up ! 

With some sketch update, I was able to install the firmware. 


However, the firmware is compatible with LINX 3.0, while I only have LINX 1.0 since I'm on Labview 2018 instead of 2014 [i.e. I cannot install LINX 3.0]. 


Any possible solution to that ?


Thanks !

0 Kudos
Message 10 of 17