

Why Raspberry Pi Is Unsuitable for Education - Kavu
http://whitequark.org/blog/2012/09/25/why-raspberry-pi-is-unsuitable-for-education/

======
fhars
Yes, any device you can't resynthesize from VHDL is completely unfit to
introduce middle school children to programming. I mean, who ever managed to
understand even the tiniest bit of python without mentally reducing it to the
electrical patterns in the circuits of the CPU?

~~~
Zenst
I hope you plan to open source that joke otherwise nobody will get it.

------
zxcdw
I can _almost_ relate. Consider comparing Raspberry Pi to say Commodore 64 or
ZX Spectrum. Anyone familiar with programming 8-bit home computers of the 80's
knows how _simple_ they were by their hardware and how easy it was to grasp
them. What was(and still is) great about them, is that any kid(regardless of
age, as long as they can read) was and still is able to _learn how the
computers work_. How many kids these days get to actually count CPU cycles?
How many even really what it means without taking an university course in
computer architecture or microarchitecture design? Yet, _this is the exact
stuff the kids are interested in!_ They want to learn _how_ it works. And no,
explaining that CPU executes some "instructions"(what are they?) which
operates on "data"(what is it?) in "registers"(what are they?) and produces
results which are "pushed"(what does it mean?) to the "stack"(what is it?). Of
course, one could argue that none of this matters nor it should matter. We
should go away from it, and aim higher. Teach Python and functional
programming and hope they become proficient. I think this is a _very_ wrong
approach to teach kids about _computers_ and _how they work_. I think that
demystifying the computer starts best from explaining _what_ and _how_ it does
what it does. Programming comes later in regards to demystifying the computer,
which should not be "just that box which we program and somehow turns the code
to windows and buttons for us to click".

Of course, I am ignoring the point that actually getting to do any kind of
programming or tinkering on Raspberry Pi is _orders of magnitude_ harder than
on say Commodore 64 or ZX Spectrum. Or even your average Windows desktop.
These days there is just simply no suitable platform to actually _play around
with_ , and only universities seem to have some experimental simple hardware
setups with simple operating systems for educational purposes. You really have
to take a course or get an ancient home computer to see how stuff works. I
think it is sad.

~~~
jlgreco
When I was a kid I got my indroduction to programming on TI graphing
calculators. They are unfortunately expensive (though pretty much every
American school has _boxes_ of them sitting around already) and lack the
pinouts that Arduinos have (there is an IO port which isn't great, and USB
which... is ok.) but they are otherwise _fantastic_ for this purpose.

The TI-BASIC on them is dreadful slow so after you cut your teeth on it and
learn the basics of just what programming is, you are encouraged to switch to
assembly. In the case of most of those calculators that will be Zilog Z80, of
early PC fame. On the higher end calculators you get Motorola M68k's, which
you can also program in C fairly easily.

Plusses over Arduino are the keyboard and screen. Downsides include the lack
of shields. Anyone who really gets into it is probably going to want to get an
arduino anyway, unless they _really_ lack an EE muscle.

~~~
drbawb
I also learned on a TI-83 (handed down from my sister) and a TI-92 (from the
boxes at school).

However, I much preferred my HP-50g, USER RPL was an absolute dream to program
in, the USB interface was fantastic, an emulator was readily available, and
you could even write applications in C and cross-compile them for the
calculator.

That and RPN with a multi-line display and an [virtually] unlimited stack is
the "one true way."

------
flyinglizard
The part about the ARM core not being open source is a joke. Would it be
better to teach children and students about esoteric open source architectures
with no applications in the real world?

The real problem of the Pi, and not just as far as education use is concerned,
is the crap Broadcom chip. After working with Broadcom, I would never-ever-
ever consider them if there is an alternative. They strangle open source
(which is shooting yourself in the foot, really, being that the community
produces the best drivers out there), don't release documentation and won't
even sell you the actual part unless you were buying millions.

The chip itself is outdated, bug ridden (Synopsys DWC USB, anyone? I'm making
good money debugging the drivers of this DWC USB for my customers - one with a
proprietary ASIC and one with an obscure Chinese craplet chip - so I know
first hand how bad it can get, especially with the earlier versions) and has
very lacking, if any, documentation available.

