Porting LabJackUD-driver to GNU/Linux | LabJack

Porting LabJackUD-driver to GNU/Linux

4 posts / 0 new
Last post
Starfire's picture
Porting LabJackUD-driver to GNU/Linux


are there any plans to port the LabJackUD-driver to GNU/Linux?

This would be an interesting thing because I am programming applications in Qt for Windows and GNU/Linux and I am happy with the UD-commands.

Otherwise I would have to adapt all the software projects to use the low-level-functions.

Some time ago I started a project on my own to create a library handling the UD-driver-commands and wrapping them to low-level-functions for the exodriver.

Unfortunately this is really time-wasting when searching for an error in the code or wanting to add new command as you have to debug the Qt-program, the wrapper-library and the exodriver. At the moment only the functionality I really need is implemented in the wrapper-library.

On the other hand I am not sure if my implementation of the wrapper-library is compatible to the UD-driver as I do know nothing about the implementation of the official UD-driver.

I also thought about releasing this as an opensource-project so that everybody who is interested in this can contribute.

Did you guys at LabJack already have some requests from users to have the UD-driver ported to GNU/Linux?

What do you think about that?



LabJack Support
LabJack Support's picture
There are no plans to port

There are no plans to port the UD driver to GNU/Linux or Mac OS X. Every now and then we get asked to port it, but not enough to put resources into it.

Current development is more focused on our latest library LJM which supports the T7 and upcoming devices. The LJM library was designed to be cross-platform from the start.

If there isn't a language requirement, you could look into using Python, PyQt and LabJackPython. LabJackPython is our cross-platform Python interface to the U12, U3, U6 and UE9.

Regarding your wrapper's code, we have no issue with you making that open source and public if that is what you are asking. If you look at our Exodriver C/C++ examples, we implemented the easy functions. Some of the easy functions have a couple more parameters than the Windows calls, but that is due to the Exodriver example functions not keeping track of device settings internally (like the calibration constants) like the UD driver does.

Starfire's picture
I am sorry to hear that. But

I am sorry to hear that. But I understand what you mean. It does not make sense to put resources into porting when only a small amount of people want to have it.

But now I have some further questions?

What do you think about others porting the UD driver to GNU/Linux? Because I am sure this would be a much better base than my rudimentary implementation. Sure this is your intellectual property, but you would not be the first company  that benefits from releasing your code. Just an idea.

Another idea. What about implementing the U3 to U12 in the new LJM library. This would mean that you can drop the UD driver and have only one code repo to maintain. And this would be cross-platform from the start. For sure, I can not estimate the work that is necessary for doing that.

I appreciate that you do not have an issue with releasing my wrapper code as open source. But I think this only makes sense, when the future code maintainers can count on your support. Especially when questions arise about implementing some functions the right way to be compatible with the official UD driver. An even better thing would be if LabJack could give some hints when looking into the code and see something that goes completely wrong.

I would really appreciate when you could discuss this all internally, because I think that you could benefit from that.

No matter what comes out when discussing this I really have to mention once more that I am a big fan of your products and your company. The support is extraordinary and I like doing my projects with your hard- and software. Thank you for the good work.

LabJack Support
LabJack Support's picture
The UD library is closed

The UD library is closed source. We have no plans on changing it to open source.

As for the U12, U3, U6 and UE9, we are not adding LJM support for these devices. LJM currently supports the T7 and Digit, and will support upcoming devices.

Regarding the U12, there is a port of its Windows library for Linux and Mac OS X: