Hi Mike,
It has been more than 2 years since this post but I can confirm your code works. Thanks!
Exceptions:
1) Newer versions of SynScan Pro are not compatible and they reply with "Negative Response".
2) Version SynScan Pro 1.19.12 for Windows works perfectly once the timeout in the app settings is changed to 5000.
3) The newest SynScan Pro for Android returns the same "Negative Response" and you'll need a phone or tablet running an old version of Android to be able to install SynScan Pro 1.19.12.apk (I haven't try this yet).
4) The resistors mentioned in the code (50ohm and 100ohm) are not necessary. Direct connection to the TX and RX pins on the Arduino Mega should be enough.
5) If you are going to replace the Bluetooth module with the NodeMCU ESP8266, you'll need to bypass any resistors installed between the RX and TX lines. Connect directly.
I'll keep investigating the "Negative Response" issue and report back if a solution is found.
Cheers
Alex