Besides the start/stop streaming control commands, and the FTDI control commands for setting timeouts, USB TX/RX packet sizes and latency settings, are there any others implemented on them?
I was wondering if there was one that instructs the device to produce a certain pattern of bits so testing of an implementation of a stream/buffer of entropy could be tested against expected output (which is obviously hard to do when it’s random).
With respect to other commands, I don’t recall any special testing protocol. Regular ComScire RNGs have a number of other commands, but the MEDs are a specialized function. The commands you mention only affect the FTDI chip and the interface software, which are independent from the FPGA. Basic commands for testing purposes would interact with the specific FPGA design. I am sure there is no command for producing non-random output. That’s the kind of command someone would hit by accident and then use the non-random numbers, so it’s not allowed.
Do all the RNGs (either ComScire) or MEDs use FT232 Serial (UART) IC or are there some other FTDI variants that you’ve used before?
They all use FTDI chips, but there are a few different varieties, depending on the speed of transfer (full speed or high speed).
Ah that’s right. In the original stub code that was provided a few years back which was used as the basis for MeterFeeder, there was a conditional “if serial begins with ‘QWR’” logic in it. This way it can avoid only looking for USB devices of a specific vendor and product ID.
Correct, that’s why every serial number begins with QWR. The digit after QWR, QWR4 for example (all MED100Kxx devices), tells the interface what speed group (which FTDI chip) the device is.