What should I do if I want to output through HDMI?

If I wanted to work on a small (meaning cheap) hobby project which outputs something on HDMI, what kind of things would I need?

Is there some existing IC that does most of what I would need, including memory? Would I need memory + HDMI driver? What else would I need?

Is this an easy, medium or extremely difficult problem to solve for someone who's only played around with LEDs and some simple ICs, but has experience with theory?

Thanks, Daniel.

Reply to
Daniel Pitts
Loading thread data ...

See...

formatting link

I don't think it's something for beginners to tackle.

What are you trying to do, make a game?

TI (nee National) has many HDMI chips. ...Jim Thompson

--
| James E.Thompson, CTO                            |    mens     |
| Analog Innovations, Inc.                         |     et      |
 Click to see the full signature
Reply to
Jim Thompson

VGA was/is horrifying; HDMI has to be stupendously complex.

-- Les Cargill

Reply to
Les Cargill

I'll check it out.

Probably not, but sometimes you learn more by taking on something beyond you, as long as its not too far beyond.

Maybe. I'm more just exploring what is possible.

I'll check that out too.

Thanks, Daniel.

Reply to
Daniel Pitts

Perhaps. I'm not saying I want to design the interface. I was hoping there would be some ICs that when combined the right way would "just work" for me. Something akin to an old fashioned "video card", but without all the bells and whistles of modern hardware-acceleration, etc...

Something easy to interface with just for displaying a buffer.

Reply to
Daniel Pitts

A laptop with an HDMI or DisplayPort output. Older, previous-gen laptops with this capability are probably gathering dust and cobwebs and could be had for cheap.

If you want to roll your own, do some back of the envelope calculations for the number of pixels, color depth, and frame rate to get some idea of how much data you'll need to move, how large (and how many) frame buffers you may need, and what kind of processing power to generate or move all this data.

Xilinx has an appnote regarding implementing HDMI on a Digilent Spartan-6 dev board, if you want to give it a go:

At least read through the appnote to get an idea of what may be involved.

--
Rich Webb     Norfolk, VA
Reply to
Rich Webb

Yep. Agreed! Almost every project I take on I learn something new. Sometimes I even end up being the expert, and/or I develop my own tools which make me faster/better... like with IBIS modeling... I can run circles around anyone.

...Jim Thompson

--
| James E.Thompson, CTO                            |    mens     |
| Analog Innovations, Inc.                         |     et      |
 Click to see the full signature
Reply to
Jim Thompson

Aha! Try these people...

formatting link

I stumbled across them while trying to find out why my cable set-top box wouldn't talk HDMI-CEC.

They have a nice USB-to-HDMI interface. A little pricey, but HDMI, and 350MHz clocks is not for beginners. ...Jim Thompson

--
| James E.Thompson, CTO                            |    mens     |
| Analog Innovations, Inc.                         |     et      |
 Click to see the full signature
Reply to
Jim Thompson

Above link is OK, but not what I was trying to remember. Try this one...

formatting link
...Jim Thompson

--
| James E.Thompson, CTO                            |    mens     |
| Analog Innovations, Inc.                         |     et      |
 Click to see the full signature
Reply to
Jim Thompson

raspberry pi. (and patience - there's still a scarcity) element14 quoted me 72 days lead time.

I haven't looked closely at HDMI but it seems a lot more complex than analogue systems like composite video and VGA.

--
?? 100% natural

--- Posted via news://freenews.netfront.net/ - Complaints to news@netfront.net
Reply to
Jasen Betts

The simplest display card you're likely to find is a ISA bus VGA card,

16-bit address bus (MEM/IO and 15 address lines ), 8 bit data bus, TTL voltages. but it's not HDMI and AFAIK they're not making them any more.

(there's more address line but only 16 are needed to drive the VGA, the memory is addressed in 32K banks, under the control of the CRTC which is in the I/O address space )

the powersuppy could be inconvenient though, some VGA cards want +5V

+12V and -12V
--
?? 100% natural

--- Posted via news://freenews.netfront.net/ - Complaints to news@netfront.net
Reply to
Jasen Betts

I don't know a thing about HDMI, but as Les says VGA was indeed horrifying to program. I don't think things will have gotten any easier in that area, since the trend has always seemed to be toward higher complexity, from which we are supposed to be sheltered by the driver and OS. That strategy works pretty well for modern systems like Windows, as long as what you want to do is something that Windows has API support for.

If the OP's project is going to be used from an OS, then it will need a driver... a horrifying coding project. If it is really just to display a buffer, why not stick with a standard card and driver?

My feeling is that I'd need a *really* good reason to go back to the VGA days of talking to the hardware directly. This was semi-reasonable for VGA because although it was horrendously difficult at least it was a standard that you knew most systems supported. Now, it makes much more sense to work through standard OS calls and let someone else worry about the low-level stuff. (Please note that I program exclusively in assembly language, so I'm no stranger to low-level stuff!)

Best regards,

Bob Masta DAQARTA v6.02 Data AcQuisition And Real-Time Analysis

formatting link
Scope, Spectrum, Spectrogram, Sound Level Meter Frequency Counter, FREE Signal Generator Pitch Track, Pitch-to-MIDI Science with your sound card!

Reply to
Bob Masta

I think you might want a "Raspberry Pi"

Reply to
fungus

Indeed, I've written my own VGA drivers from DOS in the past. The point of my posting to this newsgroup though was for an Electronics project, not a software project. I have enough experience interfacing with screens through software (both directly manipulating the VGA hardware, and by using various hi-level libraries on modern systems).

Horrifying for a beginner/moderate. As I've mentioned, Drivers are things I've done.

Indeed, if the point of this exercise was ends, but for me the means is what I'm after. Hell, if I had the time, money, and patience, I'd probably try to build a 386 motherboard from scratch, just to see if I could. Now, I'm not that foolhardy enough, but building a simple video board is something I'm crazy enough to attempt.

Realistically, the software is the easy part for me, always has been. I was considering a small LCD display for some of my projects, but then thought that perhaps some other integration would be more flexible in the long run. Hence what I asked about HDMI specifically. Any other method of "displaying an image" on a screen, not involving a "computer", would be a good start. I can do it on a computer no problem ;-)

