graphics/GUI using Xmega?

Go To Last Post
35 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hello:

 

Are there any ready-to-use Atmel boards with a 5 to 6 inch color LCD for showing "simple" graphics, such as a touch screen menu? Not wanting animation, just simple "control panel" apps.   Need at least 5 inches in size (venerable 4.3" too small).

This may likely be a stretch for the Xmega devices, but thought I'd ask.

Of course, being able to show graphics (lines, text, etc) is not the same as creating a nice full screen layout.  That is usually some sort of wysiwyg editing/creation code app.

Microchip has their pic24 series with integrated graphics controller...would like to use Atmel, maybe even something other than AVR.  Don't need pinch style controls, just "punch the screen button" menus.

 

 

When in the dark remember-the future looks brighter than ever.   I look forward to being able to predict the future!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

How many dots do you want in your 5..6 inch? Sounds like 640x480 or something like that? If it's colour there's a strong chance it'll be 5-6-5 so 2 bytes per pixel and you are therefore talking about 640x480x2 = 616,400 bytes of display memory. The best bet is probably to find one of those panels with an "intelligent" controller that also has a 1MB frame buffer built it. Some of the Seiko-Epson (SED) controllers are like this.

 

Obviously the display module you are looking for does not need to be Xmega specific but the one thing that might bite you is the fact that's it's almost certainly going to have to be 3.3V only - that may limit your choice.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

avrcandies wrote:
This may likely be a stretch for the Xmega devices, but thought I'd ask.
It's 3.5in max from Precision Design Associates for an XMEGA A1U Xplained Pro board.

avrcandies wrote:
Microchip has their pic24 series with integrated graphics controller...would like to use Atmel, maybe even something other than AVR.
EarthLCD did likewise (Atmel to Microchip) for almost all of their products other than a combination of the two in the ArLCD.

From Atmel with a graphiic LCD controller are some of the SAM9 and most of the SAMA5.

PDA has several displays (4.3in, 7in) for the SAMA5 Xplained and Xplained Pro boards.


35xx Series - 3.5in Projected Capacitance Touch

http://www.pdaatl.com/tx35xx.htm

Arduino

Arduino AtHeart

https://www.arduino.cc/en/ArduinoAtHeart/Products

(search for ArLCD)

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

FTDI do a graphical controller chip called EVE, and you can get display kits that use it. The interface is just a 3.3V UART IIRC, so trivial to hook up to any XMEGA dev board you like.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thanks for the responses...Gchapman, the PDA looks interesting, but  apparently requires Linux (was really looking for c/c++ in studio 6 environment)...maybe need to open up to consider Linux (bleh), or keep up the search.  The ARLCD is only 3.5", not large enough.

 

As Clawson suggested, I've looked at some of the integrated displays (4D systems)...that might do the job, though they might break the bank due to high cost.   Hard to beat a $6 pic24 chip & $30 display.

 

 

 

When in the dark remember-the future looks brighter than ever.   I look forward to being able to predict the future!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

avrcandies wrote:
Gchapman, the PDA looks interesting, but  apparently requires Linux (was really looking for c/c++ in studio 6 environment)...maybe need to open up to consider Linux (bleh), or keep up the search.
The NuttX RTOS has significant Atmel support; IIRC one of the forthcoming NuttX ports is to XMEGA.

NuttX has a graphics library, widgets, and a window manager; Atmel ASF GFX has some graphics drivers and widgets.

Development for NuttX is not via an IDE whereas ASF is integrated into Atmel Studio.

FreeRTOS  - there is an XMEGA port but I don't know if there's a LCD, and related, library for FreeRTOS.

avrcandies wrote:
Hard to beat a $6 pic24 chip & $30 display.
True though I'll counter with an OSHW attempt (don't fear Linux wink

Could Javascript to/from a web browser on an inexpensive tablet though would need an inexpensive server to transform XMEGA USB CDC to a web interface.


NuttX RTOS

June 9, 2015

http://www.nuttx.org/Documentation/NuttX.html#armcortexm7

...

Support for the connect maXTouch Xplained Pro LCD as added in NuttX-7.10.

...

  • Support for the (optional) maXTouch Xplained Pro LCD module (still a work in progress).

 NuttX RTOS

June 9, 2015

http://www.nuttx.org/Documentation/NuttX.html#armcortexa5

...

Additional board configurations were added to test and demonstrate these new drivers including new graphics and NxWM configurations.

...

Support for a graphics media player is included (although there were issues with the WM8904 audio CODEC on my board).

...

Olimex on Wordpress

New Set of LCDs in stock for OLinuXino now directly support LIME and LIME2 connectors

13 Nov 2014

https://olimex.wordpress.com/2014/11/13/new-set-of-lcds-in-stock-for-olinuxino-now-directly-support-lime-and-lime2-connectors/

GitHub

arduino/serial-port-json-server

https://github.com/arduino/serial-port-json-server

A serial port JSON websocket server for Windows, Mac, Linux, Raspberry Pi, or BeagleBone Black that lets you communicate with your serial port from a web application.

This enables web apps to be written that can communicate with your local serial device such as an Arduino, CNC controller, or any device that communicates over the serial port.

http://chilipeppr.com

ChiliPeppr

Downloads v1.82

http://chilipeppr.com/downloads/v1.82/

 

Edit : added ChiliPeppr URL.

"Dare to be naïve." - Buckminster Fuller

Last Edited: Thu. Jun 25, 2015 - 03:12 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

clawson wrote:
The best bet is probably to find one of those panels with an "intelligent" controller that also has a 1MB frame buffer built it.

+1

 

Just received a mailshot from Densitron: they're doing a webinar on their "intelligent" displays - may be worth a watch?

 

http://www.densitron.com/uploade...

 

http://www.densitron.com/content...

 

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I bought one of these: https://www.indiegogo.com/projec...

 

Very low cost. I'm waiting for delivery which should be soon.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thanks for the info on nextation...interesting & cool, except I  need >5 to 7" size.

 

I finally found the ASF (gchapman mentioned) graphics  libs...only 2 drivers seemed avail for xmega parts ILI9341 & HX8347A controllers (note:second 8347A on the listing):

http://asf.atmel.com/docs/latest/asf_gfx.html

not sure how "good & fast" this would be on an Xmega with 6 inch display (don't need animation or video, just some  widgets, like sliders, buttons)

 

I looked around & found xmega usage with a small display (but no menus)...however this is using some Bascom libs, rather than the ASF C libs.

https://www.youtube.com/watch?v=eGcUwT6J5nE

 

During my  wanderings I came across EVE, from FTDI (a respectable source)...it looks amazing & more than what I need...but need to investigate this..looks like it can tie into an Xmega

http://www.ftdichip.com/EVE.htm

 

some amazing videos:

https://www.youtube.com/watch?v=3trUUc-tFKY&feature=youtu.be

 

 

 

 

When in the dark remember-the future looks brighter than ever.   I look forward to being able to predict the future!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

mojo-chan wrote:

I bought one of these: https://www.indiegogo.com/projects/nextion-a-cost-effective-high-perform...

 

Very low cost. I'm waiting for delivery which should be soon.

 

Would be interested to hear what you think after it arrives. Looks very promising.

 

Cheers,

 

Ross

 

Ross McKenzie ValuSoft Melbourne Australia

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

What does "Objective-oriented" mean??

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

What does "Objective-oriented" mean??

My guess would be that when they state:

 

Objective-oriented display solution, to reduce the GUI development difficulty and shorten the cycle.

they mean that you take a standard graphical touch display and take away the pain of driving the display yourself using a GUI to customise the display into a number of objects that you can easily interact/control.  So allowing you to think of the touch display as buttons etc. so the solution is 'oriented' towards the final 'objective', i.e. producing a touch user interface in a simple manner using software tools to create the software to drive the display.

 

Of course I could be completely wrong as I dropped marketing speak before the exam ;o) 

 

   

David

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

avrcandies wrote:
During my  wanderings I came across EVE, from FTDI (a respectable source)...it looks amazing & more than what I need...but need to investigate this..looks like it can tie into an Xmega

https://www.avrfreaks.net/comment/1444186#comment-1444186

FT81X datasheet states SVGA; FT800 datasheet states QVGA.

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

if 4.3" is big enough for you, the STM32F7 Microcontroller Discovery Board - only GBP 35.00 at RS:

 

STM32F7 Microcontroller Discovery Board

 

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

This "Gameduino" is using the FTDI graphics chip:

 

Gameduino 2

https://www.coolcomponents.co.uk...

 

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

For AVR Arduino at about HVGA WQVGA (4.3in, FTDI EVE) :

http://www.mouser.com/new/newhavendisplay/newhaven-tft-arduino-shield/

 

"Dare to be naïve." - Buckminster Fuller

Last Edited: Thu. Dec 1, 2016 - 07:27 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi,

I've done exactly what you're trying to accomplish. I used a 7 inch display with a 640x480 resolution. The display contained the infamous ssd1963. This chip or one if it's family members is what drives most of the cheap Chinese displays in this size category.

You can have my code if you want it. I did not write it to ever be seen by others however, so it's ugly as hell and contains little to no comments.

 

But be warned: It's possible, but it certainly isn't nice. The 32MHz of the xmega devices is hardly enough, changing a text or clearing the screen to change all of it's content takes long enough to be visible, so I had to overclock it to 64MHz. This is of course unacceptable for a production design. Therefore, I'd never do it again. It was a nice experiment, nothing more.

Thus I recommend going for a linux approach. A "next thing C.H.I.P" costs 9 USD and offers a direct interface to a display and touchscreen. Alternatively, the RPi Zero costs 5 USD and offers HDMI. A touchscreen can be connected with USB.

To design your GUI I can recommend Qt, GTK or wxWidgets. You can go fullscreen with your app directly on startup, so it will feel the same as if you did it bare metal.

-Patrick

 

Edit: typo

"Some people die at 25 and aren't buried until 75." -Benjamin Franklin

 

What is life's greatest illusion?"  "Innocence, my brother." -Skyrim

 

Last Edited: Thu. Dec 1, 2016 - 08:01 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Just to compare

For a customer I have used a 16MHz mega324 to drive a 320x200 display, with a 8 bit SW databus  and 16 bit colour and everything written in GCC, and that is is "just" ok for speed.

 

Things that would help for speed :

With ASM it could be about 2-3 times faster. 

wider bus for SW, or perhaps check if there are any way to get xmega's DMA working with the display.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

For speed compare, how long did it take to write text, and how was it connected the display?

 

It say it't a reply to #18 , but I made it for #17 (something wrong in the forum)

Last Edited: Thu. Dec 1, 2016 - 09:30 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I never measured how long it actually takes, but it is definitely visible without overclocking. I'd say a fifth of a second maybe for a text of 10 characters at a medium font. Now that doesn't sound too bad, but it bothered me a lot.

I used a 16bit data bus, a full port per byte.

One thing that also made it very slow was the fact that the fonts are too large to be stored in RAM so I had to put them in the flash. I guess that's also a very good reason not to use an xmega for such things.

On small screens, you can leave the fonts in RAM of course, so no problem there.

 

"Some people die at 25 and aren't buried until 75." -Benjamin Franklin

 

What is life's greatest illusion?"  "Innocence, my brother." -Skyrim

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Sorry but why would you put a font in RAM? (It never change)

 

 

add

like :

static unsigned char fontchar[] PROGMEM = {

 

Last Edited: Thu. Dec 1, 2016 - 09:57 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Because the access to it is much faster. As I said, using PROGMEM slows things down.

"Some people die at 25 and aren't buried until 75." -Benjamin Franklin

 

What is life's greatest illusion?"  "Innocence, my brother." -Skyrim

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

LPM is 3 clk

LD is 2 clk

 

So for a 16x16 font that give 1000 letters on a full screen, so that will add 32000 clk for a for a full screen or 1ms on a 32MHz xmega, I think that you have way bigger problems then that!  

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

pawi777 wrote:
I used a 7 inch display with a 640x480 resolution. The display contained the infamous ssd1963. This chip or one if it's family members is what drives most of the cheap Chinese displays in this size category.
Another use of SSD1963 is by 4D Systems in Australia; the MCU is a 4D Systems 16-bit.

http://www.4dsystems.com.au/productpages/gen4-uLCD-70D/downloads/gen4-uLCD-70D_datasheet_R_1_3.pdf (page 23, top right)

via

http://www.4dsystems.com.au/product/gen4_uLCD_70D/

 

A PIC24 may be a better match for function with such size LCD than an XMEGA.

 

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

You are right about that, but there must be something else. I honestly don't know enough about how the compiler manages these things, nor can I read assembler too well. So I don't know what's really going on inside the processor.

 

But my claim that reading from flash is slower is by pure observation.

I had the font in RAM and then put it in the flash. And thus the program became significantly slower. Far from a factor of two, but noticeable none the less.

The font I used there was very large though, 84x132 per letter. I used it to show the time on that 7 inch screen. Maybe I did something wrong, that is really not unlikely.

But it worked, so I don't care that much anymore.

 

-Patrick

"Some people die at 25 and aren't buried until 75." -Benjamin Franklin

 

What is life's greatest illusion?"  "Innocence, my brother." -Skyrim

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Definitely check out the FTDI FT800 series.  I'm using them, and I'm pleased with the performance.  The FT800 greatly unburdens your MCU.  It takes a little getting used to because the way it gets the stuff on the screen is a bit strange 8)

Tom Pappano
Tulsa, Oklahoma

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

More SSD1963 :

Newhaven Display International, Inc.

Newhaven Display International, Inc., High Quality Standard and Custom OLEDs, LCDs and VFDs.

NHD-7.0-800480EF-20 Controller Board NHD-7.0-800480EF-20 Controller Board [105.5mm x 40mm] - $25.00

http://www.newhavendisplay.com/nhd70800480ef20-controller-board-p-7307.html

• Digital controller board for 7.0in TFT displays
• 3.3V input
• 8-bit parallel MCU interface

...

Controller/Driver: SSD1963-8bit

...

(3.3V, 285mA typ, -20C .. 70C)

https://newhavendisplay.com/appnotes/excode/txt/TFT/TFT_70.txt (WVGA)

via

https://newhavendisplay.com/appnotes/excode/TFTs.php

 

logo

Riverdi

SSD1963 Catalogue

https://riverdi.com/product-category/displays/ssd1963/

Edit : Riverdi

 

"Dare to be naïve." - Buckminster Fuller

Last Edited: Sun. Dec 11, 2016 - 03:09 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

"Dare to be naïve." - Buckminster Fuller

Last Edited: Fri. Jan 6, 2017 - 10:54 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

tpappano wrote:
It takes a little getting used to because the way it gets the stuff on the screen is a bit strange 8)
Newhaven Display's FT80x (WQVGA) source code seems reasonable; in addition to graphics primitives there are widgets.

