Git Product home page Git Product logo

bluefruit_le_connect_v2's Introduction

Bluefruit LE Connect v2

iOS app for use with Bluefruit Bluetooth LE modules and dev boards from Adafruit.

Important: Open this project in Xcode by using the .xcworkspace file and not the .xcodeproj file

Work in progress!

App Versions

  • Master branch is for version 3.x of the app (iOS)

  • Swift2 branch is for version 2.0. Includes iOS and macOS apps. Note: Xcode 8.2.1 is the last version that builds Swift2 code

  • The source code for version 1.0 (iOS only) is available at Bluefruit_LE_Connect.

Supported Hardware

Adafruit invests time and resources providing this open source code, please support Adafruit and open-source hardware by purchasing products from Adafruit!

This application works with the following Bluefruit LE devices from Adafruit:

License

Unless otherwise specified, all files produced by Adafruit are covered by an MIT license.

Files produced by Nordic Semiconductors are covered by their own license terms, as detailed in the file headers and appropriate folders. Please carefully review the license requirements before using this source code in your own application.

bluefruit_le_connect_v2's People

Contributors

antonio-openroad avatar stephanvs avatar tannewt avatar trevknows avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bluefruit_le_connect_v2's Issues

Build failed (Chart,iosDFULibrary,Cocamqtt)

