MicroVGA
A while ago I got one of these little buddies: the MicroVGA microcontroller VGA interface.
The concept is very promising. Basically, it’s an easy way to hook a microcontroller up to a VGA monitor (which is typically not a very simple process; you need some very high speed, very high timing accuracy, lots ‘o memory for the frame buffer, and some high-speed DACs). It provides a serial as well as SPI interface, accepts text (and standard VT100 escape sequences) and spits out text-mode VGA to a monitor. (No, it doesn’t do full-color per-pixel graphics, just the text mode (with colors) as you probably know from your PC’s BIOS setup tool.)
It also comes with an analog TV output, and a PS/2 keyboard connection. Not only does it read the attached keyboard and send keypresses back to you via RS232/SPI (whichever you use), it’s also used to access the module’s setup utility.
The whole thing sounds great, with potential for a large variety of applications. Only if it were that great in reality…
It’s not that the module doesn’t work. It’s easy enough to hook up and get it running: it just wants 5V and GND, and a serial input, which I provided directly from my PC (using a level shifter in between of course). Before you can talk to it from a PC, you’ll need to access the setup tool and change the baud rate, because by default it’s set to 1 000 000 baud, which most PCs cannot deal with, and there’s no auto-baud feature.
One thing that I immediately noticed when I had this module in my hands was the parts that are used on it. There is a PIC24HJ32GP302, a 16-bit microcontroller from Microchip, and A small Xilinx CPLD (Complex Programmable Logic Device), part number XC9572XL, which contains about 1600 gates. Other than that there is a voltage regulator and a standard 74-series buffer IC.
The interesting thing here is that, even though the module wants to send out VGA signals – which require pretty accurate timing – there is no crystal, or any other sort of accurate timing circuit on the PCB.
Unfortunately, it is there where the MicroVGA’s big problem lies. It turns out that, when it is connected to a monitor, there are three possibilities:
- The monitor will accept the signal, but the lines on the screen will constantly ‘wobble around’ a little bit. This makes it extremely hard on the eyes to read text on the screen for any period of time.
- The monitor will display the image, with the wobbling problem, but also occasionally just say ‘screw you’ to the VGA signal and re-adjust itself (resulting in the screen going blank for a few moments).
- The monitor rejects the VGA signal entirely.
In other words, the PS/2 interface aside (which doesn’t nearly justify the cost of the module), the MicroVGA is pretty much useless.
I have tried contacting the company that sells the MicroVGA, but haven’t gotten any response from them.
In other words, don’t waste your time (and money) on it. Even if I just had a bad copy, the lack of an accurate time source on a module that needs accurate timing is a very questionable design choice, and the bad support from the vendor alone is plenty reason not to buy it.
Trees
In the wonderful abomination that the Dutch have come to know as Dutch, we have an expression: “door de bomen het bos niet meer zien”, or translated to English, “not seeing the forest because of the trees”. What you’re saying with it is that there is so much of something, or something has grown so large and complicated, that it’s hard to still grasp the basic idea of it. Also, it (in part) describes how I feel about modern web development.
Waaaay back, when everyone was using 28k8 dial-up modems, in the time of bulletin boards and Gopher (which is kind of the predecessor of the World Wide Web), things were simple. Granted, the number of things you could do with them was limited as well, and back in that time computers (to most people) were arcane and mystical devices that only superhuman-like beings could properly operate. But if you happened to be one of those who could, things were simple. The Gopher protocol was a simple protocol.
But then, computers slowly became affordable. And at some point, broadband internet (or more accurately described, non-dialup) became affordable too. And people started using the Internet. They were the times of early Internet Explorer and Netscape (the Dutch translation of which, at the time, probably due to not very knowledgeable translators, translated “cookies” – as in, the bits of information stored on your computer by a website – were translated as “koekjes” – the baked dough that we have all come to love. I am still disappointed that enabling the option “koekjes altijd accepteren” – or “always accept cookies” – never delivered me any physical yumminess.). The Web slowly developed. There came extensions to HTML. Websites had frames – one of those things that probably seemed like a good idea at the time, but turned out to be really stupid – and at some point dynamic websites became commonplace. Yahoo! GeoCities was full of animated GIFs, marquees, and blinking text. CSS and JavaScript and Flash and ActiveX and all sorts of other things popped up all over the place.
Today, we are feeling the result of the rapid but uncontrolled development that the Web went through. There are a bunch of different browsers, and none of them interpret HTML exactly the way they should. Instead of finally building a definitive standard, HTML5 is attempting to accomodate every broken webpage that was ever made and now they have decided that it won’t really have version numbers, let’s instead make it an ‘adaptive standard’ and change it as we go, just to make things easier on web developers (and browser builders). Every browser does JavaScript a different way, and writing a script that works accross all browsers is a tedious process involving many dirty hacks to implement a gazillion different methods to do the same task, depending on which browser it’s running in. (And yes, there are frameworks and things that try to make it easier, but that’s just throwing another layer of crap on top of an already broken system. Issues should be resolved at their origin, not by trying to painstakingly work around them.)
On the modern Web, if you want to make yourself as a web developer, there is just so much you need to go through. Not even to make a website that is impressive, no, even something that lives up to the user’s expectactions of an average website is a monstrous task. The basic markup language, HTML, is not too difficult too grasp. CSS makes it easier to create a consistent look and feel over a number of pages (really can’t do without it), and JavaScript allows us to do all sorts of interactive client-side things (once you get it to work, that is). But the websites must also be dynamic, so we bring in PHP, MySQL – suddenly we need to be familiar with programming and databases, both of which are huge subjects to master – and if you’re going to be anywhere near fancy, you’ll need to do at least a bit of AJAX. And if learning how to deal with all of those things isn’t bad enough on its own, there are a ton of other things to worry about: search engine optimization, statistics tracking, advertising, usability, accessability, and so on.
Oh, and everything should have a very sleek and nice look. You should become an expert at Photoshop (or whatever graphics design program you prefer) as well.
As great and useful as the World Wide Web may be, to me, web development feels like one half-broken technology on top of the other, where the developer has to go to greater lengths than ever to come up with a decent result. And it’s not looking like there will be improvement anytime soon.
Frankly, I am tired of it. There has been a time when I liked doing web development, but that’s gone.
Can we please put all the crap aside and go back to when things were simple? Or at least start over from scratch, and this time, we’ll do it right. Properly define stuff and account for every possibility that we may need to deal with, and have a simple way to add what we need if we forgot to add it from the start. And we’ll have browsers implement everything in the same way (or just not re-invent the wheel, and stick with a single implementation of the core engine and use that accross all browsers/platforms). And the world will be a much nicer place because of it.
Until then, I’d like my 28k8 back, please.
In the wonderful abomination that the Dutch have come to know as Dutch, we have an expression: “door de bomen het bos niet meer zien”, or translated to English, “not seeing the forest because of the trees”. What you’re saying with it is that there is so much of something, or something has grown so large and complicated, that it’s hard to still grasp the basic idea of it. Also, it (in part) describes how I feel about modern web development.
Waaaay back, when everyone was using 28k8 dial-up modems, in the time of bulletin boards and Gopher (which is kind of the predecessor of the World Wide Web), things were simple. Granted, the number of things you could do with them was limited as well, and back in that time computers (to most people) were arcane and mystical devices that only superhuman-like beings could properly operate. But if you happened to be one of those who could, things were simple. The Gopher protocol was a simple protocol.
But then, computers slowly became affordable. And at some point, broadband (or as a more accurate term, non-dialup) internet became affordable too. And people started using the Internet. They were the times of early Internet Explorer and Netscape (the Dutch translation of which, at the time, probably due to not very knowledgeable translators, translated “cookies” – as in, the bits of information stored on your computer by a website – were translated as “koekjes” – the baked dough that we have all come to love). The Web slowly developed. There came extensions to HTML. Websites had frames – one of those things that probably seemed like a good idea at the time, but turned out to be really stupid – and at some point dynamic websites became commonplace. Yahoo! GeoCities was full of animated GIFs, marquees, and blinking text. CSS and JavaScript and Flash and ActiveX and all sorts of other things popped up all over the place.
Today, we are feeling the result of the rapid but uncontrolled development that the Web went through. There are a bunch of different browsers, and none of them interpret HTML exactly the way they should. Instead of finally building a definitive standard, HTML5 is attempting to accomodate every broken webpage that was ever made and now they have decided that it won’t really have version numbers, let’s instead make it an ‘adaptive standard’ and change it as we go, just to make things easier on web developers (and browser builders).
Freeware
There is a program, called Eagle, that I frequently use. It comes in a commercial, paid version, as well as a freeware version.
The freeware version is more limited, and you may only use it for non-profit applications.
The website says:
If you earn (or save) money by using the Freeware version of EAGLE Light, you have to register it.
That sounds reasonable. Except for one problem…
Because you’re taking the freeware version instead of the commercial one, you’re saving money, and therefore, you cannot use the free version.
Nice, huh?
