A couple of questions. I see a lot of these 'garage-brew' gpib adapters. (this may sound a bit as a rant , and it is...)
- How come NONE use the correct bus drivers ? ( SN75162 and 163 ). You are violating the GPIB signal levels and bus load capability. I foresee major trouble if you have 5 or 6 machines hooked up with some 10 feet of gpib cables, possible even before that. This may work fine with one machine.. but hook up a few ( especially the older ones ) and it'll go to snot. These driver chips are cheap. Do yourself a favor and put them on the board.
I hooked up my revA board a few months ago to several instruments with a decent length of cable and did not experience any issues. Perhaps some will appear if you start pushing the limit of the spec. I'll keep those drivers in mind for next time, I wasn't aware of them. This project started off as a lot of firsts for me, and I do not claim to know everything. I only claim to have come a long way from where I was.
- is there a VISA or GPIB32 compatible driver for these things ? If not, it is pretty much useless. All existing instrumentation system assumes you either expose the unit through a VISA layer as ::USB::BUS0//Device..... and so on. Or they interact with GPIB32.DLL. If you have a 'real' gpib board (National , CEC , Agilent, ICS, and others) they ALL suppor tthe GPIB32.DLL and the VISA interface. The VISA protocol is an ascii level system that allows you to commincate in a hardware independent way. I don't care if it gets sent over GPIB , ethernet usb or whatever... here is a command string and i t needs to go there. done. I would suggest you investigate making a VISA plugin for your board ( you have the advantage you use an FTDI chip. VISA supports serial ports out of the box, all you would need is to make your command parser in the PIC software be VISA compatible. (i have seen cheapo GPIb adapters that use HID transport and even one that 'emulates' USB on an atmel cpu (obdev USB stack.. Bweuaaark.. ). those are really horrible.)
Fully understood, the only reason i am posting this is the following : many GPIB capable machines come with free software from the manufacturer. Buy a used Agilent machine and there is a good chance you can get a free piece of software that works perfectly with the machine.... provided you can talk using an 'official' channel such as either visa or gpib32.dll.
I , for one, hate to have to reinvent the wheel. If i can use that free piece of software i will do that. i don;t wat to wast time having to make my own script trying to figure out how to download a binary waveform.
I originally started this project because of my frustrations with the various drivers. I'm a graduate (MSc Physics) student at the University of Waterloo. About a year ago I was tasked with setting up all the equipment for this experiment. So I grabbed our NI GPIBUSB-HS, hooked it up, and found that drivers don't exist for Debian based Linux distributions. So I thought, alright, I'll just install a Red Hat based one, which are supported. I got the drivers installed. But then I found that the Linux version of these drivers don't include Matlab bindings. We had to use Matlab for this project. At this point I went ahead and installed Windows just so we could actually do some work. I decided to make my own, using FTDI chips for VCOM, and just implement my own basic set of commands.
Perhaps in the future I will make it VISA compatible along side the simple commands. But as they say, you've eventually gotta get your product out there. But, my original idea came from lab work, where we had to automate several instruments from scripts. Starting your script off making a serial object or making a visa object doesn't change much.
Simple example. I have a used 33120 AWG and an scope. using the Benchlink software from agilent ( free ) i can simply grab the scope trace, do some operations and send it to the AWG for playback. Beautiful ! ... provided i hav a 500$ gpib board @!#$%^&^%$# not beautiful ! i paid 100$ for the scope and about 200 for the AWG ...
If i could only have a 'hobby price level' gpib board that is compatible i would be golden. and having the board being compatible with VISA or GPIB-32 does NOT preclude you being able to write your own drivers.
I wasn't originally aware that I could make it compatible without writing my own drivers. Again, perhaps in the future I will include that functionality along side with the current implimentation.
That is my frustration with all these 'hobby gpib' boards. Why not put in 20 cents more parts, make it compliant by having the real driver chips on board. And crowdsource some firmware that can handle the visa interface. ( its a stupid ascii command parser , so instead of 'inventing' your own command set , simply use an existing one)
I don't have the time to make my own board and write my own pic firmware and visa driver. I have real agilent USB<>gpib boards (PCI usb and ethernet). so i have no interest in this project, apart from trying to convince some small tweaks that would make it better than all the others already out there.
I did a quick search for those drivers; seems to be a lot more than 20 cents. The pullup resistors that I'm using are much cheaper than that chip. If I can fit it in the next revision, I probably will.
The firmware is up on
github.com/Galvant, and I'm open to people submitting changes. If someone wants to work on it, and they produce some new functionality, they just need to let me know.
My point is : if you are going to release something , make it compatible with the rest of the world. It does no good making something that is a 'kludge' and only works for simple things.
already not having SRQ is annoying... can we do binary trasnfers ? lot's of spectrum analyzers etc can send over binary datastreams holding for example TIFF images... I have not seen a single 'homebrew' board that know how to handle such transfers. Logic analyzers use that too. they send over compressed data. if you want to reuse this in a pattern generator : you are stuck.
I am not dissing the efforts of 'scasagrande'. I think its great there is another hobby usb<>gpib adapter. All i'm trying to do is poke and prod so it rises 'above' all the others already out there.
Otherwise it is 'just one more'...
The SRQ line is hooked up, the functionality just hasn't been implemented. It has a bootloader, and again, the firmware is up on github. I know that it won't take much time to add it in, but I decided not to yet for two reasons. First, its not an important feature for most people. So I decided to save time and do it later. Second, I will need to test it, and I haven't looked yet in the depths of the manuals for the few pieces of equipment that I have at home to see if they have some sort of simple SRQ command for me to test.
If you watched my youtube videos you will see that it does support reading binary blocks from my Tek scope.
Thanks for your feedback and I'll keep your comments and suggestions in mind for future revisions. Right now, it does what I want it to for a reasonable price.