This project is reminiscent of the old days when window managers were an amazing new idea. The difference is that this window-based GUI is running on an ATmega1284 microcontroller. But the behavior and speed of the interface is pretty much exactly what you’d expect if working on an early 90’s home computer. It even uses a mouse as input.
So how is this even possible? The key to the project is a serial to VGA module which handles the heavy lifting involved with generating a VGA signal. We featured one of [Andrew’s] past projects which used an AVR chip to generate the VGA signal. But that doesn’t leave nearly enough cycles to implement something like a window manager, not to mention the fact that it got nowhere near the resolution shown here.
He uses a serial mouse with an RS-232 converter chip to interact with the windows. This is best shown in his video after the break. He’s able to generate and interact with new windows. He even implemented a set of rudimentary controls which allow him to adjust the theme of the windows and drive the audio playback feature included on that VGA controller he’s using.
Very cool – it looks way better than windows new “metro” interface. Microsoft are you listening?
Indeed cool.
It looks like Motif is calling from the grave. The blues, oh the blues. Now I’m waiting for QT to get a port, but I’m not holding my breath.
Qt, if doable, would slow it down like molasses. The Motif look is due to the simple drawing of beveled boxes to simulate a 3D surface. Ugly if you ask me, but effective.
Motif worked awesomely considering the hardware it was running on. Just try to get QT to run on a 286 class computer.
This would be super fast on an Arm M4 :D
That all depends on who writes the software. Anybody could take a Ferrari engine and tune it, it doesn’t mean it is going to purr afterward.
I forgot to mention – great project Andrew.
Very nice. Even using a controller running that much off an ATmega is impressive and is a sign of good programming.
Thanks for the feature!
Headline is click bait. Great job by the developer. Shame on HaD.
God forbid hackaday editors make the headlines interesting. What would you have called it? “Common Microcontroller Interface Sports Neutral Shade of Gray”?
That’s actually pretty catchy!
If they said it sports 50 shades, they would easily capture most of the frustrated housewife demographic!
No reason to cause mass-engineer-hysteria by adding women to this site.
I didn’t catch which “serial to VGA module” he was using..
He’s using a microvga serial to VGA , look it up there http://microvga.com/ , pretty cool IMHO and technical docs are great.
I am using the uVGA-II from 4d systems. They now have a uVGA-III available.
Nice project, and awesome what a bit more googling can get you, the uVGA controller is from a company called 4D systems which I’m ashamed to say I’ve never heard of until now and which makes some pretty impressive stuff.
Guys,
Interesting article, but “GUI window manager” sounds like a statement from the department of redundancy department. Are you suggesting there are CLI window managers? I love hardcore geeks, but their misuse and over-use of the term “GUI” drives me nuts.
/rant
I find it fairly descriptive. On this site if it said “Window Manager” I would have thought of something that open and closed my bedroom windows. And it is basically a Graphical user interface that uses windows. there are GUI’s that don’t.
Great job Andrew.
You’re clearly not over 50 and did not cut your computing teeth in a world before graphics terminals :) Yes, there have been ‘CLI’ or more correctly, character based windowing systems. Most common are/were based on something called ‘curses’, which can be had on most any unix like OS.There was also a crossover point (mostly in the 80s I think) where terminals got smarter and had embedded support for bitmap graphics and could do boxes, lines, polygons, circles, etc. on their own.
Ever heard of DESQView? Text mode, CLIs running apps in ANSI text bordered windows. I think there is something in the *NIX world that does the “text-based CLI’s window manager”.
That said, a Windows Manager typically manages the windows for other apps, I don’t know how much more horsepower an AVR would have for apps. Still a very neat exercise in “because I can”. =^.^=
pretty cool
great looking mate nice work.
heavy! shit! creeds 4 youhacka:) thats´s some heavy shit!!!
uVGA ..wow..i like it !!
where to buy ??
great port!!
Have a Google. 4Dsystems, as Boz mentioned. They’re not cheap, but it’s a complete VGA display with primitives like lines and polygons, that’s controlled by a serial port. I think it’s probably some sort of FPGA.
“interface is pretty much exactly what you’d expect if working on an early 90′s home computer. It even uses a mouse as input.”
Did you mean early 80’s ?
Atari ST and Amiga are from 85 IIRC and you can expect really more than that from them. Archimedes in 87.
I once did a similar project for my Palm IIIx hand-held (written in PocketC no less!). I was inspired by the Atari 520 GEM environment. This also reminds me of GEM somewhat. Nicely done Andrew.
Hmm, anyone remember PocketC?
oh it used a 4D systems chip … well duh you can give nice i nterfaces with one of those XD … hell you can remove the AVR completely from this and just use the uvga!
This is an absolutely strong start at a codified (u)WindowingToolkit for the AVR. I’ve been playing around with the same idea for my μnix (pronounced “myoo-nix”) 8-bit workstation project. I enjoyed your previous post re: getting the VGA designed and this video re: the dWidget toolkit was fantastic. Thanks, will look for more in the future!
-gian