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) quite legible. It didn't take me long to get an Amiga mouse connected and the sudden understanding of how things work is very empowering.

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 make 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. T they use the smaller cards 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 one-byte-per-pixel mode (chunky) as primary display mode... what the A1200+ might have been in some alternative reality.

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 lowres 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.

Specs here used to be different, but I'm turning it into an expanded (pimped out) Amiga 940+ from my alt. Commodore timeline, or something parallel to that.

CPU:    Pentium 1.5 or PowerPC 60X CPU speeds achieved by modern equivalent.

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

ROM/BIOS: Kickstart+DOS, then booting more OS stuff from a drive.

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.

GPU:    The 256 color chunky mode is practical and fun. It replaces HAM, but
	some older bitplaned OCS modes remain. 

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:  ASICs are sadly expensive, as is plastic injection tooling. However,
	it's cheaper than it used to be due to the ease of prototyping and
	modelling. Tends of thousands of $ is just not hobbyist levels yet.


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, 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. When they all come with Linux or even Windows, the only difference is power, which makes some boards slower than others, and all slower than a full computer. It sort of kills the whole thing for me. Of course, making a custom OS from scratch is madness from a usability/product PoV, but to a tinkerer and scratch builder it could be the main appeal.

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 complexity. 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!


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.




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 .


A What-If. Discovered long after making this that IDR actually did make TOS for the Atari. *chuckle*

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.

Hardware pages

Amiga HDD - Amiga cleanup - Amiga pixels - SBC - Assorted - MSX - Acorn project - Amstrad project

Art by Arne Niklas Jansson