Display data coming from a USB port

Discussion in 'The Projects Forum' started by G-Fire, Mar 4, 2014.

  1. G-Fire

    Thread Starter New Member

    Mar 4, 2014

    I'm pretty new to this embedded stuff as I'm more a software guy (I had a class though back then when I was a student), but I would like to realize a small project.

    My goal is to build a display that displays data that is coming from a computer via USB. I did some research already, but I'm not sure what I need for this project.

    I was planning to buy a 4.3" LCD for an SSD1963 controller. So, now I need some kind of a board, I guess. However, all development boards that I've found are too "expensive" and from my point of view overpowered. I only need a display that is showing the rendered images coming from my computer via USB. There is no additional functionality needed. Therefore, I'm looking for the cheapest solution.

    What is the usual approach for such a project?

    Thanks a lot!
  2. KeepItSimpleStupid

    Well-Known Member

    Mar 4, 2014
  3. G-Fire

    Thread Starter New Member

    Mar 4, 2014
    Thanks for your reply.

    By "rendered image", I meant that the controller doesn't need to create the image to display, because it only shows what's sent from the computer.

    I don't want to use HDMI, VGA or whatever, because the project is meant as an additional device.
  4. shteii01

    AAC Fanatic!

    Feb 19, 2010
  5. BMorse

    Senior Member

    Sep 26, 2009
    the microcontroller will still have to "know" what is being sent, so it could decipher it and convert it to data compatible to be displayed on an LCD display, you cant just receive data (not knowing the baud rate, or type of data) and automatically display it as it should be.

    What device is this that is connected to the USB port that you want to monitor? Is this data going to another device also? or is this just a display you are trying to build to be able to display stuff like what song is playing on the media player, or other system information?

    You can easily interface a Serial LCD to a USB port using a USB to Serial converter (dongle), you then have to write the code on the PC to be able to control the display itself via the USB port.
    Last edited: Mar 4, 2014
  6. ErnieM

    AAC Fanatic!

    Apr 24, 2011
  7. THE_RB

    AAC Fanatic!

    Feb 11, 2008
    You need a bit of power to drive a SSD1963 with a 480x272 resolution.

    Even sending the data over USB for 24 bit RGB888 colour will take quite a long time per image. Going to a 16bit colour format like RGB565 will speed things up 50% faster but can still take a couple of seconds to transfer one image.
  8. G-Fire

    Thread Starter New Member

    Mar 4, 2014
    Awww... that doesn't sound good :(

    Where is the bottle neck?
  9. takao21203

    Distinguished Member

    Apr 28, 2012
    PIC32 is using 48MHz for the USB serial engine.

    So in theory, the max. data rate is 48/8 = 6 Megabytes/second.

    In reality it will be less than that.

    It is possible to connect a TFT directly to a PIC32. But if you want to drive a TFT glass with a chip, you need a lot of extra components + voltages.

    1. You can download the USB stack from Microchip.
    2. You need a Windows Software on the other side, sending the data.
    3. You need to adapt the TFT source code to PIC32.

    USB/serial converter to serial TFT = easy?

    These use a 4-wire protocol. It will be a mess, since you only can toggle control lines very slowly.

    I guess who posted that idea, has never even tried it once.

    Also larger TFTs dont use serial interface.

    For a TFT of this size, you need 16bit interface. A 40 PIN DIL chip, and you will not have much IO bits left (there are 32 or so at max.)

    Suggest to use a 64 pins TQFP chip.

    24bit TFT? Most with integrated driver IC have 18bit, and can also use 16 bit or 12 bit modes.

    It is even possible to drive TFT directly with PIC32, using DMA.

    From the 6 megabytes max. data rate, you can calculate max. number of pictures/second. And then, divide that by 2.

    About 10 frames/second should be possible.
  10. THE_RB

    AAC Fanatic!

    Feb 11, 2008
    There's two bottle necks;
    1; time to get the data from the USB port; 480x272x2bytes per pixel = 261120 bytes per image.
    2; time to write that pixel data to the TFT display. That depends on your micro's speed and if it has a 16bit parallel SPI port (most don't).

    and don't forget 3; can the micro receive the 262k of data at the same time it is sending the data to the display?

    If you are an expert using a 32bit micro you might be able to get decent speed but then if that was the case you probably would not be asking the questions you are asking. :)

    In post #1 you said you wanted to display "data that comes from the PC". Why not just send the handful of bytes of raw data and get the micro to diplay it as text? That will be hundreds of times quicker.
  11. vivianamos

    New Member

    Aug 3, 2015

    I have a PIC32MX250F128B USB Digital Audio Acessory board. Is there any chance that I can communicate with my PC so that when I plug my board I should be able to see it in my PC's COM port. How to establish a serial connection through USB to PC ? Is there any sample codes available ? I used Harmony to configure but was unsuccessful