Interview: Michael Meeuwisse

Submitted by Jeremy
on January 14, 2008 - 11:02pm

Michael Meeuwisse started Project VGA in September of 2007. The project aims to develop a simple, low budget, open source, VGA compatible video card available this year. Michael is also a member of the Open Graphic's Project, but started Project VGA in order to get something affordable on the market as soon as possible.

In this interview, Michael explains his inspiration for the project and talks about the first development cards that will be functional by the end of the month. He details the costs involved in building the cards, as well as when the cards will be available for purchase and what they will be capable of doing.


Jeremy Andrews: It's been quite some time since we've had any updates about the Open Graphics Project on KernelTrap. Can you summarize the project's goals, and the current status?

small photoMichael Meeuwisse: The Open Graphics Project aims to develop and manufacture a graphics card with fully published specifications and drivers that are free software. This is because we believe there's a market for graphics hardware with good support for free operating systems. The first card the OGP is developing is called OGD1, and is a programmable platform on which the first ASIC-version (called OGA1) can be developed.

Quite a bit of progress was made the last couple of months and a live demonstration was done with linux actually running on a working OGD1. Although this was done with specific drivers which implemented only the bare essentials, it was still considered a milestone because it proved that the card was working and usable, albeit a bit slow right now.

Right now we're in the process of finalising the design of OGD1 with fixes to all the bugs identified in the first prototype, schematics came online recently and the final version of the circuit board will be released soon as well. Simultaneously some have started to work on more extensive documentation so that everybody can have a better understanding of the schematic, which in turn helps with developing the 'software' for the card. Our goal in software terms is to get full VGA support within a few months, which makes it possible to use the cards as any standard 'VGA card' without drivers.

JA: What is Project VGA, and how is it related to the Open Graphics Project?

Michael Meeuwisse: Project VGA started for two reasons. First, I had the personal impression that development of OGP wasn't going as fast as I was hoping it would, and second, it turned out that quite a few people were interested in a programmable hardware card but wouldn't be able to afford OGD1. When OGP started it wasn't very clear how long it would take to develop OGD1. And when the price tag became clearer, a lot of people complained that it priced itself out of the market, although we made it very clear that this card was meant to be a development platform, not a consumer end product. But even for a lot of people like me who did want to simply play around with a programmable platform the price would be too high.

So out of a personal urge I started thinking what would be a usable platform for me to develop a graphics card which could be used as a programmable platform, have basically the same motivations as the OGP, but be a lot more affordable. That's when Project VGA started of a few months ago. The idea is to build a very downgraded version of OGD1 which as a result can be bought by more hobby enthusiasts. The performance will be a lot less as well, but for a lot of people the idea of being able to design, write and update your own video card is a lot more valuable than actual raw performance.

JA: Does Project VGA aim to compete with OGP, or to complement it?

Michael Meeuwisse: Complement it. Performance-wise these cards are in a completely different league. No, the way I see open source projects emerge is that an enthusiast starts building something interesting, and other people chime in and make the end result better. The first results don't have to be good, they just have to be interesting enough to gain momentum. Once people can get their hands on something functional a group effort can be started to make the product look and behave better. I could give some Clever Car Analogy here, but I think you get the idea if you look at *any* major free software project. They all started as a one (maybe a few) man show where other people helped out making it better after some first version was made available.

board 1

When I look at OGP I think they've overshot this first step and are trying to implement full support for everything right in the first version. That's causing numerous delays and lack of 'groundwork' if you will, there's no basis to work from. The design is already containing details about how specific details of the 3D core is supposed to fit together. Sure, it's interesting and certainly fun to talk about, but other basic stuff needs to be done first. It's really hard to get that work done as a group effort since you'll get endless discussions about what's the 'best way' to do it.

Project VGA really is an effort to get some of that groundwork done in a retroactive way. Instead of worrying about how the 3D core is supposed to fit in the design, it's purely focusing on the VGA bit. This includes communicating effectively with the PCI bus, supporting various resolutions and text modes which can be set through interrupt calls, and getting other details working. There's plenty of room for other features as well, but we're deliberately staying away from those until VGA is working correctly and the card is available for developers. Meanwhile, from a software perspective we're trying to keep a large section compatible with OGP so this material can be shared at a later stage between the two cards. Naturally not everything will be compatible with OGP, but once pVGA has some basics working, these can be used to build on and hopefully end up in OGP.

