I highly recommend the accompanying youtube demo video [1] - but only if you enjoy a hacker dad singing fausetto to propel his son's toy train faster around the track.
We have this same train set. The app that goes with it is pretty cool; you can set up a track in real life and then make the same track in the app, and it will follow along, with little mini games at certain spots, etc. The app train and the real life train stay in sync.
The train has a sensor (probably a very simple color sensor) on the bottom that can read the little marker pieces that you place on the track to trigger various functionality. It also knows the approximate speed.
It's a relatively inexpensive toy aimed at young children. You shouldn't expect too much from it.
I was in the same situation and ended up writing a browser based controller for the Duplo train using the Web Bluetooth API. It works best on mobiles in portrait mode and you can find it here: https://legotrain.netlify.app/
The source is a single HTML file that also contains the JS. Just view source and modify if you're interested in taking this further. What's cool is that the protocol allows you to receive readings from the train and not just send commands. Also, it allows you to drive the train faster than you can via the official mobile app.
Uhh this is super nice. I did not even know there was a Web Bluetooth api. That's dope. Then I can drop all of the nodejs stuff and also run it from the phone that's a lot nicer. Thanks for the share!
was anyone else hoping when he said Windows wouldn't cut it he was going to start talking about Linux? Just kidding of course (kind of). Sounds like a fun project.
Sadly Bluetooth support on Node is a mess and has been so forever. Noble is the only BLE library, and the original creator abandoned it years ago. The community forked it and has been maintaining it since then, but it's still got a lot of the baggage from the original, particularly that it's near unusable on Windows. I've considered rewriting one of my projects in another language just to get away from Noble.
I have that set - and it’s fantastic. It comes with instructions to integrate a motor into the mechanism to bring the roller coaster cars to the top of the first hill.
There is no LEGO-branded BlueTooth controller for Power Functions. Only infrared. (Some third party controllers exists though).
However LEGO Power Functions is replaced by LEGO Powered Up which is BlueTooth controlled. The same system controls products branded LEGO Technic, LEGO Boost, LEGO Ideas, LEGO Robot Inventor...
[1] https://www.youtube.com/watch?v=t65X-cs55qM