GPIB-ENET still usable? - Page 1
Forum section: electronics / testgear

author: mimmus78
author_rank: Unknown
timestamp: October 07, 2016, 10:22:00 pm
content: I brought one of this, thinking it was GPIB-Enet/100 but it turn out it's just GPIB-ENET.This is a very old piece of GPIB Ethernet adapter ... so old it doesn't support DHCP and must be configured with RARP that is a very old protocol to assign an IP to a mac address.I managed to configure ip, ping it and connect with telnet to its 5000 port, but it should speak some esoteric protocol that only NI knows.Tried to install new ni-488.2 drivers/software for Windows, but it doesn't support this old gear. Searched on Linux but info is very fragmented so I almost give up.Before I put this on ebay again, anyone know if there is a way to use it with a modern Windows 7 (or 10) or in Linux?

author: stj
author_rank: Super Contributor
timestamp: October 07, 2016, 10:32:56 pm
content: can you foto the connectors and pcb?

author: mimmus78
author_rank: Unknown
timestamp: October 07, 2016, 10:53:01 pm
content: Hope it's enough for you curiosity: this is just a general photo from sigrok website ...

author: mimmus78
author_rank: Unknown
timestamp: October 08, 2016, 12:15:14 am
content: it seems this py lib has the protocol implemented:https://code.launchpad.net/~jordens/gpib-devices/trunktomorrow I'll check.

author: stj
author_rank: Super Contributor
timestamp: October 08, 2016, 01:01:57 am
content: btw, you can make a usb version for beer money.https://ringwelt.de/messgeraete/17-gpib/41-gpib-usb-adapter.html

author: joeqsmith
author_rank: Super Contributor
timestamp: October 08, 2016, 01:04:04 am
content: Quote from: mimmus78 on October 07, 2016, 10:22:00 pmSearch "GPIB ENET".

author: mimmus78
author_rank: Unknown
timestamp: October 08, 2016, 05:37:21 pm
content: Joeqsmit sometimes I feel stupid: I searched for "GPIB ENET" but found nothing really helpful.Inviato dal mio Nexus 6P utilizzando Tapatalk

author: stj
author_rank: Super Contributor
timestamp: October 08, 2016, 05:51:47 pm
content: maybe refering to this?http://jgpibenet.sourceforge.net/

author: bitseeker
author_rank: Super Contributor
timestamp: October 08, 2016, 06:19:57 pm
content: Thanks, stj. I don't know if that'll help the OP with his NI interface, but it'll work with my ICS 8065.

author: joeqsmith
author_rank: Super Contributor
timestamp: October 08, 2016, 07:04:45 pm
content: Quote from: mimmus78 on October 08, 2016, 05:37:21 pmSearch seemed simple enough so I assume then you read the thread, went to the link I provided on NI's site and just found it not be helpful. I have not done anything more with it yet so I can't be of much more help if you are just looking for a quick solution. I haven't invested more than a few hours and it looks easy enough to control it. Too bad NI would just not release the documentation for it.

author: mimmus78
author_rank: Unknown
timestamp: October 08, 2016, 10:41:42 pm
content: Well the library I found has a class that implements the protocol, it seems far more complete than the info in this thread.Hope I have some time to spend trying to make it work.Already contacted someone on eBay for a classical gpib-usb-hs ... seems far more easier to make it work under Linux.Inviato dal mio Nexus 6P utilizzando Tapatalk

author: joeqsmith
author_rank: Super Contributor
timestamp: October 08, 2016, 10:59:36 pm
content: Yea, my plan was just to roll my own from the ground up.I had downloaded source from the link you had provided but it list the GPIB ENET as being supported. Was hoping someone had already gone down this path.The NI libraries I called out would allow you to to run it from older versions of Windows. I am not sure from the UNIX side.I am interested in seeing how far you get with it. Keep us posted.

author: JonM
author_rank: Unknown
timestamp: October 09, 2016, 03:13:59 am
content: Seeing the photo reminded me that I bought one of these NI GPIB-ENET interfaces in 1993 and used it off and on for a few years with a Sun Workstation. It cost US$1700. While I could not find any of the code I wrote for it, I found enough notes to see that there was software support for Solaris 2.x. I also see that it apparently required a boot file that was delivered over Ethernet at power-up.It's probably better to use a more modern solution if possible...Jon

