Well, since it’s been kinda quiet around here I figured I’d post up some info on a project I’ve been working on for a little while. It’s a VB->TV adapter (VBTV? anyone got a better name π ). There’s really no good easy (that’s still cheap) way to do this, but I think how I’m doing it now will work.
Here’s a quick screenshot.
Sorry for the crappy pic, but I just had my cell phone w/ me at the time.
This is still early in the development… this is just the TV display half of the system, that image wasn’t taken from the real VB in real time. I believe I’ve gotten the displays completely reverse engineered though, so getting the uC to get that data shouldn’t be too difficult. Memory/Bandwidth on the uC is definately the limiting factor, but I think it’ll handle it.
DogP
Attachments:
Wow, nice DogP! How did you do it? I had an idea a while ago to mount two small cameras on a visor, mount it on a VB and process the output somehow… I have no idea how you’d do that though. Your way looks better than that.
Yeah, I tried using webcams, and have recorded several videos like that, but the quality is bad and there’s a lot of flickering since they’re not synced (and there’s a diagonal roll since the camera scans vertically and the VB scans horizontally).
What I’m using is a microcontroller that grabs the frame from the VB display output (digital signals) and puts it in memory, and then draws that to the TV. I’ve still got plenty of work to do on it, but hopefully I’ll get some time this weekend to mess with it.
DogP
See, I have nowhere near enough technical knowhow, nor patience to do that sort of thing, but if you can get it to work then more power to ya.
I’ll document everything when I’m done, but basically the outputs of the video display go into a FIFO, which the microcontroller then reads and stores into memory. The display software reads the memory and outputs it to the TV.
The microcontroller is a Parallax Propeller, which is basically an 8 CPU microcontroller. This allows parallal processing like controlling a TV while reading data from the FIFO, and also filling up local memory with display data, and then when the local memory fills up, it transfers it to the public memory while another CPU starts getting the display data.
DogP
*Yawn* Ugh, it’s 5AM and I’ve been working on the display all night, but I think it’s finally working π . Here’s a few pics.
It’s pretty funny seeing Wario that big π .
DogP
Attachments:
Whoa that’s impressive… how much time takes to learn all that stuff?… I barely can take a brake to play video games with my work and the school… π
I would like to try that after you post the documentation… but it would be really hard (and expensive) to find that microcontroller in my country.
FANTASTIC!!!
I almost spilled my lunch all over myself trying to set it down so I could look at the screen shot! Wow!
…so when can we start mass-production? π
Honestly, I love soldering and building circuits, so if you need any such grunt work, let me know! I’d be glad to help out for sure!!!
Not nagging…just asking…but are you planning on outputting red/blue for 3D glasses use? I know you can still buy actual (non-cardboard) 3D glasses–nice ones–because I have a friend that did. With some of those and this super-cool bad-boy project you have there, we could all get the VB experience full blast! *drooling*
I wonder how close the VB display aspect is to 16:9… *imagining VB on my 50′ HDTV* *drooling on keyboard*
Keep up the great work!! You are a legend in your own time!!!!!
Heh… sorry guys, that was my version of an april fools update π (since Ferry didn’t do one this year). That is the real hardware shown, and that is an actual screenshot, but just converted from a BMP :D. I am actually getting video from the display, but only 2KB at a time (about 1/10th of the screen) since it’s just a high level test software… I still need to rewrite it in ASM (to keep up I need to take ~26 cycles or less). I should be able to get the data into memory, but I’ll probably need to rewrite the TV driver.
About 3D, the biggest problem is that there isn’t enough memory for 2 full framebuffers (one for each eye). I’m looking at using external memory, but the Propeller doesn’t really work like most uC’s for external memory (no address/data pins, just GPIO). If I do interlaced I can do 3D (half of the vertical resolution), but I think shutter glasses would be better (although red/blue should work too). Parallax is supposed to be coming out with another Propeller chip in about a year that should have more memory, so 3D may have to wait for that.
And the VB is 12:7 aspect ratio, so you should be able to get that on the 16:9 TV (VB would be 15.43:9).
DogP
π π π π π
*crying uncontrollably*
π π π π π
*sniffle*
That hurt, man. You had me for sure…
So, what kind of chip are you using to get the video out? I’ve played around with Analog Devices’ AD714 chip, as it is apparently popular for using to adapt RGB video from arcade games to both NTSC and PAL formats. It also puts out both composite (which is visible in your *FAKE* screenshot…) and S-Video.
If you had two of your circuits in place (1/eye)and output the signal from one eye into the R channel of the chip’s RGB input, and the other eye into the B channel…wouldn’t that give you instant R/B 3D? I dunno…just musing…
Anyway, I’m game if you need a hardware beta tester!!! π
Heheheheh… sorry :-P. I’m using the Parallax Propeller for all the processing and video output. I have all the data from the displays clocking into a FIFO, which the Propeller then reads into memory (the prop isn’t fast enough to get data directly from the displays without missing some data). The prop then outputs that to the TV using 3 outputs and some resistors. I’ve got a plan for adjusting the brightness like the real VB, but I haven’t implemented it yet since that’s not as important.
If I was using a VGA output (which the prop can do), I could sync 2 props and output one to the red signal and one to the blue signal using 2 different circuits, but for TV it’d be a lot more complicated since the RGB is mixed in the chroma signal.
BTW, I wasn’t able to find any datasheet for the AD714, are you sure that part number is right? And if you’re into this kinda stuff, you should pick up a Propeller proto board… comes with most of the stuff you need on a nice PCB for $20. You’ll just need to make yourself a serial cable or buy the $30 USB plug. It is a 3.3V device, so you have to use some resistors to interface w/ a 5V device, but it’s not a big deal.
DogP
Hmm…it occured to me later that I meant AD724…not 714…sorry.
Thanks for the info on the prop, I’ll have to look into it. I know enough about these things to be semi-dangerous…wish I knew more… π
The data sheet for the AD chip has a full schematic for creating a VGA->TV (NTSC/PAL depending on what crystal you use) conversion circuit. That model adapts well to arcade boards, and anything else that can output RGB. For that matter, if you can produce RGB, I suppose you could pump out the R and B as pure component video…somehow…maybe…
d’oh! you got me, too. i actually checked vb.net on the morning of april 1st in hopes of an update, but didn’t think of the date anymore when i saw your post just a minute later. >:(
anyway, very good one! :thumpup:
Just a quick update… I’ve picked the project back up after not working on it for a couple months. I pretty much decided that the Propeller wasn’t going to be fast enough to take the data in and basically transpose the data in memory so it could be read by the TV driver… and the memory size was pretty limiting… so I decided to jump over to my FPGA board.
The Prop was nice since it had a TV driver already built, but I’m getting pretty close to getting the TV driver working well on the FPGA, so that shouldn’t be a big problem. The FPGA has more memory available on the chip, and the addressing is much more flexible, so transposing the data isn’t a problem (the memory is written in columns, but needs to be output to the TV as rows). Once I get the TV output working, then I’ll work on wiring it up to the real VB, and write the driver to write the display data into the frame buffer used by the TV driver.
Anyway, here’s a current screen shot… and since it’s not April Fools Day, there’s no VB hooked up to it π . Hopefully I’ll have some time to work on it at work… then it’ll get done faster π .
DogP
Attachments:
Looks very good! Should this take off and costs reasonable it may spur interest in VB collecting from people who have shunned VB because it causes too much headaches. Plus no need to worry about broken LED display π
Any idea what the target price may be? Also could it be made to output in separate red and blue for 3D mode?
Heh, I’m an engineer, not a marketing/consumer guy… so who knows whether I’ll actually get around to making this a product for people to buy, and I REALLY have no idea on price. The prototype is on a $150 FPGA evaluation board, and the rest is a couple bucks in parts.
I definitely won’t be making these to sell if it has to be hand-wired like mine is, but if I can just put the FPGA on a small board that attaches directly to the display output, and then can have a pass-through for the original VB display that I can install fairly quickly and painlessly, then I’d be glad to make them.
Of course I wouldn’t be looking to make a killing on them, but it’d have to be worth my time, and the FPGA chip that I’m using is $20-$30 each depending on which package I go with, and then there’s a few small parts like the oscillator, flash to hold the code, voltage regulators, various connectors, resistors, capacitors, etc… along with whatever other small things I’m not thinking of.
And yeah… I’m definitely going to try to make red/blue and maybe shutter glasses compatible… although shutter glasses support will probably wait for VGA (VGA should be easier to do than TV anyway).
DogP
I agree. Time = money (and A LOT of money, because free time is very scarce). I understand you DogP…