Eben Upton Answers Your Questions
September 14, 2011
Last week you asked the Director of the Raspberry Pi Foundation, Eben Upton,
about developing an ultra-low-cost computer [ http://hardware.slashdot.org/story/11/09/07/1353258/Ask-Director-Eben-Upton-About-the-Raspberry-Pi-Foundation
] and running a charitable organization. Below you'll find his answers. Thanks go
out to a busy Eben for responding so quickly.
The role of commercial viability in education
Your decision to sell the Raspberry Pi to any interested parties, not just
educational institutions, seems to indicate a broad-minded approach to education,
favoring transparency and open standards. What percentage of your costs do you expect
to cover by selling directly to individual, hacker-type enthusiasts, versus wholesale
distribution to educational institutions for inclusion in curricula?
Eben: Initially, we expect to sell almost all of our output
to the hobbyist community. Our revenue models assume a roughly 50-50 mix of in-house
and wholesale distribution (education and resellers) after the first year. We have
a very low fixed-cost base, and will break even when we reach sales of 20-30k units
One reason we’re also selling to individuals is that we believe
very strongly in self-directed learning. I didn’t learn to program in a classroom;
I did it by hacking on the school computers in my own time and subsequently buying
a second-hand machine of my own (after saving for what seemed at the time like an
eon). While there are many teachers out there who have the necessary skills to teach
computer science, we realize that a large number of pupils will never encounter
one of these teachers, and that the subject is generally absent from standardized
It is likely that more children will learn programming by using
Raspberry Pi at home than in school. We’re investigating the possibility of establishing
a prize fund to reward children who develop exceptional software under their own
by Anonymous Coward
requirement for an external power supply seems unfortunate given the small form
factor of the computer. When so many devices can draw power from a USB port (and
yes, I do acknowledge that these are USB peripherals whereas the Raspberry Pi is
a USB host), the need for another cable on such a small device is probably going
to be an inconvenience. I'm sure that this is a topic that generated some interesting
engineering discussions during product development. Can you share with us what other
alternatives may have been considered and the pros and cons of them, and how you
ultimately concluded that an external power supply is necessary? 1W at 5V is 200mA,
which is certainly a plausible amount of current to draw from a USB cable. It could
even make sense for the Raspberry Pi to be a USB device and host a telnet server.
Was this use case considered?
Eben: As it happens,
the tiny USB-key form factor that David shows in the original BBC video is powered
by a hacked USB hub which emits power on its host port. We focused on the USB host
use case, because we see Raspberry Pi primarily as computer rather than as a peripheral,
and because doing so keeps the cost and complexity of the board itself to a minimum.
We want to find a way to eliminate the power supply for some users, and
hope to support a power over Ethernet module as an option at some point if there’s
sufficient demand; right now our low-cost RJ-45 jack is not PoE-capable, but this
will probably change.
I think it's an incredible project, and I'll certainly buy one for my son when they
come out. I'm just wondering though if not having VGA is a bit of an oversight and
I'd be interested to know why you made that tradeoff. I agree composite is great
for places where old TVs are common, and HDMI is great for those of us who just
want it as a novelty, it's just I can't help but feel that the people who could
benefit most from this would most likely get one of these along with a free or very
low cost second-hand monitor, which would almost certainly be VGA only.
Eben: The tradeoff is driven by the feature set of the BCM2835.
Previous products in this line used an analog RGB TV output peripheral which could
be hacked to drive VGA quite easily; irritatingly, for cost reasons, BCM2835 only
supports single-channel (composite) video out, which prevents us from doing this.
I agree that the lack of VGA output is a very significant problem with the
device, particularly in school environments, where (at least in the UK) there are
often labs full of old analog monitors. Although we can’t afford to add chips to
the baseline device to support it, we’re investigating three routes to add VGA compatibility
in the future:
Supporting monochrome output directly using our single-channel
analog TV interface.
Bridging from the HDMI/DVI output to VGA using an add-on
board or “smart cable”.
Bridging from the onboard MIPI DSI interface in the same
This is right at the top of our follow-on project list, once the main
boards are out of the door.
More enbedded features?
by Anonymous Coward
Love the concept, and will probably buy at least
a couple of the model B.
I was wondering if you plan to have future models
with more embedded features (like Bluetooth, WiFi, and GPS)? I know this would raise
the cost, but with smartphones including all those things, I wouldn't think that
it would be too expensive.
Great work, can't wait to pick mine up.
Eben: Glad to hear you like the concept. We’re investigating
the possibility of adding exactly the three interfaces you mention to a future version.
These are available in quite cost-effective “combo chips” from a number of manufacturers,
and it may be that savings from removing the Ethernet bridge chip, transformers
and RJ-45 jack will go some way towards paying for the extra silicon.
(and equivalent) certification of a wireless-capable version would be challenging
for us with our current level of staffing, but hopefully this will change as we
start to sell the Model A and B devices.
Open Sourced Schematics
by Anonymous Coward
Are you going to open source
the schematics and layout for the hardware design?If so, will they be provided in
formats that are easy to use with low cost and / or free software tools such as
Eagle, KiCad, or gEDA?
Eben: A qualified yes. We intend
to release our schematics and board designs provided we are satisfied that the chips
needed to build the device are available through distribution in reasonably small
quantities. Our relationships with our component vendors are critical to the success
of Raspberry Pi; we wouldn’t want to put them in a position where they were being
criticized for being unwilling to provide chips directly to hobbyists.
we do open the hardware, we’ll use a format compatible with a cheap package (Eagle
would be my preference, although we’d need to check the limitations in the free
version). We very much hope to be able to do this. We’ve said elsewhere that our
dream scenario is that someone in China decides to copy our design and start knocking
out millions of clones. Remember we’re a not-for-profit organization under English
law, and all our trustees have other jobs, so we don’t have the same set of incentives
as a regular company.
A cautionary note for people hoping to build these
devices themselves – I don’t believe it’s feasible to assemble it manually, and
the PoP memory configuration we use is beyond the reach even of some professional
Since the price point on these are so low, what's the feasibility of doing
mass grid computing on these machines?
Eben: I think
it’s very feasible, though I have my doubts as to whether Raspberry Pi is a particularly
good source of cheap MIPS. Consider that only a small fraction of our die area is
occupied by the ARM core, so if you’re intending to just do CPU work you’re carrying
a lot of baggage (GPU, video accelerator, camera pipeline, JPEG codec, a couple
of DSPs) which isn’t being used. We’d need to run the numbers, but I expect that
a $200 x86 box will give you more compute than 8 Raspberry Pis, and in a more friendly
package (a two or four concurrent threads, rather than eight).
Where we may
come into our own is in providing low-energy MIPS. Idle-time distributed computing
applications like Folding@Home should work, and you wouldn’t need to worry about
justifying the power consumption of a PC.
Since the primary OS will be Debian based we can assume
support for C, C++, Python, Perl, and Bash scripting. But I have heard that you
would need to get Oracle involved if you wanted a Java SE JDK since the RPi is Arm
based. Can you comment on whether or not this is true and, if so, have you or are
you in the process of obtaining the ability to develop Java on this platform?
Eben: We’ve not looked into Java support in detail, and
certainly haven’t been in touch with Oracle. Various people have suggested OpenJDK
to us as a good alternative; it’s known to work well on ARM-based systems, and doesn’t
require us to obtain a license.
Can You Extrapolate on Your Teaching
I see that you plan on using C and
Python for teaching languages. I recognize that I am of an older generation but
grasping C in its entirety or even little endian versus big endian was something
that didn't fully come around until college for me. What are your strategies for
teaching even younger targets with something like C (Python, however is probably
easier)? Are you developing a rigid teaching course line or just happy to have the
community put anything out? Furthermore, what is the point of putting all these
other languages on your wiki like Processing or Lua? Could you or someone on your
staff give a brief explanation for each of these links or are they here just to
inspire someone to write a tutorial for -- I don't know -- harvesting data with
the Raspberry Pi and displaying it in Processing on another computer? Or do you
intend the processing application to compile to ARMv6 on the device and run on the
device for a UI output? I know ARMv6 is supposed to be a leaner architecture but
I'm not at all familiar with the Broadcom BCM2835 that you've shown on your alpha
boards [ http://www.raspberrypi.org/archives/106 ]. All my searches for it just
link back to your site.
Eben: We’re very happy for
the community to put anything out there; originally we’d planned to provide an integrated
teaching curriculum built around the device, but it\s become clear that there are
a lot of third parties out there with much more experience than us. The wiki is
a good example – it was set up by someone else, and we have very little to do with
it. I’m personally a fan of putting Lua on the device, because it leads in nicely
to things like Garry’s mod programming on the PC; we’ve supplied an alpha board
to a Cambridge-area developer who is working on a Lua port.
BCM2835 is a
new application processor, derived from the BCM2763 graphics processor, which does
get a mention on the Broadcom web site. Most applications are likely to run on the
device with local UI output, though there have been people on our forums talking
about using them for remote data logging.
Introduction to programming
The raspberry pi is meant to introduce programming
concepts to school-level children.
My question is: How are you planning on
doing this from a UI perspective? The BBC micro (as far as I can tell, a little
before my time) simply dropped the user into a BASIC prompt and left the rest to
their imagination. This seems like a pretty fundamental design question for the
raspberry pi, but I haven't been able to find a clear answer yet.
Eben: If it were up to us, we’d probably just drop people into
a bash (or even better, IPython) shell and let them get on with it. On the other
hand, there are many people who just want to use the Raspberry Pi as a general-purpose
productivity machine; for these people, we’ll need to provide a desktop environment
as an option in the standard root filesystem.
I think the compromise is likely
to be that we boot to a bash shell, and require the user to type ‘startx’ to get
a desktop, or ‘python’ (or whatever) to start programming. Don’t expect to see a
standard install boot to gdm. Because we’re nostalgic old farts, we’re also looking
at making sure there’s a way for you to boot the board straight into BASIC.
It's all about the manuals
the aim of the project is to create a tinkering platform for nascent, teenage programmers
I was wondering why the idea to write a full, tutorial programming manual was dropped.
The whole of the early '80s micro boom and bedroom coders was based upon not on
the "cheap" hardware such as the BBC Micro and the Sinclair ZX81/Spectrum but mainly
the comprehensive and very educational manuals which came with them. So, why was
the idea of the accompanying educational material dropped?
Eben: This is partly a resourcing issue (we’re only just able to develop
the hardware and get it out of the door), and partly a realization that other people
can do this much better than we can. Almost any generic Linux programming tutorial
should apply to Raspberry Pi. In time perhaps we can bundle some of the best ones
on the device to give people a leg up when they start; we’re already planning to
do this with the excellent NeHe OpenGL ES tutorials.
We need to bear in mind
how much easier it is to get access to educational material now than it was in the
1980s. I remember spending months trying to dig up information about Bresenham’s
algorithm (ironically to write an Elite clone on the BBC Micro – I hope David isn’t
reading this), when now you can just Google it. Access to online tutorials is one
of the reasons we decided to do a Model B with a bundled Ethernet adapter.