author: mimmus78
author_rank: Unknown
timestamp: October 09, 2016, 09:37:08 am
content: If you search for "libnienet.py" in google, someone using the lib pop out :-)https://github.com/phsommer/scpi-python/blob/master/agilent-53131A/frequency-channel1.py

author: mimmus78
author_rank: Unknown
timestamp: October 09, 2016, 11:53:28 am
content: YES it works!!!Code:domenico@grizabella:~/Dropbox/gpib-enet/scpi-python-master/agilent-53131A$ python frequency-channel1.pyDevice found: KEITHLEY INSTRUMENTS INC.,MODEL 2001,0649533,B10 /A02

author: mimmus78
author_rank: Unknown
timestamp: October 09, 2016, 02:39:57 pm
content: Some more complicate script:Code:#!/usr/bin/pythonimport timefrom libnienet import *# set enet device iphost = "192.168.1.253"l = 0ud = 0def connect():global lglobal udl = EnetLib(host)# connect to device over GPIB/Ethernetud = l.ibdev(pad=15,sad=0, tmo=10, eot=1, eos=0) # primary address = 15 (GPIB)# clear devicel.ibclr(ud)# reset devicel.ibwrt(ud, "*RST")# get device identificationl.ibwrt(ud, "*IDN?")time.sleep(1)[status, response] = l.ibrd(ud, 4096)print "Device found: ", responsel.ibwrt(ud, ":DISP:WIND:TEXT:DATA '[url=http://WWW.118VOLT.IT;]WWW.118VOLT.IT;-)'")l.ibwrt(ud, ":DISP:WIND2:TEXT:DATA 'go and visit it'")l.ibwrt(ud, ":DISP:WIND:TEXT:STAT ON")l.ibwrt(ud, ":DISP:WIND2:TEXT:STAT ON")time.sleep(1)# Setup Keithley 2001l.ibwrt(ud, "*RST")l.ibwrt(ud, "*CLR")l.ibwrt(ud, ":SYST:AZER:TYPE SYNC")l.ibwrt(ud, ":SYST:LSYN:STAT ON")l.ibwrt(ud, ":SENS:FUNC 'VOLT:DC'")l.ibwrt(ud, ":SENS:VOLT:DC:DIG 9; NPLC 10; AVER:COUN 50; TCON REP")l.ibwrt(ud, ":SENS:VOLT:DC:AVER:STAT ON")l.ibwrt(ud, ":SENS:VOLT:DC:RANG 20")l.ibwrt(ud, ":FORM:ELEM READ")l.ibwrt(ud, ":DISP:WIND:TEXT:DATA \" \";STAT ON;")l.ibwrt(ud, ":DISP:WIND2:TEXT:DATA \" \";STAT ON;")def disconnect():global ll.ibonl(ud, 1)connect()i = 0while i <= 10000000:try:i+=1l.ibwrt(ud, "READ?")status = 0while status <> 8448:[status, response] = l.ibrd(ud, 4096)time.sleep(0.1)print time.strftime("%d/%m/%Y-%H:%M:%S ") + ("%2.7f" % (float(response)))except:print "ERROR!"time.sleep(1)disconnect()connect()

author: JonM
author_rank: Unknown
timestamp: October 09, 2016, 02:50:47 pm
content: Surprising, but very nice!Too bad I sent my unit and a pile of GPIB cables to recycling. I never loved GPIB, but there used to be no choice.Jon

author: mimmus78
author_rank: Unknown
timestamp: October 09, 2016, 03:38:36 pm
content: Quote from: JonM on October 09, 2016, 02:50:47 pmO nooo why you trashed it. I spent 2 hours to bodge a gpib cable, soldering those 17 wires two times! Those GPIB cables are like gold, cannot find one here in Italy for less than 50 USD ... I need to order 10 cables from Hong Kong now...

author: joeqsmith
author_rank: Super Contributor
timestamp: October 10, 2016, 01:22:52 am
content: Quote from: mimmus78 on October 09, 2016, 11:53:28 amNice!

author: joeqsmith
author_rank: Super Contributor
timestamp: October 10, 2016, 01:27:52 am
content: Quote from: JonM on October 09, 2016, 03:13:59 amThere is some sort of initialize going on when it is first connected. This may explain what I was seeing. I just captured it and played it back. It's only done once and after this, everything seems pretty simple but I never went any further than just using the basic read write.

