Great News!!!
The automated announcements are now playable via the PA unit!
(Example with Ramsgate and Dover Priory)
View attachment 193911
I was able to decompile and figure out the portion of the instructions which receives the serial data along with the portion which sets up the serial port.
First a 0x02 "Start of transmission" byte is sent, followed by 0x35 which is '5' in ascii, which is then followed by 4 announcement address bytes and is then ended with a 0x03 "End of transmission" byte. 16 bit addresses are used, the 4 input bytes represent a digit in the address 0xABCD, and can range from 0x00 to 0x09. The software combines the 4 input bytes to form the 16 bit, 2 byte address. As the address data is read, ' ' / space character / 0x20 is removed meaning that the sent address data is the corresponding number in hex plus 0x20. So 0x00 becomes 0x20 and 0x09 becomes 0x29.
The example in the video is address 3071, the data sent is 0x02, 0x35, 0x03, 0x00, 0x07, 0x01, 0x03.
The PCB uses a SN75176A for RS-485 communication, for this temporary setup I have a test wire connecting to it's output so then I can skip having to make a RS-485 signal. The output however is then connected to the cathode of a HP2601 optocoupler, how this IC works and how it's used in the setup means that the output is inverted however due to the cathode being used, this is cancelled out.
Serial = high, Optocoupler = low, Output = high (inverted)
Serial = low, Optocoupler = high, Output = low (inverted)
This means that I cannot drive the optocoupler directly from an ESP32 microcontroller as a low output would not be properly grounded to operate the cathode. Instead I used a NPN BJT which initially caused problems as this made the serial line inverted, to solve this I used an initial NPN to invert the serial line then another to switch the ground line for the optocoupler.
View attachment 193912