Single Board Computer thoughts

I didn't have as much fun with my Raspberry Pi as I did with the Arduino. Like most people who bought them I just wanted something to fool around with, so in that regard I think a comparison is warranted. A lot of single board computers feel like they are just slow regular computers with some OS port (no unique character), struggling to be a full modern computer capable of OpenGL whatever full 1080p whatever. The Arduino on the other hand was very clean and easy to get started with and I found the language (some kind of C) very legible. It didn't take me long to get an Amiga mouse connected and it left me feeling very empowered by the sudden understanding of how things work and can be altered.

When it comes to understanding computers I don't think it's done well via Linux-something running on top of many layers of... stuff. OpenGL is confusing and wasteful when it comes to 2D graphics. I think the correct approach to learning programming is to start with a compiled BASIC-like language which scales into low level access of the computer's functionality. An OS with very few components also makes things easier.

My overclocked-for-no-particular-reason Raspberry Pi running Raspbian. I didn't like Scratch, Python or C+OpenGL. RiscOS was snappy but unfortunately doing graphics is rather difficult using the included BASIC languages (the indexed screen modes are faked, I discovered). The two USB ports and lack of hot-swapping caused me some trouble (I don't have a hub). The SD card would get bent in the holder and developed contact issues. I think they use the smaller ones now.

Winner of the ORAC lookalike contest is.... RPi3!

What I'd like to see is something in between an Arduino and Raspberry Pi *. I'm thinking mid 90's performance but made cleanly with modern hardware (few components). There would be no need for complications caused by narrow memory buses, low memory or slow and hot processors. I imagine a sort of... Amiga-Mac with a simple one byte per pixel mode (like VGA mode13h), skipping the bit-plane stuff. The computer needs to be fast enough for immediate mode 2D games (where the entire screen is redrawn every frame). Retain mode and sprites are a hassle to program so I'd rather see a solution with hardware accelerated block image transfer. Quake 1 in software render should also be within the system's capabilities.

* I know there are DIY retro game console kits, but they are quite expensive, underpowered and often handle gfx in say 3-3-2 bit RGB color spaces or something weird.

I'm not good at hardware design but here are some ballpark specs:

CPU:    Pentium or Pentium II CPU speeds achieved by modern equivalent.

Memory: 32 bit bus, 16-32MB range.

ROM/BIOS: Just a simple thing to boot the OS from drive. It's tempting to 
	have a more complex Amiga-DOS like environment though.

Drive:  A SD card reader is a cheap solution, but I think it lacks character.

Display:512x384 is very appealing to me atm. I also like 400x300. 640x480... eh.

GPU:    Many solutions here. CPU+RAM & GPU+VRAM. Shared RAM. Fast CPU doing all.
        I don't know much about actual frame buffer implementations and DACs.
        An ASIC would make a lovely blitter.

OS:     System should boot to OS (desktop environment) in 3-7s like my Amiga.
        The entire OS should be well under <2MB in RAM.
	I think using Linux makes everything samey, and I don't like it much.
	I'm sketching on a simple System 7 / Workbench OS below.

Fun peripherals:  
        I love floppy drives. Maybe an USB MF2HD one.
        Sticky printer like the Casio Loopy had.

Price:  Depends on production run. ASICs and plastic injection is expensive.
	I'd pay twice the RPi price for something like this, even if slower.
	It would be quite expensive if snazzy ASICs have to be made of course.
	A keyboard+case would be even more expensive as plastic injection
	tooling is quite costly, tho less so nowadays.

SBC

A concept for the board. I'm not an EE so this is more of a feel concept. I think the combined power of the CPU & GPU (whatever the solution) should be about 200 MIPS. I arrived at this conclusion with the perhaps whimsical assumption that in a game, the 512x384 screen might be updated with 4 instructions per pixel, 60 times per second, multiplied by 4 for margin.

I wouldn't know how to build this. The GPU poses the biggest problem, but a hardware implementation can probably be circumvented. Perhaps a resident software library for blitting would work. It would run slower but CPU speed is a lot cheaper than... SOC/ASIC stuff. FPGA or emulation on a more powerful system feels a bit.. fake. Haven't even thought about sound.

HitBit Amiga

