adafruit / bluefruit_le_connect_android_v2 Goto Github PK
View Code? Open in Web Editor NEWBluefruit LE Connect Android source code (V2)
License: MIT License
Bluefruit LE Connect Android source code (V2)
License: MIT License
Hello, great app i love it! Works great on my android 7 phone, but on android 11 none of the tabs IE "uart" show up. Unfortunatly i dont have access to any other newer android devices so im not sure if its justmy device type thing orif android made breaking changes along the way so i tthought i ask and see if anyone else has similiar issue. Thank you
hiya @antonio-openroad if we dont have this functionality, remove the text
https://forums.adafruit.com/viewtopic.php?f=8&t=143749&p=712213
Data columns with alpha characters mixed in don't line-up vertically with a variable width font.
Shouldn't "monospace" be standard in a terminal?
I might have the purpose and/or meaning of quaternions from the app wrong, but after being unsuccessful at converting them into euler angles on a feather, it appears they are actually radians straight from the magnetometer (I can't tell if they are fused or not).
Java isn't my cup of tea, but I think the problem is in:
app/src/main/java/com/adafruit/bluefruit/le/connect/app/ControllerFragment.java UpdateOrientation() ~ line 745.
I suspect that kUse4Components
is not being set, so it's branching to 764. But as I say, I'm not a Java dev so take that with a grain of salt.
I keep getting this error when building the app.
It then gives a link to 'app\build.gradle'
I just got an RCA Voyager III. It is Android 6.0. Went to play store and updated everything. Tried to install Bluefruit LE Connect from play store and I get a notification that it could not install. It doesn't tell my what is wrong, just that it failed.
Android version is 6.0.1, security patch level June 1, 2016. This device has Bluetooth 4.0.
I use the Bluefruit Connect App in my class, and this semester some of the students who use Android phones are seeing error messages when they try to install it (I've attach two examples). The message looks like the app isn't compatible with newer versions of Android.
Do you know of a workaround, or can the app be updated to be compatible with the Android OS?
Thanks!
Messages sent using the uart_service.write method are not being displayed by the Bluefruit Connect App the first time the UART module is entered.
As a simple work around if you select the UART module, press the back arrow to return to the module menu and then enter the UART module a second time, messages are displayed as expected.
The following code can be used to demonstrate the issue:
from adafruit_ble import BLERadio
from adafruit_ble.advertising.standard import ProvideServicesAdvertisement
from adafruit_ble.services.nordic import UARTService
from adafruit_bluefruit_connect.packet import Packet
ble = BLERadio()
uart_service = UARTService()
advertisement = ProvideServicesAdvertisement(uart_service)
cmd = ""
while cmd.upper() != "Q":
if not ble.connected:
ble.start_advertising(advertisement)
while not ble.connected:
pass
while uart_service.in_waiting and ble.connected and cmd.upper() != "Q":
ucmd = uart_service.read(uart_service.in_waiting)
cmd = ucmd.decode().replace("\n","").replace(" ","")
uart_service.write(("Echoing: ->"+cmd+"<- Enter Q to quit").encode('utf-8'))
uart_service.write(b'\n')
print(cmd)
The version of CircuitPython I tested on is: Adafruit CircuitPython 8.1.0-beta.0-2-g965caa030 on 2023-03-01; SparkFun Pro nRF52840 Mini with nRF52840
and the Bluefruit LE Connect version is v3.3.2
And the adafruit-circuitpython-bundle-8.x-mpy-20230302 library bundle.
Hi,
Has anyone modified this code to automatically export a data file at regular periods, or even stream data to a file continuously?
Can anyone advise the easiest code change that might achieve this?
The issue with the way it currently works is that if the Bluetooth connection is dropped, all data previously received by the app is lost. I would like to capture data over a period of a number of hours, so streaming the data to a file, or saving it every 10 mins would be a better solution for me.
Thanks!
I have a the hex and init files saved on my Android device. Uploading them should not require an Internet connection.
Repro:
Result:
An error message pops up "Error downloading files. Check your internet connection and try again."
Expected:
Use the files supplied in steps 5 & 6.
Great App, Very useful. Thank you.
Could you please consider moving the control pad from "Controller" onto the "modules" main menu.
It seems to be the feature that I use the most, and it's a usability papercut that it is down a sub menu.
(Or even better, allow user to configure what comes up first when we connect).
At the moment it seems odd that a rarely used feature such as Thermal Camera is on the "modules" main menu, but the control pad is 2 clicks away on a sub menu.
Thank you
Drew
I am building my firmware with PlatformIO. After compiling two files are generate, firmware.hex and firmware.zip. The zip file contains 3 files, firmware.bin, firmware.dat and manifest.json.
In the past (more than 1.5 years?) I used the firmware.dat file as init file (as far as I remember). But now this seems not to work anymore. I also upgraded the bootloader for my NRF52840 board to the newest version 0.7.0, but it didn't change anything. I can see that the bootloader gets activated, but the upload is aborted and the bootloader is started again in loop.
Are there any hints how to get a successfull OTA update of a custom firmware?
The Bluefruit LE Connect guide section on Sensors indicates that phone sensor data, except GPS, is transmitted 10 times per second. In the current version of the app it is sent two times per second.
A simple change of the kSendDataInterval value from 500 to 100 corrects this behavior for all sensors except GPS.
It seems as though the data rate is not dependent on which sensor's data is enabled in the android version.
Tested in android studio with wireless debug on a pixel 5.
I see that in BlePeripheral
, there is a lot of notation on a workaround, notably using kHackToAvoidProblemsWhenWriteIsReceivedBeforeChangedOnWriteWithResponse
and referencing this StackOverflow question.
Firstly, I'm a little confused by the notation. The comments and SO question seem to reference the problem being if onCharacteristicChanged()
is seen before onCharacteristicWrite()
after a mBluetoothGatt.writeCharacteristic(characteristic),
but the variable name seems to suggest otherwise.
Correct me if I'm wrong, but this issue would only really show up if you're doing time-sensitive UART writing, right? If you're writing a characteristic that the GATT is not subscribed to, everything should work fine, your next callback should be onCharacteristicWrite()
and you could expect a finishExecutingCommand()
next with no issue.
Even if you are writing to a characteristic that you're subscribed to, can't you check for that? In writeCharacteristic()
, just check to see if the "subscription" descriptor indicates that it's a subscribed characteristic. If it is, just set a boolean to false
. When it's false, ignore all activity in OnCharacteristicChanged()
, and only onCharacteristicWrite()
can make it true again.
When I export the data file for two UART devices, I'm finding some of the data is being dropped.
Hi, i'd like to know if it is possible to send sleep mode and then wake up action to the Adafruit 32u4 from my android device. My point is simulate the power off/on, i do not know it this is the way to do it.
Thanks.
If swipe to refresh Off devices removed.
Wondering if there is a solution to this? A bit disappointed that this is present in the iOS app but not in the Android version. I am new to android app development so would really appreciate some help.
Could some basic instructions be provided about how to run this code in Android studio? I'm new to Android development and so it's not entirely obvious to me how to integrate this code into an app? Thanks.
This app is open source, so should be added to the open source repositories of Fdroid.
Information on how to do that here
It looks like the app store pushed the latest version 3.40 to my phone and when I was debugging a custom board that was previously working, it wouldn't detect the device. Like it doesn't even show up in the list of Uart devices, which is weird. because in NRF Connect, it shows up just fine and when I go into AdaDFU, it shows up just fine there.
Any advice how to troubleshoot furter? Was there a breaking change somewhere?
This is a custom pcb, and a custom modified version of Adafruit nrf52 (don't ask, this project has been a nightmare, unless you are ready for a long story)
Hi, I am trying reading battery level from 3 devices, but only two of them can read battery level cause the third one could not discover the service from "0000180F-0000-1000-8000-00805f9b34f", instead 6 services the gatt has 5 services
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.