Arduino Destop

Hey I'm new here and I was wondering if i could combine vga or component output with the feedback of a mouse to create a very lightweight OS?
P.S if I posted in the wrong sub forum please move it.

There is only the TVOut library but for Arduino Mega. And not for make a S.O. with GUI.
Arduino Uno have only 32Kb of Flash and 2K Ram. Mega 256Kb and 8Kb of Ram
Your PC with Windows or Linux or Mac have al least 2 or 4GB of ram and 32 or 64 bits CPU, not a 8bits CPU

I was wondering if i could combine vga or component output with the feedback of a mouse to create a very lightweight OS?

There is so much more to an operating system that just a mouse and a terminal that this question doesn't even make sense.

So what your saying is the GUI would be so hardcore to the Arduino it may crash it?

Yes, impossible for Arduino.

So what your saying is the GUI would be so hardcore to the Arduino it may crash it?

Who said that?

Creating a GUI means that you have a graphic user interface. To do that, you need a way to define the graphics to display and a place to display them. My Arduino can define the graphics, but it has no place to display them. Where will yours display them?

A GUI means that the use can make selections and/or enter data. The mouse may be useful for moving a cursor around, but clicking simply generates an event. You need to write code to react to that event, and determine where the mouse cursor is, relative to the graphics you have displayed, so that you can distinguish a button click from a text field selection.

Your question implies that you understand all that, and know how to do it. At the same time, it implies that you don't.

A GUI allows for text input. Where is that text coming from?

What is the purpose of the GUI? Posting a GUI is something that an application does. That application is launched by the operating system. Being able to display a GUI implies an awful lot about the OS, but, at the same time, it is only a small portion of what an OS does.

Welcome baller_z_bro:

Can a TV, joystick, mouse, and graphics all be managed by the Arduino? YES.
But not as an operating system, per se. An OS is really designed to be far more powerful - BUT you can do things like video games where the game program is calling "functions" to perform input/output on external devices.

Google around outside the Forum for some exciting examples! For example:

Added:
http://searle.hostei.com/grant/AVRPong/index.html

There are so many things that can be managed by the Arduino. Just search.

Ray

baller_z_bro:
Hey I'm new here and I was wondering if i could combine vga or component output with the feedback of a mouse to create a very lightweight OS?
P.S if I posted in the wrong sub forum please move it.

You seem to be confusing the concepts of a desktop and an operating system. I've seen an Arduino compatible display driver that can produce a very simple text-based window display, i.e. a screen divided into rectangular areas each of which can have textual content displayed and scrolled independently. IMO that's as far as it is sensible to go on an Arduino, and perhaps that will go some way towards what you're trying to achieve.

If you think you need mouse input that implies a lot more functionality and IMO if you're thinking of WIMP type capability or any sort of operating system you're getting way past what can be achieved with an Arduino, and should be considering something like an RPi which already has USB host support, graphics output, a real operating system and all the drivers and resources needed to run that. If you want a small PC, get a small PC.

nid69ita:
Yes, impossible for Arduino.

Is that... a challenge?!

:slight_smile:

An Arduino with appropriate peripherals certainly could be used to create a GUI OS. The resulting product would be about as sophisticated as an Apple IIe, but it could be done -- the Atmega AVRs are arguably more powerful than the MOS 6502 CPU.

The easiest path would probably be something like a GLCD and an SD card. Note that a mouse or touchscreen is not a pre-requisite for a GUI; the Psion SIBO series palmtop computers had a beautifully elegant GUI and keyboard-only control (in some ways it was easier and faster to use than Windows). Even so, I imagine a GLCD + touchscreen is not outside the realm of feasibility.

If you want a full-size CRT monitor, connect the Arduino to a video adapter. All early PCs did that anyway, nobody (that I know of) used the CPU to drive the display.

The achilles heel would be the inability to directly execute code outside of PROGMEM, limiting you to something slow like a BASIC interpreter for all applications beyond the base kernel and GUI.

So, if you have Apple IIe expections, I'd say it's a qualified yes.

You may find this interesting: Arduino Playground - HomePage You might say that's cheating though, as the GPU is more powerful than the Arduino. :slight_smile:

