System called ASDO. Works off GPS and the headcode, so sometimes gets the platform wrong after a last minute change. Guards have to override it regularly by all accounts
Asdo doesn't work by headcode, you're thinking of the PIS for that, the systems are linked but separate - Asdo works fine if no headcode is provided in the PIS, and the PIS works fine if Asdo isn't working (but the PIS wouldn't display platform side info on approach to stations).
Asdo works by GPS and odometry. If it's guaranteed which side the platform will be on (eg in general terms a two-track station with a unidirectional pair of lines) then Asdo will know where it is and will send info to the PIS (which also knows where it is but independently and more loosely) which should display the side the platforms will open and remove the 'door not in use' roundels.
If the station in question is say bidirectional (eg Preston, Leeds) or a terminus (Liverpool Lime Street) then Asdo should know where it is if it is working correctly, but not which platform it will arrive at, so it can't show the platform side on approach and the guard must override Asdo by using SDO on arrival to open the train doors. Only once the train doors have been released in those circumstances will the PIS screens display the platform side. If Asdo isn't working correctly then the guard must check what kind of Asdo fault it is with the driver, report the circumstances and may have to use SDO, which bypasses Asdo, at every station.
Asdo works completely independent of beacons, the one pictured upthread is for TPE.
* edited first para to make it clearer Asdo doesn't use headcodes and PIS doesn't know itself which side doors are to be operated on.