The Arduino source code has an FTDI copyright; Newhaven Display added examples.

http://www.newhavendisplay.com/appnotes/excode/txt/Arduino/CTP_FT_App_CarbonationMachine_sketch.txt

http://www.newhavendisplay.com/learnmore/Arduino-4_3CTP-N/#sect4 (4.3" Arduino Shield with Capacitive Touch, Example Code)

http://www.newhavendisplay.com/nhd43ctpshieldn-p-9520.html

 

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

sparrow2 wrote:
Sorry but why would you put a font in RAM? (It never change)

Indeed!

 

pawi777 wrote:
Because the access to it is much faster. As I said, using PROGMEM slows things down.

Seriously?!

 

Who is actually going to notice the difference?!

 

 

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
Last Edited: Mon. Dec 12, 2016 - 01:46 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

There are 2 often used tft libraries for avr's.

One is from adafruit and the other is "utft" from rinkydink.

 

Adafruit can be made about twice as fast by changing 2 of the horrible macro's in "pinmagic.h".

I found the atmega's to slow to my liking and in fact the small TFT's were the reason to delve into arm (ST32F103C8T6).

I believe the Xmega's are somewhat similar to ARM cortex M3.

For an Idea of performance go see some youtube video's.

 

As a gadged I bought a jyetech DSO138 clone and it delivers amasing performance for a USD18 scope.

 