TI are the polar opposite of Broadcom in these regards: they nurture the open
source community and encourage it to use their processors (Pandaboard ES
contains a very high end OMAP4460, same processor as Galaxy Nexus and the
weird sphere Nexus media thingy), providing near complete documentation and
lots of technical knowledge.

The Pi design team essentially chose a bad foundation just to grab some
headlines with their lowball pricing. Now people are slowly realizing how bad
of a platform it really is.

A side effect of the Broadcom attitude is that even with a full manufacturing
file for the Pi, no one can reproduce the design when the CPU can't be
sourced. So much for openness.

I'm waiting for one of the mainstream manufacturers (TI, Freescale, Samsung to
a lesser extent) to pick this up and sponsor a super low cost, basic board.
The benefit to their commercial customers from the creation of a broad
community and code base would be immediate and immense.

~~~
grimboy
>esoteric open source architectures with no applications in the real world

Why does an open source architecture have to be esoteric? It could just as
easily be conventional. We don't know for sure that ARM will be as popular in
the future. Presumably aim isn't to teach individual intricacies but rather
the overall concepts.

~~~
flyinglizard
First, what's being taught should be applicable to the real world. That means
that if you are to produce useful and productive graduates, getting them
familiar with ARM is much better than anything else out there.

Second, even if you had a similarly performing architecture, unless some major
manufacturer with deep pockets picks it up and fabricates a chip around it,
there's not much you could do with it outside of FPGA experimentation (for
something that can mimic the power and peripherals of the Pi, with all its
shortcomings, you're like to need a multi $k Virtex FPGA).

Third, ARM is friendly enough to its partners and the ecosystem that it won't
be going away for a long, long time. It's a reasonably open company as far as
documentation goes, and do their share of community contribution. ARM was
smart enough to grant architectural licenses to the only companies rich and
smart enough to make their own architectures (Marvell, Qualcomm, Apple,
Samsung and a few others), so they can spawn their own variants while still
retaining standard ARM compatibility.

I don't see any company seriously threatening ARM's dominance for at least a
decade. If you want to do embedded systems or mobile (and soon servers) low-
level, you need to know ARM.

------
hermanhermitage
For what its worth, I along with some others have reversed engineered the
Scalar, Vector and QPU instruction set of the VideoCore processor in the
Raspberry Pi.

Some documentation is at <https://github.com/hermanhermitage/videocoreiv>

It hasn't been updated in a while as I'm operating under a self imposed
embargo - the reason for which will become obvious soon.

Always looking for more input.

(EDIT: There is also a plan to release a beginners guide to reverse
engineering).

~~~
Zenst
That bit of information is worthy of a fresh article in itself. Will garner
more people who can assist on carrying it on than it might hiding as a comment
on a article that clearly has not heard about this great work.

~~~
hermanhermitage
Sure the original idea was that along with a recruitment drive for tools such
as LLVM and so forth.

But I'm tied up launching a startup right now...

Definitely want to build a community / set of projects around it.

(EDIT: Let's also be clear there is a game of chess in play - hence the slow
disclosure here.

My interpretation from reading various articles is Eben is fairly libertarian,
I'd expect him to be pushing to open up everything possible - but Broadcom
will be providing the usual big company resistance. So if the pieces are
played correctly we will have everything open to the extent it doesn't impact
the commercial objectives of Broadcom. In this case I suspect we will at the
end of the games-play have open source where it needs to be, and at least have
a hook for letting people write custom VideoCore Scalar/Vector and QPU code
kernels with suitable documentation. This would be a lovely compromise. I'm
sure Eben himself would be all for open sourcing his shader compilation
VideoCore stuff (see the topic of his PhD thesis) - as everyone enjoys seeing
their work get some recognition), but I dont think Broadcom would allow that
:). )

------
mrmagooey
Urgh, this is not "Unsuitable for Education", it's unsuitable for one pretty
narrow (albeit central to the system) educative purpose around System-on-
Chip's and GPU's.

Kids can still have a fully working linux system hooked up to their tv for
$35, which regardless of the OSS status of the hardware is still a win for
education in my opinion.

~~~
regularfry
It's _a_ win, just not as big a win as it might be. Still, a win is a win.

~~~
slantyyz
>> It's a win, just not as big a win as it might be.

You might be right, but context matters.

Me pulling my "cranky old man" card-- As Louis CK says, "Everything's amazing,
nobody's happy."

