mbed Paint for the RA8875 display with based touch screen.

Dependencies:   menu mbed RA8875

mPaint

mbed Paint - a demo for the (480x272) RA8875 Display with touchscreen.

Touch Screen

Having had several of the 4.3" WQVGA displays (that use the RA8875), I created the RA8875 driver library (initially derived derived from the work of others). Absent for some time was support for the touch-screen interface. Support first appeared with the contributions of others, and then a major update (due to a recent acquisition of a touch-screen version). This is now much more fully developed and it is part of the standard library.

Demo the Touch Screen

How to demonstrate the touch screen support? mPaint was created for just that purpose.

Screen Shots

Here's a couple of screen shots - you can capture the "canvas" (left) or the composite image (right). As you see, the composite picks up the menu information, however it remains subdued because of the transparency setting.

/media/uploads/WiredHome/mpaint_screen01.png/media/uploads/WiredHome/mpaint_screen02.png

Program Build Info

I'm sometimes a bit skeptical of the reported metrics (perhaps because most of my mbed applications have Ethernet), but here is the reported information from the build of this program.

mPaint Build Infoblinky Build Info
/media/uploads/WiredHome/mpaint_buildinfo.png/media/uploads/WiredHome/blinky_buildinfo.png
RA8875 Graphics library is the primary user.blinky is almost all "startup code" and standard libs

How does mPaint and the graphics library do this in about 1 kB RAM?

The answer is that the display is used as a "write-only" memory, and it has enough RAM hosted in the RA8875 for two full screens (in the WQVGA mode).

mPaint features

  • RGB color selection using touch, with a visible sample.
  • Pen size selection.
    From a limited set.
  • Tool choices.
    Dot, Line, Joined lines.
  • Save your creation.
    Select File | Save..., and it reads the display memory as it creates the BMP file on the local file system.
    This is rather slow (due to both the display read and the local file system).
  • Sorry, no undo.
    If you don't like what "ink" you put down, you can draw over it (much like other paint programs).

History

Pick up a bug-fix on jpeg rendering default tip

2020-03-29, by WiredHome [Sun, 29 Mar 2020 18:19:01 +0000] rev 11

Pick up a bug-fix on jpeg rendering


Breaking change update to RA8875 Library. Improved APIs, Improved Portrait Mode, Code Cleanup.

2020-03-28, by WiredHome [Sat, 28 Mar 2020 15:32:21 +0000] rev 10

Breaking change update to RA8875 Library. Improved APIs, Improved Portrait Mode, Code Cleanup.


Update RA8875 Lib to add GSL1680 support.

2019-03-04, by WiredHome [Mon, 04 Mar 2019 12:12:31 +0000] rev 9

Update RA8875 Lib to add GSL1680 support.


Enhanced to support 800x480 display and cap sense touch.

2017-05-06, by WiredHome [Sat, 06 May 2017 20:23:53 +0000] rev 8

Enhanced to support 800x480 display and cap sense touch.


update libs

2016-01-23, by WiredHome [Sat, 23 Jan 2016 17:46:01 +0000] rev 7

update libs


Test with latest libs.

2015-12-19, by WiredHome [Sat, 19 Dec 2015 16:03:28 +0000] rev 6

Test with latest libs.


Updated the demo with the updated RA8875 library.

2015-12-17, by WiredHome [Thu, 17 Dec 2015 23:59:06 +0000] rev 5

Updated the demo with the updated RA8875 library.


Minor documentation changes only.

2015-01-03, by WiredHome [Sat, 03 Jan 2015 17:25:42 +0000] rev 4

Minor documentation changes only.


Move RGB selection to the other layer - less visual interference with the canvas drawing.

2015-01-03, by WiredHome [Sat, 03 Jan 2015 17:12:02 +0000] rev 3

Move RGB selection to the other layer - less visual interference with the canvas drawing.


A simple mbed Paint program to demonstrate the RA8875 Touchscreen interface.

2015-01-03, by WiredHome [Sat, 03 Jan 2015 15:41:51 +0000] rev 2

A simple mbed Paint program to demonstrate the RA8875 Touchscreen interface.