Doing magic with a USD 7 Logic Analyser: https://www.avrfreaks.net/comment/2421756#comment-2421756

Bunch of old projects with AVR's: http://www.hoevendesign.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Sorry but in what sense is an Xmega like an M3? The AVR core in an Xmega is not really any different to a mega. The only differentiation of Xmega are slightly higher spec peripherals and a higher top speed. 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Cliff,

 

I wasn't aware that the AVR had the XMega's DMA facilities...

 

Ross McKenzie ValuSoft Melbourne Australia

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

DMA is present in most XMEGA and has 24-bit addressing of data memory; 24b types were added to AVR GCC 4.7

In addition to the AVR RAMPZ register are RAMPX, RAMPY, and RAMPD for XMEGA.

XMEGA have additional memory models for compilers due to the 24b addressing of data memory.

The Newhaven Display WQVGA FTDI source code is using Arduino SPI.

XMEGA has DMA available for master SPI via USART in Master SPI Mode; such could be used for the FT801 frame memory equivalent to a graphics primitive bit blit operation.


https://gcc.gnu.org/wiki/avr-gcc#Types

http://www.atmel.com/Images/Atmel-0856-AVR-Instruction-Set-Manual.pdf

https://github.com/NewhavenDisplay/FTDI_FT801/blob/master/libraries/FT_GC/FT_Transport_SPI/FT_Transport_SPI.h

 

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

pawi777 wrote:
To design your GUI I can recommend Qt, GTK or wxWidgets.

Designing Feature-Rich User Interfaces for Home and Industrial Controllers
(file size: 933KB, 5 pages, updated: 06/2013)

http://www.atmel.com/Images/Designing_Feature-Rich_UIs_Article.pdf

...

(page 3)

...

The Atmel SAMA5D3 MPU is an ideal candidate for your control panel designs.

...

To assist your development of the UI, Atmel has partnered with TimeSys to port the Qt framework and its comprehensive range of development tools.

...


eewiki (Digi-Key)

Linux on ARM

ATSAMA5D3 Xplained

by Robert Nelson

https://eewiki.net/display/linuxonarm/ATSAMA5D3+Xplained

last modified on Dec 06, 2016

...

LCD with early support:

(4.3in and 7in by Precision Design Associates)

...

http://www.pdaatl.com/ (Precision Design Associates)

 

"Dare to be naïve." - Buckminster Fuller