Jump to content

Recommended Posts

Jupyter (formerly known as IPython) is a language-agnostic architecture for Interactive Computing with a nice interactive notebook frontend. It is a very powerful project and it is increasingly widely used. It is becoming the go-to tool for many Scientific Computing and Data Science workflows.


It is glaringly missing a LabVIEW kernel, however. See here for a list of available kernels - https://github.com/ipython/ipython/wiki/IPython-kernels-for-other-languages.


I know that I would use a LabVIEW kernel regularly in Jupyter (inline with some Python, Julia and Bash scripts) for hardware control and data acquisition. Unfortunately, I lack the skills to develop it. There is a guide here - https://ipython.org/ipython-doc/dev/development/kernels.html. I don't know where to start. I can understand 0MQ to a certain extent but then I get confused about what would be passed to the LV kernel - text, graphics? Maybe VI snippets could come into their own here. It actually looks like a really neat challenge.


TL;DR If someone helped to create a LabVIEW Kernel (iLabVIEW?) for Jupyter I (and many many people) would be eternally grateful. As an added bonus, if you are an academic, you could request that users cite your contribution on any research they subsequently output.


Edit: Here is an example Jupyter Notebook interacting with the MATLAB kernel, iMATLAB.

Edited by noname
Link to comment

I have the impression that Juypter is very much focussed around textual languages -  I think most of the existing clients expect to send text to their kernels and get back a mixture of text and graphics. LabVIEW doesn't really lend itself to this paradigm. You could, of course, write an interpreter in LabVIEW that took textual input and did stuff with it, but frankly there are probably easier things to do.


Where it did occur to me that Juypter might be interesting for LabVIEW developers would be in something along the lines of LabPython - which although it works great, does have issues with both 64bt platforms and using non-thread safe Python modules (notably numpy!). I have a feeling that Python 3.x is not supported either. A LabVIEW based client for Juypter kernels might be a way around this by decoupling the scripting language from the LabVIEW executable - allowing mix and match 32bit/64bit, newer versions of Python, alternative language bindings etc.... Just needs someone who understands the LabVIEW scriptnode interface, C bindings to 0MQ, and how to do the Juypter protocol - which rules me out on erm, 3 counts :-( !

  • Like 2
Link to comment

Just needs someone who understands the LabVIEW scriptnode interface, C bindings to 0MQ, and how to do the Juypter protocol - which rules me out on erm, 3 counts :-( !

Well zeromq already has pretty solid labview bindings: http://labview-zmq.sourceforge.net/

I've used those a little bit on windows and also tried it out on the 9068 back when it was released, and the guy who wrote it uses it on linux too. I'm not familiar with either of the others, though.

Link to comment

So I'm still (slowly) looking at what it would take to connect LabVIEW to an IPython kernel. As well as the 0MQ binding (which I'd seen but never played with), and JSON serialisation support, it looked like being able to sign things with HMAC-SHA256 might be useful. So I've created a little SHA-256 library (pure G to make it OS and bitness agnostic). I might put it in the code repository if it seems generally useful.




  • Like 2
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.