Pages: [1]   Go Down
Author Topic: Multi-mode video display and keyboard interface  (Read 1036 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

New thread to replace http://forum.arduino.cc/index.php?topic=178808.0 because the title of the original thread is no longer applicable smiley

I can announce that the multi-mode text/graphics display controller is now online.

(Web hosting is intermittent - everything IS online - if you can't connect, please try later)

VERY fast display updates and scrolling. Very much faster than options where text is drawn on to a graphic display. Will do timings soon.

This has been a major re-write since the last version, but still works using the same VERY INEXPENSIVE hardware - ATmega328 (Arduino UNO) processor and one other IC (74HCT166). Can be interfaced from any of the Arduino boards or any other circuit that either supports I2C or has 6 spare I/O pins.

Supported:
40 Character normal text
80 Character normal text
40 Character bold text
80 Character bold text
40 Character normal double-height text
80 Character normal double-height text
40 Character bold double-height text
80 Character bold double-height text

160x100 bitmap graphics with set/reset pixel support functions

Text is the full IBM PC character set (ASCII and symbols,lines etc)

80x25 text is displayed at a resolution of 640x200

Being a "true" mixed text/graphics display, text rendering is at the proper resolution and is very quick.

The display consists of 25 lines, each line can have it's own text font setting or can be set for graphics - done automatically.
Only one font type per line, due to limited RAM.

Here is an example screenshot running on a widescreen PAL TV screen (AV input)...





Easy to interface using 8 bit, 4 bit or two-wire (I2C) connections.

All details are on my web page.

Also on the page remains the serial-->display and PC keyboard-->serial interface so that it can be run straight from a serial port.

http://searle.hostei.com/grant/MonitorKeyboard/index.html

Regards.

Grant
http://searle.hostei.com/grant/index.html
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

As mentioned, I was going to produce performance numbers to back up my "very fast" claim.

Here they are...


Notes:
2 wire performance is for 400KHz clock unless stated. This can be improved significantly by increasing the 2 wire clock speed.
PAL performance is higher than NTSC because a larger proportion of the time is free for PAL than NTSC, due to screen refresh rates.
Each graphics pixel set/reset requires 3 bytes to be sent, which is why 8 bit transfer noticeably faster than 2 wire.

Test conditions:
Host controller: ATmega88 running at 16MHz (identical performance to Arduino Uno or Nano etc.)
2 wire interface: Standard 400KHz clock speed unless specified.
Timing: Externally electronically timed using a Black*Star Apollo 100 Universal counter-timer.

The host test software was all written in C, so no assembly optimisations and was not written particularly efficiently, so performance could be higher.

All source on my page.

http://searle.hostei.com/grant/MonitorKeyboard/index.html

Regards.

Grant
http://searle.hostei.com/grant/
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

I've updated the Arduino Library to use of all the fantastic new functionality Grant has added. I've extended the set and clear bit graphics functions with draw and clear line, box and circle functions, and as a demo have produced a mock up of a game of Missile Command:

There are also commands to change font:

I am running all this from a shield:

Full details of the library are on my blog: http://blog.tynemouthsoftware.co.uk/2013/09/arduino-tv-out-terminal-library.html

Thanks,

Dave
Logged

Tynemouth Software
Vintage Computer repairs, Software Development, Web Design.
www.tynemouthsoftware.co.uk
http://blog.tynemouthsoftware.co.uk

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Server issues...

There are problems with the server that holds my primary web pages.

Temporarily, I have also put the same pages on the following domain...

http://zx80.netai.net/grant/

http://zx80.netai.net/grant/MonitorKeyboard/index.html

Please use the original URLs (searle.hostei.com) where possible, but use the ones above if the primary URLs are temporarily down.

Regards.

Grant
Logged

South UK
Offline Offline
God Member
*****
Karma: 5
Posts: 581
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

wow, very cool! thanks for sharing smiley
Logged

Pages: [1]   Go Up
Jump to: