Skip to content

felixm-byte/talking-train

Folders and files

NameName
Last commit message
Last commit date

Latest commit

e718409 · · Apr 25, 2026

History

26 Commits
Mar 21, 2026
Apr 25, 2026
Apr 25, 2026
Mar 31, 2026
Mar 31, 2026
Mar 21, 2026
Apr 25, 2026
Mar 21, 2026

Repository files navigation

talking-train

poster describing features of the talking train, with a features list and 3D model resembling a London Underground train

This is a bit of an odd concept, but I want to make a talking model train for my grandparents to remind them of their times visiting us, since they are too old to ever make the 19,000 km journey from New Zealand to England. Every time I call them from the train, they light up at the familiarity of the announcements when they hear them and get super nostalgic, which makes me think it would be nice—and a cool souvenir—to let them hear them whenever they like. Technically, I think it would be a cool project, since I’ve never made something with a physical interface, or really made something with hardware, and I would love to learn. Most of what I build would be applicable to other countries, so I think it would be something lots of people would like.

File structure

  • Please ignore /hardware/old-design, for reference only
  • Manufacturing files in hardware/manufacturing-outputs/...
  • Code in /software - these scripts are in MicroPython and target the ESP32 microcontroller, expecting a 128x64 SSD1306 I2C OLED display and an I2S audio output device

Part examples

Features

  • Loads stations and displays them in order on the OLED screen
  • Audio playback with hi-res audio
  • Line creation tool
  • Audio playback support

Key files

  • hardware/manufacturing-outputs/ contains the files (.stl, pick and place, gerber, BOM) needed to produce the finished product, with the 3D files for the case in manufacturing-outputs/3d/ and the PCB in manufacturing-outputs/pcb/
  • Source files like the EasyEDA (.epro) file and the 3D model of the PCB (only really necessary for designing a new case) is in hardware/source-files
  • Use the onshape file onshape for the case 3D source, and access an interactive bom on my website
  • software/ contains the line creation tool and the software for the ESP32 to run.

Assembly

  • Assemble the PCB outside of the case by soldering on the parts. Do not attach the display at this stage.
  • To protect from the unlikely event of soldering error, do not plug the usb-c port directly into an important device: plug into a wall outlet first and check if the power LED is active. If not, I recommend stopping using the device.
  • Place this 3D printed piece flat on an assembly bench. part with round screw holes pointing out
  • Place the PCB onto the round pieces that poke out, which are used to seperate it from the case. Make sure it is in this alignment and that the screwholes line up. PCB aligned with scewholes
  • Then, insert the screws into the screwholes as shown in the graphic, taking care not to poke the board components.

Inserting screws

  • Rotate the model so that it sits with the side of the train on the desk and the top of the train facing upwards. Turn the nut around the screw to secure the PCB.

Securing with nuts

  • Next, return the PCB to the original orientation, with the side of the model the PCB is attached to, resting on the desk. Gently attach the display in this orientation, ensuring the pins line up with the header.

Orientation for display

  • Finally, take the other part of the 3D model, place it down with its base on the desk. Align the attachment pins from the top side (which we have just assembled) with the sockets from the part we put down, and push it in.

This should now be ready for use. Attach by USB-C to your computer, set up MicroPython, flash the software, and attach a pair of wired headphones to the device.

Note: please be careful with audio - I don't know how loud it'll be until I test the model.

For reference, other parts rendered:

The pieces used for mounting the top half of the model: render of top piece

Fit into these holes on the bottom part of the model. render of bottom piece

Graphics

schematic PCB diagram (wiring) PCB render - old PCB, for shape reference only PCB render- old PCB, for shape reference only

Reference materials

About

A model train with announcements for London Underground stops

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages