Adding an LCD screen terminal for TP-Link routers

Routers running embedded Linux offer quite a bit of power depending on what you need to do. To extend the usefulness of his TP-Link router [Roman] built a rig that adds an LCD screen to display the terminal. But it ended up being quite a bit more powerful than that.

The first portion of the project was to build a USB video card for the display. [Roman] went with an STM32 development board which resolves the USB device end with the QVGA screen driver (translated). This seems like it would be the lion’s share of the project, but he still needed a driver on the router to interface with the device. This thrust him into the world of USB-class drivers (translated). It even included building graphics support into the kernel of OpenWRT. The final piece of the puzzle was to write a frame buffer (translated) that would help regulate the output to the screen. The result works so well he is even able to play games using ScummVM. See for yourself in the clip after the break.

20 thoughts on “Adding an LCD screen terminal for TP-Link routers

  1. This is cool!

    Not really related, but I am struggling with the serial port of this (TP-Link 3020) device: When I hook up my teensy to it, I only get a few characters, at most a few screens full, then the serial line freezes. I have used the OpenWrt-suggested Pullup of 10KOhms, of course, but to no avail.

    1. @ausserirdischegesund
      I experienced this issue myself. Of course you connected Rx and Tx, and added a pull-up to both lines (if you look at the PCB there are locations for resistors which were omitted). However you must (sometimes) add a ground connection! Sometimes you’ll get lucky and you won’t need it but this is not one of those times.
      Find the power supply bypass capacitor – the only largeish one IIRC. If you have a multimeter, use that to determine ground; if not pick the side with the largest plane of copper. Solder on a wire against the cap’s lead, it’s the nicest soldering point for gnd that I found. Hook it up to your teensy’s gnd and you should be good to go.
      Note: My device was a 703N not a 3020 but I’m sure the same principle applies.
      Best of luck

    2. Typical if if you take ground on the connector shield, which is NOT gnd… Best place is the (relatively) larger round pad near J1 jumper on top side, between USB connect, main chip and PCB printed antenna. Most of the time, pull-ups are not required, except when using FTDI cables.

  2. The first part of this awesome tutorial says: “Those who do not like to solder… so actually we do not have to solder”.
    Don’t like to solder? Then f##k your brain with USB. That’s the main idea of this project.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.