Even found a manual on the web, thanks to mbedded.ninja, who recently has torn the pump apart a bit. But still no idea how to control the 8 port distributing valve that it came with. The pump has no NVRAM where settings may be stored (in contrast to the VersaPumps), so it’s either hard coded in the firmware EPROM (a 27C256, it contains a string that there should be an 8 port valve) or this information is mechanically stored in the optical encoder wheel that it attached to the valve axis and read upon initialization.
The unresolved question about the command to move this valve into the desired position by software remains, however. The manual only tells us about the commands “I” and “O” which turn the standard 2 port valve to the input and output positions (the basic version of the XL-3000 is fitted with this kind of minimal valve to enable aspiration and dispensing of liquids from a reservoir or to use an air gap controlled set up for handling samples). So everything is back to intelligent guessing, as usual, as a quick look into the contents of the EPROM (settings for the TL866: UPD27C256A from NEC, I didn’t bother to remove the sticker from the chip to find out where it came from) didn’t reveal any obvious clues.
The VersaPump in contrary has a dedicated command for moving the valve, “o8” or “o-8” for moving it into position 8, clockwise or counter clockwise. But not the XL-3000.
So what about just adding the number of the port to the “I” and “O” commands? Yes, that’s it. The probably minimal solution that evolves when you want to adapt a firmware to a valve with more ports.