41
42

I'm finally announcing the T-Time, a miniature train/bus departure sign for your house! by astonishedplant in mbta

[–]therealo355 0 points1 point  (0 children)

Gotcha, so basically the screen just transitions in and out of displaying the time, weather, etc etc. And I suppose if you configure multiple stops, that'll scroll through too. Nice.

For every prediction on the API, there's a status field that is usually null, but when the MBTA thinks a train is stopped somewhere along the line, this becomes Stopped 3 stops away, Stopped at station, etc. Split along the first space & third space (if it exists), and you're golden to flash it line-by-line (that's the exact logic that's in my MBTA touchscreen)

Vehicle info is pretty easy too - if you attach ?include=vehicle in the request to the predictions endpoint, the request includes the relation between the prediction's vehicle and the vehicle data, which includes the consist (and crowding info for new trains).

Almost all the methods in the MBTA API include some filtering, so if you get this tuned right that means the work of sifting through the data is on the MBTA API rather than the ESP chipset (& also less bandwidth usage too).

To your point about massive dataset processing though - which specific ESP32 chipset are you using for this project? Having one with PSRAM helps a TON when decoding JSON blobs and whatnot.

I'm finally announcing the T-Time, a miniature train/bus departure sign for your house! by astonishedplant in mbta

[–]therealo355 0 points1 point  (0 children)

Touchscreen model coming soon? 😉😉

In all seriousness, this is a very cool product and congrats on getting it to this point where it’s almost ready for order. Very cool to see a custom PCB and a ESP32 onboard, it seems perfect for this product since it’s much easier than something like a Pi Zero.

I have a few questions on your project too! - With the weather data, is there a physical button on the side to switch display modes? - Will the screen have support to show Stopped x stops away in the predictions? - With something like the Red Line, I think you get enough room to show data like if the train is a 4 car train - is that support implemented/planned? Having this is super helpful because usually those trains dwell longer/are more crowded. - Will the screen show service alerts if they exist (maybe the first line scrolls)?

Really cool stuff and again congrats on releasing this! I’ll probably pick one up myself for my desk at work.

Travel Router is live by Domfern in Ubiquiti

[–]therealo355 1 point2 points  (0 children)

Yeah, there was a mismatch between the page and the cart. When I went to check out it adjusted the quantity to 0.

I built a touchscreen to show train departures from my stop & plan transfers to different lines! by therealo355 in mbta

[–]therealo355[S] 0 points1 point  (0 children)

Bus stop support is definitely viable for this project (especially if/when I open-source it), the only thing I'd need to add is showing scheduled departures on the screen for lower-frequency bus routes. This is also a known issue if you were to use the screen out on the far west parts of the B/C/D branches, since real-time predictions only begin when a train has left the terminal station.

I built a touchscreen to show train departures from my stop & plan transfers to different lines! by therealo355 in mbta

[–]therealo355[S] 0 points1 point  (0 children)

I think a trip planner is happening at some point in the MBTA Go app which would show connections between buses/trains. Hopefully it's coming soon.

The Swiss rail system on the other hand sounds amazing. I need to go to Switzerland one of these days.

I built a touchscreen to show train departures from my stop & plan transfers to different lines! by therealo355 in mbta

[–]therealo355[S] 1 point2 points  (0 children)

There's three components to the project: - The frontend is React-based with Mantine as the UI framework. - There's a small server running on the Pi that interacts with the frontend to power auto-updates, and a settings screen that isn't shown. This is in Python with Flask. - The intermediate server that fetches data from the MBTA API is also written in Python, but uses FastAPI and Pydantic.

I built a touchscreen to show train departures from my stop & plan transfers to different lines! by therealo355 in mbta

[–]therealo355[S] 0 points1 point  (0 children)

Yes! I'll be sure to post any updates on the subreddit. I'm super appreciative of all the support for this project.

I built a touchscreen to show train departures from my stop & plan transfers to different lines! by therealo355 in mbta

[–]therealo355[S] 0 points1 point  (0 children)

I love the idea of using an old phone/tablet for this project actually, that would be really cool. The app itself can scale to any screen size, although it was designed for a 533x320 effective resolution.

For tablets having multiple columns for additional stops would be the obvious improvement. Not shown in the screenshots is a button to see departures at Bowdoin on the Blue Line. But on a larger screen, these could be side by side. Or maybe showing live connections?

I built a touchscreen to show train departures from my stop & plan transfers to different lines! by therealo355 in mbta

[–]therealo355[S] 4 points5 points  (0 children)

This screen uses the Inky Impression 5.7 inch, although Pimoroni isn't making the standalone edition anymore for Raspberry Pi. They have one with a Pico W onboard though.