author: mimmus78
author_rank: Unknown
timestamp: October 10, 2016, 09:07:42 am
content: Quote from: joeqsmith on October 10, 2016, 01:27:52 amYes you set parameters like read timeout and other stuff during initial setup.What I don't understand is why NI doesn't support it anymore. The protocol is very simple, TCP stack hasn't changed for decades on operating systems so it must be some marketing bullshit trying to force you to buy new ENET models.Inviato dal mio Nexus 6P utilizzando Tapatalk

author: JonM
author_rank: Unknown
timestamp: October 11, 2016, 02:14:09 am
content: NI probably does not support it since the GPIB-ENET/1000 is the current product and even the 100 Mbps version is now obsolete. Few people would be happy with the 10 Mbps Ethernet version (although it would have been a faster interface than my old Agilent scope's serial port). I also note that the current version costs US$450 less than I paid for my GPIB-ENET.Sorry that I threw out the pile of GPIB cables, I would have brought a few to Switzerland for transfer to Italy. I did see that there were quite a few cables available on eBay before I re-cycled them.Jon

author: stj
author_rank: Super Contributor
timestamp: October 11, 2016, 02:52:42 am
content: i wonder how hard it would be to convert the gpib to lxi using a nucleo-144 or similar with it's onboard ethernet.

author: jpb
author_rank: Super Contributor
timestamp: March 09, 2019, 10:27:35 pm
content: I've acquired one of these and have got stuck trying to get any compatible software.In particular the NI utility IPassign that can be used to set an IP address.Does anyone know how I can assign an IP address?I suspect that I wasted my money on this (£30 plus another £10 to get an adapter to connect a normal RJ45 ethernet cable) but I'm reluctant to give up completely.

author: HalFET
author_rank: Frequent Contributor
timestamp: March 09, 2019, 10:42:52 pm
content: Quote from: jpb on March 09, 2019, 10:27:35 pmFor the newer ones it wasn't described too well either, but I remember you could do it from NI Max with those. Might be worth checking if you can find it in there somehow.

author: openloop
author_rank: Regular Contributor
timestamp: March 10, 2019, 02:46:25 am
content: QuoteThere is a switch to allow the DHCP (check documentation).Here's how I did it - I turned the device on and it grabbed an IP address from my router. Then I turned it off and moved the switch back - it remembers the last IP address used.

author: 1audio
author_rank: Frequent Contributor
timestamp: March 10, 2019, 03:58:06 am
content: I have a first gen GPIB-ENET that works fine. However there are some limitations and tricks.First, I have a linux server on my network running RARPd set to hand the ENET its IP address. Turns out its pretty simple to set up. RARPd (daemon) docs will give you most of what you need. The rest is in the ENET docs if you can find them. let me know if not and I'll look in my archives.Second, you need an older version of the NI explorer, I think support for the ENET stopped at Win 7 era.I found it worth the effort since I have several programs that don't know how to talk to any other interface.I did break down and get an ENET-100 but its expensive.

author: openloop
author_rank: Regular Contributor
timestamp: March 10, 2019, 05:09:26 am
content: Right, right - I forgot. It wasn't DHCP, it was rarpd.But it still needed to be done only once (that's why I forgot)/etc/ethers file had this line for the device:Ethernet_address IP_addressthen I ranrarpd -aAvodeMine works fine too. But I use it only from python or matlab/octave so the python library mentioned earlier in this thread is enough.Not all useful things implemented, but just enough to get the job done.

