Having recently done some work with the Arduino as a GPIB adapter recently, I have also run into the RTS/CTS handshake problem with KE5FX GPIB Configurator and EZGPIB. Assuming that the correct version strings have been set, my finds were as follows:
An Arduino board with the 16U2 embedded FTDI UART works fine with KE5FX although it is still a bit erratic with EZGPIB, often failing on first attempt. If you have a board that uses the CH340G UART, then it will not work at all with either program. I have noted the software workaround for EZGPIB in the opening post, but there is also a hardware workaround on boards with the CH340G chip. This involves connecting pin 9 to pin 14 on the CH340G to loop back the RTS signal to the CTS pin and send it back via USB to the host. That gets around the lack of CTS response from the Arduino with the CH340G chip and the KE5FX Configurator will now respond as expected. The same workaround is not possible and not necessary with the 16U2 (FTDI) chip.
With EZGPIB there is also an issue with timing, since connecting to the serial port prompts a reset of the Arduino board. On restart, the bootloader is run and first waits for a sequence of bytes indicating that the IDE is trying to upload a sketch. If it receives them, then it proceeds to accept the upload. If it does not receive the sequence, then once the wait period has expired program execution is passed to the compiled sketch. This is what allows a sketch to be uploaded easily via USB instead of messing with the reset button. However, the delay that results from this process also causes a problem with detection in EZGPIB. Since EZGPIB does not wait before checking the version string, the board is not detected the first time around. I can only speculate as to why it is then detected the second time around. Perhaps with the reset still being in progress, the second reset is ignored and reset then completes within timeout. Try it again a couple of minutes later and it fails again. Whatever the case, the workaround is to add a 10uF capacitor between the RESET and GND pins, taking care to ensure that the negative lead goes to GND. This will "block" the reset signal. Now, when something connects to the serial port, there is no reset and no delay and EZGPIB will now reliably detect the board. Of course, with the capacitor connected, the Arduino can no longer be programmed via USB, so to program, the capacitor has to be removed again. Add a switch in series with the capacitor would perhaps provide a "run" and a "program" mode.
Please note that the KE5FX GPIB Configurator requires a somewhat longer version string, namely “GPIB-USB version M.NN” where M is a major and NN a minor version number that is at least 2.xx and up to 4.26. Settings are enabled according to the functions of the hardware on various versions. Anything equal to or above 4.26 is treated as the latest version and all functions are enabled. Emanuele mentions that he ‘had to force “version 6”’ but anything above 4.26 seems to work fine. I have successfully used the string “GPIB-USB version 4.99”.
Incidentally, for the last 3 months or so, I have been working on an updated GPIB firmware for the Arduino. It was originally inspired by Emanuele's code and implements the same pin assignment scheme, but is an almost complete re-write. The remaining controller functions have been implemented, SRQ and REN lines are now fully supported and device mode has been added. The ++lon command does not work yet and secondary addressing has not yet been implemented, but the project is nearing a stage where it can be released (with the original author's permission) which I hope to do in the near future.