Electronics > Projects, Designs, and Technical Stuff

AR488 Arduino-based GPIB adapter

(1/212) > >>

WaveyDipole:
For the last 4 months or so, I have been working on an updated GPIB firmware for the Arduino. This was originally inspired by Emanuele Girlando's Arduino GPIB sketch which can be found here:

http://egirland.blogspot.com/2014/03/arduino-uno-as-usb-to-gpib-controller.html

My updated sketch implements the same pin assignment scheme, but the sketch is an almost complete re-write of Emanuele's original code with the remaining controller functions now implemented. SRQ and REN lines are now fully supported and device mode has also been added. The ++lon device mode command is currently the only unsupported command. Since I don't have a device that supports secondary addressing to test with, secondary addressing has not been implemented yet. This sketch has been released with Emanuele Girlando's permission and I would like to gratefully acknowledge his helpful observations. I would also like to thank Luke Mester for his invaluable and considerable help with testing.

The code can be found here:
https://github.com/Twilight-Logic/AR488

Problems with the firmware can be logged via the Issues feature on the GitHub page.
Any observations and suggestions for further improvement are welcome.


This thread has gotten pretty long over time so here are links to some of the AR488 projects that have been mentioned within the discussion:

3D Case by Pepsi1
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg2348046/#msg2348046

Enclosure by H.O
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg2431767/#msg2431767

USA Cal Club PCB by Vindoline
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg2531685/#msg2531685
https://github.com/vindoline/AR488-USB-GPIB

Reference to atmega-gpib for MEGA128/MEGA2561 by texaspyro
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg2609733/#msg2609733

Reference to Bench Briefgs article about the HP59401A Bus System Analyser by bitseeker
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg2631336/#msg2631336


PCB for Pro Micro by artag
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg2684736/#msg2684736
(see also subsequent posts)

UNO enclosures by rhb
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg2735644/#msg2735644
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg2793884/#msg2793884

Nano adapter by Alfons
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg2748512/#msg2748512

ESP8266/Pro Micro adaptation by tom_iphi
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg2891608/#msg2891608
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/375/

GNUPlot logging and adapter based on artag PCB by grizewald
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg2922434/#msg2922434
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg3024494/#msg3024494

Logging from a Fluke 8840a by kc9qvi
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg2985784/#msg2985784

Modification to add temperature sensor by serg-el
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg3002852/#msg3002852
https://radiokot.ru/forum/viewtopic.php?p=3815540#p3815540 (Russian)

Plotting from TDS700 using the 7470A tool in KE5FX tools by james_s
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg3024494/#msg3024494

Tek Flash drive (related project combining AR488 and SDcard) collaboration by waveydipole and mmcgraw74
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg3144360/#msg3144360
https://www.facebook.com/groups/1157781747606102

Powerless AR488 adapter by maxwell3e10
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/600/

AR488 Utility by Nx-1997
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg3431088/#msg3431088
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg3586488/#msg3586488

Possibly pin differences on Micro Pro highlighted by eliocor
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg3437870/#msg3437870

Parameter setting for HP34401A post by I3VGV
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/650/

EZGPIB success connecting to Prologic screenshot by Sprock
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg3476564/#msg3476564

Screenshot of Luke Mesters HP3478A Control Utility by AtlnticSurfer
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg3478956/#msg3478956

Luke Mesters HP3478A Control Utility being used to save CAL data by mcj7247
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg3493244/#msg3493244

3D printed enclosure for Pro Micro version by dl6lr
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg3481518/#msg3481518

Using with HP33120 and HP3478A by caiser01
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg3810788/#msg3810788

Another HP3478A calibbration read using adapter with point-to-point wiring and SN7516x buffers by pqass
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg3813158/#msg3813158

STM32F303/ESP32 vwersion by douardda
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg3827363/#msg3827363
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg4072366/#msg4072366
https://github.com/douardda/AR488/tree/esp32

Custom board with SN7516x buffers and Bluetooth by ONLYA
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg3942949/#msg3942949
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg3973676/#msg3973676

Rugged-datin' da connector by chickenHeadKnob
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg3954854/#msg3954854

Cypress FX2LP based Sniffer board for Sigrok by artag
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg4405006/#msg4405006

Buffered AR488 board by Jay_Diddy_B
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg4448758/#msg4448758
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg4483507/#msg4483507

Connection to HP16702A Logic Analyser by Jay_Diddy_B
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg4456264/#msg4456264

Cypress FX2LP based Sniffer board in use by Jay_Diddy_B
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg4503640/#msg4503640

Ordering buffered AR488 board via JLPCB by Jay_Diddy_B
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg4590094/#msg4590094

Reference to PyMeasyre by gmac34
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg4604662/#msg4604662

Building the buffered version of the AR488 by DC1MC
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg4610047/#msg4610047

Reference to xyphro's UsbGpib (32u4 based) by Nx-1997
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg4659160/#msg4659160


Various versions of adapters based on the PCB by artag
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg3100417/#msg3100417
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg3106704/#msg3106704
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg3360670/#msg3360670
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg3360898/#msg3360898
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg3435998/#msg3435998
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg3866630/#msg3866630
https://www.eevblog.com/forum/projects/ar488-arduino-based-gpib-adapter/msg3954854/#msg3954854

sundance:
Thank you very much for your excellent work!
Last year I also decided to write my own GPIB controller software for the Arduino (when I bought an HP-3478A). It worked - although I didn't finish it yet. And it's always extremely interesting to see how others do it...

-sundance

metrologist:
Spectacular. I was concerned because I recall Girlando did not want derivatives. You mention he reviewed and authorized this.

Inspired by the original work of Emanuele Girlando, licensed under a Creative
Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Any code in common with the original work is reproduced here with the explicit
permission of Emanuele Girlando, who has kindly reviewed and tested this code.

Thanks also to Luke Mester for comparison testing against the Prologix interface.
AR488 is Licenced under the GNU Public licence.


I'm not that versed on the licensing though and it is not clear to me if your code is protected by Creative
Commons Attribution-NonCommercial-NoDerivatives 4.0 International License or the GNU Public licence, or if those are the same references as you mention both. Sorry to bring up licensing topic, but I am not sure now what is restricted to modify and if possible what, and thanks for the work to advance the code.

sundance:

--- Quote ---(...) but the sketch is an almost complete re-write of Emanuele's original code
--- End quote ---
That sounds more than just some adjustments/patches to Emanuele's code. And if you compare both WaveyDipole's to Emanuele's code there are not too many sections that are similar, except the obvious parts that cover hardware compatibility.
It's like with my own code: I took ideas from Emanuele and others (like here: http://www.rudiswiki.de/wiki/GPIBtoUSB_Nano3) who wrote GBIB software for the Arduino. But since I also wrote it from scratch, the final result is completely different. The only thing (concerning licence and patents) that worried me was the use of the (quasi standard) Prologix command syntax.

kutte:
thank you,
but does not compile. Errors are
AR488-0-45-10:758: error: invalid conversion from 'void (*)()' to 'void (*)(char*)' [-fpermissive]
plenty of them..
AR488-0-45-10:758: error: invalid conversion from 'void (*)()' to 'void (*)(char*)' [-fpermissive]
AR488-0-45-10.ino: In function 'bool gpibSendData(char*, uint8_t)':
AR488-0-45-10:1964: error: return-statement with no value, in function returning 'bool' [-fpermissive]
invalid conversion from 'void (*)()' to 'void (*)(char*)' [-fpermissive]
Kutte


Navigation

[0] Message Index

[#] Next page

There was an error while thanking
Thanking...
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod