Electronics > Projects, Designs, and Technical Stuff

AR488 Arduino-based GPIB adapter

(1/170) > >>

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:


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:

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

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...


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.


--- 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.

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]


[0] Message Index

[#] Next page

There was an error while thanking
Go to full version