1.Command compileSwiftSources failed with a nonzero exit code
2.in iosDFULibrary Swift compile erro (for example value of optional type 'CBPeripheral?'must be unwrapped to refer ...
3.cannot infer contextual base in reference to member 'withResponse'

How is your app organized?

When I connect to my bluetooth device I see a list of modules:
info
UART
Plotter
Pin I/O
Controller
Neopixels
AHRS / Calibration
Thermal Camera
Updates

In the controller folder there seems to be a folder for info, UART, Plotter, Pin I/O, Controller, Neopixels, Thermal Camera. There isn't a folder for AHRS / Calibration or Updates.

How do you actually populate this list view of modules? Is there any common pattern that you use for modules, any common data that you pass into the modules when a user selects one?

Return key of Filter UITextField should resign first responder on click

Observed: When the user enters a name to filter, the keyboard does not dismiss when the return key is clicked.
Expected: The keyboard will dismiss

Quick Fix:
Implement the UITextFieldDelegate and setup the keyboard to show a done button. In the callback, resign first responder on the textField in the callback.

Left arrow on controller often misses button down

Then on physically releasing the arrow, it sends out "pressed" & "released" sequentially.

Bluefruit LE Connect V2.2.0
ios10.1
Arduino BluefruitLE 1.9.3

Seems to happen more often in portrait than landscape

Handle RGBW Neopixels

RGBW lights require 4 bytes of data, and the Arduino sketch for 'Neopixel' takes this into account but the iOS app doesn't seem to handle this properly.

Hooking a 16 RGBW neopixel ring up with 'component' set to '4' and the number of pixels set to 16, but default only 12 pixels turn on and setting colors is also slightly behind since only 3 of the 4 components seem to be set.

I'll get you some RGBW pixels to test with when you're back!

iPhone differs from iPad

On the iPhone, if you filter out the devices based on signal strength, anything not matching the filter is removed from the list. If you use the same parameters on the iPad, it seems like anything advertised with terrible signal strength still makes the list. I would assume this has to do with an RSSI coming through that's a false positive value, and somehow this is managed on the phone differently than the iPad.

Implement 'Mailbox' System?

A request that has come up numerous times on the forum is getting Bluefruit LE modules talking to each other. This isn't possible with the peripheral only stack we are using, but one possible approach is implementing a mailbox type system on the central device, and assigning each peripheral a unique address.

Peripherals send data to the central using either a 'broadcast address' (0xFFFF?) meaning every node connected to the central will get the message (you can use it as a ping request), or send a message to a specific node (0x0001..0xFFFE) and only that node will get it if connected (or maybe later if queueing is enabled?).

The problem here is that the current app is design for single peripheral connections, so I'm not sure if we can accomodate multiple peripherals in the current UI, or if something like this would have to be a different app?

Filing this as a 'maybe' item for the wishlist for now until we have more time to properly evaluate the idea.

Add device filtering to scan results

Add device filtering when scanning:

  • Default drop down option: "Show all devices"
  • Filter by device name: "Device Name Contains" or "Device Name Equals", matching a substring or a full string
  • Filter by address: "Address Contains" or "Address Equals", such as "11:22:33:44:55:66" or "44:55" etc.
  • Filter by RSSI level: "RSSI >=" and then a negative numeric value such as '-50' dBm for devices close by, etc.
  • Filter by UART service presence: "Has UART Service", "No UART Service"

About the HEX mode of UART

When I put the UART in HEX mode and send a number, it does not become the intended number (as seen in the waveform) It was the same on both iOS and Android.
For example, sending 0 would result in 30h, sending 1 would result in 31h.
The number sent is the same as in ASCII mode.
How can I send an arbitrary hex number? Or is it not supported?

Installing on iPhone – Paid developer account required?

Hello, I just tried to install this on my iPhone via xCode 8.0 and I'm getting an error:

Your account does not have sufficient permissions to modify containers.

I'm assuming I'm getting this error because I'm using a free iOS developer account.
Is it possible to run/test this on an iDevice without a paid developer account?

Many thanks.

Add keypad controller for OS X

The keypad controller option (arrows + 1-4) from the iOS app should be added as an additional tab on the OS X version since a number of projects rely on this, and having a desktop based control panel makes sense in certain situations.

Add raw advertising packet option

When you long click the device name in the scan results list (or click a new icon???), add an option to display the raw advertising packet in a popup which may help debugging some issues with custom advertising packets.

Cannot build IOS project onto my phone to test

Check dependencies

Code Signing Error: No account for team "2X94RM7457". Add a new account in the Accounts preference pane or verify that your accounts have valid credentials.

Code Signing Error: No profiles for 'com.adafruit.bluefruitconnect.watchkitapp.watchkitextension' were found: Xcode couldn't find any iOS App Development provisioning profiles matching 'com.adafruit.bluefruitconnect.watchkitapp.watchkitextension'.

Code Signing Error: Code signing is required for product type 'WatchKit Extension' in SDK 'watchOS 4.1'

isDefaultConfigurationAssumed can't do PWM

In initializeDefaultPins, the "PWM pins" and "Digital pin" cases are identical. Shouldn't the former have isPWM: true?

(I found an ancient BlueFruit device while cleaning up and it doesn't work with the newer app.)

GPS location with iPhone locked

Hi,
I'm using the Bluefruit Connect app (v3.6.2) to send GPS location to a BLE smartwatch that implements the Nordic UART service.
If I keep the app opened on my iPhone (7), the watch receives new data regularly with the updated location, no problem. But if I lock my iPhone, the watch receives the updated location for around 13 seconds. Then after that time, the app still receives BLE packets, but with a frozen location. I'm still moving but the location doesn't reflect it.

So to be clear:
iPhone unlocked: receive continuous BLE packets with updated location
iPhone locked: receive continuous BLE packets with updated location for 13 seconds, then receive continuous BLE packets with "frozen" location.

On my iPhone I authorized using location "while using the app". I was surprised that the Bluefruit Connect app doesn't have a "Background App Refresh" setting, the Strava app have it for example.

Thank you,
paoloaveri

Multiple UART connections

We should consider whether it is possible to have a mechanism to connect to multiple targets at the same time using the UART GATT Service. This has come up several times, but I'm afraid it might be a total rewrite of the BLE code ... but it /is/ a problem we should solve at some point, particularly since we're working on V2 anyway?

The idea is to have one central connected via BLE UART to multiple nodes, logging all incoming data. To simplify things at first, it can be 'read only' on the Central side though, and we can figure out 'writes' later???

Adding more buttons to controller page

Hey,

I am wondering if you might be interested in helping out on our latest not-for-profit music video for Cottonwood Records. I recently built a 7-foot rocket that is going to be used as the main story piece. The rocket is wired with a few hundred Neopixels that I am controlling with the Bluetooth Bluefruit App for iOS. What I am needing is relatively simple and shouldn't require much time, however, it will require someone who has a developer account with apple and app experience.

WHAT IS NEEDED

  1. Switch the button type on the controller page to something that only sends a signal on "push", not "push" and "release".
  2. Add more buttons (I can provide a layout for you). All the buttons will be triggered the same, just need more than 8 buttons. Some will turn on lights, others will trigger effects etc.

Please let me know asap if you are will to help out. We are shooting on Friday the 25th, so would need the app Thursday at the latest. Thanks!

Cheers,
-Joel

Viewing advertisement data unusable

It is very difficult to view the advertisement data by expanding a uitableviewcell when new rows are inserted above and the tableview reloads. My ble devices are constantly being pushed off screen by all of my neighbors fit bits and other devices.

Had to switch to another App Store app for inspecting advertisements from my Android Thing.

Suggest adding an option for sort order, freezing cell indices when a cell is selected, or just add to bottom.

Can I set baud rate from ios?

My application, I have used adafruit SDK for the communicate ICE device. it works fine but for some time its provide me wrong output. (means not whole OR Incomplete).

baud rate help for me? if yes then please provide me how can I change it?

Thanks in advanced.

How to change device name "Adafruit Bluefruit LE" to "My Device".

Hello Team (@martymcguire , @tannewt , @brennen , @microbuilder , @jwcooper ),

I am working on Adafruit Bluefruit LE UART Friend - Bluetooth Low Energy (BLE). I have successfully implemented code for the communication with the device and it works well. I want to change the name which appears in the device search list. It displays Adafruit Bluefruit LE. I have tried the following way but not work for me.

# Read the current device name
AT+GAPDEVNAME
UART
OK
 
# Update the device name to 'BLEFriend'
AT+GAPDEVNAME=BLEFriend
OK
# Reset to take effect
ATZ
OK

Please let me know what's wrong with me. Is there any other way to do that?
Thanks for your support.

Thanks regards,
Ilesh

RSSI Value not updating once connected

Is there anyway to request a RSSI value update once connected to a peripheral?

If I print the RSSI value once connected to the device, it gives me the same value - even if I reset the peripheral.

Unclear if UART terminal is compatible with bluefruit 52832

Is the UART terminal compatible with the new adafruit 52832 feather board? I ask because this post cites the iOS app but it also says you should custom build your own UART communication and that the api for the 52832 is different from the 51822 model (no 32u4 chip).

App not run on macbook

after installing latest xcode when i am build this code it give me error (chart,dfu error), i want to know that is it still working on new xcode?

Sending more than 20 bytes via UART

Hi! I would love to have the ability to send UART messages longer than 20 bytes from the Bluefruit Connect app (iOS/macOS, version 3.6.1). Currently messages over 20 bytes do not appear to get sent to the peripheral.

This doesn't appear to be an issue for the old Bluefruit LE Connect for Mac0S (version 2.2.2), which sends longer messages just fine.

Uart publish to more than a single Adafruit IO feed

The Android (and iOS) app can only publish to one Adafruit IO feed. How can one publish to two (or more) instead?

As recommended in the Adafruit IO forum, we are using Adafruit Feather 32u4 Bluefruit LE with two different sensors (decibels, PM 2.5) connected to it, but found out yesterday on Discord help-with-adafruit-io that one can only publish the values of one sensor https://learn.adafruit.com/bluefruit-le-connect/mqtt

Can the app be enhanced to allow publishing to a second feed? Otherwise we'd have to use Adafruit Fona, which is costly for citizen science projects, and everyone already owns an Android (or iOS) smartphone, so using Bluefruit LE connect would be much better.

No Modules in iOS 15

I have the iPhone 13 ProMax and the app does not seem to want to work, I have removed and reinstalled it. I also have an iPhone 8 on 14.7 and it has no issues with the app...

IMG_0105

Swift 3.0?

Just wondering if you guys intend on updating the project or if its retired, are there any other examples on how to connect to bluefruit through iOS that are currently functioning? thanks.

None of your accounts are a member of '2X94RM7457'

When I run the code on Xcode it has this below errors.
I have paid apple account. What should I do to avoid this errors.

Thank you very much

Showing Recent Issues
Check dependencies

None of your accounts are a member of '2X94RM7457': An unexpected error occurred. Xcode cannot find a team matching '2X94RM7457'.
No profiles for 'com.adafruit.bluefruitconnect.watchkitapp.watchkitextension' were found: Xcode couldn't find a provisioning profile matching 'com.adafruit.bluefruitconnect.watchkitapp.watchkitextension'.
Code signing is required for product type 'WatchKit Extension' in SDK 'watchOS 3.2'

info file issue

App is running on simulator but not on real device and also not archieve. whenever i am trying to running on real device it give me following error,

** #The value of CFBundleShortVersionString in your WatchKit app's Info.plist (3.6.2) does not match the value in your companion app's Info.plist (3.7.0). These values are required to match.**

could you please help me out.

what is init file?

HI,
I am trying to update firmware OTA. The bluefruit LE app is asking for an init file with hex file.

What is init file and how to generate in arduino IDE ?

Thank you

'Adafruit_Bluefruit_LE_Connect-Swift.h' file not found

Bluefruit_LE_Connect_v2-master/bluefruitconnect/Utils/Updater/FirmwareUpdater.m:16:13: 'Adafruit_Bluefruit_LE_Connect-Swift.h' file not found

Bluefruit_LE_Connect_v2-master/bluefruitconnect/Utils/Updater/ReleasesParser.m:13:9: 'Adafruit_Bluefruit_LE_Connect-Swift.h' file not found

I don't believe these files exist in the project.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.