My first computer was a 4K Tandy Color Computer, which cost something like
$400 in 1982 (a significant expense at the time for my parents), and I learned
to program in MS Basic.

To me, the Raspberry Pi is a huge win. It can do a million more things than I
could do as a kid, and it's not relegated to loading code via cassette tapes
or typing (we had to copy code verbatim from magazines back then).

That the device is so inexpensive makes the barrier to get into programming
lower than it has ever been... Amazing.

~~~
regularfry
I'm not arguing with any of that. If I try to draw a comparison between what
got _me_ excited about 8-bits and what's available on the RPi, I still see a
disconnect. There was a visceral connection between POKEing a memory location
and a pixel going black on my Spectrum, and that's just not there with the
RPi. There's a big black lump of Broadcom-stuff between me and the screen.

------
rwmj
All this is pretty much the same as the BBC Micro, ZX Spectrum, Vic-20, C-64,
Archimedes and other successful teaching platforms. Sure, third parties
disassembled the ROMs, and there were some schematics, but by and large these
systems were closed and incompatible with anything else.

Edit: Which is not to say, I don't think more openness would be a wonderful
thing. But it's not necessary for it to be a success in schools.

~~~
hermanhermitage
This is an excellent observation. Might I also suggest that having some things
closed or out of reach is also a fine way of encouraging people to dig in.

Some of the best young minds will search behind doors they are told not to
look.

Its about getting the height of the hurdle just right!

~~~
rwmj
This actually happened on the ZX81: some very smart programmer reverse-
engineered the ROM, ULA and display circuitry and worked out that you could
implement high resolution graphics in software. Here is an interview with him:

[http://jdanddiet.blogspot.co.uk/2012/02/crl-feature-
extras-i...](http://jdanddiet.blogspot.co.uk/2012/02/crl-feature-extras-
interview-with.html)

------
s_henry_paulson
Using this logic nearly all school computers are "unsuitable for education"

It's silly to describe your one-off use case and then extrapolate that to such
a degree, that this can only be called sensationalism.

~~~
judofyr
Yes, all school computers are unsuitable for education of _embedded
programming_. Yes, the title didn't say so, but whitequark didn't submit it
here with that title. If you read the post and the title in the context of
whitequark's blog it should be pretty clear that he's talking about embedded
programming.

~~~
wmf
Even embedded programming doesn't require the level of openness that he's
whining about.

------
fnordfnordfnord
It cost thirty bucks. My students (who wrote their first computer program last
semester) had it up and running within the first hour after it was delivered.
Two weeks later and they have a wifi controlled skid-steer robot prototype
running using the Rasp. Pi, Arduino, some proprietary motor controllers, a PS3
controller and PyGame. Now they are refining their code/design, improving it.
They spend so much time working/playing with it, that they are slacking off in
their Communication Theory coursework. What a tragedy.

~~~
oceanician
Sounds like a great success story. I'd hope it's a great cheap device for
getting kids into programming (a bit) with other resources they have lying
around like a tv. I'd think those kids can probably teach us something by now
:)

------
RobAley
> Also, if you want the Foundation to send more documentation to you, they
> require you to provide a business model.

No they don't. That section talks about broadcom, who are the ones who you
will need to give business info to to buy the chips. The foundation don't
manufacture, sell or provide documentation for the chips.

~~~
Flenser
What's worse is that "provide a business model" is a link to the FAQ[1] which
says it's broadcom:

 _But I demand the documentation for the chip. Give it to me!

To get the full SoC documentation you would need to sign an NDA with Broadcom,
who make the chip and sell it to us. But you would also need to provide a
business model and estimate of how many chips you are going to sell._

[1] <http://www.raspberrypi.org/faqs>