A design inspired by the HitBit F1XD MSX by Sony, the Amiga 500, Acorn Archimedes and other computers with colored keys. This would be just a USB keyboard + case. At the top is space for the SBC, PSU and peripherals (internal Loopy sticky printer???). This solution is scalable (economically) because people can get individual components and do their own thing inside. I'm thinking the vertical space next to arrow keys could be a GPIO hatch where e.g. a throttle gauge, trip pot, toggle switches, status/debug LEDs could be plugged in (or anti-piracy devices had this thing existed back then). Over the function key row there are two sliders, maybe for SysFan, Overclock... or Pong.

Logo mockup

Bananodore Fruitfly logo design. Obviously a play on the Apple and Commodore logo. Fruitfly translates to Bananfluga in Swedish. They are a simple yet complex little thing which can be experimented on in a quest for knowledge.

OS mockup screen

Another OS mockup, this time inspired by System 7. 512x384 in 16 colors, though the OS would probably run in 256 color mode as I'm not keen on 4-bit packed pixel. Certain programs could reserve a chunk of the palette (e.g. a block of 32 colors). Desktop BG can be an image, a tile map or flat color. Editing the look of the OS could be fun for many, if given easy to use built-in editors. Bitmap font editors are fun too.

Design philosophy

There are many SBCs without character. This is not a bad thing when it comes to utility. Being able to install Linux and various ports is quite useful, but not always my cup of tea. My design here is intended to fill a gap in the market (256 color mode game blitting and pixel fun) and to stand out in terms of looks and hardware design. I also have an opportunity to turn my back on the legacy crap which modern systems have to deal with. A fresh start, even if perhaps derivative in terms of desktop appearance...

The OS and architecture should be relatively easy to understand. The memory is bytes and bytes can be pixels which can be easily shuffled around. The system is powerful enough for the user/programmer to be a bit sloppy (because s/he might be a beginner). Optimizations due to constraints tend to complicate things. A compiled form of C-BASIC hybrid would be the most accessible. It can be pretty close to the hardware, yet simple, as long as the hardware is simple. I'm thinking about how you could POKE around in the memory in the C64.

The OS only needs to do the basic things, so no distractions like trying to get video formats, flash player, cloud stuff or an "app store" to work. The command line interface can be improved by the inclusion of clearly named commands, helpful manual pages and error messages (which is really trivial to do, but not done because the people who write those things do it for people who already understand the systems). When you start up CLI, it shouldn't be a bloody for-experts black-box. How about showing the most common, useful commands, how to get help, etc? Graaar!

MSX3

Sony HitBit MSX3 concept by Arne

Mirror, mirror on the wall, who's the fairest of them all? Oh, I'm sorry Amiga, it's not you, it's the Sony HitBit F1XD and 101/202. Now COMBINE and reveal your ultimate form!

ZX Spectrum

Viva la resistance!

Compact single board implementation of the original ZX Spectrum...

ZX Spectrum concepts.

Some initial sketches. Also some Macs. Some sort of mini printer, and a 2" floppy (nod at the micro drive).

The keyboard is a mix of the QL and ZX. I'm thinking it is a full ZX which can be slaved as a keyboard to a mini mini-computer/mainframe. In my narrative, Sinclair wanted to break into the professional market, but at the same time remain in the fun-and-games market, so this scalable solution was used. The mainframe (only in name as it wasn't all that powerful) could connect to several keyboards.

Picopico

Pi..Pi...pico!

G66

My iMac broke after 6 years. Shopping for a new one, I found that there's no good mid range box (pizza/tower), so I drew something. It's the size of a few Mac Minis standing on the side.

Atom-1 LPC

Oh, man, what a blast from the past, the ATOM-1! I used to have to shuttle to the moonbase to fix these in the 2270's .

IDROS

A What-If.

GUI mockup.

A modern motherboard form factor for vintage keyboard computer cases.

Packets back in time

Travelling back in time with ADSL technology.

RPi case

With internal port extension hub (with IO shield, maybe video signal adapters?), speakers, power brick. Inspired by the 2600 and Intellivision.

RPi troubles

By the way, here's one way to solve the red power light trouble on a Raspberry Pi. Some people have went out and bought new SD cards, thinking the old ones went sour, but I think the problem is that they bend/bow in the holder after a while. Adjusting the springy contacts didn't work for me.

Similar pages

Acorn project - Amstrad project


Art by Arne Niklas Jansson

AndroidArts.com