"Bought this (as many do) to make an automatic train (that will stop and wait at stations etc), by placing coloured tiles on the track bed. It is easy to fit to the underside of the passenger train (60197), through the square hold in the baseplate with just a single bracket and the sensor sitting at the same height as the bottom of the bogie. Once I fought the iPad app into submission, the colour sensor (I haven't used the distance feature) worked with a range of coloured tiles, eg red (stop & wait), green (speed up) and yellow (slow down). I had the track on a black tablecloth and have not, so far had any issues with unexpected colour detection. The coding was something of a challenge as you have to handle the idiosyncracies of the sensor with very little guidance (eg the polling frequency of the sensor: once you have detected a colour and performed the action, put in a loop that only exits when that colour changes. Otherwise you can have multiple detections of the same colour leading to unexpected results). Also, in the Mindstorms coding you can have one block to handle multiple possibilities (ie a switch statement) … I haven't found this in the Powered Up interface, and instead have a succession of nested binary "if" blocks."