author: jpb
author_rank: Super Contributor
timestamp: March 10, 2019, 01:33:21 pm
content: Thank you everyone for the helpful responses.I currently have Windows 7 on my workstation at home (where my lab is) but I work mainly with Linux in my job (and do quite a bit with networks - I've just never used RARP before and generally goto an "infrastructure guy" for this low level stuff!). It looks as if I should re-instate my Linux drive.It sounds as if it should be an educational experience, I hate to give up on things even if it would be more sensible just to buy a used /100. I only need it for data extraction, mainly from a Keithley 2303 which only has GPIB - everything else has some or all of USB, RS232 or Etherenet as well as GPIB.

author: mimmus78
author_rank: Unknown
timestamp: March 10, 2019, 09:21:03 pm
content: Yes rarpd is the way to go ... Pretty easy to configure. Anyway still using this guy by phyton snakes, and it was very reliable in last years.Inviato dal mio ONEPLUS A5010 utilizzando Tapatalk

author: evac
author_rank: Contributor
timestamp: December 01, 2021, 09:49:27 am
content: I recently got one of these for cheap, and ended up finding a bunch of resources for both Windows and Linux, and thought I would share it here.Most of it can actually be found at the NI ftp server, ftp.ni.com:/support/gpib/ni488224/Windows2000XP/ni488224.exe - NI 488.2 for Windows. I believe this is the last version that supports GPIB-ENET, should work with Win2k and XP, contains all the utilities to assign IP, update firmware, and scan and test communication with instruments./support/gpib/linux/nienet-linux-1.2.tar.gz - Linux set of tools for assigning IP and updating firmware, as well as a C library that can be used to communicate with the controller./support/gpib/firmware/GPIBENET/EnetA5.bin - Latest firmware/support/manuals/320910a.pdf - Software Reference Manual for the GPIB-ENET - It mentions an ESP-488 diskette which should also contain the C source code for all the communication functions, but I was not able to find this anywhere./support/manuals/321243e.pdf - Getting started guideThe easiest way to work with it is using the Python implementationhereas mentioned by mimmus78.You only really need libnienet.py which gives you the set of basic functions, although not all functions are implemented.It is Python 2, but converting to 3 is not a big effort, it's mostly about changing internal functions to use bytes explicitly instead of strings.If you do need some functions which are not implemented in libnienet.py, you can either use C, include ugpib.h and link to the library provided by e.g. the nienet-linux package above (32-bit only), or you can use ctypes to load the shared library into Python and have access to all the ib* C functions from there.On 64-bit Python, you won't be able to load the 32-bit library directly, but you can use MSL-LoadLib package to achieve this.I tried all 3 methods (pure Python, C, C->Python) and they all seem to work well.Overall I'm quite happy with it, it's very convenient to be able to connect from any host and operation has been reliable so far, and if you can get it for cheap (I paid ~€30) then it's a no brainer.Only downside is lack of support for more standard APIs like linux-gpib/PyVISA/sigrok, but on the other hand it's not rocket science to make use of the NI-488 functions to do what you need.

author: vc12345679
author_rank: Newbie
timestamp: March 29, 2022, 11:30:37 pm
content: I got one GPIB-ENET by mistake last week, and had to spend the past two days studying how to make it work. Fortunately, I made it. I got a lot of help from this thread so I registered and post my solution here.RARP IP assignmentIn my case,ItemMACIPIP(hex)PC90-B1-1C-9B-B1-E9192.168.3.1C0 A8 03 01GPIB-ENET00-80-2F-FF-09-94192.168.3.2C0 A8 03 02RARP reply packet to assign the IP address. (detailed explanations inhttps://www.cloudshark.org/captures/c6729d0fc558)00 80 2F FF 09 9490 B1 1C 9B B1 E980 35 00 01 08 00 06 04 00 0490 B1 1C 9B B1 E9C0 A8 03 0100 80 2F FF 09 94C0 A8 03 02Replace the MAC/IP with the ones in your case. Use any traffic generator on Wireshark wiki to send the reply packet.https://gitlab.com/wireshark/wireshark/-/wikis/Tools#traffic-generatorsCommunicationI modified the Python2 script libnienet.py (http://bazaar.launchpad.net/~jordens/gpib-devices/trunk/view/head:/gpib/libnienet.py) to a Python3 version, and wrote a simplified high-level wrapper. The codes can be found athttps://github.com/vc12345679/NI_GPIB_ENET_Py3. Just a glance,Code:from example_simple_wrapper import GPIBENETGPIB_ENET_ADDR = '192.168.3.2'DEV_GPIB_ADDR = 16dev = GPIBENET(GPIB_ENET_ADDR, DEV_GPIB_ADDR)print(dev.query(b'*IDN?').encode())# OUTPUT:# KEITHLEY INSTRUMENTS INC.,MODEL 2010,0772543,A10 /A02Hope this post can help.