问题标签 [nrf52]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - nRF52840 - Android Kotlin 应用程序:16 位 UUID 的问题
我正在使用 BLE 协议在 nRF52840 和 Android 智能手机之间开发帧交换序列。
nRF52840 公开的服务具有以下 16 位 UUID:EB7A
在我的 Android 应用程序中,如果我只想检索具有此服务的 BLE 设备,我需要像这样初始化过滤器:
但是,如果我想写这个服务的一个特性,我必须使用下面的 UUID:
我不明白为什么我不能使用与读/写操作相同的 UUID 进行过滤,你能帮帮我吗?
ios - 读取时 BLE 断开连接,不返回任何内容
我正在使用 CoreBluetooth 与 nrf52 ble 进行通信,我想保护我的应用程序以防出现可能的崩溃或错误,例如当您想从特性中读取并且此特性不返回任何内容时,在此示例中,通常 CoreBluetooth 有一个计时器,所以在当与 ble 的通信断开时,我的问题是:可以在断开与蓝牙的连接之前取消读取请求。或者是否存在回调错误,允许我在应用程序与蓝牙断开连接之前控制情况
我的代码:
如果 Characteristic 返回一个值,结果应该出现在这里
arduino - I2C 通信似乎过载或受阻
我正在开发一个带有 Controllino Maxi Automation、Adafruit Feather nRF52840 Express 和多个传感器和显示器的 Arduino 项目。到目前为止的设置是 Controllino 是 i2c 主机。Adafruit Feather 是一个 i2c 从站,它从 Controllino 获取数据以通过 BLE 发送,并通过 i2c 响应从 BLE 接收的数据。
到目前为止,一切都很顺利,但现在我开始连接我的 7 个压力传感器,事情变得非常奇怪。连接羽毛时,我无法使用 i2c 扫描仪找到任何传感器。当我移除 Feather 时,扫描仪可以毫无问题地找到所有东西。
从我所见,我猜想 Controllino 和 Feather 之间的持续请求/响应使 i2c 总线过载/崩溃,但我真的不知道。
目前,每次主循环运行时我都在请求和响应,没有延迟。如果真的是过载/过多的通信问题,解决这个问题的好做法是什么?或者也许有一种不同/更好的方法可以将 Controllino <-> Feather Communication 与 i2c 总线分开?
javascript - Web 蓝牙:无法将 BLE 设备与具有 Live Server VS Code 扩展的移动设备配对
我是 Web 开发领域的初学者。我想通过网页将 BLE 设备 (NRF52840 DK) 与我的移动设备配对。我测试了一个 Web 蓝牙示例,它在我的 PC 上运行良好,如下图所示:
将我的 PC (Chrome) 与 BLE 设备成功配对
我是通过 VS Code 上流行的扩展 Live Server 完成的。当我尝试使用我的 IP 和端口访问我的手机 (Android) 上的该页面并按下按钮时,什么也没发生。
将我的手机 (Chrome) 与 BLE 设备配对失败
有什么我没有考虑到的吗?
这是 HTML 和 JS 代码:
android - NRF52840与Android之间的通信
我正在研究 nRF52840、nRF5_SDK_15.2.0、pca10056、usbd_cdc_acm
我现在可以与PC通信nrf52840,但是我无法将nrf52840连接到android,Android识别设备,但我们无法通信
我们可以与android正常通信还是需要一些特殊的设置。
bluetooth-lowenergy - NRF BLE 芯片,带绑定 - NoInputNoOutput 模式下的 bt-agent 不能“忘记”设备
在一个新地方的第一个小项目,我遇到了一些麻烦 - 希望我能得到一些想法。我们有一个使用 NRF 芯片的 BLE 设备,我们刚刚启用了安全和绑定。我们希望设置我们的 linux 测试装置,以便设备可以配对和绑定,而无需操作员接受每个设备的绑定请求。在现场,最终用户至少需要将设备与智能手机绑定一次。
我使用 bt-agent --compatibility=NoInputNoOutput 设置了一个代理,如下所述: https ://www.kynetics.com/docs/2018/pairing_agents_bluez/
在我的 linux 桌面(Ubuntu 20.10)上,无需用户交互,绑定就可以很好地工作。问题是,当我移除代理时,我曾希望绑定过程能够恢复正常。它没有——它仍然不需要用户交互来建立绑定。在我“忘记”设备后,从我的 Android 手机完成的类似操作按预期工作。
我正在寻找更多关于如何在我的 linux 计算机上重置此设备的绑定/配对的想法,以便我可以轻松地在需要用户输入和不需要用户输入之间来回切换(用于测试和演示目的)。我尝试了以下方法:
- 在 /var/lib/bluetooth//cache 中删除我的设备的缓存条目
- 使用 bluetoothctl => remove aa:bb:cc:dd:ee:ff 删除设备
- 使用 bluetoothctl => agent off 删除所有代理(直到没有更多代理保留)
- 可能还有其他一些现在没有想到的事情
无论如何,当我在我的蓝牙列表中单击它(或选择在 bluetoothctl 中连接)时,设备会自动绑定。关于如何将我的 linux 盒子返回到需要用户交互以进行绑定过程的状态的任何其他想法?
太感谢了
embedded - nrf52840 开发套件上的纠错码 (BCH)
我必须执行一些轻量级纠错代码(最好是 BCH)来比较并随后纠正两个二进制数组之间的不匹配。我正在开发 nrf52840 开发套件并使用 Contiki-ng 作为操作系统。我不得不问是否可以实现 BCH ECC 代码,类似于此,BCH 代码。我还找到了segger 提供的emLib ECC - 嵌入式设备的位错误校正,所以我的问题是我是否可以轻松使用它。我不是嵌入式编程方面的专家,所以寻找一些简单的代码实现建议。
react-native - 我可以在使用 react native nordic dfu library 执行设备固件升级时发送额外的参数(唯一字符)吗?
我想知道我们是否可以在 startDFU() 方法期间发送一个唯一字符,以便设备可以先验证此字符,然后启动固件升级。这个库(React native nordic dfu)可以做到这一点吗?
ios - nRF52 服务发现不会在 iOS 上发生
我在发现服务时遇到了一些问题。
它似乎可以毫无问题地连接到 Android,但在 iOS 上连接失败。从运行测试连接来看,似乎没有发现服务。在示例或文档中,我没有看到有关连接上此问题服务发现的任何信息。这是因为 gatt 服务的开发人员给我一个新服务的更新,所以我必须将 ipad 置于飞行模式,是否有针对此问题的编程解决方案?
有没有人有什么建议?
bluetooth - 与多个外围蓝牙设备建立连接后,Bluezero / BlueZ 变慢
我们有一个 Python 应用程序,它一次连接到 10 个 BLE 设备并执行制造测试。下面是测试的工作流程:
- 连接到 10 个设备中的第一个。
- 读取和写入一些特征,其中之一会重新启动外围设备
- 重新连接到设备 1,启用 1 个特性的通知,并监听约 170-200k 的数据
- 断开与设备 1 的连接,关闭设备 1,然后在下一个设备上重复步骤 1-3
随着我们在设备中的进展,每个设备的数据传输逐渐变慢,第一个设备很快,第二个设备稍微慢一些,等等,即使我们在执行测试后与每个设备断开连接。我们假设可能有一些与我们的使用相关的东西导致了这种减速,但是在查看了项目中相对少量的代码之后,我们无法解释 Python 代码中可能导致减速的任何内容。
我们尝试在测试时关闭每台设备以确保低干扰,从 Central 中删除缓存的设备,并在测试之间重新启动蓝牙服务。在测试了这些更改之后,sudo service bluetooth restart 是唯一可以缓解数据传输过程中延迟增长的解决方案。
我们正在寻找有关解决所描述情况或调试技术的任何想法。先感谢您!
使用的版本:Ubuntu 20.04、Bluezero 0.4.0、bluez 5.53"(已编辑)