------
judofyr
Please note that this guy's blog has a subtitle of _Has someone just said
“lowlevel”?_. whitequark is discussing the Raspberry Pi from an embedded
point-of-view. If you only intend to use the Raspberry Pi to teach Linux and
above (or anything that's built upon an OS), then this article is not for you.
This is for people who intends to use the Pi to teach lowlevel, embedded
programming; teaching how a computer works on _all_ levels.

~~~
jiggy2011
He said "education" with any further qualification.

I'm not even sure that the pi was developed with the intention to teach "low
level" stuff.

~~~
judofyr
> He said "education" with any further qualification.

Sure. And the Hacker News crowd loves people who point out statements that are
not strictly true. Hey, who cares what the author actually meant, this line
here is _wrong_!

~~~
talmand
I would agree, except that this is the title of his post. You have to read a
bit into the post to realize that what he's talking about has very little to
do with what his title states. A very generic term was used when the intention
was for one very small niche of "education". After reading the article the
title suggests that because it might be difficult to write a graphics driver
for a somewhat undocumented chipset then the whole thing is unsuitable for
teaching a kid something like, let's use Python since someone else mentioned
it.

If it's not wrong then it's misleading.

------
jiggy2011
I don't think many kids are going to be using their raspberry pi to redesign
the CPU or rewrite the firmware drivers.

The idea should be to make programming simple and accessible, perhaps being
able to create some games or connect it to an arduino and make some fun toys.

I actually think that shipping it without a box is great idea, it demystifies
computers a lot if you can see that it all just boils down to a bunch of wires
and chips on a PCB. Making a custom case could also be a great
Design/Technology class project.

Is it a perfect open platform? No. Is it a lot more open and inherently tinker
able than a locked down Windows 8 PC or an iPad? Hell yes.

~~~
octotoad
"or connect it to an arduino"

As the article mentions, this doesn't seem to be as easy as it should/could
be.

~~~
icebraining
Connecting a RaspPi to an Arduino:

1\. Get USB cable

2\. Plug USB cable to Arduino

3\. Plug USB cable to RaspPi

Steps 2 and 3 can be reversed.

~~~
makomk
4\. Curse broken USB drivers

------
eckyptang
It's fine.

The bedrock abstraction (usable languages etc) is higher than the hardware.
The hardware we don't care about. It's disposable. In fact, you can drag
pretty much anything you can do from the Pi onto another platform and carry
on.

If the languages chosen were pretty tied to the hardware, then I'd worry i.e.
if people were using it to learn ARM assembly or were developing early UNIX
versions on PDP11s. But they're not.

It's suitable for education only because it's very cheap, it's functional and
the bedrock abstraction is higher than the hardware.

------
Zenst
The author does make a very good point about GPIO PIN protection and I'll
agree fully with him on that a few extra resistors here and there would of not
added that much to the cost and made something a little bit more forgiving,
which is a good point for education.

But it does open up a whole new add-on market for kits which in itself can
only be good.

~~~
TomMasz
Having burned up my share of electronics, this is probably the only part of
the article I thought worthwhile. A little daughterboard with GPIO pin
protection and buffering for 5V would be a great way to introduce students to
real world interfacing.

~~~
HeyLaughingBoy
Entrepreneurial opportunity!

------
brador
Real reason: Finding a teacher who understands how to use or teach rpi is next
to impossible.

Unfortunately, I believe Rpis sales were hype marketing that got out of hand.
People thought they were getting a tiny usable computer at a great price. What
they got was a bunch of chips that knowledgable people could use, yet the
details go way over the head of the majority of impulse buyers. These buyers
weren't missold, they just didn't have a clue what they were buying.

~~~
EwanToo
The lack of suitable teachers is a fundamental problem with the education
system at the moment, not something the pi foundation can really be blamed
for.

The "education" release of the pi itself hasn't happened yet, that's meant to
be coming later this year / early next year from what I understand, and will
be supplied with a lot more useful getting started documentation and software
than you currently get.

------
ChuckMcM
Its an interesting rant. I've maintained for a while that the amount of
encumberances in a modern SoC exceed their value for all but a few. But here
is the thing, you could still go out and build a CP/M machine, yes Z80's are
still for sale [1], you can't really build a floppy disk controller these days
but you can simulate one with MMC/SD cards. But the question which is not well
specified is what are you trying to teach?

The typical computer science curriculum from the 80's involved learning
programming with PASCAL or C, a bit of Assembly, then Compiler Design and Data
Structures, followed by Data bases, operating systems, and if you were lucky
distributed systems. Along with a healthy portion of set theory, complexity
analysis, algorithms, and logic.

The key is that very little of the typical Computer Science degree involved
_actually_ writing a device driver or looking at the code of one. It was more
about what the _role_ of a device driver was in abstracting what hardware
could do into easily used function calls or object methods.

If there was a cheap 'terminal' you could do most of that with a very
inexpensive board (even a soft-CPU if you wanted). I've been working
intermittently on exactly such a system, perhaps the next time I take a break
from working full time I'll finish it, I doubt the development of such a
system would be particularly profitable (even as a 'lifestyle' business).

But the point of this response is that to rant _effectively_ you need to state
the problem, and I don't think the author here does that, what learning is
prevented by the restrictions on the Pi? What percentage of all the learning
you might do is that? Who is effected? None of those questions are explored. I
really liked Limor's response (LadyAda) which went to the things you _could_
do rather than focus on what you could not do.

[1] [http://www.digikey.com/product-
detail/en/Z84C0006PEG/269-389...](http://www.digikey.com/product-
detail/en/Z84C0006PEG/269-3892-ND/929204)

------
cpswan
Just like the religious fanatics in the open source software world there seem
to be some that want every piece of open source hardware to become some sort
of toaster project. The RPi has never even claimed to be OSH, it's just a
cheap thing to run OSS on, and there's plenty of educational benefit (in
plenty of settings nowhere near schools) to be had from that.