JA: Who is involved in Project VGA?

Michael Meeuwisse: When I just started working on it, I managed to get it approved as my university semester project. I am a third year student following Technical Computer Science at the Hogeschool van Amsterdam in the Netherlands. You can consider Technical Computer Science as a course somewhere between pure electronics and pure Computer Science, making it ideal for projects like this. After that, R.E.N. de Haan has been helping me out with improvements and suggestions for the schematic and board layout, and providing things like webhosting. At the university I have a few professors helping out with organising funding and resources, a few electronic students helping getting the smt components in place, and through the website several people have already started giving suggestions as to how to improve the schematic.

So really, the major part of the project is still a one-man job, with a bunch of people around me who are double checking the details. The main advantage of this is that there's not much organisational stuff to worry about, whatever needs to be done, I'm going to do it. That also makes planning easier, getting the schematic to match the board isn't an issue anymore, etc, which makes it possible to purely focus on the board itself and get it done faster.

JA: How is it that you are able to create this card on such a shorter time frame than the OGP card?

board 2

Michael Meeuwisse: The answer is simple, really. It's again the size of the project. To give you an idea, the main FPGA of OGP has more pins than all the pins of all the ICs combined on pVGA. After I figured out what components I wanted to use it took me about a week to work out the details of the schematic, something that would've been impossible if I had to design something similar to OGD1.

Secondly, I'm deliberately pushing for this short time frame because it has taken long enough already and a lot of people want to get to play around with hardware like this. I don't want to cut corners in the design that we now have, but I'm also not very open to new features. Large parts are based on what other people have tried already, such as using the specific CPLD we're using for PCI communication. It was a lot easier to go with those ideas and combine them to design this card and then say "what we have now is what we're going to work with, and that's final". We can then see how much performance we can squeeze out of it and improve the design later for a second version, or switch to OGD1. It turned out that the CPLD *might* be completely redundant and underpowered, but instead of looking for alternatives or redrawing the schematic, we're just going to leave it there and worry about it later.

JA: What is the current status of your affordable video card?

Michael Meeuwisse: The first prototype has been put together and I'm currently in the process of checking all electrical connections before we're going to power it up for the first time. The schematic is online, as well as the circuit board layout, and most of the documentation explaining all this is available. Meanwhile we're planning on how the internal HDL will be organised.

JA: Can you share the costs for the card?

Michael Meeuwisse: The costs are fully documented on the website here, which comes down to about 70 euro for the components for one card. Then, the circuit board needs to be produced and assembled, packaging and distribution etc. This in turn is all heavily influenced by how many cards you're producing at once, so it'll vary wildly depending on how many people will want one. For testing purposes I will be constructing two prototypes by hand which will cost me about 300 euro in total.

JA: What do you plan to charge for the card? Will the card be available in all countries?

Michael Meeuwisse: Right now we're aiming for 150 euro. Just to stay on the safe side though, we can't guarantee that price yet so assume 200 euro and act surprised when it turns out to be less than that. The idea is that the card will become available through a shop on the website, with shipping options to any country in the European Union and the USA. If the demand is big enough, we might expand beyond that.

board 3

JA: What specifications will your first card have?

Michael Meeuwisse: The first card will work with a traditional PCI connection, has a Xilinx Spartan 3 400k gate FPGA with 166MHz 16MB SDRAM connected through a 32 bit bus. To program the card, a JTAG programmer is embedded on the card, so you can reprogram it by using USB.

We went with PCI because virtually every system in use today has one of these. Because the card is aimed at hardware hobbyists and people who want to develop video cards, the changes that this card is used as a primary video card are slim. That's why we didn't want to go for top-of-the-line PCI-Express (which would mean a completely new system for a lot of people) or AGP. The Spartan 3 is pretty big, but not so large that it'd become to expensive. Same for the memory, it should be big enough for a lot of applications. We included the programmer because we figured most hobbyists wouldn't have a JTAG cable just 'laying around'.

JA: What are some example use cases for this hardware? You mention that it is targeted at "hardware hobbyists", what are some examples of things they may do with this card?

Michael Meeuwisse: The cards main objective is to build a completely open video architecture. The FPGA has plenty of room for some creative features like a 2D engine and maybe even basic 3D support in the long term. Often used routines in for example X11 can be implemented directly in hardware making the system more responsive overall.

