-
Notifications
You must be signed in to change notification settings - Fork 3
Pin Diagrams
In order to use a non-default system mode, you both need to change the mode during initialization, and you will also need to change the hardware configuration. This is done by editing /boot/uEnv.txt
, and uncommenting the relevant lines, as below:
SystemMode | Affected Systems |
---|---|
DEFAULT | No changes |
NO_STORAGE | Disable eMMC |
NO_HDMI Disable | HDMI and HDMI Audio |
NO_EXPANSION | Disable eMMC, HDMI, and HDMI Audio |
Before you can use any I/O system on the BBB, you need to call BeagleBone.Initialize()
once in your program.
This takes two arguments, the first one being the SystemMode
as above (note that changing this doesn't change anything other than not making Scarlet error if you try to use a reserved pin. It doesn't make that pin work!)
The second argument is "UseFastMode"
. I recommend you leave this as true unless you run into I/O issues.
This switches between memory mapped I/O (true), and filesystem-based I/O (false).
Filesystem-based I/O is the "correct" Linux way to do it, so is therefore more supported. Memory mapping is several orders of magnitude faster (Up to 1000x!), but is not technically supported. That said, it almost always works fine.
The BeagleBone only has 6 actual PWM outputs, divided into 3 devices.
Each device (0, 1, 2) is completely independent.
Each device has two outputs (A, B). These outputs run off the same clock, and at the same frequency, but their duty cycle is controlled independently.
Each output goes to two different physical pins if enabled as such in setup. They are tied together, so even if you connect two different things to the two pins named "1_A", the output will be identical at all times. The only reason there are two pins is so that you can still use the PWM output if you are using one of the pins for another task (such as SPI), or if it assigned to a pin used by HDMI/eMMC.
You will need to select GPIO pins as chip-select lines. The built-in CS lines (e.g. SPI0_CS0) are not used.
CAN bus 0 may not work. I recommend using 1 instead.
Avoid UART3 for now.
By default, the UART pins are used to communicate with the Bluetooth radio, and as such cannot function. You can disable Bluetooth, and enable UART, by following this procedure (untested, source):
sudo nano /boot/config.txt
At the end of the file, add:
dtoverlay=pi3-disable-bt
Disable Bluetooth:
sudo systemctl disable hciuart
Reboot.
Quick Links:
NuGet
Pin Diagrams: RPi | BBB
Developers: CaiB, Baldstrom
General Info:
Home
Common Issues
Getting Started
Supported Devices
Sections:
Logging
DataLog
Filters
Hardware I/O:
- BeagleBone Black
- Raspberry Pi
- Pin Diagrams: RPi | BBB
- GPIO: Using | For Beginners
- PWM: Using | For Beginners
- ADC: Using | For Beginners
- I2C: Using | For Beginners
- SPI: Using | For Beginners
- UART: Using | For Beginners
- CAN: Using | For Beginners
Networking
Sensors
StateStore
Other: Interesting Case Studies