[Oberon] Inexpensive Hardware: Cost vs Objectives

jwr at robrts.net jwr at robrts.net
Tue Feb 16 04:41:38 CET 2016

Summary Statement: The various hardware platforms supporting Oberon  
were designed with different objectives in mind, and differ in what  
purposes they support most effectively. Each of us must identify our  
own goals and objectives, and select the hardware platform(s) which  
meet our own objectives most cost-effectively. One person may favor  
minimal total cost, another may favor features which facilitate study  
of Project Oberon, yet another also wants to learn about hardware  
interfacing or FPGAs in general, and still others desire to use it for  
additional applications such as embedded control or Retrocomputing.  
There is no single "right" answer which applies to everyone: our  
various goals determine which particular hardware is most appropriate  
for each of us, and therefore provides the "best value" for what we  
wish to accomplish.

This message is intended to draw together and respond to some of the  
ideas in the threads titled:
	Apples vs Oranges
	oberonstation vs. a [$5/]$9 computer
	oberonstation questions, ps/2?
	Train VS all terrain truck
	hardware cost

In concluding his message at  
http://lists.inf.ethz.ch/pipermail/oberon/2016/008922.html, Paul Reed  
asks "Can we please talk about something else now?  Thanks."  Yes, we  
can and will.  But with apologies to Paul, I believe that there  
remains some value in saying a bit more, to put the recent  
interactions in better perspective. I apologize to all that my  
response isn't more succinct.

A central issue in much of the recent discussion involved the cost and  
complexity of various hardware configurations, and questions related  
to why not use less expensive or more modern hardware? In my view, the  
proper response was never stated fully: there are multiple different  
goals and objectives involved, and by design each of the hardware  
platforms satisfies those goals differently, at differing  
price-points. Each of the hardware platforms was intentionally  
designed to satisfy particular goals, and does not satisfy other goals  
(such as very low cost, or use of the most modern and flexible  
keyboard or mouse or SD-card formats) quite as well. So each of us  
must take our own goals and objectives into account, when choosing  
among the various hardware options available, and evaluating which  
one(s) provide the "best value" with respect to our own purposes.

When Dr. Wirth and Paul Reed ported Project Oberon to an FPGA-based  
implementation, they had multiple objectives. Among these were to make  
details of both the hardware and software very clear and  
understandable, to keep the entire system as simple as practical, to  
enable highly effective educational use of the system to teach both  
software and hardware topics (at the university level), and to protect  
against future obsolescence using an FPGA-based RISC5 CPU  
implementation. They specifically chose NOT to use an inexpensive  
existing CPU (such as ARM) because they correctly recognized that in  
the near future, ANY particular CPU version they chose would become  
obsolete and unavailable.  They chose a particular Digilent FPGA  
Starter Board using a Xilinx Spartan 3 FPGA as an appropriate platform  
for their initial implementation, based on the features it offered for  
what they needed to accomplish at the time.

Digilent and Xilinx designed that board not to minimize cost, but  
rather to provide a wide range of capabilities to enable  
experimentation with and demonstration of the full range of  
capabilities of the Spartan 3 FPGA chip. It was not designed to run  
Oberon: it was designed to be a very flexible FPGA development board.  
It accomplished its key marketing purpose: providing a demonstration  
and development environment for persons implementing FPGA designs  
using that particular Spartan chip, to enable high-volume sales of  
that chip. The board has since been discontinued and replaced by  
development boards supporting newer and more complex Xilinx FPGAs.

When that Digilent starter board was discontinued, Project Oberon was  
ported to other boards. Magnus Karlsson ported it to the Pipistrello  
with an Oberon Wing, and later implemented the customized Pepino.   
Both the Gadget Factory's Papilio and Saanlima's Pipistrello are  
designed for beginners to learn FPGA development, and for implementing  
certain types of applications including Logic analysis (ie Open Bench  
Logic Sniffer) and Retrocomputing. They are designed to an appropriate  
cost and feature set for those applications, not to minimize the cost  
of an Oberon implementation. Additional features (particularly fast  
static RAM, and PS/2 keyboard and mouse interfaces) had to be added at  
additional cost to support Oberon.

