External Accessory

RSS for tag

Communicate with accessories connected to a device by the Apple Lightning connector or through Bluetooth using External Accessory.

External Accessory Documentation

Posts under External Accessory tag

109 Posts
Sort by:
Post not yet marked as solved
32 Answers
6.7k Views
Whelp, I learned a lovely lesson about Lacie today. Their customer driver extensions on MacOS are ultimately as bad as I figured they would be and it seems to have bitten them in the ***. It seems their current drivers aren't compatible with M1 Mac minis (and I haven't seen a single post/article mentioning this). I was planning on migrating my Plex server from an i3 Mac mini to an M1 based device, but now I have to reshuffle my setup with another one of my computers due to lack of driver compatibility (and no advertised lack of support). I'm seriously considering getting rid of my Lacie 6Big at this point and swapping it out for an OWC thunderbolt 3 rack supported DAC. -\_-. I'm hoping other people just read this because honestly, I have nothing but nasty remarks towards Lacie in this regarding considering their #1 use for their RAIDs involves the people who will be buying M1 Macs. Does anyone have a workaround for this?
Posted Last updated
.
Post not yet marked as solved
0 Answers
23 Views
I have a Mac mini M1, version 12,5 Beta, with 2 monitors. When I shutdown my monitors for some time, ( for 10 minutes or all night) when I turn on, all the windows are gone to the main screen..... What can I do?? Thanks
Posted
by MacFree.
Last updated
.
Post not yet marked as solved
0 Answers
34 Views
I was wondering if it is possible to use the bluetooth API on iPadOS to let an app become an emulated "bluetooth speaker/car". I want to make an app where an iPhone or Android phone can connect to it via bluetooth so the app can play the audio from the phone, and receive and handle calls just like a car can play audio and handle calls and display call information via bluetooth. I would also like to know if the app could also get contact information from the phone over bluetooth. If it is possible to do so, how? I would love a friendly nudge in the right direction :)
Posted
by krirogn.
Last updated
.
Post not yet marked as solved
0 Answers
79 Views
I've got an external SD card reader connected to my 2020 MacBook Air M1 via USBC. The drive shows up on Disk Utility but it fails to mount the SD Card in the reader. Using the same SD Card reader in an identical MacBook Air running Monterey it mounts it without an issue. This seem to affect more people - https://www.reddit.com/r/MacOSBeta/comments/vavdx0/anyone_having_problems_with_macos_130_beta/ Any ideas how to enable macOS to read from the device?
Posted
by armanddp.
Last updated
.
Post marked as solved
1 Answers
218 Views
We have a custom accessory using iAP over Bluetooth classic (BR/EDR), and have recently noticed an unexpected wireless performance issue that wasn't there before. We haven't changed the firmware, and the nature of the bug strongly suggests it isn't anything on our end. The problem occurs in two different apps with very different codebases; one is our production app, which a large, complex Swift app for iPads. The second is a barebones test app that simply exercises the accessory to measure throughput. These apps have been in use for well over a year, and the test app has had no changes to speak of in that time. Neither app experienced this issue before (at the latest) iOS 15. Basically, as soon as a toggle switch in the test app is enabled, the ExternalAccessory data stream is opened and a single command is sent to the accessory which instructs it to begin streaming data at roughly 7500 bytes/second. Normally, this throughput rate is easily achieved. However, when the problem occurs, the actual throughput varies wildly, averaging about 60-70% of the target rate. But the problem only occurs for 20 seconds after the app enters the foreground, and then the data stream stabilizes at full throughput. Nothing changes in the app or on the accessory during this time. I have run dozens of tests, and the problem and timing are always the same: The app exhibits poor Bluetooth throughput for 20 seconds after entering the foreground. Freshly running the app or switching to the running app from a different app both trigger the problem. Waiting to open the iAP connection for 20 seconds after foregrounding the app results in expected (good) throughput the whole time. Disconnecting and reconnecting the accessory does not trigger the problem. I'm not sure what else to test. I expect the same results could be seen with any Bluetooth iAP accessory pushing that much data right after its associated app enters the foreground. Note, we have a different hardware variant in development which uses Bluetooth Low Energy and CoreBluetooth, and it has no such problem. It works perfectly all the time with the exact same testing app and data stream, just pushed over GATT instead of iAP. Has anyone encountered similar symptoms with iOS 15.x or anything else?
Posted
by jrowberg.
Last updated
.
Post not yet marked as solved
0 Answers
97 Views
After updating a device to iOS 16 beta 1, I've noticed some changes to how Bluetooth profiles behave for certain functions. Specific examples include: Message Access Profile -> The SetMessageStatus function returns "OBEX_BAD_REQUEST" where it didn't before 02-00-4E-01-00-23-00-42-00-36-00-42-00-38-00-42-00-37-00-30-00-37-00-42-00-39-00-41-00-38-00-34-00-33-00-45-00-00-42-00-16-78-2D-62-74-2F-6D-65-73-73-61-67-65-53-74-61-74-75-73-00-49-00-04-30-4C-00-09-17-01-00-18-01-01-CB-08-60-5E-20 Message Access Profile -> Getting Message Listings from the sent folder...previously I was able to retrieve messages here but am no longer able to. It would be nice if the details of any changes were noted so appropriate updates can be made. Would also be nice if Apple finally moved off of version 1.2 or whatever so I can get Conversation Listings/Conversation ID from the device. We can dream, can't we? Thanks, -Drew
Posted Last updated
.
Post not yet marked as solved
1 Answers
128 Views
I've been working on an application that runs on both iOS and iPadOS. Recently, I found a lot of new updates within iOS 13.4 where you're able to do more with indirect pointer interactions. But I'm running into an issue with trying to change the pointer style for iOS with UIPointerShape styleWithShape. Currently for iPadOS, I'm using a BezierPath to change the mouse cursor to a pointer which works, but this change doesn't work on iOS. I was wondering if anyone else was experiencing this issue, or is customizing the UIPointerShape with UIPointerStyle only limited to iPadOS for the momenet. Also, I noticed by default on iPadOS (15.4.1) when a bluetooth mouse is connected the cursor appears right away. But on iOS, I have to enable "Assistive Touch". Is this by design?
Posted
by jhall7224.
Last updated
.
Post not yet marked as solved
20 Answers
16k Views
Prior to downloading and installing Mac OS Big Sur, I was able to connect my 2020 Macbook pro to any HDMI monitor/tv. Specifically I would mostly use a Dell se2717 monitor. It would connect within a few seconds and there was never any issues. Once downloaded and installed Big Sur to my computer it no longer recognized any HDMI monitor/tv. I have tried different adapters to connect the HDMI cable to my USB-C ports; different USB-C ports with all the adapters; and tried every trouble shoot I could find from Apple, Dell, and various websites. Is there anything I can do to fix this issue?
Posted Last updated
.
Post not yet marked as solved
0 Answers
121 Views
Hi, I'm looking at creating an app that monitors a specific HomeKit contact sensor and when it opens have it trigger different notification depending on how many times it's been opened within 24 hours. I've read conflicting information if that is possible within HomeKit due to security. Is it possible to read a HomeKit accessory like that? If so do you have any suggestions on how to? Thank you!
Posted
by JonBinary.
Last updated
.
Post not yet marked as solved
1 Answers
341 Views
We are using a vendor-provided SDK to access their hardware through EA framework and intermittently the EA framework streams stop working (in particular, the input stream reports 0 for hasAvailableBytes). In some cases, this situation persists until we detach the device and reattach (this is via a lightning connector). After installing the IAPD debug profile and retrieving logs, we notice a few interesting log entries from the syslog we retrieve off the tablet. I am trying to understand and make sense of this and determine how this can be fixed. Anyone have a clue? default 2021-08-20 19:49:09.299659 +0300 accessoryd ERROR: iAP2LinkDeviceActionSendRST: iAP2 Link Layer reset triggered! (state: 5) default 2021-08-20 19:49:11.342001 +0300 accessoryd ERROR: iAP2LinkQueueSendDataWithSentCallback:4410 ERROR: Invalid session(0)! error 2021-08-20 19:49:11.342005 +0300 accessoryd Unable to queue 30 ea bytes for eaSession 50 default 2021-08-20 19:49:12.806935 +0300 Tablet [C1143] event: client:data_stall @3.486s info 2021-08-20 19:49:12.809195 +0300 Tablet nw_connection_report_symptom_on_nw_queue [C1143] reported Data stall symptom
Posted
by gwachobt.
Last updated
.
Post not yet marked as solved
0 Answers
117 Views
I'm developing a BLE app with the guideline below. (https://developer.apple.com/accessories/Accessory-Design-Guidelines.pdf) According to section 40.3 in the guideline, the use of ADV_DIRECT_IND is not a good idea. I'm not sure the reason but it seems to be the rule for peripheral devices. I think it's okay to connect my app(central device) to peripheral devices that transmit ADV_DIRECT_IND in an advertising packet. Is my understanding correct?
Posted
by rb_kani.
Last updated
.
Post not yet marked as solved
1 Answers
153 Views
Hi there! I'm currently new to Mac OS dev (coming from a history of Linux dev). I have an external BT keyboard and a couple keys are mapped differently than my Mac keyboard (§ to ` for example). I'm wondering if it's possible to write a kernel extension that detects the key sent from the BT keyboard and remap the key code. I don't really know whether this is possible and if it is, where to look in the ecosystem. It's a bit different from Linux. Thank you!
Posted Last updated
.
Post not yet marked as solved
0 Answers
145 Views
My Logi devices were working perfectly well for the last 2 years, but after recently upgrading to macOS Monterey 12.4 (21F79), these devices are not showing up in the list of Bluetooth devices, its not getting discovered, can anyone help to resolve this issue.
Posted
by Partha-J.
Last updated
.
Post not yet marked as solved
0 Answers
174 Views
hi, I am developing an accessory device which iphone connects to over BLE. meaning the accessory device is a peripheral and the mobile is central. I would like to enable the user to rename the GAP name of the accessory via IOS bluetooth settings. As seen in the link below. I have verified that I have write permissions for the gap name charecteristic on the accessory. I connect to the peripheral, press "i" on IOS bluetooth settings but am unable to rename (as if I have only read permissions). what am I missing? what else need to be configured? Is this option only available for bluetooth classic devices? thanks alot in advance! https://www.businessinsider.com/how-to-change-bluetooth-name-on-iphone
Posted
by dit8.
Last updated
.
Post not yet marked as solved
0 Answers
129 Views
Hello, I have a general question to ask about an implementation of a protocol my company will need. On a high level, we're implementing an update system for a device that will have a Bluetooth connection with the phone. To update the firmware of the device, we will send a HTTP request to a server and the server will respond with the new firmware of the device. Then to minimise the complexity we would want to simply parse the response and immediately transmit it as a byte array over a Bluetooth connection to the device. The size of this updated firmware would be around 40MB. My question is do you think this type of data transfer could be done easily using swift, and if it can be done easily. Could you point to some examples where it has been done since I was struggling to find something similar online? Thank you for your answers in advance.
Posted Last updated
.
Post not yet marked as solved
4 Answers
444 Views
We use External accessories framework for Bluetooth communication with medical equipment.  Mobile App was in Foreground but iOS (15.5 beta) triggered AppDelegage callback applicationDidEnterBackground event, when external accessories framework establish the connection to or disconnect from the medical equipment.  iOS should trigger this event only when the user moves application to background. We encounter this issue in iOS 15.5 Beta version, which seems to be iOS 15.5 beta issue.
Posted
by Jay2021.
Last updated
.