My starting point: Raspbian Jessie on the RPi 2 with the latest software and firmware updates. YMMV if you are using other distributions! Bluetooth 4.0 and BLE (Bluetooth Low Energy) was working fine with the Plugable adapter.
I just received my Pi3 so I shut down the Pi2, cloned the card (backups are nice!) and popped it into the Pi3. You'll notice the lack of a spring in there - this change gives a better electrical connection.
Note: As part of this, I switched from my usual SanDisk to a Samsung EVO Plus 32 GB card because I'd read that it's got the best overall mix of 4K R/W speeds along with large block R/W speeds of any Micro SD card out there. So far so good, but YMMV. (Read more at http://www.jeffgeerling.com/blogs/jeff- ... crosd-card)
I booted the cloned SD on the Pi 3 and changed the hostname right away. Edit /etc/hosts and /etc/hostname similarly to accomplish this. Rebooted again after that.
SInce I'm not using the Plugable BLE adapter on the 3, I tried the native bluetooth - and it failed miserably - it couldn't even see the controller! (and no, lsusb won't help here - neither WiFI nor BT are on the USB bus on the RPi 3). hcitool lescan was telling me about a "Set scan parameters failed: File descriptor in bad state". I searched around and found some Q&A but nothing that helped me.
I found the pi-bluetooth and bluez-firmware packages to be the crucial difference between the Pi 3 and the Pi 2 (h/t to
https://www.pi-supply.com/make/fix-rasp ... 16fd43adaa for calling this out. From other readings I thought that pi-bluetooth was just an aggregate of the discrete packages, but evidently not.)
So, in a nutshell:
Before you migrate from Pi2:
Code: Select all
sudo apt-get update
sudo apt-get updgrade -y
sudo apt-get dist-upgrade -yPlug the SD card or its clone into the Pi3, then:
Update /etc/hosts and /etc/hostname (then reboot) if you plan to keep using your Pi 2 as well
Then:
Code: Select all
sudo apt-get purge bluez-utils blueman bluez bluez-firmware pi-bluetooth
sudo apt-get install blueman bluez # RPi 2
sudo apt-get install blueman bluez bluez-firmware pi-bluetooth # RPi 3
sudo usermod -G bluetooth -a pi # Or it won't work
cat /etc/group | grep bluetooth
sudo service bluetooth status
# Reboot
# Test
sudo service bluetooth status
rfkill list
sudo hcitool lescan
bluetoothctlOverclocking and defaults:
If you ever configured your overclock settings (to defaults or otherwise) in /boot/config.txt, don't forget to comment out those overclock settings or update them to the new defaults! (I had mine optimized for the RPi 2... settings which worked on the RPi 3 but basically throttled it down from its defaults!)
Code: Select all
# Pi3 defaults
arm_freq=1200
core_freq=400
sdram_freq=450I chose to use the slightly more aggressive settings below - Bluetooth worked fine after the reboot. YMMV as always (remember that in a pinch you can directly edit config.txt after mounting the SD card as a drive in your computer - this makes it easy to undo or comment out undesirable config modifications, such as the sort that don't allow a stable bootup!):
Code: Select all
# Pi3 OC
arm_freq=1350
core_freq=500
sdram_freq=450
over_voltage=4Code: Select all
sudo cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq
sudo cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq
sudo cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
sudo cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
/opt/vc/bin/vcgencmd measure_temp
lscpu