MbedConsole -- Build Report

Well, I think I should finally document how to actually build the MbedConsole. It's very simple...

A full overview schematic(which I think I did a horrible job on) is below:


I think this design is simple enough that it doesn't need much further explanation. One note though is that you can possible increase or decrease the resistance for the 470ohm resistor connected across RGB. Having more resistance decreases the brightness, having less increases it.

Now then, a picture's worth a thousand words... so: (in chronological order)

Taya typing

Taya typing at the basic serial-vga repeater thing


Shell is mostly working, though still gets input from serial and not PS/2


Finally received the PS/2 breakout board and wired it up


Another angle


My final "impressive" feat. Drawing pretty pictures!

Anyway, the code is accessible at mbed and my portion of the code is BSD licensed. The projects current status:

  • PS/2 keyboard completely works except for the caplock and such LEDs
  • The PLEarlz language thing can function as a simple stack calculator. Other than that, it's still a deep work in progress.
  • VGA signal is extremely stable and consistent. 640x480 monochrome graphics updated at 60hz.
  • Interrupts are re-prioritized at startup so that the VGA signal never stutters.
  • Tons of RAM and Flash left over. Just have to find something to do with it!
  • No ethernet/USB support. The VGA framebuffer uses the memory that is reserved for those components

Anyway, if anyone would like to contribute, I'd love it. Right now my top priority is a simple interactive programming shell using some usable language. I've evaluated Scheme, Forth, and Basic, but haven't found anything I can directly port to the mbed. If anyone would like to try their hand porting a language or even writing something from scratch, I'd most appreciate it! (Also, extra points for using a BSD-style license :) ) I'm really bad at implementing a language in C.

Other than that there is a ton of resources left in this tiny microcontroller to tap. Next on my list:

  1. SD card support
  2. file management commands in the shell
  3. possibly bitmap support for reading from the filesystem
  4. a simple game
  5. Maybe even add a speaker for some basic sound support

And tons of other ideas. What do you think would be cool to implement?

Also, if you want to read more about my latest MbedConsole stuff, or look at the history of it, just look at the MbedConsole tag

Posted: 9/30/2012 5:20:38 PM


Incredible !!!! Realllly a good work ! 
9/30/2012 10:16:09 PM
@Tom thanks! It still has a lot of work to be done, but I think it's good enough to tell people about it :) 

Heh, also, I'm kind of surprised my website is handling the load so well. CPU usage has only spiked by about 2% more since being published
9/30/2012 10:40:18 PM
Any idea if it would be possible to connect that to a serial port, like the one of an openwrt router at 3.3v TTL?
9/30/2012 10:49:53 PM
What clock speed are you running at, and what percentage of CPU time (ballpark) does it take to display VGA video?
9/30/2012 10:53:28 PM
@zoobab what do you mean? all of the pins are still there for UARTs or GPIOs. Or if you mean using the mbed as a "graphics processor" to hook up to your router, I'm sure it's possible, in fact, it shouldn't even be too difficult. 

@Anonymous The CPU speed is bumped to 100MHz. As for CPU time, I'd estimate somewhere between 25% and 50%. I have no idea how much really though. I can just say I don't notice anything awfully slow. For instance, drawing the hackaday picture one pixel at a time in nested loop is instantaneous, so while it will programs some, I don't imagine anything too noticeable. 
9/30/2012 11:03:20 PM
Cool. Add SD-Card and a possibility to launch programms from that. You'll have sth. like an old dos/linux.
10/1/2012 1:15:21 PM
Great work 
10/3/2012 11:28:29 PM
Fascinating project, with loads of potential.  Reminiscent of Gates and Jobs back when they were just hacker geeks like the rest of us.
11/6/2012 4:42:18 PM
Looks like you just took http://mbed.org/users/Ivop/code/vga640x400/file/746c1bf00d40/vga640x400.c and make it look like your own.
6/3/2013 7:44:21 PM
@anon if you look at my project's dependencies, I made a fork off of a LGPL licensed project for that. 

See here: http://mbed.org/users/gertk/code/vga640x480g/file/821e34a87609/vga640x480g.c

I didn't steal it, and I'm pretty sure I'm not violating the LGPL license for it either. My contributions are LGPL, but my actual project is BSD with a reference to that project
6/4/2013 12:35:05 AM

Posting comments is currently disabled(probably due to spam)