# VISA support in Processing

**URL:** <https://discourse.processing.org/t/visa-support-in-processing/7728>\
**Category:** Electronics (Arduino, etc.)\
**Created:** [January 22, 2019, 7:56am UTC](https://discourse.processing.org/t/visa-support-in-processing/7728 "2019-01-22T07:56:44Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![parham](https://avatars.discourse-cdn.com/v4/letter/p/f07891/32.png) [@parham](https://discourse.processing.org/u/parham)\
**Post date:** [January 22, 2019, 7:56am UTC](https://discourse.processing.org/t/visa-support-in-processing/7728/1 "2019-01-22T07:56:45Z")

</div>

Hi everyone

I am using Visual Basic as RAD tool for writing code to control electronic measurement devices such as Digital Multi-meters, Programmable Power Supply, Signal Generators and Oscilloscopes. I am new to Processing but I am amazed of its cross platform deployment support even on Raspberry Pi.  
The protocol for communicating with programmable instrument is VISA which stands for Virtual Instrument Software Architecture. I am looking for a library or project that brings the VISA support into Processing.  
Does anyone can help me in this regard?

Sincerely  
Parham

---

<div class="post-metadata">

**Author:** ![jeremydouglass](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/jeremydouglass/32/20_2.png) [@jeremydouglass](https://discourse.processing.org/u/jeremydouglass)\
**Post date:** [January 27, 2019, 8:11pm UTC](https://discourse.processing.org/t/visa-support-in-processing/7728/2 "2019-01-27T20:11:28Z")

</div>

> [@parham](#):
>
> Virtual Instrument Software Architecture

Are there Java or pure Python libraries for interacting with VISA? If so, you could just import that library.

For example, you could try using Python mode with PyVISA for Python 2.7 [PyVISA · PyPI](https://pypi.org/project/PyVISA/)

---

<div class="post-metadata">

**Author:** ![parham](https://avatars.discourse-cdn.com/v4/letter/p/f07891/32.png) [@parham](https://discourse.processing.org/u/parham)\
**Post date:** [January 30, 2019, 5:36am UTC](https://discourse.processing.org/t/visa-support-in-processing/7728/3 "2019-01-30T05:36:57Z")

</div>

Thank U for suggestion

I have no experience working with Python. When I import the PyVISA (I still don’t know how to do that), Do I need to learn Python syntax or I just use the regular Processing syntax. I guess that at leastI should know how to invoke the Python class libraries in my code.

---

<div class="post-metadata">

**Author:** ![kfrajer](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/kfrajer/32/196_2.png) [@kfrajer](https://discourse.processing.org/u/kfrajer)\
**Post date:** [January 30, 2019, 5:52am UTC](https://discourse.processing.org/t/visa-support-in-processing/7728/4 "2019-01-30T05:52:51Z")

</div>

I agree with Jeremy. If you have java drivers, you should be able to use them in Processing. For a first kick at the can, you can take a common instrument that you use everyday and do a search to see if you can find a java driver. It is possible you find an actual example. If you find one, then it will be matter of tweaking it to make it work with Processing. Notice the challenge here is to find the proper driver for each device.

Don’t forget to do a quick search in the forum to see if you can find previous similar posts.

Kf

---

<div class="post-metadata">

**Author:** ![jeremydouglass](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/jeremydouglass/32/20_2.png) [@jeremydouglass](https://discourse.processing.org/u/jeremydouglass)\
**Post date:** [January 30, 2019, 11:44pm UTC](https://discourse.processing.org/t/visa-support-in-processing/7728/5 "2019-01-30T23:44:31Z")

</div>

> [@parham](#):
>
> Do I need to learn Python syntax or I just use the regular Processing syntax.

Python mode uses Python 2.7 syntax.

It sounds like your ideal situation would be Java.

> **[Java API for NI Drivers - NI](https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z0000019Q1gSAE&l=en-US)**
>
> How can I access NI drivers from Java? Can I call DAQmx functions from a Java application? Can I use Java with NI DMM?

> National Instruments does not currently provide language interfaces for Java. It is possible, however, to access National Instruments drivers by making calls to the driver DLL by making a wrapper using the Java Native Interface (JNI). Sun Java includes the JNI which allows calls to be made to C DLLs from Java. This wrapper DLL has to comply with JNI naming requirements, and perform the conversion from Java to C data types.

and

> <https://stackoverflow.com/questions/35309557/visa-protocol-with-java-on-linux/35316364#35316364>

> **[Java API for VISA Devices](https://sourceforge.net/projects/jvisa/)**
>
> Download Java API for VISA Devices for free. Java wrapper for native VISA library and TDS3000 oscilloscope driver. Write VISA instrument drivers in Java for Windows and Linux. Maybe the best way to give a full description is to explain the history of...

---

<div class="post-metadata">

**Author:** ![parham](https://avatars.discourse-cdn.com/v4/letter/p/f07891/32.png) [@parham](https://discourse.processing.org/u/parham)\
**Post date:** [February 4, 2019, 1:03pm UTC](https://discourse.processing.org/t/visa-support-in-processing/7728/6 "2019-02-04T13:03:05Z")

</div>

Thank you for your suggestion. Is there any documentation on how to build a library for Processing? The suggested JVisa have netbean projects to make the library but I am not sure the template is suitable to be called from Processing.

---

<div class="post-metadata">

**Author:** ![jeremydouglass](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/jeremydouglass/32/20_2.png) [@jeremydouglass](https://discourse.processing.org/u/jeremydouglass)\
**Post date:** [February 4, 2019, 8:47pm UTC](https://discourse.processing.org/t/visa-support-in-processing/7728/7 "2019-02-04T20:47:09Z")

</div>

> [@parham](#):
>
> Is there any documentation on how to build a library for Processing?

Here is the starting point, on the wiki:

- [Library Overview · processing/processing Wiki · GitHub](https://github.com/processing/processing/wiki/Library-Overview)
- [Library Basics · processing/processing Wiki · GitHub](https://github.com/processing/processing/wiki/Library-Basics)
- [Library Guidelines · processing/processing Wiki · GitHub](https://github.com/processing/processing/wiki/Library-Guidelines)