For other purposes it's naturally a good start for anyone who wants to play with programmable hardware but doesn't want a standard development kit. Thanks to the CPLD the PCI interface is independent of the main design which can make it easier for starters to interface their first hardware designs with the PC architecture.

Some other ideas are for example building brute force engines for cryptographic purposes. A while back there were some discussions about designing and implementing an RC5 core on a card like this. Programmable hardware can definitely help with such projects thanks to the massive parallelism that can be achieved. You can also think of other sorts of data which need to be processed quickly in some way.

Yet another idea would be to rebuild old consoles using a card like this. Instead of emulating such a system, their architectures can be completely rebuilt in the FPGA which would be able to run it without glitches or other performance issues. For example Minimig has been mentioned as one of the projects that, if adapted for project VGA, could work. This would transform the project VGA card into an Amiga 500 emulator.

JA: Would the card be at all useful to someone just using Linux and needing a graphics card?

Michael Meeuwisse: Yes, as long as they don't expect to run features like Compiz and are willing to pay a little extra for basic graphics functionality. If someone wants to support development of open source hardware but doesn't have the knowledge to actively participate in the process, buying a pVGA card is certainly a good idea. As a bonus, they can periodically flash new 'firmware' in the card as development continues and end up with an improved graphics card for no extra charge. With the card being fully open source, linux support will be (and hopefully stay) pretty good and work out of the box.

board 4

JA: Do you have any driver developers involved in the project?

Michael Meeuwisse: Because we're first aiming for 'just' supporting the standard VGA modes there isn't any driver related development going on yet, because all operating systems will be able to talk to the card as any other standard VGA card. Reinder is looking into possible solutions with LinuxBIOS but other than that there aren't any driver developers involved yet. This will change when we're going to expand beyond VGA.

JA: When and where can people buy one of your cards?

Michael Meeuwisse: The plans are that the first card will be working this month, after which we can start implementing VGA support. Since OGP has been pushing for VGA support as well we should be able to reuse large parts of the code and get VGA working quickly. After that we'll look into how to set up a company which can sell these cards - this will most likely happen online. I'm fairly confident when I say that hopefully the cards will become available somewhere this year.

JA: Are you looking for a reseller for the cards, or are you planning to create an online store yourself?

Michael Meeuwisse: I mostly spend my time on getting the card together and running and am not really an expert on the business side of things. The rough idea is that the card will become available on the site in a store, but a reseller which takes care of things like packaging and distribution might be a viable option. This is all very much a work in progress which will only become more important after the card is actually working. Details about where to get the card will be put online when we worked out what will be most cost-efficient.

JA: What is the next step, after Project VGA is a success and has made a card available for hardware hobbyists?

Michael Meeuwisse: This will be a platform for further development of open source graphics on which many developers can experiment and work with internal details of graphic cards. Our next step would be getting full 2D acceleration and SVGA support, although this is entirely a programming effort and will be able to work on the current pVGA card. With these features software drivers will have to be developed as well for all operating systems.

If a second pVGA card will be designed and produced is entirely dependent on demand. If it turns out that a lot of people would like a slightly bigger card with an FPGA, or in a few years new FPGAs are available with better performance, we might design another low budget card with improved features.

What niche is this for really?

Anonymous (not verified)
on
January 15, 2008 - 11:18am

I don't want to be a Debby Downer but what is the exact need for this? I understand that maybe the future may hold things like limited 3D support but if that isn't a goal I don't see this becoming popular outside of an academic arena.

It sounds like it will be useful for someone wanting to learn to program some sort of graphics related driver and whatnot but there are much cheaper cards available for purchase that run just perfectly with open source drivers.

A fine example is a simple ATI Rage 8MB PCI Video Card for $10. They are saying 150 to 200 Euros or ~$220 to ~$294. Not really kind on the pocket book even if you're a hardcore 2D guy.

Does anyone know what they are looking to really target with this?

That's not the point

Mr_Z
on
January 15, 2008 - 12:24pm

Sure, you can buy an ATI Rage PCI card for $10, but what can you do with it? All you can do is use it "as it was intended." If that's all you're going to do with your video card, then buy the $10 card.

If, instead, you want to do something different with the card and bend the card to your wishes, and perhaps participate in the development of the stack of intellectual property that's necessary for an open video card, then this is a good starting platform. Development platforms are inherently more expensive, especially if their volume is much more limited. If you have a high volume ASIC, you can push its cost down dramatically. If you're making only a few hundred or few thousand boards, you're left with off-the shelf programmable solutions and those are much more pricey.

