Due to several requests from Arduino users who bought our MicroVGA-TEXT module (http://www.microvga.com/), we have created Arduino MicroVGA library http://www.microvga.com/arduino with two demos (simple menu-driver application and tetris game). The MicroVGA uses SPI mode, which means you can connect it even to AVRs with one UART (such as one in Duemilanove). The SPI can be shared with other devices as CS# (SS#) signal is provided.
You can use MicroVGA-TEXT to interface VGA monitor (or a television) and PS/2 keyboard from Arduino. It allows you to display data, create complex "dos/unix/terminal-style" user interface, or even create interactive games (see tetris in our demos):
It would be good if the library gets included in main Arduino distribution some day and someone takes over development. We have no capacity to do this nor have enough experience with Arduino.
About £21 seems OK to me for what you can do with it. I thought one neat aspect is that it doesn't use the serial connection so that's still available for programming, debugging etc.
that sound great, and the price seems quite correct assuming the conio library mantionned is included... that said I just have two question...
1- can you modify the color palette?
2- can you use your own char set? (or is there at least a few customisable chars?)
The color palette is fixed (unless you de-solder resistors from the board and change them...). It's standard VGA text mode palette as used in DOS or Windows console mode.
You can choose from various pre-defined fonts, but not define your own.
The module is primarily intended for creating user interface in "text/console mode", not to output any graphics/etc (saying this I should also add that it can display ANSI arts so my statement is not 100% true). You can create menu using few lines of code, the same for dialog, etc. Have a look here: http://www.microvga.com/uvga-demo-images
and if your arduino is doing something related to your PC, a screen switch might be used to display either the PC desktop or the arduino screen on the same monitor...
that product is cheap, and great... now of course it's only for diy stuff... there's no way to integrate this in a sellable product
Ok I bought one of these things and can't get it to work with Arduino.
The setup (power it up and short the two pads) works ok -- I think.
At least I can navigate the menu, look at the character sets etc. However there is no feedback as to what the thing is set to! Asterisks simply show what the default settings are.
I tried the examples but first set the MicroVGA to SPI -- or at least I think I did. I selected the communication menu, scrolled down to SPI and pressed Enter. Then I saved the settings.
I wired the module per the instructions in the readme and on their website (I tried it both with a Duemilanove 328 and a BBB 328)
1 GND -> Arduino GND
2 +5V -> Arduino 5V
3 +3V3 NOT CONNECTED
4 CS# -> Arduino Digital 8
5 SCK -> Arduino Digital 13
6 RDY# -> Arduino Digital 9
7 MISO -> Arduino Digital 12
8 MOSI -> Arduino Digital 11
I uploaded the tetris sketch and it just sits there with the MicroVGA version displayed (same thing you get with only power applied) and a blinking cursor.
I tried the menu sketch. Same thing.
Thinking maybe bad solder connections (mine) or jumpers I checked continuity all the way to the component pads on the MicroVGA. Good. No shorts.
Not sure what's wrong but it isn't working for me.
I realise this post is a bit old now but i dont think it's uVGA board because mine doesn't work with Duino in SPI either, it works fine with PIC though
/*
http://www.MicroVGA.com/arduino
This sketch is very basic test of the MicroVGA.
Before running it, please make sure the MicroVGA is connected
properly to the arduino and it is configured for SPI mode
using built-in setup tool.
The demo should SLOWLY display "U" character infinitely.
If something else is displayed, there is a problem with
noise on SCK pin. Or something else...
*/
int pin_cs = 8;
int pin_sck = 13;
int pin_rdy = 9;
int pin_mosi = 12;
int pin_miso = 11;
// Other experimental variant:
/*
int pin_cs = 0;
int pin_sck = 7;
int pin_rdy = 1;
int pin_mosi = 5;
int pin_miso = 6;
*/
// The setup() method runs once, when the sketch starts
void setup() {
// initialize the digital pins used for the MicroVGA
pinMode(pin_cs, OUTPUT);
pinMode(pin_sck, OUTPUT);
pinMode(pin_mosi, OUTPUT);
pinMode(pin_miso, INPUT);
}
// the loop() method runs over and over again,
// as long as the Arduino has power
void loop()
{
int i;
digitalWrite(pin_cs, LOW);
// wait for a second
// this is required to make sure the MicroVGA is idle
// normally there would be loop, but to keep this
// sketch simple, we have replaced it with delay
delay(1000);
// now output 8 bits using software SPI
for (i=0;i<8;i++) {
digitalWrite(pin_mosi, i&1 ? LOW : HIGH);
delay(10); // wait for a while
digitalWrite(pin_sck, LOW);
delay(10); // wait for a while
digitalWrite(pin_sck, HIGH);
delay(10); // wait for a while
digitalWrite(pin_sck, LOW);
}
}
Having since tried this software SPI code, uVGA does work, but the library doesn't still
Same problem here. The software SPI test works but the library code doesn't. I'm going to debug this over the coming week if I get time, this has to work :