Do you use relays for the blowers? Can you use MOSFETs for more accuracy?
Hm, never even thought that that might be a factor. Yes, it uses relays. I'm not sure how much belt travel will be off because of that, but given that it would be a constant it would likely already be accounted for a an offset to 'center of part' which is where I try to hit the parts to make sure they don't spin like mad.
That sounds reasonable, where you may have more luck with something more accurate is if you had to run the blower for a shorter time, or maybe pulse it to lower the wind speed (I'm not sure if that's possible).
The relay pulses are about 50 msec, that's mostly limited to ensure there is enough air to rapidly hit multiple bins in a short time, as well as to be able to 'pick out' a part from two adjacent parts on the belt without hitting the other two. That took a while to get right!
The main limitations is to be able to sort into only 12 bins in one pass. If you want more detail or more groups then you need more passes. Ideally it would sort into a few hundred bins at once but I have not been able to come up with a geometry that works well. The most radical idea would be a tower of 2 meters high or so with bins spaced around it like flower petals, the air jet would have to be timed super precisely to aim the part into the right bin, especially near the bottom where the velocity would be quite high.
Pick a part is easier, the software is trivial but the hardware is anything but, an 'automated warehouse' for Lego parts would be a pretty tricky thing from a mechanical point of view.
And once you're on that train of thought, the obvious end-game is a machine that re-assembles the sets, then we can declare Lego a 'solved problem'.