figuring out which digital IO pins are unused

I'm talking about safe to use starting with an uncaped bone.

After searching the schematic I have the impression that
all the GPIOx_xx that are brought out on P8/P9 are safe to use.
Is this correct?

The arduino brings out some pins that are hooked up to things
like LEDs or the serial port so I'm a bit paranoid.

I guess there is an EEPROM interface that could also be used
to interrogate which pins are free?

Thanks,
Britton

I'm talking about safe to use starting with an uncaped bone.

After searching the schematic I have the impression that
all the GPIOx_xx that are brought out on P8/P9 are safe to use.
Is this correct?

Beware that pins P8-31 to P8-46 are "boot pins" that can not be driven (or pulled up or down) by external circuitry during boot. See section 7.2.1 of the SRM. This includes some GPIO pins.

- Mike

Safe to use? None of them are unsafe. But all of them may be subjectt to use by any number of other capes. You will need to decide the function of the pin based on the function needed. every single pin can be a GPIO pin if you set it up that way.

Yes, there is a EEPROM interface that tels what pins are used on each of the capes. You may want to take some time and read the System Reference Manual for the BeagleBone. It has some interesting information in it. It is located on the SD card that ships with the BeagleBone. If that i snot convenient, you can also find it here:

http://circuitco.com/support/index.php?title=BeagleBone

Gerald

I have looked through it, though I admit I haven't read every word.
So far as I can tell, it
doesn't mention the "boot pins" that the other responder mentioned
(including in section 7.2 that he mentioned, nor in section 6.3.8
where I think this issue deserves a mention).

Beaglebone clearly has the idea of trying to accurately characterize
the available IO interfaces without forcing people to master all the
details of the processor itself (EEPROM system for example). But I
think it could do even better in this regard.

With arduino there is almost a dishonesty how they trumped the couple
of simple little calls you need to do general IO, since a number of
the pins the board brings out are doing other things, and problems
ensue when you try to use them for IO. Beaglebone is better in this
regard, but still if your going to show snippets like the ones that
come up in the slides on beaglebone.local, its good to make sure the
interface really is characterized carefully enough that really it is
that easy. I found half a dozen pages describing how to do GIO with
the files in /sys, but none of them talk about which pin set is
available and when, which is the next logical question. I'd hazard a
guess most of the authors are a bit unsure themselves.

Britton

Boot pins are referenced in the schematic and as indicated should not be pulled high or low until after reset has gone high.

each and every pin as up to 8 possible functions as set by the registers via hte SW. How they work and what they do depends on the SW to enable them and the HW to provide the correct inputs. Also be aware that on power up some pins default Hi and others LO, so make sure the default state does not create unwanted activity.

Overall, trying to make something that works with all other cae sis inmy opnion and execise in isanity. There are just too many options out there for each pin.

Gerald

I would suggest putting an asterisk on the boot pins in tables 9 and 10 of the SRM, with a noting indicating those pins can't be driven during boot, or referencing section 7.2.1.

I overlooked the boot pin issue, which caused much confusion for a while.

- Mike

I will take it under advisement. Unfortunately, I am not able to include every piece of information in the Datasheet and the TRM for the chip in the System Reference Manual. I need to rely on people reading that information to insure all the bases are covered when they build their capes. After all, most of the pins come direct from the processor and there is nothing on the board that affects the operation of those pins. That is all covered under the datasheet and TRM.

Gerald

I guess I owe myself an apology. Please read section 7.2.1.

Gerald