Git Product home page Git Product logo

fx2-usb-display's Introduction

Sub-$30 USB Display

This project aims to control a small 320x240 TFT display module over USB using a Cypress EZ-USB FX2LP development board.

It is a proof of concept right now.

Circuit

For an overview of the 40-pin display module pinout, see: http://www.rinkydinkelectronics.com/files/UTFT_Requirements.pdf

My display module has an SSD1289 controller and is marked "TFT_320QVT".

FX2LP Dev Board -> Display module (40-pin connector)

GND -> 1 (GND)
VCC -> 2 (VCC), 6 (RD), 19 (backlight)
CTL0 -> 5 (WR)
PA0 -> 17 (RESET)
PA1 -> 4  (RS aka data/command)
PA2 -> 15 (CS)
PB0 -> 21 (DB0)
PB1 -> 22 (DB1)
PB2 -> 23 (DB2)
PB3 -> 24 (DB3)
PB4 -> 25 (DB4)
PB5 -> 26 (DB5)
PB6 -> 27 (DB6)
PB7 -> 28 (DB7)
PD0 -> 7 (DB8)
PD1 -> 8 (DB9)
PD2 -> 9 (DB10)
PD3 -> 10 (DB11)
PD4 -> 11 (DB12)
PD5 -> 12 (DB13)
PD6 -> 13 (DB14)
PD7 -> 14 (DB15)

Building the Software

To rebuild the firmware, you will need a Linux system with sdcc and make installed. Run make in the firmware_source directory to generate a new firmware.ihx file in the build directory. To get it to compile on Arch Linux, I had to change the type signature of putchar and getchar in fx2lib/include/serial.h to the following:

To build the host software, you can use go build on Windows.

Running the software

Run fx2-usb-display.exe <x> <y>, where x and y are the top left corner of a 320x240 pixel screen area that will be copied to the display.

License

This software is licensed under the MIT License (see LICENSE file).

The firmware is based on fx2lib, which is licensed under the LGPL (see firmware_source/fx2lib/COPYING).

fx2-usb-display's People

Contributors

jboecker avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

fx2-usb-display's Issues

a little more help?

I am interested in getting this going. Is there an appropriate forum to ask more more info?

Ubuntu

Hello. Will this work on Ubuntu?

Attaching instructions to make this work under Windows

I tried this today, here're the steps to make it work:

Plug in your FX2LP board. Windows will detect a new device.
Download Zadig, it should detect the Unknown Device.
(You might need to enable Options -> List all devices)

image

Edit the device name to CY7C68013 EZ-USB FX2 USB 2.0 Development Kit and install the driver:
(Not really required, but otherwise it'll keep the Unknown Device #1 name).

image

Run fx2-usb-display.exe. It will upload the firmware, and close shortly after.
This is normal because there's no driver installed for the new device yet.

image

A new device will show up, called There, repeat the WinUSB driver installation, you can leave the default name.

image

Open again fx2-usb-display.exe, it will start working.

image

To change the displayed area, call fx2-usb-display.exe with X_START and Y_START arguments:
To start capturing at X=800 and Y=360: fx2-usb-display.exe 800 360

Display size is hardcoded so it needs to be changed in the code, for example in display.go.
Find all the references with 320 (Width) and 240 (Height) and modify them accordingly.
I guess fx2-usb-display.exe executable was made using ´pyinstaller´, so it would need to be made again.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.