Productivity on the cheap
The Pi team has spent months and months hunting for components that meet the right balance of size, cost and quality: go too small and the price can end up soaring, go too big and the PCB suddenly costs too much, go too cheap and standards slip. A 2mm wide capacitor (0805 packaged 10uF) can be ten times cheaper than a 1.6mm wide part (0603 package), for example, and then there's the bill for the robotic component placement in the factory, which is affected by design decisions - maybe two capacitors could be replaced by a larger one. These little savings, a penny at a time, add up for a $35 device that's being produced (at least, initially) in modest batches of 10,000 units at a time.
"Our desire is to kill off even components that cost a few tens of cents as, after all, each 25 cents is 1 per cent of our price," Eben Upton, a trustee of the RaspberryPi Foundation that's producing the board, told The Register.
Your baseline, unavoidable cost is some RAM and an application processor. Depending on the choices you make, this is going to cost the best part of $15, and then you're looking at a few dollars of board, connectors, assembly and margin. So we've gone pretty much as low as you can reasonably go.
I believe pretty strongly that the "natural" long-term price of a productivity computer is under $50 plus a display.
The RaspberryPi production board PCB layout (Click for unlabelled version) Legend: 1. Misc I/O pins 2. RCA video out 3. Audio out 4. Status LEDs 5. USB 2.0 port 6. Ethernet port 7. JTAG pins 8. LAN/USB controller chip 9. HDMI out 10. Broadcom processor package 11. Underside SD card slot 12. microUSB power in
Eventually the timing circuits for the network and USB ports will be derived from a signal from the BCM2835 graphics processor rather than a clumsy external crystal oscillator. The Pi also slurps its power from a 5V micro USB socket, rather than an onboard PSU, in another bid to drive down the cost - an engineering decision taken within the past couple of months. There are all sorts of adjustments the team hope to make in future board revisions. Upton added:
The main challenge has been to get a high-quality signal escape from the BCM2835 processor, without loading the board up with lots of layers and high-density interconnect features (such as buried vias, etc). In principle there's nothing stopping us from going smaller, except that we would start sacrificing connectors and/or moving to less robust connector formats like micro SD and mini HDMI.
By and large, it's been a continuous process of small improvements and cost optimisations; Pete Lomas (one of our trustees, and MD of Norcott Technologies in Cheshire) has spent a lot of time working iteratively with potential suppliers to find cheap, decent quality components (particularly connectors). Pete has been working on sourcing components since at least May of this year, if not before, and has only recently come up with a configuration which he feels is near optimal. Silicon chip sourcing is simply a matter of what we can get our hands on that fits the target price and gives the best performance.
RaspberryPi Atmel-powered prototype
The Pi has certainly come from very humble beginnings: a 2006 prototype used an Atmel ATmega644 micro-controller, an 8-bit beast running at 22MHz with 64KB of flash memory, and 512K of static RAM mainly for the video frame buffer. A RaspberryPi in a USB key stick with a little camera fitted was demonstrated earlier this year, but the design was put on pause because it lacked the connectivity present on the latest boards.
Way to miss the point
In school they are NOT ALLOWED to program the machine in case they bugger them up. They are an expensive resource that need to be maintained.
This device give them the ability to bugger it up to their hearts content. You just need to re-image the SD card and you are back to square one. No IT support needed. And even if you somehow break the hardware - its $35 so not going to break the bank.
You are right - it is just another Linux board. But it's CHEAP and therefore more accessible. But because its JALB (c) it can run almost any language you want for free. Unlike all those school computers running Windows. And there is the software angle. Yes, its all down to the software, but you need a device to write software on, and this is a good one.
And I think you are wrong about the market for low level coding skills declining. We are constantly needing low level coders, and there simply are not enough good ones. There is a constant demand for software for low level devices as so much stuff has some sort of SW requirement nowadays. There is also the fact that a good low level coder is generally better at high level coding and debugging because they have a better understanding of how the device works under the skin. A low level coder can work at the high level. Not the other way round.
PRINT "Hello, world! "
They were a lot more polite than I ever was.
This is a fantastic idea. I'll buy one to support them even if I can never make the time to tit about with it,
"Come on people, this is 2011, not 1981. The "nightmare of frameworks and compilers" is what allows 90% of developers to earn a living programming."
You don't become a successful civil engineer or architect by being ignorant of basic materials science. Knowing the acceptable loading factors and stress ranges is kind of crucial: get it wrong and your building will fall down. You can delegate this low-level work once you've reached the heady heights of building major skyscrapers, but understanding the basic foundational elements of your line of work is most emphatically not optional.
Programming is the same: there's a big difference between knowing a handful of APIs, and knowing how a computer actually *works*. And the only certain way to learn the latter is to try doing it. In a low-level language like assembly language, or C. (I'm not aware of any CPUs that can do OOP at the assembly language level, so procedural it is.)
Knowing how a computer "thinks" is the only way to really understand programming at a deep level. It helps no end in debugging. It also comes in handy if you have to code for constrained platforms and embedded devices, as well as in situations where optimisation skills are useful. (E.g. in game development.)
If you'd suggested an environment like Unity (www.unity3d.com), I'd agree with you, but JS in a *browser*? Seriously?
of only teaching high level coding is bloatware; and don't we all love that!
And yet you already use Broadcom product everyday. In your iPhone, HTC, Nokia, in your laptop, your desktop, in your router, in the switches used on the internet backbone.
If you don't want to use their product, don't use the internet.