TTLG|Jukebox|Thief|Bioshock|System Shock|Deus Ex|Mobile
Results 1 to 7 of 7

Thread: Microcontrollers and graphics

  1. #1
    Member
    Registered: Jun 2001
    Location: under God's grace

    Microcontrollers and graphics

    Do you know if there are any microcontrollers that have an embedded GPU for 3D graphics? Or ideally a general vector processor that can be used for anything, not just graphics. And I'm not looking for something that requires a driver to program, but something so simple that can be directly programmed, just like the CPU itself. Also, FPGAs are very expensive, so those don't count. Something that costs $10-100.

    I've found a some that have a 2D GPU though.

    My angle is this: I'm basically looking for simple hardware that's programmable directly, but has a bit more compute power than an Amiga. The CPU can be weaker, but I'd like to have more SIMD type processing power on the side.

    Cheers

  2. #2
    Administrator
    Registered: Oct 2000
    Location: Athens of the North
    Something like this: https://www.st.com/en/microcontrolle...m32mp157.html? Not ridiculously expensive, has multiple cores and 3D GPU so you should be able to portion off what you need between the internal peripherals / cores. I haven't used that particular STM32 part but past experience with them has been better than some other CPUs.

    (If you do go for this one then there's a development board for it https://www.digikey.com/en/products/...D-DK1/13536964. Even if you're ultimately looking for a bare-metal solution, building something with a processor like this isn't a trivial undertaking and this would at least let you test your ideas.)

  3. #3
    Member
    Registered: Jun 2001
    Location: under God's grace
    Thank you Al_B!

    The STM32MP157 seems quite perfect, although can it be called an MCU anymore? Seems almost like a small microprocessor. Do you know if there are connector sockets for it that I can plug into a prototype board? I couldn't find anything like that.

    But it seems quite perfect. I think I'll order a dev board since they're not too expensive. Very cool!

    If you wanted to build a "modern Amiga" (I don't mean being compatible, just similar in spirit) in the sense that it would be very simple hardware, very programmable and a bit more powerful and containing a bit more memory, how would you approach this?

  4. #4
    Administrator
    Registered: Oct 2000
    Location: Athens of the North
    Quote Originally Posted by Qooper View Post
    Do you know if there are connector sockets for it that I can plug into a prototype board? I couldn't find anything like that.
    The dev board claims to have GPIO expansion connector and Arduino connectors - should be enough to get started at least.


    Quote Originally Posted by Qooper View Post
    If you wanted to build a "modern Amiga" (I don't mean being compatible, just similar in spirit) in the sense that it would be very simple hardware, very programmable and a bit more powerful and containing a bit more memory, how would you approach this?
    Some of the initial motivation around the Raspberry Pi was to create something that gave the spirit of hands-on computing that existed with the early personal computers. It would likely meet the criteria you describe and, when you can get them, doesn't have a ridiculous price. It also has a wide range of expansion modules and support for add-ons that people can use already out there. Any approach to produce a "modern Amiga" would likely follow the same route that was made during development of that and isn't a cheap process to say the least both in time, manufacturing and testing.

    If an existing system isn't suitable and needed a bespoke development then it would be highly dependant on what the end goal is and who its for. If it's for yourself out of personal interest then that's vastly different to whether it was something that is expected to have wider use. I know you have said you rule out FPGAs but for very specialised applications that a general processor may not suit they aren't necessarily horrendous in pricing and offer great flexibility. The flip side is that they can require a lot more time to get up to speed and the general community knowledge base is inherently more limited.

    Ultimately, there isn't one right answer to the question you ask, as so often the answer is "it depends"

  5. #5
    Member
    Registered: Dec 2001
    Location: Marlboro, MA, USA
    I just watched a video about Raspberry Pi alternatives today! Sounds like what you are talking about, gives several options:
    https://youtu.be/uJvCVw1yONQ
    The Keep for Thief 1 and 2 FMs, Shadowdark for Thief 3 and Dark Mod FMs

  6. #6
    Member
    Registered: Jun 2001
    Location: under God's grace
    Quote Originally Posted by Al_B View Post
    The dev board claims to have GPIO expansion connector and Arduino connectors - should be enough to get started at least.
    That'll definitely be useful. But I was thinking of something like the DIP socket for a PIC18:

    I suppose there's no point because the STM32MP157 has a ton of pins.

    Some of the initial motivation around the Raspberry Pi was to create something that gave the spirit of hands-on computing that existed with the early personal computers. It would likely meet the criteria you describe and, when you can get them, doesn't have a ridiculous price.
    I've looked at the RPi4 (also 3) in depth. It has the same problem most SBCs have, that the GPU isn't as open as the rest of the system. If using the Raspberry Pi 4, the two options are:
    1. Use the GPU only for presenting an image to the screen, and do rendering on the CPU.
    2. Use the GPU through a Linux driver.

    I'm looking to write my own toy OS (a very simple one) that directly commands the hardware, so that only leaves option 1, which is the same what I'd get with a simpler system, like a microcontroller.

    Any approach to produce a "modern Amiga" would likely follow the same route that was made during development of that and isn't a cheap process to say the least both in time, manufacturing and testing.
    That's most certainly the case. I'm not sure if I'll take it that far though I'm just looking for a toy project to build a toy computer. What I love about microcontrollers is that they come with detailed technical documentation that explains how they work on the inside, and how they are programmed directly. So my thinking was that it's already 2023, and we probably already have "MCU-level" or "MCU-type" open GPUs, or at least VPUs that can be used for graphics compute. I was very surprised how difficult it is to find one. Most GPUs are closed, and very complicated, which makes reverse-engineering very difficult. Take the VideoCore VI that's in Raspberry Pi 4, the community is still scratching their heads as to what values you need to write to which registers in order to get its QPUs to compute a general purpose batch. It has both Vulkan support and OpenGL (and OpenGL is actually implemented straight into its firmware , talk about complicated hardware).

    I'd just like very simple hardware that's very simple and straight-forward to program, that has both audio and graphics capabilities, maybe even ethernet. Doesn't need to be powerful by today's standards. Video output could even be less than 1920x1080, it could be something like 1024x768 or even 640x480. Maybe I'm looking for something that isn't there? (Yet? Or anymore?)

    Quote Originally Posted by Komag View Post
    I just watched a video about Raspberry Pi alternatives today! Sounds like what you are talking about, gives several options:
    https://youtu.be/uJvCVw1yONQ
    Ah, I saw that too a couple weeks ago It was interesting to see that there are so many SBCs that are very similar to the Raspberry Pi. But sadly none of them have an open GPU

    ...


  7. #7
    Administrator
    Registered: Oct 2000
    Location: Athens of the North
    Quote Originally Posted by Qooper View Post
    I was thinking of something like the DIP socket for a PIC18. I suppose there's no point because the STM32MP157 has a ton of pins.
    Well, BGA test sockets do exist but can be extraordinarily expensive (hundreds of dollars). Routing and grounding would be a concern and you'd need to be creating a custom board anyway to accommodate it. I've used them for other applications but for what you're talking about wanting to do, there would be very little point and for a hobby project it's definitely overkill.

    Quote Originally Posted by Qooper View Post
    I'm just looking for a toy project to build a toy computer. What I love about microcontrollers is that they come with detailed technical documentation that explains how they work on the inside, and how they are programmed directly. So my thinking was that it's already 2023, and we probably already have "MCU-level" or "MCU-type" open GPUs, or at least VPUs that can be used for graphics compute. I was very surprised how difficult it is to find one. Most GPUs are closed, and very complicated, which makes reverse-engineering very difficult.
    Yes, there's a lot of specialist IP that's deliberately closed source or only available under NDA - video CCD sensors were like that a few years ago from some of the main manufacturers. This type of functionality can be commercially sensitive so it's not surprising that information is scarse.

    Quote Originally Posted by Qooper View Post
    I'd just like very simple hardware that's very simple and straight-forward to program, that has both audio and graphics capabilities, maybe even ethernet. Doesn't need to be powerful by today's standards. Video output could even be less than 1920x1080, it could be something like 1024x768 or even 640x480. Maybe I'm looking for something that isn't there? (Yet? Or anymore?)
    A problem that you'll have is that although your brief sounds straightforward there's a lot of work that goes into any of those components. It's a step up from a micro that may interact with simple I/O to supporting ethernet, general peripherals, video processing / display and audio. Absolutely achievable, particularly if you're very restricted in scope, but you're talking about touching a lot of different technical domains. If you're really going to "bare metal" it then you need to structure it as a whole system including the interface hardware, power supply management, clock domain design, software drivers (of some sort) and that's before you get to actually dealing with the core of an OS itself.

    Certainly not wanting to put you off and you'll learn loads from whatever direction you choose in the end. Personally, I'd start with simple goals based around a development board or (or a SBC or a PI alterative) to get a feel for how things work in a system these days. May feel like you're not quite as "bare metal" as you want to be, but I suspect you'll find it a smoother path to start and that stuff can come later.

    Edit: you may be interested in this thread from yesterday: https://www.ttlg.com/forums/showthre...61#post2499161. The linked system has some pretty basic specifications but is close in spirit to what you are discussing. No 3d graphic processor (or even close to it) and not open sourced, or even available yet.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •