Bend Gordon’s ear

Gordon Hollingworth, our Director of Software, is saddened that I called him out for being camera-shy the other day. So he’s offered to star in a new feature, which we’ll make a regular happening here if readers (that’s you!) like the idea.

If you have a question about the Pi you’d like Gordon and his whiteboard to answer (we’ve hung it up properly and bought in pens of many colours just for the occasion), please leave a comment below. We’ll select a few of the most interesting ones and film Gordon’s responses next week.

115 comments

Avatar

What is the maximum possible settings to overclock the Pi to (With voiding the warranty) / How do you recommend we get the most power out of the Pi.

Avatar

+1 for Konami code on the board. I hadn’t even finished reading the front page snippet before it drew my eye. :)

Avatar

Why have you got the konami code‎ on your whiteboard?

Avatar

Deny all knowledge…

Avatar

It’s something to do with world domination…

Avatar

What happened to those Jammie Dodgers? Eh?

Avatar

And the salty coffee sweeties. Where did those go?

Avatar

Not me, Rob had the last one….

Honest…

Avatar

lol, i want a job there.

Avatar

Well go fix some bugs and show us how amazing you are and you never know…

That’s the way it has worked until now!

Gordon

Avatar

What is the percentage fault rate for the raspberry Pi? I now have two that both fail to boot reliably or stop working within a few minutes of use. Using deacent quality 1A psu’s so don’t think that’s the problem. Heat seems to be an enemy, any suggestions where attaching a heatsink might help?

Avatar

Check your overclock settings. Another source of the problem could be that your SD card is old/faulty (these things have a limited write cycle) – if you run a database application (or other write-intensive program, it might be a good idea to run the filesystem off and SD card. You should not need heatsinks – the processor is safe up to 85 degrees – also the Pi essentially has the same hardware as a smartphone, bar the USB controller, and you don’t see smartphones with fans and heatsinks.

Avatar

As the Director of Software I assume you are overseeing the development of many things. Scratch and Wayland come to mind. Is this correct? What kind of Magic is in the chip in the picture.

Avatar

The Pi has the ability to decode and encode Video (H264). However there are currently no (straight forward) trans-coding tools available to allow you to input a video stream in one codec and export it in h264. Is this a limitation of the hardware or just that no one has yet spent the time coding it?

Avatar

I have been trying to use a Raspberry Pi as a portable Kinect depth camera recorder. I basically want to use something like Skanect to generate a 3D scan of the inside of my house but need a mobile (completely wireless) kinect that I can either record or use USB over IP but I have been running into some USB related issues. I can get the Kinect recognized and can easily control the base motor and LED with low level USB commands using python but the RGB and Depth cameras both report back odd errors which I haven’t managed to reverse engineer. What is the likelihood of USB devices like the Kinect being usable on the Pi? I am aware of the Asus XTion apparently working but they are significantly more expensive than a second hand XBox Kinect. (Note, I am already using a self powered USB hub)

Hope you can help, kind regards,
Dave

Avatar

Which piece of software developed or improved by a 3rd party are you most pleased you didn’t have to deal with yourself?

Avatar

Ask him to explain what condition Schrodinger’s cat is in!

Oh, Raspi related. Ask him to sketch roughly where some of the raspi’s interesting signal paths are routed on the motherboard – where they are, do any of them jump lots of layers, etc. Eg the HDMI lines, the wiggly ones that are supposed to be so for equal length, something like that. (I’m thinking of the people who have, in the past, asked innocently if they can drill their own mounting holes or re-route the connectors!)

Avatar

I think that’d be a question for Pete rather than Gordon. And from what I’ve read elsewhere the answer is there’s signal paths everywhere!
E.g. see http://www.raspberrypi.org/archives/3468

Avatar

can you explain the pros & cons of using source code management software when developing software as a single developer & for teams of developers & also what are the differences/advantages between subversion, git, mercurial, monotone, fossil etc.

Avatar

I wondered about that “calling out”. Gordon didn’t seem overly shy when I filmed him speaking at the last Cambridge Jam. I thought he spoke rather well actually. Hope these new vids will find their way into the new G+ community as well. :)

I’ve got a question. Is “the USB issue” completely solved yet? If not, is it mostly solved? (some sort of update on this would be interesting).

Avatar

Heh – it was more the narrating-something-while-doing-it that tripped him up!

Avatar

Ha! That’s always a hard one!

Avatar

Don’t mind standing and talking to people, just strangely find it embarassing talking to a camera…

Gordon

Avatar

I know what you mean Gordon. I’ve had three abortive attempts at getting a YouTube intro video right.

I try and shoot my vids when there’s nobody else around because I feel like a bit of a twit talking to the camera as well.

Avatar

Yep, the whole MagPi team went through this for the kickstarter. It is something which takes practice and relaxing. It is an odd, uncomfortable feeling..

I got the feeling that if you do it often enough it becomes natural, but until that point re-shooting things until you chillout and stop feeling a fool is the only option.

Perhaps I need a ball called Wilson to talk to, and help me with videos.

Avatar

I hate to load another question on you but… I would like to know how to take high-speed video with the pi. I’m wondering if there is a way that I can lower the video quality and raise the frame-rate.
Thanks
Andy

Avatar

We *like* having a lot of questions! Keep them coming!

Avatar

I second that question. I work for a company that does ride photos at amusement parks. There’s one coaster that launches from naught to 72mph in 2 seconds. I want to be able to film that launch at high speed via a pi mounted to the front of the coaster. Ideally, the pi would process the video and slow it down to at least quarter speed during the rest of the ride. What’s the fastest framerate we can get out of the pi, and does the GPU support changing framerates in hardware?

Avatar

Liz, your post’s title made me focus on his ears… They seem to be bigger than other people’s ears. :P

Joking aside. Is there a plan for RPi Foundation LCD display? The DSI connector on the board looks awfully lonely.

Avatar

I don’t think they’re bigger than mine

Avatar

I second that question.

Avatar

I third that question. :)

Avatar

And I hope Liz will force that question. ;)

Avatar

I shall do my very best!

Avatar

Is it possible to use the raspberry PI and the Arduino in a sort of bridge? I want the raspberry PI to output it’s video to a screen fr a project and the IPhone LCD screen is a perfect fit, and I know u can’t connect the IPhobe LCD to the raspberry PI but it’s supposed to be possible to connect it to the Arduino doin was woundering I I can use the Arduino as a bridge, have the raspberry PI send its video to the Arduino and then have it sent to the IPhone LCD, please help!

Avatar

1. you can plug the Arduino in to the pi over USB.
2. you could use UART/SPI/I2C in the I/o header.

Avatar

Do u mind me asking what u mean by UART/SPI/I2C and I/O header, I’m just beginning and havnt got the vocab down yet

Avatar

It’s worth Googling terms you don’t understand: you should also visit our forums if you want to learn more.

Avatar

You know the I/O header, the 26 pins sticking out of the bottom right corner of the board(with the HDMI plug facing up). I/O stands for Input/Output, so that means you can say, blink LEDs etc. with those pins. UART or USART, SPI, and I2C are all different protocols for communicating electronically that you can use. If you are just starting out, I would suggest just using the USB port. If you haven’t already, you can install the Arduino IDE (IDE stands for Integrated Development Environment witch is just the software) by typing
“sudo apt-get install arduino”
into the command prompt. This requires an internet connection. Be warned, the Arduino software is very slow on raspberry pi. I bet you could find better definitions on Wikipedia, but at least now you know roughly what everything is.
Hope this helps,
Andy

Avatar

What is the plan for the mysterious display connector on the Pi?

Avatar

Excellent question… +1 to that!

Avatar

A mysterious display

Avatar

For the camera module are there any software features that could be enabled on the GPU for processing images in realtime? Since some of the GPU is closed to tinkering I was not sure if additional options exist.
Also is a plug in or other option available to speed video and image processing using the GPU? Accelerated Image Editing on something like GIMP is what I was thinking,
Thanks for everything with the RasPi.

Rich Shumaker

Avatar

