Get AVRCP and BlueZ to work for controlling phone - raspberry-pi

not sure if I got everything right so please be a bit patient with me ;-)
I setup my RPi with BlueZ + pulse (on Rasbian) audio working as A2DP receiver and it works like charm with my iPhone and iPad. For my project I would like to implement AVRCP to control the audio player over bluetooth.
In the current stable version or Raspian BlueZ is implemented in version 4.99, the last v4 version is 4.101 and BlueZ 5 is already out.
Did anybody get AVRCP to work and control at least the major functions play/pause, prev and next? I would be so happy to implement that as well!
Cheers!

how far have you been going on this task?
am doing almost the same,(PandaBoard-ES + iPhone) and am using Bluez4.98-2ubuntu7.
so far you can get the port of the iPhone responsible for the AV remote Control, create a L2CAP socket and connect your RPi to the device at this port.
until this point you should be able to transfer the music via bluetooth(somehow weird because for this should be used a A2DProfile), any chance, this is working on your Rpi???
Cheers!
Sepp

Related

Issue with freeswitch mod_Port audio in raspberry pi 4 (debian buster)

I have loaded mod_portaudio in freeswich. But after that when pa rescan the device, i found no device in the device list. While the pi is connected to a bluetooth speaker and also a headset with a aux cable and those are working fine in the system.
Can anyone please help me to sort out this issue.
Thanks
I am also working on this and shortly believed to have solved it (see https://lists.freeswitch.org/pipermail/freeswitch-users/2020-August/133883.html and https://lists.freeswitch.org/pipermail/freeswitch-users/2020-August/133884.html), but it wasn't true:
I was testing with my headset and had successful "pa looptest" indicating both indev & outdev were working
Then, when I tested that in the context of my application for auto-answering incoming calls (I called with my mobile phone while putting it in front of a tv so that I can test if I would hear anything on my headset), I didn't notice that in that case the mic was not working because I had the headset on my ears and was hearing the tv (because of success of looptest, I was just assuming that the mic would also be working)
But when I finally got a Plantronics Calisto 620-M Bluetooth Speakerphone, even the looptest failed. At this moment, I tested more carefully my headset again, and there I found out that the mic was not working.
Because it seemed that something device-specific should be the reason for failure, I also tested with my bluetooth earphones; there the effect was equivalent to Calisto speakerphone.
I finally got a USB speakerphone and tried that one, but in that case "pa rescan" failed to find any devices.
With all four devices, always arecord and aplay were working perfectly, and the above issues appeared only with mod_portaudio.
I don't have any idea what the issue could be with the usb, but with the three bluetooth devices, I still believe that something device-specific should be causing the problems here, e.g. the sample rate. But, currently I am lacking time to further work on this...

How can I check the firmware version of a primesense Xtion camera?

How can I check the firmware version of a primesense Xtion camera?
I have a couple of these cameras which I suspect have different firmware versions. One works with NiViewer, the other doesn't. Although both are detected as connected to a usb port (I repeat the test on the same usb port). I don't want to flash firmware upgrades directly without knowing the current versions (I recently screwup another camera by just trying different firmwares). Ideally, I'm looking for some app I could run from ubuntu that can show the firmware version of the camera.
Looking at APIs, I found a getFirmwareRevision() call for the Structure SDK but I think that's for the occipital camera only. I've checked OpeneNI2 API and the most similar sounding function I've found is a call to GetFirmwareParams() but I can't see any example that refers to the firmware version, so I suspect that's for a different use.

Attendance reader with iBeacon/eddystone and raspberry

I'm a bit confused. I explain to you my project, I would like to make a "reader" by using beacon technology (ibeacon for apple, eddystone for android) using a raspberry pi 3. The smatphone application sends an acknowledgment code when passing the person. The raspberry marks and updates an online database. I wanted to ask, first of all can this be done? My problem is to realize the beacon transmission, then for the app and the database I have no problems. I tried using bluez but I can not detect the phone. Is there any online tutorial that could help me? Thanks
If you are looking to use the phone to emit a beacon transmission and then use the Raspberry Pi 3 to detect the beacon, then yes, this is possible. I put together a tutorial on how to use the Android Things to detect beacons on the Raspberry Pi 3.
The problem with using BlueZ for beacon detection is that it is simply not stable on the Raspberry Pi, and will freeze up and stop detecting requiring a reboot.

Control Camera desktop application using Gyroscope of Android smartphone

For a project at my university I need to create a Unity3D application on my laptop, in which the camera is stationairy and can be controlled to rotate in any direction using the gyroscope of my Android smartphone (Nexus 5), wirelessly or through usbcable.
I've looked at the possibility of OSC or the Unity Remote 5 App, but up till now haven't found a way that works in order to obtain this result.
Any help or advice would be hugely appreciated - I don't have much experience yet with all this.
Thanks!
If i was going to do this then I would use UNET (Unitys built in multiplayer networking API) and have the rotation sync over LAN.
On the camera I would have a Network Transform and a script to control its rotation based on accelerometer input.
The version on the phone would be the authority and sync it's rotation over the network to the client on the laptop.
Pros: Wireless, fast (over wifi), very little code required to make it work, lots of documentation available online.
Cons: Relies totally on your network situation, you will have to do a lot of trial and error to get a smooth experience (not jerky) i think.
As for getting the tilt input on the device, Unity have a great tutorial here: https://unity3d.com/learn/tutorials/topics/mobile-touch/accelerometer-input
It's pretty straight forward.
Sound like a fun project, good luck!
It's possible to do this via cable, WiFi, Bluetooth 2.0 or Bluetooth 4.0 (BLE). I have implemented what you need in WiFi and Bluetooth 2.0 for my current work.
It's pretty easy to get rotation values and stream them from Android but I don't think you will need to do anything because you can just use this!
https://play.google.com/store/apps/details?id=de.lorenz_fenster.sensorstreamgps&hl=en
So the question is how do you receive the data this is sending on Unity's side. The answer is the UdpClient class.
If you need more reliability because every second student in your uni library is torrenting Mr. Robot and your getting huge lag then I can tell you how to implement the same thing in Bluetooth, which is not super trivial as .NET 2.0 (which unity uses) doesn't support bluetooth libraries, but there are solutions...

Use Raspberry Pi like GoPro, Live Videostream over WiFi direct connection between Pi and Android

In the last weeks I experimented with my Raspberry Pi B and with the PiCamera. I had the idea to establish a connection between the RasPi and an Android device or (if it is easier) to a windows notebook without an access point in between, just like the GoPro camera and its App. I would like to have a live stream from the PiCamera to the other device and the possibility to start/stop recording a video or simply take a picture.
The app itself is not my problem, I wrote some simple apps before. But I didn't yet find a tutorial or description how to set up the communication and the stream.
I bought a WiFi dongle (Fritz!WLAN Stick N - by AVM) that supports WiFi direct and my phone (Samsung Galaxy S5 mini) does as well.
My first question is how to set up this stick on Raspbian - yet it is not recognises as a wifi dongle, and the second is how to achieve what I descriebed above.
Could anyone please describe what I can do?
Thanks in advance!
PS: I prefer a description for bash because I use SSH