Last week you asked the Director of the Raspberry Pi Foundation, Eben Upton, about developing an ultra-low-cost computer 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 per year.
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 curricula.
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 steam.
by Anonymous Coward
The 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 way.
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.
FCC (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 and Layout?
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.
If 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 assembly houses.
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 Strategy?
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. 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
Seeing as 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.