Why does the SPI bus on the raspberry-pi fails to work at frequency greater than 32Mhz ?

Avatar

Are you sure it stops working? Have you put a scope or logic analyser on the SPI pins to confirm?

The BCM2835 SoC which generates the SPI has a frequency divider based on a 250MHz core clockso the next frequency up from 31.25MHz is 62.5MHz. This is a very big jump and at these frequencies the cable length between the Pi and the circuitry you’re running will need to be kept to a minimum. I’ve had problems with SPI bus speeds on custom boards with microcontrollers where the PCB trace lengths were under 50mm and I couldn’t achieve more than 20MHz.

Avatar

Above 20MHz you have to very careful with transporting digital signal as the GPIO pads are not designed for fast switching. Your waveform starts looking more and more like a sine wave. I think the problem is that technology has reached a level where people hear about 100-400Mbits/sec all the time so the tendency is to think that 30MHz is trivial. It is not! You need some good engineering to transport a 30MHz square wave reliable over even a short distance. You have to know about capacitive load, impedance, wave-lines and reflections.

Avatar

1. Are there any additional decoding codecs that are being considered to be sold?

2. If the USB issue is not able to be solved, would RPF consider another revision update with a hardware change?

3. If RPF are developing a screen, will touch be added?

Finally thank you for all your hard work,

Avatar

Thanks for your time, I have some general questions that I’ve always wanted answers to:

1. What are the NC pins on the GPIO for? Are they connected to something and do they have some purpose or are they just place holders for an eventual future version of RPi functionalities?

2. What is the official power consumption of models A and B? I mean comprehensive, official and methodological tests.

3. In your opinion where does the RPi fall short? SD card connector? USB power limitation?

4. How may Gs does a RPi tolerate? Radiation limits? I want to/will send one into space (no seriously).

Avatar

I can answer #1. Since 22-October-2012 are no NC pins on the GPIO header anymore. See also http://www.raspberrypi.org/archives/2233 and the pinout at
http://elinux.org/RPi_Low-level_peripherals#General_Purpose_Input.2FOutput_.28GPIO.29

Avatar

For part 2 of #4, I doubt that the charity foundation has easy access to do radiation tests, but people have sent pi’s to the edge of space I know.

Avatar
Avatar

Will there be a more powerful pi coming? One that is 45$/an updated B model

Avatar

Hi Gordon;

Firstly congratulations on the initiative to help us!

I have a question, how do I see HTML5 with Raspberry pi? what distro you advise me?

thanks
Joan

Avatar

Endianness of the PI: What is the byte order addressing of PI’s IO headers? Is it Big Endian or Little Endian? I haven’t had time to play with the PI much using it as a home theater but I did toy with the idea of using the headers for something and was wondering how to “talk” with it. I would sincerely love to use LabView VISA and talk to it, hence the question. I haven’t actually tried anything with it yet.

Avatar

The ARM on Raspberry Pi is running in little-endian mode, but I don’t see how that relates to the IO headers – the Pi’s interfaces are all serial (or 1-bit) and there’s no parallel interfaces
http://elinux.org/RPi_Low-level_peripherals

I’ve never used LabView or SimuLink myself, but I wonder if this is similar to what you’re looking for?
http://www.mathworks.co.uk/hardware-support/raspberry-pi.html

Avatar

how do you plan to replace x11 with wayland?

Avatar

Hey, how is the android project coming along? Have you got AudioFlinger support yet?

Avatar

Do you plan to design the next PI model to boot from USB memory or on-board rather than SD card? If not, then why not?

Currently my filesystem is on 16GB USB stick, but I cannot boot without the SD card.

Mimi

Avatar

Do you plan to merge your linux kernel drivers into the mainline kernel? When?
Will there be official display for the DSI port?

Avatar

Has there been any progress on the overclock/SD card corruption issue? What is the real problem going on (in simple terms)?

Avatar

I’d like to know what the biggest challenge was regarding hardware design, and how it was overcome :)

Avatar

Agreeing on what not to put on the board. It was overcome by Eben just insistingNO it will not go on. :-)

Avatar

