Arduino UNO/NANO - DMX VGA Analyser in 17bit Colour (RGB656 format)

I am currently working on another Video project

VGA 640x480 mode @ 60hz (thanks to Smaffer and Nick Gammon for inspiration)

Using a UNO (or NANO) at standard 16mhz speed

probably looking at 200 pixels across and whatever looks good vertically
I have worked out 3 font sizes to get up to 33 chars per line (not using SPI bit bashing)

and I am pretty sure I can get 131,072 colours on screen at once

I have worked out my timings and there is a small amount written in C, but most is written in ASM as it about my only option for speed

The intention ultimately is to have a VGA display of DMX512 data (250kbps) as a magnificent bar-chart

Its crazy what you can get out of an AVR !!


Its a good start - I am using different axes to cross-fade colours

Although… does anyone have a clue why I cant get my picture to stick to the left hand side of the screen ?
Its as if I am in the wrong VGA mode or something, but I cant see how

Neatened up and added some text fonts etc

Display handling is now done by a very fast (single IF) state machine which controls the screen regions

I added the ability to read DMX 512 and display each channel value as a VGA bar

This is still 16MHz, but I guess running flat out !

I have a few more things to add, like a bit of diagnostics, and add some more words etc
I am also going to be utilising the FD232 chip on some of my Nano boards so that I can make this work as an openEntec device..

so basically I could theoretically connect this straight into a PC USB socket, run a DMX generation application, and with just simple a NANO board, directly drive a VGA monitor with the DMX data coming from the USB

I have done some maths and I think I can up this to 800*600/60Hz SVGA Mode (obviously NOT get that resolution).

It will be a bit more blocky than the video, but I would like to fill the screen without having to use the controls to stretch it into place.

I know others have had the same issue, but i think going for the higher mode will achieve this