Think about the price of CD burners in the early days of CDs. A reader was a couple hundred bucks, but a writer was a few thousand bucks. This is similar, and the corresponding market sizes are similar. All most people needed (and could use, since HDs were so small) was a reader.

--
Program Intellivision and play Space Patrol!

Fair enough. Hopefully it

Anonymous (not verified)
on
January 15, 2008 - 1:01pm

Fair enough. Hopefully it will find enough use to offer future upgrades to the point that I may find use for them in something along the lines of 3D with a solid 2D backend. I do like the idea of going with 2D and building up from there.

Sample Applications?

Anonymous (not verified)
on
January 25, 2008 - 9:39am

I admit I only skimmed this interview, but what are some examples of the unintended uses?

The analogy to the CD burner doesn't ring with me, as burners were rare at the time. Video cards aren't. Yea, I know, it's a different kind of video card, but the market needs to see how it's different. I'd buy something like this to prototype with, but I don't get a good feel for what it's capable of, and how it would be different from a COTS card.

You missed my point though

Mr_Z
on
January 28, 2008 - 2:24am

In the early days of data CDs, most end users got the immutable end product of the CD creation process, the mass-produced CD-ROM that developers had put together. End users weren't using CD-Rs for their own storage. CD readers were a way of receiving a turn-key product on read-only media. Those who had writers were either power users, or developers that needed to test out data CDs before submitting a golden master to mass production.

Your statement "burners were rare at the time. Video cards aren't" misses the point: COTS video cards these days are much the same as CD-ROMs, not CD-Rs. They represent an unmodifiable, mass produced turn-key product. Sure, there are development boards back at the big vendors for them to develop their drivers, and all sorts of prototype stuff that lets them model their chip before they build it, but when you go to a computer store, you're buying a "read only" implementation. We don't have much of a way to influence what's on the card, and without detailed specs, we don't even know entirely what's there!

Michael's video card is not a read-only implementation. It's programmable, so that you can experiment with the card itself and change its implementation. You can experiment with the division of labor between the software driver and the card. You can experiment with new accelerators on the card itself to see if they're worthwhile. This is something that isn't useful to the vast majority of end users, but it is useful to a certain narrow market: those who want to develop a free video card and develop good video driver support. And, of course, there's all the other silly things you can do when you make an FPGA available in a PC, but ignoring that, there's still plenty of room for adjusting how X and the card interact to give the best overall behavior and performance.

The output of this process can then feed into building something that's much cheaper to produce on a broad scale, and like a mass produced CD-ROM, unmodifiable in that form. But, at least it was produced in an open manner, allowing us to go back and change it and make newer, more capable versions in the future. It's like having the source code to the program that came on that unmodifiable CD-ROM.

--
Program Intellivision and play Space Patrol!

hardware support for X

Anonymous (not verified)
on
January 15, 2008 - 11:19am

Maybe my understanding of this isn't completely on, but I'm really shocked that people want to add hardware support for X. After all, wasn't that the whole point of Xgl: that we could eventually run X on top of OpenGL instead of OpenGL on top of X? Vista has this already; everything goes through DirectX.

DirectX is the devil! And

Anonymous (not verified)
on
January 15, 2008 - 3:32pm

DirectX is the devil! And why would you ever buy vista?

Good project

Anonymous (not verified)
on
January 16, 2008 - 3:56am

The video card hardware/software interface needs rethinking because bus speed increases (PCI -> PCIe -> PCIe *16) and main processor to main memory bandwidth increases if the memory cache is used correctly.
There is no point to have a quad IA32 processor waiting for the video subsystem to be ready, and complex multi-processor systems spend most time trying to synchronise than doing usefull work.
A KISS video interface may be found by the next generation of this VGA card...

Irrelevent

Anonymous (not verified)
on
January 16, 2008 - 3:41pm

The point of pVGA is to get the foot in the door. This is a card for hobbyists and developers, not people who need lots of performance. If that becomes desirable/feasible in the future I'm sure the developers will pursue PCIe.

intel has opened the 965

Anonymous (not verified)
on
February 13, 2008 - 5:41pm

Intel has released ALL the documentation to its 965 graphics chipset. I personally think the OGP should have stuck with 2D or REALLY cheazy 3D.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.