------
wzdd
The bit about Jazelle is particularly weird, given that it's deprecated
(though not deprecated enough for Raspi to support its successor) and of
fairly niche interest: only to a subset of Java developers (Android doesn't
use Jazelle).

------
smoyer
Is there some way I can get back the time I invested in reading that article?
I'm honestly not sure why this article has as many up-votes as it does.

~~~
prof_hobart
How much did you read?

I got far enough to see the first section was about whether the internals of
the CPU were open source and thought "Why would I care about that if I'm
trying to teach a kid to program?". I then very quickly scanned the article to
see if there was anything that was vaguely relevant to the average use that
this is intended for, decided there wasn't and closed it down.

------
mvanga
The notion of Open Source Hardware is extremely slippery and while it can be
argued on a moral plane, it doesn't work too well in practice.

Where do you stop when going down the layers of the stack? The article
mentions OpenRISC but neglects the fact that the FPGA's that can run its HDL
use proprietary, vendor-specific toolchains.

What about the peripherals? I don't know of any open source DRAM chips that
could be used for the electronic designs. It's not a viable business model and
never will be in such a competitive market I imagine.

In the end, the biggest value boards like the Raspberry Pi provide is
accessibility. Every kid can have a computer of his own without worrying about
getting scolded by mom for corrupting the disk. They give children a sense of
control over these amazing machines which consequently allow them to dream up
weird and crazy things they can do. Their real education lies here.

What else do you really care about? It's not the last and final RPi that will
ever release! Things will only get better.

~~~
JoeAltmaier
The complaint about lack of documentation is valid. Of course programming to
the hardware is desirable; that's why you'd buy the thing, to do device
control.

------
devicenull
> Oh, and before calling this a conspiracy theory, take a look at the sister
> site of Pi Foundation. That’s right: instead of promiting free, open and
> royalty-free standards like WebM, the Foundation sells licenses for two
> proprietary and obsolete video encoders.

The Pi has picked up a pretty big following in the HTPC crowd. When you're
using it as a HTPC, you need GPU acceleration to play any sort of HD content.
Without these licensees, it's far less useful as a HTPC. Apparently
"promoting" WebM means "make every reencode all their content into an open
format".

------
teekarja
Well guess it is not very useful for someone studying to become a CPU
architect, but for the majority of kids... Definitely a wonderful thing. I'd
say that the Headline Is Unsuitable For The Article.

------
mtgx
Rasperry Pi is not using ARM's Mali GPU, but from what I hear ARM is pretty
tight about the documentation for that also. I guess for a company that makes
its money _only_ from their IP and nothing else, they want to keep it quite
protected. I still wish they were more open, though.

~~~
Zenst
It does make me wonder that the two area's which crop up again and again as
open source issues are graphics cards and wireless networking cards and I have
to ask myself why. Reason being is that why is it these two area's every time,
is it a case of violating IP at low levels or that some area's are open source
and they have to gain there edge in speacial tweaks they don't wich to open
source. I just don't honestly know but nomatter what if it's about closed
source drivers under Linux then it always appears to be about some wireless
card or more so, some graphics card.

Anybody know a difinative reason why this is the case?