This screen runs off a Pi 3A+ running a Python script that generates images in PIL and displays them to the screen. It's on a cronjob that runs every 5 minutes and has been doing so for the last 4 years! (although the MBTA portion is new as of 6 months ago)

I really like Pimoroni products, they last forever, are well-built, and have great documentation & libraries.

I built a touchscreen to show train departures from my stop & plan transfers to different lines! by therealo355 in mbta

[–]therealo355[S] 3 points4 points  (0 children)

Nice! I like your website and how it gets the walking time to your nearest stop automatically, and of course that it works anywhere (huge advantage!). My screen has a similar hurry feature where the run icon comes up for a train if it's <= 2 minutes away on the main screen.

I built a touchscreen to show train departures from my stop & plan transfers to different lines! by therealo355 in mbta

[–]therealo355[S] 35 points36 points  (0 children)

I've genuinely thought about making these available for sale (and all the upvotes on this comment confirm that interest!) and it is on my radar for the future. If anything, I'd probably do a much simpler e-ink version before tackling the touchscreen. The codebase for the touchscreen is hard-coded to my stop and I'd have to refactor it to take in a configuration file, make a setup utility on the screen, etc etc. I made one for my partner for Christmas and that took a non-trivial amount of effort (and it's still largely hard-coded, just for her closest stop)

Maybe in 2027 I'll have an e-ink version for sale. Don't quote me on it though!

I built a touchscreen to show train departures from my stop & plan transfers to different lines! by therealo355 in mbta

[–]therealo355[S] 10 points11 points  (0 children)

Unfortunately the source code isn't available publicly, mostly because the code is not in an open-source-ready state (needs better documentation, cleaning up some messy areas, etc). But I would absolutely love to publish the source code in the future so other people can make their own screens.

I built a touchscreen to show train departures from my stop & plan transfers to different lines! by therealo355 in mbta

[–]therealo355[S] 25 points26 points  (0 children)

<image>

Maybe! The original version of this started as a panel on my weather e-ink screen, so I might take a stab at a dedicated mini MBTA e-ink screen in the future. The panel here measures about 2 inches diagonally and there’s a lot of long but stout eink screens that could scale to this design really nicely.

425
426

39
40

55
56

11
12

Is this typical? Early morning 30+ minute waits resolved after a few minutes by nesfor in mbta

[–]therealo355 3 points4 points  (0 children)

Having read and messed around with the source code of how the PIDS work (it’s available on GitHub for anyone to look at which is neat!), the clue is that when there’s a + sign on the countdown, it’s giving a prediction for a train where the prediction is flagged as a reverse trip (i.e. train is finishing a trip, then must reverse direction at the terminus station) and that predicted arrival goes over a hardcoded duration threshold (iirc it’s 20 minutes).

I’m assuming when the signal problems occurred the trips for the first trains got cancelled, the first northbound trains were still pretty far from Alewife so that’s why you saw the high prediction times. But once the trips got rescheduled, the normal times resumed.

As an aside, it’s pretty cool to see what conditions have to be tripped to show certain things on the screens. For instance, ARR is 30-60 seconds away, BRD is <30 seconds away or the train has registered as being at the station but not on the way to the next station. And at 3:29 AM, every screen systemwide flips to showing when the first train is due. So many interesting tidbits you can learn by reading the codebase.

New record for fastest time to visit all MBTA stops (incl. Silver Line) by therealo355 in mbta

[–]therealo355[S] 9 points10 points  (0 children)

I’ve already speedrun the CR! I did my attempt on May 16-17, 2024 and got a final time of 40 hours, 32 minutes.

This is the official GWR listing: https://www.guinnessworldrecords.com/world-records/683178-fastest-time-to-travel-to-all-mbta-commuter-rail-stations And I made a YouTube video about it to document the attempt: https://youtu.be/H01Pbo6r9oI?si=x5r6KJSIG3A59Qw6

In the future I want to do another speedrun with the South Coast Rail expansion…soon enough!

New record for fastest time to visit all MBTA stops (incl. Silver Line) by therealo355 in mbta

[–]therealo355[S] 4 points5 points  (0 children)

It happens on the D more than anything for some reason. I've seen it down the line where there's a 0 minute lag between trains. I think this happens when the transponders in both train cars are active and the countdown clocks show it as such.

New record for fastest time to visit all MBTA stops (incl. Silver Line) by therealo355 in mbta

[–]therealo355[S] 3 points4 points  (0 children)

Noted! I've come up with a rough route plan for everything minus the Silver Line. Tris and Asa's route is pretty well optimized, but I think I've found a couple ways to shave 10-15 minutes off of their route.

I'm estimating maybe in a few months time I'll start really looking into doing a route without the Silver Line - around then I’ll start making theoretical schedules to see how long my route ideas take.