Public Transportation Display

display_cropped

[Adrian] and [Obelix] wanted to have an easy way to know when to expect the public transportation, so they hacked an LED dot matrix display to show arrival times for stops near their dorm.

They found the display on Ebay with a defective controller which they replaced with an ATmega328p. They connected the display to the internet by adding a small TP-Link MR3020 router and connecting it to the ATmega328p via a serial line. Their local transportation office’s web page is polled to gather wait times for the stops of interest. All rendering of the final image to display to the dot matrix display is done on their PC, which then gets pushed through to the MR3020, which in turn pushes it out to the ATmega328p for final display.

[Adrian] and [Obelix] warn about setting proper watchdog timers on the display driver to make sure bugs in the controller don’t fry the dot matrix elements. Their ATmega328p dot matrix driver code can be found on [Adrian]’s GitHub page.

Check out a video of the display in action after the jump.

16 thoughts on “Public Transportation Display

      1. HaDiKo!! Nice work guys, I really like your write-up and effort. I recently discovered the REST Api and I’m planning something pretty similar

  1. For a second there I forgot what public transportation was (I catch it everyday) and it took me about 3 reads of that first paragraph before I realised it was talking about bus/train arrivals and not time travellers/terminators. I think I need more coffee.

    1. I thought “What a nice evening project to rebuild it using an Arduino, the network shield and some duct tape” … turns out the RAM is too small to fit the whole JSON request :P

      1. I build my own Arduino module with an ENC28J60 Ethernet chip for this job, but I’ve trouble getting the correct response from the transportation offices webserver.

          1. No sry I tried this before, works fine with everything but I only get “HTTP/1.1 500 Internal Server Error” with my GET request from the Arduino… I even sniffed the TCP packet and to me it locks exactly the same as the package send by the browser ….

      2. Couldn’t you just run the data fetching and processing on the MR3020? It should have enough of free RAM I guess.

        1. They did it that way. I thought this would make a nice project for an evening. I think I’ll go and use a router instead then :)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s