So what did get the cut? I am guessing a lot of what was on the Broadcom proto/dev board was in the want list.

Parts I am aware of include debug LEDs and buttons, switch-mode psu.

Avatar

You can’t bend Gordon’s ears, they are already like two car doors opened :)

Avatar

I’m trying to figure out how to send to STDOUT to my app BTInterface.com do you have any advice?

Avatar

What is the pin numbering scheme on the GPIO connector? Some projects only give a pin # reference for cabling and the pictures I find designate pin function (3.3v, etc.) but not the number.

Avatar

May I suggest a quick google, which would point you at e.g. eLinux’s RPi page?

Avatar

I have been using spidev and the python module spimodule.c (modified a bit) to communicate with the ATmega328P on the Gertboard. I notice, however, that a different set of drivers are available from the bcm2835-1.25 package. What are the pros and cons of the spidev driver vs. bcm2835-spi-* routines? Are the bcm2835 calls to be preferred? Which will be best for long-lasting compatibility? Are there significant speed or reliability differences?

Avatar

How about some info and status on the Android port.

Avatar

How long do you think it will be until Wayland replaces X11 on the Pi? Is there an indication of when it will be released fully?

Avatar

A lot of great questions!
When will you have time to answer them? How do you decide which one is more important?
Thank you!

Avatar

I think this is distinct from Andy’s comment 12: What’s the deal with USB webcams and the pi? If:

– The webcam can take 30+fps 1080p,
– A typical Windows PC can process video from such a webcam at 1080p at 30+fps without breaking a sweat, and
– The pi can render Full HD video and work as a media centre with no problem,

then why do my selection of webcams seem to max-out at 2fps 360×240 with the occasional crash every 10 minutes in motion? [Note I’ve grabbed the latest raspian – the previous one bricked my board with rpi-update – and I heard that has some USB improvements. I’m hoping so.]

It’s quite frustrating to have a board that can do all this amazing video handling and an HDMI-out port but struggles to store teeny videos at lousy frame rates… 8-(

I heard there were/are USB issues with drivers or some such on the pi. Are these approaching being fixed now or soon? What, in a nutshell, is the problem with webcams and USB? Thanks!

Avatar

I was talking about the official pi cam that plugs into the csi connector.

Avatar

AIUI, the problem with USB webcams (and the reason that the CSI camera is so much faster) is that the BCM2835 chip powering the Pi is a “monster” media/video processor (VideoCore IV) welded to a “weedy” ARM11 CPU. The slow CPU also means there’s a slow data-transfer rate between CPU and GPU (in both directions).
The Pi can play full HD video because the slow CPU passes the compressed video files to the powerful GPU, which then decodes and displays them. The CSI camera board’s data is also captured & processed entirely GPU-side, with the already-compressed-by-the-GPU video files (or images) finally getting passed back to the CPU, which then saves them to disk (SD card).
But the USB is handled entirely on the CPU-side of the chip, so webcams aren’t able to make any use of the powerful GPU – the CPU has to decode the data coming from the webcam itself, and then pass the uncompressed data over to the GPU to display. And that’s ignoring any additional USB driver problems…

Your WindowsPC has a *much* faster CPU, so it has no problem decoding the USB webcam data itself.

Avatar

How about a good explanation of SPI & I2C for interfacing to the GPIO?

There are lots of “plug it in and add this code” examples and some detailed technical guides showing clock signals, but little in-between. Perhaps some explanation of the kernel modules and how you interactive with them in your code.

Avatar

Will there be a new raspberry pi revision?

Avatar

Can rapsi prepare a coffee?

Avatar
Avatar

Ooooh, a Delonghi Magnifica machine. I have the exact same model. Tempted :)

One question though: who puts the cup in place????

Avatar

Will there be a Raspberry Pi 2.0?
A system board with even more possibilities?

Avatar

Not sure if this is an appropriate question for the Q&A session, but I’ll pose it anyway and Gordon can choose whether to answer it or not :-)

What future do you see for Scratch and the Raspberry Pi now that it looks that they are moving to a purely flash based system (online using flash, offline using Adobe Air? and compiled code is for flash enabled browsers).