Thanks for your input. Daniel.

Reply to
Daniel Pitts

I've actually been interested in that, which is one of the reasons I thought about HDMI at all. Personally, I want an electronics project, not a software project. I've done the software parts before, on 80386's, using low-level protocols to influence the VGA video card to do things that were being BIOS capability.

What's important for my project is the means, not the ends. I'm wanting to learn hot to integrate such things. I don't want easy, but challenging. Not impossible, and not overly difficult, but no pre-built solutions for me :-)

Though from what I've read here and elsewhere, HDMI may be too big of a bite for me at this early stage. Maybe I'll stick with building an LED matrix for now.

Reply to
Daniel Pitts

I'd start with a video card that has Linux drivers and work backwards to what chipset it uses.

-- Les Cargill

Reply to
Les Cargill

I think any HDMI project will be mainly software. If it's not a R.Pi then it will be a chip which converts a block of RAM into an image so you'll spend half an hour connecting the RAM to the chip and the rest of the time writing software to put graphics in the RAM.

From what you've said so far I think you should get into the world of Arduinos.

A big LED cube driven by an Arduino is quite challenging to build, especially if it's with RGB LEDs.

Reply to
fungus

Indeed, but that half hour would be enlightening to me, and that is more-or-less my plan for the project (connect chip to ram, connect microcontroller/processor to ram, write lots of code)

I've been playing around with Arduinos.

I've seen such things. I was thinking of a matrix (not a cube) for a first project there. I have already used an Arduino to drive a single

7-segment display, using my own code to choose segments to light up.

From there, I made the arduino read from the serial line, and output the results to the segment. It works for many letters, but Hello World wasn't possible due to "W" not being representable.

Reply to
Daniel Pitts

I might read the datasheet for the chip to see how it works but building one doesn't seem much fun (to me). There's not much leeway to let your imagination run wild.

It's also not really something you can show to people or put on your desk.

Did you enjoy it? Time to ramp it up!

I've got one of these planned as soon as I get some free time. I already bought some parts, including an SD card shield to store the light sequence files. I'm going to start with 4x4x4 and aim for 8x8x8 when I figure out how LEDs interact with the human eye (they have to be multiplexed).

Get hold of a 14 segment display...?

Reply to
fungus

To a point. I've done some interesting graphics stuff before, and if I could put it into a little device that plugs into the TV, that might be enough. Arduino might not be powerful enough for the effects I'm think of, but maybe it will be. Otherwise I'm going to have to build my own ARM computer to show off ;-) Anybody remember the "Demo scene" in the late 80's early 90's? Those are the kinds of things I'm thinking of. Simple "fire" and "plasma" effects.

Yep, it was exciting. It was really the first thing I did on my own without any guidance (after "make a single LED blink).

Storing light sequences? Why not generate them real-time? That's the fun part, for me ;-) 8x8x8 is only 512 values. Even if you have some sort of dimming ability, you probably only need a few bits worth to support that. Manipulating that number of bits shouldn't take so much processor time that you would need to precalculate entire sequences. Maybe a quarter sine table, if you need that kind of curve. Floating-point ops tend to be the killer, but you can do a lot with just integers, if you know a few tricks.

The LEDs don't interact with the human eye, they only act upon it. Unless you smash your face into the LED cube, but I wouldn't recommend that :-)

Please take the following with the caveat that I've never built anything like this, so this is all from theory and math, and experience with computer animation, not electronics.

If you refresh the entire display somewhere between 24hz and 60hz, you would get a decent persistence-of-vision. If you wanted to reduce the effect of reference-frame shifts (people moving or the device moving), you could bump that up. Also, if you wanted to have N levels of intensities, one approach would be to refresh N times faster, and have that LED be on "x" number of "frames" and off "x-N" number of frames. That's similar to PWM.

So, if you multiplexed in a way that turned on exactly one LED at a time, you'd have to update 8x8x8 (512) per frame. If you had only on/off, and wanted a 60hz refresh rate, you'd need to update points at

30.72kilohertz. If you wanted 4 levels of intensity, you'd need 122.88khz.

Of course, if you controlled 8 leds in parallel, you could reduce that rate by a factor of 8. which would be 15.36khz. That means you have 65 microseconds to choose values for that particular 8 led pairs.

If I'm doing my math right, that gives you 260 instructions on a 4mhz processor to set the values how you want. If you only have a 4x4x4 cube, you have an 2083 instructions.

Does all this seem correct?

I've read through an Instructables 8x8x8 cube guide. This was before I had any practical experience (not that I have a lot now). I recall thinking their driver circuit was overly complex for not having PWM support. Maybe they intended that to be software, but they didn't discuss it at all.

On a related note of obtaining LEDs... You might already know this, but you can get batches of 1000 LEDs on ebay pretty cheap. red, green, and yellow seem to be right around $10, where blue and uv are $20-$30. 1000 is enough for a 32x31 display, with a few spares. It is also enough for a 10x10x10 cube of course, if you don't have any defective parts ;-). You can *almost* built 2 8x8x8 cubes, you'd be 24 short.

I suppose I could do that. I think I'd rather move on to matrix displays. If I need to render only characters, I'll probably just buy an LCD character display or something.

Reply to
Daniel Pitts

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.