Currently, PyLabRobot indexes pipetting channels from 0 to n-1 where n is the total number of channels, and 0 is the frontmost channel.
STAR uses channel indexing where 1 is the frontmost. For Vantage, the firmware indexes them in the opposite direction. Tecan uses 0 indexing like PyLabRobot currently does.
It would be good to definitively agree on a format for PyLabRobot user-land. Do we keep the 0-indexed channels or make them 1-indexed? 0-indexed could be more programmer friendly and is what’s currently being used, but 1-indexing could be more scientist-friendly in the future. Backends are of course responsible for translating PLR user-land to specific-robot-land.
The programmatic option makes sense to sustain consistency.
1 Like
Hi @rickwierenga, can you please elaborate on what you mean by “frontmost”?
I have not observed that channel 0 is the one closest to the users/front.
In VENUS channels and carrier positions are numbered back to front:
This means that any firmware command is executed the same way:
module="P1"
will use the most backwards channel.
If we continue with 0-based channel indexing (which I am also in favour of) even though the firmware command it translates to uses 1-based indexing, I think it is important to make sure PLR is consistent:
- PLR_channel_idx_0 == VENUS_channel_idx_1 == fw_command_channel_idx_1
- PLR_channel_idx_1 == VENUS_channel_idx_2 == fw_command_channel_idx_2
…
Are others observing different behaviour?
i.e. has anyone observed…
- PLR_channel_idx_7 == VENUS_channel_idx_1 == fw_command_channel_idx_1
?
This looks odd to me.
To showcase my meaning: I receive the following output on my STARlets:
If PLR_channel_idx_0 was the frontmost channel (in relation to the machine coordinate system) then this output would not be possible.
Yes correct, I wrote that wrong, currently 0 is backmost on the Vantage at least (~“PLR_channel_idx_7 == VENUS_channel_idx_1 == fw_command_channel_idx_1”~ “PLR_channel_idx_0 == VENUS_channel_idx_1 == fw_command_channel_idx_1”). I don’t think it’s good to change this.
Just to ensure I understand this correctly:
On the Vantage:
- PLR_channel_idx_7 == VENUS_channel_idx_1 == fw_command_channel_idx_1
→ backmost channel
But on STAR machines it is :
- PLR_channel_idx_0 == VENUS_channel_idx_1 == fw_command_channel_idx_1
→ backmost channel (as evidenced by my screenshot above)
?
So Vantage and STAR have reversed channel ordering in PLR?
meant to say “PLR_channel_idx_0 == VENUS_channel_idx_1 == fw_command_channel_idx_1”. It’s all as expected: backmost is 1 on venus, 0 in plr, on both star and vantage.
1 Like