Will Scratch stay at 1.4 on the Pi?
Is there going to be a way to get the online / offline version of Scratch 2 working on the Pi? Perhaps Gnash, although it may be just easier to rewrite Scratch.
Is anyone considering updating the legacy code to “catch-up” with version 2?
Could there be a better child friendly programming language suitable for primary school kids?

Personally I think that Scratch appears to be heading in the opposite direction of the rest of the industry. I’m sure it sounded like a good idea to rewrite it in Flash when they first looked at it, but since then Adobe has been dropping many of the platforms for Flash and Air. I think it would be great if we could have a Scratch like language / programming environment that was open source, didn’t need proprietary technology to run (ie. Flash) and that could generate code that can run on current/future platforms using HTML5 (ie. tablets / mobile phones as well as traditional PCs).

If I knew more about compilers and how to write a graphical based IDE, and had much much more spare time, then I may be tempted to make a start myself, but that’s not something that’s going happen :-(

Avatar

check out Snap http://byob.berkeley.edu/ It is Scratch rewritten in html5

Avatar

Wow! That’s exactly what I was thinking of – I didn’t realize someone else was already working on it.

Looks like it still needs some more work (it just crashed my browser), and not sure if it can be made to run on the Pi but it looks good so far.

Avatar

By giving raspberry pi`s to children can the foundation see a future where people (namely the children that had pi`s from a young age) buying computers (desktop/laptop type computers) to run x86-64 linux as a primary OS?

I ask because I discovered Linux around 2007 and wished that I had found the OS much earlier.

Avatar

Possibly. It’s not something that we dwell on though — our goal is that more people learn what computers are, what they can do and how to use them to do things, not to champion a specific system/OS (we are rather fond of the Raspberry Pi/Raspbian symbiosis though :))

Avatar

Was that picture taken with a Pi Cam?

Avatar

No missed a trick!

I should write some code to take a photo and automatically upload to dropbox and email Liz…

Gordon

Avatar

I think it was taken with Rob’s phone! (Only because I’d asked for something under 2MB because I am lazy and didn’t want to have to faff around with resizing before sticking it on the website.)

Avatar

There seems to be no suspend/resume or hibernate/restore where the processor could be put to sleep and return to the same running application. Seems like it has to re-boot into LInux from scratch. Is that some limitation of the Broadcom chip or the board design? Or is it something that someday might possibly be in the kernel? It would be great to know authoritatively one way or the other. Thanks!

Avatar

+1

Avatar

Q1 what is the offside rule?

Q3 what do you get if you multiply six by nine?

Q3 will it blend?

Avatar

Q3. See the FAQ

Avatar

For Q3, I bet it wouldn’t do too well in a blender. :-)

Avatar

Would one be able to use the RCA Video port for digital audio?
I know it is just for video, but couldn’t you just use another coding and send digital audio through it?

Avatar

Q1 will minecraft pi ever get an update? Q2 will there ever be a dsi display for the pi? Question the last: how many of the 1.5 million pi owners out there actually use the pi store?

Avatar

1) Processing Language in Raspberry Pi, why it cant be ported and when (if) it will be ported.
I am new to this language but i can see that visual controls of Processing with Raspberry Pi’s interaction to live world can make some cool projects.

2) How to use Raspberry pi as headless computer (using display of existing computers). I struggled a lot with above question and found answer after lot of digging. It would be good if you can explain it to future wonderer’s.

Avatar

My 2nd question how is the skill in programming in england going along? Im a Scot so we all learn programming and web development(HTML and Javascript) in high school.

Avatar

I’m surprised there aren’t more questions about graphics, so here goes:

Q1: Gordon, could you give us some insight regarding the GPU architecture?

Q2: Could you give an overview of the the various VideoCore APIs with some different examples and explanations of their strengths and weaknesses?

Thanks!

Avatar

Why is GPIO so slow on the RPi, even though it has a 800MHz CPU system clock? A RISC micro-controller with a clock speed roughly 1/10th that of the RPi has faster GPIO. Is it because there is an internal bus, like the AMBA bus slowing everything down? Can DMA overcome this problem? Thanks, David in Jakarta