Paul Reed and Victor Yurkovsky designed the OberonStation to provide a  
"minimal" Spartan 3 FPGA development board which contained all  
features needed to support a clean and complete port of the Project  
Oberon code from the Digilent Spartan 3 Starter board. It contained  
the 8 LEDs in a row, the static ram required, the keyboard and mouse  
interfaces, the microSD card interface, the RF network port, etc.  
which were formerly available using the Digilent board. I suspect that  
they also had other goals not yet realized, involving possible use of  
this hardware for Retrocomputing or other FPGA-based applications, due  
to the presence of pads for an as-yet-unpopulated expansion connector.  
Note here my understanding of the goals for the OberonStation: it is  
NOT intended to be a minimal-cost Oberon implementation, rather, it IS  
intended to be a "minimal" hardware implementation which supports all  
the important features for Project Oberon, which were supported on the  
discontinued Digilent board, at a lower cost than other FPGA  
development boards which support more than those necessary features.  
It ALSO supports more general use as an FPGA development platform for  
certain types of applications such as Retrocomputing.

In the same timeframe, Chris Burrows ported AStrobe to target the  
RISC5 FPGA-based CPU, in both "workstation" mode such as on the  
Digilent Board or OberonStation or Pepino, and also using an  
"embedded" Oberon subset which does not necessarily require keyboard,  
mouse, display, nor as much memory. AStrobe already targets ARM  
Cortex-M3 and ARM Cortex-M4 based embedded microcontrollers. The RISC5  
port allows use of less expensive FPGA development boards, which I  
will term "embedded FPGA-based microcontrollers", due to my lack of  
knowledge of that market segment.  So AStrobe achieves multiple goals  
involving use of Oberon in applications of embedded controllers, as  
well as experimentation, tinkering, and product implementation  
involving interfacing hardware to embedded controllers with the  
software written in Oberon.

Raspberry Pi, Orange PC, ODROID, the $9 C.H.I.P., and others are  
designed as fairly general-purpose computers, with major design goals  
to minimize cost to the end user, for purposes of "getting computers  
into kids hands", and enabling widespread learning and tinkering with  
both software and interface hardware for educational purposes.  
However, the cost goals drove use of complex ASICs to implement USB,  
HDMI, and other interfaces, and the goals related to hardware  
education are focused on how to interface to and control external  
hardware, not to fully understand the actual implementation of the  
onboard hardware.

The various flavors of Native Oberon, and especially the Linux-related  
ones, are very appropriate for use on existing "PC" hardware to study  
and use Oberon. They do not include and fully enable study of the  
FPGA-based hardware components of the Project Oberon effort, but  
instead implement appropriate interfaces to "native" PC hardware. In  
addition to the ETH Native Oberon family, Peter Matthias' Oberon Linux  
Revival is a particularly easy-to-install version for use and study of  
the Oberon system on Linux platforms. Use of a Linux-based Oberon on  
Raspberry Pi, Orange PC, ODROID, C.H.I.P., or your already-purchased  
PC hardware is a very inexpensive way [perhaps even free] to use and  
study Oberon.

Choosing "minimal cost" hardware depends on the purposes for which it  
will be used. If all you want to do is learn and use Oberon, download  
one of the Native Oberon or OLR implementations for the computer you  
already own. To experiment with it on a "tiny" platform, purchase your  
preferred platform (Raspberry Pi, Orange PC, BeagleBone, ODROID,  
C.H.I.P., etc.) and then download an appropriate Linux-based Oberon  
for it.  To study and grasp Project Oberon 2013 in total, which  
includes the FPGA-based hardware aspects, either download and use a  
software-based emulator, or purchase an OberonStation or Pepino or  
Pipistrello with Oberon Shield, or another AStrobe RISC5 target (if  
any) which supports "workstation" mode. To experiment with using  
Oberon on embedded controllers, get an appropriate Cortex-M3,  
Cortex-M4, or FPGA board supported by AStrobe, and purchase or  
download the proper version of AStrobe. If you have additional  
purposes (Retrocomputing, learning how to program FPGAs, porting  
Project Oberon to other boards, etc.), then factor those requirements  
into your choice of hardware, and the costs involved to support those  

The price of the Digilent Spartan 3 Starter board, the OberonStation,  
the Pepino and Pipistrello, and most of the AStrobe-supported  
development targets, is significantly higher than that of the C.H.I.P.  
or the Raspberry Pi Zero. But the full scope of what they enable is  
significantly different, for which many people will gladly pay more to  
obtain the specific functionality and capabilities they desire.

-- John Roberts

More information about the Oberon mailing list