Shop OBEX P1 Docs P2 Docs Learn Events
High Quality Graphics - Can it be done — Parallax Forums

High Quality Graphics - Can it be done

computer guycomputer guy Posts: 1,113
edited 2009-09-27 16:45 in Propeller 1
I am wanting to make something similar to this

I am confident that I can program most aspects of the project using the propelller however I am confident that the propeller isn't capable of the high resolution GUI display.

Is there a device or an IC that I can use that will enable the propeller to display a high resolution GUI without using too many propeller pins or taking years of code writing?




Thanks smile.gif

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Building Blocks To The Propeller Chip A web site designed to help people who are new to the propeller chip.

Guitar Hero controller using the prop (WIP) --> HERE

Comments

  • localrogerlocalroger Posts: 3,452
    edited 2009-09-25 12:32
    The Prop can display fairly high resolution graphics, but there isn't enough RAM to bitmap a large high resolution screen. You can cram a lot of text on the display along with a mouse pointer if you don't care how many cogs you eat doing it. For an actual graphic display one of the multiprop solutions like the triblade or Morpheus might do it (in fact, something like what you want to do appears to be a design goal of Morpheus).
  • mctriviamctrivia Posts: 3,772
    edited 2009-09-25 12:34
    my superprop should be able to do it.

    8MB Ram/8MB Flash and a Max 2 1270 CPLD which could generate the video for you.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    propmod_us and propmod_1x1 are in stock. Only $30. PCB available for $5

    Want to make projects and have Gadget Gangster sell them for you? propmod-us_ps_sd and propmod-1x1 are now available for use in your Gadget Gangster Projects.

    Need to upload large images or movies for use in the forum. you can do so at uploader.propmodule.com for free.
  • NetHogNetHog Posts: 104
    edited 2009-09-25 12:46
    This demo is of graphics done on an FPGA (it's wise to grab the slider and fast forward through rather than sit through it):

    http://www.youtube.com/watch?v=Z8bfXVOExXo·(D/AVE, http://www.altera.com/support/examples/nios2/exm-tes-demo.html)

    I have no idea how much this particular·IP core costs, but suffice to say this video shows that·something like this·is possible without using mainstream graphics chips.

    Another, which I think is open source:

    http://www.youtube.com/watch?v=RttajqhNpzw

    http://www.frank-buss.de/yagraphcon/index.html

    Whatever mechanism you use, the problem then is how to get image bitmaps to the screen. This is still going to be a bottleneck whatever way you go. The less Prop pins you use, the more of a bottle neck it will be. The YaGraphCon demo shows speed over USB for example.
  • ericballericball Posts: 774
    edited 2009-09-25 12:47
    As localroger says, the main limitation for Propeller generated graphics is RAM (with clockspeed the second limit). So things like "DVD quality movies" are not feasible because the Propeller doesn't have enough onboard RAM for a framebuffer. Even displaying static pictures is be difficult. However, even TV.spin, which is tile based, has a lot of flexibility. And if 90% of what you are displaying is text and tile based graphics (i.e. menus and lists), then it's probably doable on the Propeller.

    The bigger issue, IMHO, is the iPod interface. Is the protocol (both low-level electrical and high-level command) well documented enough to consider creating a homebrew HomeDock?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Composite NTSC sprite driver: Forum
    NTSC & PAL driver templates: ObEx Forum
    OnePinTVText driver: ObEx Forum
  • NetHogNetHog Posts: 104
    edited 2009-09-25 12:50
    Found this other one (mctrivia, thought about porting one of these onto the superprop
    ? [noparse]:)[/noparse] )



    Open source:
    http://sourceforge.net/projects/genode-fx/
  • mctriviamctrivia Posts: 3,772
    edited 2009-09-25 13:06
    cool videos. The source codes for the CPLD on the superprop will be open source so anyone can play with them and update.

    When ordering you will be able to order with CPLD not programed or with the CPLD programed with any code you like. I will be including a programing rig free with those devolers willing to pre order.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    propmod_us and propmod_1x1 are in stock. Only $30. PCB available for $5

    Want to make projects and have Gadget Gangster sell them for you? propmod-us_ps_sd and propmod-1x1 are now available for use in your Gadget Gangster Projects.

    Need to upload large images or movies for use in the forum. you can do so at uploader.propmodule.com for free.
  • mctriviamctrivia Posts: 3,772
    edited 2009-09-25 13:07
    cool videos. The source codes for the CPLD on the superprop will be open source so anyone can play with them and update.

    When ordering you will be able to order with CPLD not programed or with the CPLD programed with any code you like. I will be including a programing rig free with those devolers willing to pre order.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    propmod_us and propmod_1x1 are in stock. Only $30. PCB available for $5

    Want to make projects and have Gadget Gangster sell them for you? propmod-us_ps_sd and propmod-1x1 are now available for use in your Gadget Gangster Projects.

    Need to upload large images or movies for use in the forum. you can do so at uploader.propmodule.com for free.
  • Agent420Agent420 Posts: 439
    edited 2009-09-25 13:15
    > display a high resolution GUI without using too many propeller pins or taking years of code writing?

    I'll probably take that road ;-)··· Interfacing to an old isa video card seems like an interesting project...·

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
  • computer guycomputer guy Posts: 1,113
    edited 2009-09-25 13:55
    How easy would it be for a person like me, with some knowledge of SPIN and no ASM to be able to use an FPGA like in the first video?

    I need my project to have a nice looking GUI but don't think I have the ability to make this happen.



    Thank you smile.gif
    NetHog said...
    This demo is of graphics done on an FPGA (it's wise to grab the slider and fast forward through rather than sit through it):

    http://www.youtube.com/watch?v=Z8bfXVOExXo (D/AVE, http://www.altera.com/support/examples/nios2/exm-tes-demo.html)

    I have no idea how much this particular IP core costs, but suffice to say this video shows that something like this is possible without using mainstream graphics chips.

    Another, which I think is open source:

    http://www.youtube.com/watch?v=RttajqhNpzw

    http://www.frank-buss.de/yagraphcon/index.html

    Whatever mechanism you use, the problem then is how to get image bitmaps to the screen. This is still going to be a bottleneck whatever way you go. The less Prop pins you use, the more of a bottle neck it will be. The YaGraphCon demo shows speed over USB for example.
    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Building Blocks To The Propeller Chip A web site designed to help people who are new to the propeller chip.

    Guitar Hero controller using the prop (WIP) --> HERE
  • mctriviamctrivia Posts: 3,772
    edited 2009-09-25 13:59
    if you were using the super prop it would be a mater of getting one with the video drivers already installed. then using it would just be a matter of using the appropriate object. Could be extremely easy depending on how nice the programer was making the object and cpld code.

    for you to write your own code all from scratch would not be to easy.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    propmod_us and propmod_1x1 are in stock. Only $30. PCB available for $5

    Want to make projects and have Gadget Gangster sell them for you? propmod-us_ps_sd and propmod-1x1 are now available for use in your Gadget Gangster Projects.

    Need to upload large images or movies for use in the forum. you can do so at uploader.propmodule.com for free.
  • Agent420Agent420 Posts: 439
    edited 2009-09-25 14:13
    > Could be extremely easy depending on how nice the programer was making the object and cpld code.


    So would this be assuming objects that met those requirements are written?

    I don't think it's unfair to suggest that there are limitations to what can be easily accomplished with the Propeller, or any platform for that matter.· At some point you simply need a bigger tool that is better suited for the task; unfortunately that often means additional complexity as well.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
  • mctriviamctrivia Posts: 3,772
    edited 2009-09-25 14:26
    at this point no objects for the superprop have been writen but I am sure there will be lots soon after I release it if there is enough interest. I am hoping to have the superprop for sale by the end of next month but i need to figure out if i can sell enough to cover my initial pcb cost. I do have the schematics available for anyone looking to write cpld code for it.

    You can't do high res graphics on the prop by itself but you can do decent low res mostly text based stuff on it. if text based low res graphics are good enough for you then check out the obex. if you want high res the super prop has same form factor and pin layout as dip 40 prop so you can design for it now.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    propmod_us and propmod_1x1 are in stock. Only $30. PCB available for $5

    Want to make projects and have Gadget Gangster sell them for you? propmod-us_ps_sd and propmod-1x1 are now available for use in your Gadget Gangster Projects.

    Need to upload large images or movies for use in the forum. you can do so at uploader.propmodule.com for free.
  • potatoheadpotatohead Posts: 10,261
    edited 2009-09-25 14:52
    It's only two cogs... for the text and mouse pointer [noparse]:)[/noparse]

    Seriously, I think that kind of display is above the propeller. I would consider some other device for display. Frankly, one of those single board computers running some lean OS would be my target platform for this kind of thing. Those things are cheap too! There are lots of cool boot options, including USB flash drive. The whole thing could boot in a few seconds, run silent, and display a very nice screen with only a modest graphics system.

    A coupla hundred bucks for the board, nice enclosure (or hack your own) and a week spent learning the OS and locating the necessary drivers, would be where I would start. From there, the actual application can be some high level language of your choice.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Propeller Wiki: Share the coolness!
    Chat in real time with other Propellerheads on IRC #propeller @ freenode.net
    Safety Tip: Life is as good as YOU think it is!
  • mctriviamctrivia Posts: 3,772
    edited 2009-09-25 14:56
    Yes they do make some nice fanless pcs for decent price. My super prop will be about $250,$230,$210(8MB,4MB,2MB) for quantities of 1 with significant discount for large quantities. but the super prop is a lot smaller.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    propmod_us and propmod_1x1 are in stock. Only $30. PCB available for $5

    Want to make projects and have Gadget Gangster sell them for you? propmod-us_ps_sd and propmod-1x1 are now available for use in your Gadget Gangster Projects.

    Need to upload large images or movies for use in the forum. you can do so at uploader.propmodule.com for free.
  • waltcwaltc Posts: 158
    edited 2009-09-25 16:24
    Nethog

    The link you provided is probably beyond the Prop and definitely beyond a CPLD, you need at least as Cyclone II or Stratix FPGA running the Altera Avalon soft core processor with lots of dedicated Ram on its own to pull it off.

    Not a project for beginners or folks who need hand holding at all.

    The other FPGA demo also requires a FPGA as opposed to a CPLD.

    You'd probably better off getting as Potatohead pointed out some kind of low cost SBC with lots of Ram and say a DSP as a target platform for video work. Something like the Beagle Board running QNX.

    But it still possible to interface a Prop board to say a Spartan 3 kit and use it as a high end video processor for the Prop.

    Cheaper route would be getting a used ISA video card and interface it to the Prop.

    FWIW
  • jazzedjazzed Posts: 11,803
    edited 2009-09-25 17:12
    @computer guy,
    Looking at the display examples on that link, it seems that given up to 64 colors available to for Propeller video, the output could be massaged to do some GUI shading and text areas ... even a watermark might be possible. It would require a different driver approach though. Maybe I've missed the point of the topic?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    --Steve

    Propeller Tools
  • potatoheadpotatohead Posts: 10,261
    edited 2009-09-25 17:50
    Along those lines, a single Propeller doing nothing but graphics could render a fairly nice display of that kind. That's a lot of work though. If you want to add DAC's to the project, lots of colors are possible as well.

    Maybe ping Coley and Baggars about PROPGFX. The interface on that one is very cool. 8 data pins are used for comms, or a serial interface can be used at a lower speed. I'm not sure what the upper resolution options are, but color selection is good on the full PROPGFX. That's essentially a device that is a Propeller, that won't take the coding work to build up the display capability.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Propeller Wiki: Share the coolness!
    Chat in real time with other Propellerheads on IRC #propeller @ freenode.net
    Safety Tip: Life is as good as YOU think it is!
  • Bill HenningBill Henning Posts: 6,445
    edited 2009-09-25 18:11
    Hi,

    As Localroger said, Morpheus may do what you want.

    Currently, I have the following drivers:

    640x480 @ 69Hz
    800x600 @ 60Hz
    1024x768 @ 51Hz

    All of these modes are using four colors from a palette of 256 colors... but you get a separate palette for each scan line!

    As soon as I finish tweaking these drivers a bit more, I will start making 256 color per pixel drivers.

    Here are the 256 color per pixel modes I am currently planning on supporting:

    256x192 (with 1024x768 monitor timing)
    320x240 (with 640x480 monitor timing)
    400x300 (with 800x600 monitor timing)

    Later I may be able to do a 512x384 mode as well - but that one is on the bleeding edge of what an 80MHz Morpheus can do.

    The graphics API will be the same for the 256 color modes as well (except they will ignore Palette calls)

    Please see http://forums.parallax.com/showthread.php?p=818362 towards the bottom for screen shots of some of my demo's.

    Here is my current Spin graphics API: (I will be expanding it in the future)

    * Cls(color) - PASM fast screen clear routine
    * Pen(color) - set the drawing color to one of the four colors per pixel
    * Plot(x,y) - PASM fast pixel plotting
    * Plot(x,y,c) - PASM fast pixel plotting, also specifies color
    * Rectangle(x,y,w,h) - draw a rectangle
    * Circle(x,y,c) - draw a circle
    * FilledRectangle(x,y,w,h) - draw a filled rectangle, PASM accelerated
    * FilledCircle(x,y,w,h) - draw a filled circle, PASM accelerated
    * PutChar(x,y,ch) - output 8
  • ericballericball Posts: 774
    edited 2009-09-25 18:21
    Just one note - the HomeDock is S-Video connected, so it's display is probably max 720x480 (same as a DVD). "High Resolution" isn't very high when using a TV as a display.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Composite NTSC sprite driver: Forum
    NTSC & PAL driver templates: ObEx Forum
    OnePinTVText driver: ObEx Forum
  • potatoheadpotatohead Posts: 10,261
    edited 2009-09-25 18:56
    That puts the display within reach of a Prop doing just graphics, IMHO.

    Color depth is a problem, but the rest of what is depicted there isn't.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Propeller Wiki: Share the coolness!
    Chat in real time with other Propellerheads on IRC #propeller @ freenode.net
    Safety Tip: Life is as good as YOU think it is!
  • HollyMinkowskiHollyMinkowski Posts: 1,398
    edited 2009-09-26 02:19
    potatohead is right.
    This is best done using something like a fanless Intel Atom motherboard
    booting Linux.
    Linux/NASM/C is the way to do this.
    I love the prop but this is a better choice IMO.
    fitpc2-sb-top-m.jpg

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    "Where am I? Where am I going? Why am I in a handbasket?"
  • VIRANDVIRAND Posts: 656
    edited 2009-09-26 05:05
    I was always impressed with the frugal simplicity of the APPLE ][noparse][[/noparse] video timing chain which supported several
    different display modes and simultaneously and transparently refreshed the dynamic RAM in such a way that the
    CPU could also always access it... (The resulting pixelmap function was bizarre though.) Other 8-bitters were
    more or less clever.

    How about a CoProp and old 30 pin 1 MB Simm DRAM (if they are still heaped up in surplus) which should
    facilitate 256 colors with 1024x768, and the Propeller video generator may be merely helpful for interlaced
    video sync if it is needed. A few 74HCTxxx glue logic could generate the video output.
    -One cog for DRAM refresh timed for optimal video output
    -One cog for DRAM access
    -Everything else for a video codec or two and text and graphics commands.
    Most of CoProp's pins will need to be connected to the DRAM simm.

    BTW, which video codecs can be done or have been done on the Prop yet?
    Simplest ones still in use are what? ... M-JPEG? FLIC? "Dialup Webcam"? Stuff from 1995?
  • Bill HenningBill Henning Posts: 6,445
    edited 2009-09-26 13:07
    Virand,

    - 1MB 30 pin sims were usually 70ns - 80ns
    - 1024x768 @ 60Hz uses a 65MHz dot clock - there is no way of getting 65MB/sec from such an old simm

    Now more modern ram, and a small FPGA could do it if it acted like a peripheral for a prop.
    VIRAND said...
    I was always impressed with the frugal simplicity of the APPLE ][noparse][[/noparse] video timing chain which supported several
    different display modes and simultaneously and transparently refreshed the dynamic RAM in such a way that the
    CPU could also always access it... (The resulting pixelmap function was bizarre though.) Other 8-bitters were
    more or less clever.

    How about a CoProp and old 30 pin 1 MB Simm DRAM (if they are still heaped up in surplus) which should
    facilitate 256 colors with 1024x768, and the Propeller video generator may be merely helpful for interlaced
    video sync if it is needed. A few 74HCTxxx glue logic could generate the video output.
    -One cog for DRAM refresh timed for optimal video output
    -One cog for DRAM access
    -Everything else for a video codec or two and text and graphics commands.
    Most of CoProp's pins will need to be connected to the DRAM simm.

    BTW, which video codecs can be done or have been done on the Prop yet?
    Simplest ones still in use are what? ... M-JPEG? FLIC? "Dialup Webcam"? Stuff from 1995?
    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Please use mikronauts _at_ gmail _dot_ com to contact me off-forum, my PM is almost totally full
    Morpheus & Mem+dual Prop SBC w/ 512KB kit $119.95, 2MB memory IO board kit $89.95, both kits $189.95
    www.mikronauts.com - my site 6.250MHz custom Crystals for running Propellers at 100MHz
    Las - Large model assembler for the Propeller Largos - a feature full nano operating system for the Propeller
  • science_geekscience_geek Posts: 247
    edited 2009-09-26 18:13
    i just wanted to throw this out there, didnt read all of the thread but wanted to say somethings before i forgot them. I have been using a comfile itl710 display for about 3 months now and i have experience with the 4dsystems line of displays. Both are serial controlled displays with processors and ram to be able to do most of what you want. one thing that i have noticed when using these things is that you have enough ram to do most of these things in the display its just a matter of coding in a function to save bitmaps to the display's processor. with the itl710 you can have predifined functions to do gui things. Im not sure what size of a display you are looking for but serial displays are pretty good for gui use. if this is not info you are looking for just dont listen to what i have to say.
  • potatoheadpotatohead Posts: 10,261
    edited 2009-09-26 20:14
    IMHO, this is a very good point of consideration. A propeller controlling such a device could potentially spend a bit of init time prepping the display, then control it, only sending data to it, when necessary. Said data could easily come from non HUB storage. Still, this is going to be complex compared to the excellent board Holly posted up. I've a feeling a project like this would be just cake with that kind of setup.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Propeller Wiki: Share the coolness!
    Chat in real time with other Propellerheads on IRC #propeller @ freenode.net
    Safety Tip: Life is as good as YOU think it is!
  • jazzedjazzed Posts: 11,803
    edited 2009-09-26 20:55
    Little LCDs with 65K+ colors are wonderful for little GUIs. Big things usually require bigger solutions.
    Still, having some kind of a richly textured and colored Propeller compatible TV/VGA GUI is very attractive.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    --Steve

    Propeller Tools
  • RaymanRayman Posts: 14,851
    edited 2009-09-27 11:26
    Speaking of high "quality" output... I'm gearing up to try 24-bit DVI output.
    I figure I can use 3 cogs, one each for RGB, to generate 24-bit data at 640x480...
    Maybe 6 cogs can do 1024x768...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    My Prop Info&Apps: ·http://www.rayslogic.com/propeller/propeller.htm
  • tonyp12tonyp12 Posts: 1,951
    edited 2009-09-27 15:17
    Could DVI/HDMI with minimal external·circuitry be done?
    Some how generate a serial bit stream, where the prop inserts to most 8 significant bit·x 3

    To reduse pin count this could help.
    MHL-to-HDMI compliant bridge
    http://www.siliconimage.com/products/product.aspx?id=130

    but maybe creating a MHL signal is as hard as HDMI,
    so maybe a RGB parallel input chip is needed.
    http://www.siliconimage.com/products/category.aspx?cid=27&fid=1




    The DVI data channel operates at a bit-rate multiple of 10 times the frequency of the clock signal. In other words, for every DVI clock there are 10 bits provided on each of the three data channels.

    The data is encoded using a standard 8b/10b encoding to provide a minimum transition density in which there are no more than five consecutive bits of the same value, which is necessary to provide reference edges for clock/data recovery circuits.

    As indicated in version 1.0 of the specification, the clock rate is the same as the pixel rate plus framing overhead, while there are usually 24 bits per pixel.

    For example, a (640 × 480) @ 60·Hz display has a pixel rate of 18.4·MHz (plus blanking overhead) so this is the minimum needed clock.

    ·But the data is actually (640 × 480) @ 60·Hz × 24 bits per pixel which is 442·Mbit/s, or 147·Mbit/s per channel.
    Include TMDS overhead and you need a 184·Mbit/s data stream on each of the three data channels.


    Post Edited (tonyp12) : 9/27/2009 3:48:00 PM GMT
  • RaymanRayman Posts: 14,851
    edited 2009-09-27 16:45
    Well, I'm going to use a TFP410 to do it... I think I can use a very slighty modified VGA driver to generate DVI. (Could do HDMI instead, but most things I want to connect to have a DVI connector and I can use a cheap converter cable to connect to HDMI TV...)

    I've just dropped down to 16-bits to see if I can go to 1280x720 using 6 cogs... Also, I want to see if I can use the extra pins to interface sram chips for frame buffers...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    My Prop Info&Apps: ·http://www.rayslogic.com/propeller/propeller.htm
Sign In or Register to comment.