Avatar

That’s the price you pay for running a full Operating System (i.e. Linux) complete with background tasks etc. and not a dedicated single-task application.

See http://www.raspberrypi.org/phpBB3/viewforum.php?f=72 if you want to go lower-level (bypassing Linux) to get faster IO.

Avatar

There are two main issues with GPIO performance on the Pi and similar devices.

The first is that when designing a CPU the designer has to decide what to optimise for. When optimising to run “applications” code fast you end up with complex bus structures with caches. Unfortunately these structures only help for trasfers that can be made in blocks. For individual word transfers they actually get in the way.

The second is that running a multitasking OS means that the processors time is divided into fairly coarse chunks (they have to be fairly coarse or you would spend more time doing context switching than actually running code) but that means the CPU could be taken away from your program at any time for a potentially considerable time period.

The normal soloution to this is to have perhiperal hardware that talks to the outside world at high speed and then DMAs to/from memory where the processor core can read/write data in big blocks. Of course that only works if the interface you want is supported by one of the perhiperal hardware blocks in your system.

Avatar

Peter, Excellent overview – thanks. What can be done to accomplish faster GPIO via use of DMA or some other technique? Is it that we are missing some proprietary bits or drivers to gain access to these busses and blocks (I know almost nothing about this)? I would really like to unleash some if not most of that 800MHz system clock to the GPIO for more like “bare metal” applications. A DDS signal generator for example.

Avatar

Need more information about how you are driving the GPIOs to answer

Avatar

Gee… I would envision either linux and C or ASM to drive the GPIO’s. Or bootload into some kind of monitor and program in microcode (?!) GPIO pins as outputs to start.

Avatar

What speed are you trying to attain…. The GPIOs can only run at an absolute maximum of around 20MHz as Gert has already pointed out. Accessing the GPIO through ARM assembly will easily be able to max that out…

In fact you can drive the GPIOs a little harder but not sure how much difference you can make.

Gordon

Avatar

Wayland seems to be the future to make the pi a real Desktop option. How much effort is being pushed that way – is an X-translation layer the first primary goal? How long before it becomes usable and out of tech-preview.

Avatar

Hi,

I´d love to see a minimal raspbian version offcially offered, with the minimal amount of Debian packages for the RasPi to boot and be functional at CLI (pretty much like a Debian base installation without any extra packages). Is it possible that you consider such a thing (or similar) in the future?

Thanks!.
Cheers.

Avatar

Please explain all about SD Card Corruption.

https://www.google.com/search?q=site%3Ahttp%3A%2F%2Fwww.raspberrypi.org+SD+Card+Corruption

why it’s happening and what we can do about it.

Avatar

The memory cells on a flash card have only a limited number of write cycles. There’s nothing you can do about it, it’s a technological limit. It has nothing to do with the RPi, except that the board not only uses flash cards for storage but frequently accesses it as the OS runs from the SD card, thus accelerating the degradation process. IIRC Liz posted an item in the blog list some time ago about how to move the OS from the SD card on to a USB-attached harddrive. Too lazy to find it, let Google do the work for you ;)

Avatar

1. How to setup PI to become remote display of a extended linux desktop (Xdmx)?
2. How to route audio to PI in previous setup?

Avatar

I’d like to see a video that shows how to fix the analog sound output filters.
What about a Rev.3. with that issues fixed in the factory?

Ah, and is thre any chance that we get faster USB and network?

Avatar

“Ah, and is thre any chance that we get faster USB and network?” +1

I would like to have 1000 MBit network not attached to the USB Bus. Any Chance?

Avatar

How can the raspberry be SO cheap? and will there be a 1GB ram version soon?

BTW: 100th Comment!

Avatar

a) because it’s re-using hardware designed for mobile phones, it’s being run as a charity so there aren’t big profit margins, and because all the RPF team are very clever :-)

b) nope, nobody makes a 1GB RAM chip that would fit onto the RaspberryPi’s SoC.

Leave a Comment

Comments are closed