Feel free to switch to a high-end PIC32 and write us a super-lightweight GUI for RetroBSD ]:smiley:

Linux on 8-bit AVR

Just because one can do something does not mean they should!

Ray

tylernt:
So, if you have Apple IIe expections, I'd say it's a qualified yes.

But the Apple II had 48k of RAM.
It is pretty hard to do much particularly with a GUI if all you have is a total of 2k of RAM.

--- bill

bperrybap:

tylernt:
So, if you have Apple IIe expections, I'd say it's a qualified yes.

But the Apple II had 48k of RAM.
It is pretty hard to do much particularly with a GUI if all you have is a total of 2k of RAM.

--- bill

What about a TRS-80 style? I think that had 4k? 16k with a desktop-sized expansion chassis! :slight_smile:
Then, hook up an old tape recorder for read/write instead of an SD Card reader....
ASCII characters instead of real 'graphics' — like old school BBS's....?

Oh well, could definitely make one of these with Arduino (see attached) — XD

On a more serious note, you may want to look into a Raspberry Pi. I know what you're talking about has been done with that.

image.jpg

Sorry, guess I meant "Apple ][" without the 'e'. The original ][ shipped with 4KB according to Wikipedia.

Even so, the Apple machines used discrete RAM chips on the motherboard -- an Arduino desktop PC could do the same thing (there are plenty of SRAM+controller ICs on the market today). Not useful for native program code, admittedly, but handy otherwise.

I disagree on the GUI-needs-RAM thing though. You can do most of your display with vector, not bitmap, drawing. And if your display adapter has a framebuffer of it's own, you can send it bitmaps from SD or flash and then discard them from main RAM.

Admittedly, not having a framebuffer in main RAM does mean more re-painting i.e. when a foreground window is closed, you have to re-draw the background. It's the age-old problem: you can optimize for CPU, or for RAM, but it's really hard to optimize for both.

ASCII characters instead of real 'graphics' — like old school BBS's....?

Ah, that really brings back the memories!

On a more serious note, you may want to look into a Raspberry Pi. I know what you're talking about has been done with that.

Yeah, definitely more practical. But less of a challenge...

tylernt:
Sorry, guess I meant "Apple ][" without the 'e'. The original ][ shipped with 4KB according to Wikipedia.

Actually it shipped in 4k, 16k, or 48k versions depending on how wide
you opened your wallet.
The key was the memory jumper blocks which could set each of the 3 rows
to use either 4k or 16k RAM chips.
I had to change them on mine since mine was an early unit that shipped
with 4k of RAM.
(most were shipped with 16k to avoid having to change the jumpers, which
required soldering)
The documentation in the "Red" technical reference manual
was a bit confusing to me back then.
I do remember one thing that I will carry with me forever as
I thought it was funny even back then.
(I just pulled out my copy)
On page 135 after 3 full pages of information on memory maps and
how to strap the memory jumper blocks was this sentence:

If you are not sure think carefully, essentially all the necessary
information is given above.

On an related note, and after thinking "carefully" I actually
called apple to ask for some help with the jumpers,
and Woz answered the phone and walked me through it.

Ah... Those were the days.

--- bill

Just stumbled upon this...

(*Courtesy of the great Nick Gammon)

So...that takes care of the VGA monitor.

This might make for an interesting read too -

*EDIT —
VGA & PS/2 keyboard adapter for Arduino -
http://www.tinyvga.com/arduino

Now get working on the GUI!
XD

I disagree with the naysayers. It can absolutely be done. VGA has been done, mouse/KB has been done. And technically some of the AVR line is capable of addressing external memory.

You will not be playing videos or browsing the Internet, but you sure can build an extremely basic, slow desktop OS. Whether it's good for anything beyond bragging rights is debatable, but if it's a project that intrigues you, by all means GO FOR IT.

RaspberryPi anyone? I know it's not an arduino, but can certainly take care of what the original poster asked about.

So could a MacBook Pro, but I'm sure he's aware of that option. :wink: I assume the point is to do something new and novel, not find a functional existing solution.

Send me a link for a MacBook Pro for under $50 :slight_smile: