Motion Sensor drift.

When reading the motion from the Siri Remote, using GController's motion.gravity,

I regularly see a large drift.

If that happens I have to hold my Remote Controller still for a few seconds, and then it suddenly snaps to the proper gravity vector.

Is anyone else seeing this behaviour as well?

Will this be improved before the product launch?


The code for reading the vector:

  GCController* controller = [ [ GCController controllers ] firstObject ];
  GCAcceleration acceleration = controller.motion.gravity;


Thanks,


bram

I am frequently seeing this if the AppleTV goes to the screen saver while the app is paused, then when I wake it back up gravity is notably incorrect for a few seconds, then snaps to what I expect. I seem to recall this was an issue with iPhones when they first got accelerometers, or maybe I'm wrong.

I have also noticed this issue, but with the userAcceleration property, not gravity. It makes some sense that if one is wrong then the other will be too. This will happen to me even if the tv has not gone to screen save and just during the middle of regular use/testing. Pretty frustrating.

If you're encountering something that's hindering your ability to develop your app please file a bug at https://bugreport.apple.com . The more details about what you're trying to do the better.

Also, please ensure your remote is updated to the latest firmware, which was part of Beta 2.


Check out the Bluetooth section of the release notes for instructions on updating the firmware:

https://developer.apple.com/library/prerelease/tvos/releasenotes/General/RN-tvOSSDK-9.0/index.html#//apple_ref/doc/uid/TP40016575

Please make sure you are running tvOS Beta 2, and that your Siri Remote has the latest firmware.


To check the version, go to Settings -> Remotes & Devices -> Bluetooth. Click on your remote and check the version. It should have 241.


If not, you have two options:

-- Your remote will auto update over the course of the next several days. This update should be invisible to you.

-- You can force an update using the steps below:



1. Navigate to Settings

2. Choose Remotes and Devices

3. Select Bluetooth in the Other Devices section

4. Make sure the “Remote” item is selected.



5. Press the Play/Pause button on the Remote four times quickly

6. Focus returns to the Remotes and Devices menu, up one level

If there is new firmware available, it will be downloaded in the background, and the Remote will be updated later. The process can take from 10 to 30 minutes.


When the firmware has completed updating, the Remote will restart, which takes around 30 seconds. During this 30s, no touch or button events will be sent.

Thank you for the reminder to file a radar. I would love to do so, but without some documentation of the problem I can't figure out a meaningful way to file the radar. I'm trying to capture the event in action to include with a radar.

I installed beta 2 when it was first available (several days ago) and several hours ago I tried to force the update, but my remote is still showing firmware as 0x232. Any other suggestions? Is there a way to reboot/power cycle the remote only?

The Console/syslog on the Apple TV should list the status of the firmware update when initiating it through the remote. That is visible in Xcode through Window-->Devices-->Apple TV-->Up arrow. Could you try repeating the above steps again, and see if the console logs yield any clues?

I rebooted the AppleTV, and manually started the update


Oct 2 10:20:03 Apple-TV PineBoard[46] <Notice>: #T:[0x16e087000] #Notice #AccessoryFirmwareUpdate : Manually starting update...

Oct 2 10:20:03 Apple-TV PineBoard[46] <Notice>: #T:[0x16e087000] #Notice #AccessoryFirmwareUpdate : Setting up operation for Bluetooth remote firmware update

Oct 2 10:20:03 Apple-TV PineBoard[46] <Notice>: #T:[0x16e087000] #Notice #AccessoryFirmwareUpdate : Start operation

Oct 2 10:20:03 Apple-TV PineBoard[46] <Notice>: #T:[0x16e087000] #Notice #AccessoryFirmwareUpdate : Holding power assertion for Bluetooth Remote firmware update

Oct 2 10:20:03 Apple-TV PineBoard[46] <Notice>: #T:[0x16e247000] #Notice #AccessoryFirmwareUpdate : MAU operation has started

Oct 2 10:20:03 Apple-TV PineBoard[46] <Notice>: #T:[0x16e247000] #Notice #AccessoryFirmwareUpdate : Setting up Mobile Accessory Updater

Oct 2 10:20:03 Apple-TV fud[45] <Notice>: Successfully registered client 'com.apple.fud.modalclientprocess' for identifier 'com.apple.MobileAccessoryUpdater.async.nonui'

Oct 2 10:20:03 Apple-TV PineBoard[46] <Notice>: #T:[0x16e247000] #Notice #AccessoryFirmwareUpdate : Notifying MAU

Oct 2 10:20:03 Apple-TV fud[45] <Notice>: Stream event happened for filter: com.apple.mau.plugin.wirelessremotefirmwareupdater

Oct 2 10:20:03 Apple-TV fud[45] <Notice>: -[FudIpcDispatch dispatchStateMachineEvent:] - filter name: com.apple.mau.plugin.wirelessremotefirmwareupdater - exclusion group - com.apple.mau.plugin.wirelessremotefirmwareupdater

Oct 2 10:20:03 Apple-TV fud[45] <Notice>: ExclusionGroupFilter: com.apple.mau.plugin.wirelessremotefirmwareupdater (com.apple.mau.plugin.wirelessremotefirmwareupdater)

Oct 2 10:20:03 Apple-TV fud[45] <Notice>: State machine in exclusion group (com.apple.mau.plugin.wirelessremotefirmwareupdater) is busy, dropping stream event...

Oct 2 10:20:03 Apple-TV TVSettings[139] <Warning>: BTM: setting pairing disabled

Oct 2 10:20:03 Apple-TV TVSettings[139] <Warning>: BTM: disabling device scanning

Oct 2 10:20:03 Apple-TV TVSettings[139] <Warning>: BTM: setting discoverable status disabled

Oct 2 10:20:04 Apple-TV PineBoard[46] <Notice>: #T:[0x16e2d3000] #Notice #AccessoryFirmwareUpdate : --- running Prepare [8.000000]

Oct 2 10:20:06 Apple-TV PineBoard[46] <Notice>: #T:[0x16e35f000] #Notice #AccessoryFirmwareUpdate : --- running Prepare [9.000000]

... [REMOVED]...

Oct 2 10:29:36 Apple-TV PineBoard[46] <Notice>: #T:[0x16e2d3000] #Notice #AccessoryFirmwareUpdate : --- running Prepare [98.000000]

Oct 2 10:29:38 Apple-TV PineBoard[46] <Notice>: #T:[0x16e61b000] #Notice #AccessoryFirmwareUpdate : --- running Prepare [99.000000]

Oct 2 10:29:40 Apple-TV PineBoard[46] <Notice>: #T:[0x16e087000] #Notice #AccessoryFirmwareUpdate : --- running Prepare [99.000000]

Oct 2 10:29:41 Apple-TV PineBoard[46] <Notice>: #T:[0x16e2d3000] #Notice #AccessoryFirmwareUpdate : --- running Prepare [99.000000]

Oct 2 10:29:44 Apple-TV fud[45] <Notice>: -[FudStateMachine didRunStateWithInfo:]: reporting completion of step 'Prepare' to delegate

Oct 2 10:29:44 Apple-TV fud[45] <Notice>: Enabling stream events for suspended device class: com.apple.mau.plugin.wirelessremotefirmwareupdater

Oct 2 10:29:44 Apple-TV fud[45] <Notice>: -[FudStateMachine didRunStateWithInfo:]: transition from state FUD_STATE_DO_PREPARE to FUD_STATE_DO_APPLY

Oct 2 10:29:44 Apple-TV PineBoard[46] <Notice>: #T:[0x16e61b000] #Notice #AccessoryFirmwareUpdate : ------- 'com.apple.mau.plugin.wirelessremotefirmwareupdater' completed [SUCCESS] (Next step: Apply)

Oct 2 10:29:44 Apple-TV PineBoard[46] <Notice>: #T:[0x16e247000] #Notice #AccessoryFirmwareUpdate : Running next step: (null)

Oct 2 10:29:44 Apple-TV PineBoard[46] <Error>: Can't send command since filter is not set, command:Continue

Oct 2 10:31:07 Apple-TV TVMusic[131] <Warning>: #T:[0x16e6a7000] #Warning #SYSTEM : Can't perform query; cloud data client is not connected and synced.

Oct 2 10:31:07 Apple-TV TVMovies[129] <Error>: #T:[0x16e3eb000] #Error #SYSTEM : Error purging cache. no such column: lastupdated

Oct 2 10:31:07 Apple-TV TVMovies[129] <Error>: #T:[0x16e3eb000] #Error #SYSTEM : Error purging cache. no such column: lastupdated

Oct 2 10:31:07 Apple-TV TVShows[130] <Error>: #T:[0x16e087000] #Error #SYSTEM : Error purging cache. no such column: lastupdated

Oct 2 10:31:07 Apple-TV TVShows[130] <Error>: #T:[0x16e087000] #Error #SYSTEM : Error purging cache. no such column: lastupdated

Oct 2 10:33:16 Apple-TV PineBoard[46] <Warning>: BTM: attaching to BTServer

Oct 2 10:33:16 Apple-TV PineBoard[46] <Notice>: CoreControl - UsageReportingData

Oct 2 10:33:16 Apple-TV addaily[146] <Warning>: addaily started

Oct 2 10:33:16 Apple-TV addaily[146] <Warning>: notified of logging status, waiting for activate app info

Oct 2 10:33:16 Apple-TV UserEventAgent[23] <Warning>: gathering app info for addaily

Oct 2 10:33:16 Apple-TV UserEventAgent[23] <Warning>: sending 1 app infos to addaily

Oct 2 10:33:16 Apple-TV addaily[146] <Warning>: addaily got requestedAAI:

(

{

adamID = 0;

arch = 2;

bundle = "com.apple.HeadBoard";

uuid = "60D1EAEE-C6A7-3BFD-849D-3499B69D8E20";

version = "1.0 (1.0)";

}

)

Oct 2 10:33:16 Apple-TV addaily[146] <Warning>: Day unchanged since last run

Oct 2 10:33:16 Apple-TV OTACrashCopier[147] <Notice>: (Warn ) <OTACrashCopierController.m __42-[OTACrashCopierController handleRequest:]_block_invoke:552> Creating Power Assertion for 600 secs

Oct 2 10:33:16 Apple-TV OTACrashCopier[147] <Notice>: (Warn ) <OTALogSubmissionOperation.m -[OTALogSubmissionOperation postToServer:forRouting:ofLogs:withConnection:usingParams:]:152> 'job-1-da2' sending request of 0 bytes

Oct 2 10:33:17 Apple-TV OTACrashCopier[147] <Notice>: (Error) <OTALog.m -[OTALog initWithPath:forRouting:]:114> Logfile '/var/mobile/Library/Logs/CrashReporter/log-sessions-2015-10-02-101814.session' failed to open (errno 13)

Oct 2 10:33:17 Apple-TV OTACrashCopier[147] <Notice>: (Warn ) <OTALogSubmissionOperation.m -[OTALogSubmissionOperation postToServer:forRouting:ofLogs:withConnection:usingParams:]:152> 'job-2-awd' sending request of 2418 bytes

Oct 2 10:33:17 Apple-TV OTACrashCopier[147] <Notice>: (Warn ) <OTALogSubmissionOperation.m -[OTALogSubmissionOperation postToServer:forRouting:ofLogs:withConnection:usingParams:]:152> 'job-3-anon' sending request of 309 bytes

Oct 2 10:33:21 Apple-TV mediaserverd[26] <Error>: <<<< CENTRAL >>>> playercentral_CopyProperty: returning err = -12784

Oct 2 10:33:21 Apple-TV mediaserverd[26] <Error>: <<<< CENTRAL >>>> playercentral_CopyProperty: returning err = -12784

Oct 2 10:33:21 Apple-TV mediaserverd[26] <Error>: <<<< CENTRAL >>>> playercentral_CopyProperty: returning err = -12784

Oct 2 10:33:21 Apple-TV mediaserverd[26] <Error>: <<<< CENTRAL >>>> playercentral_CopyProperty: returning err = -12784

Oct 2 10:33:23 Apple-TV mediaserverd[26] <Error>: [10:33:23.753] <<<< Boss >>>> figPlaybackBossPrerollCompleted: unexpected preroll-complete notification

Oct 2 10:33:23 Apple-TV mediaserverd[26] <Error>: <<<< CENTRAL >>>> playercentral_CopyProperty: returning err = -12784

Oct 2 10:33:23 Apple-TV mediaserverd[26] <Error>: <<<< CENTRAL >>>> playercentral_CopyProperty: returning err = -12784

Oct 2 10:33:23 Apple-TV mediaserverd[26] <Notice>: '' (pid = 140) setting DiscoveryMode = DiscoveryMode_None, currentDiscoveryMode = DiscoveryMode_None

Oct 2 10:33:26 Apple-TV addaily[146] <Warning>: addaily ended

Oct 2 10:33:27 Apple-TV OTACrashCopier[147] <Warning>: Scheduling on exit

Oct 2 10:35:39 Apple-TV PineBoard[46] <Notice>: #T:[Main] #Notice #AccessoryFirmwareUpdate : Background task disabled

Oct 2 10:35:39 Apple-TV PineBoard[46] <Notice>: #T:[Main] #Notice #AccessoryFirmwareUpdate : Manual update in progress. Keep task.

Oct 2 10:35:39 Apple-TV UserEventAgent[23] <Warning>: Tracking com.apple.TVPhotos (via activity)

Oct 2 10:35:39 Apple-TV UserEventAgent[23] <Warning>: Tracking com.apple.HeadBoard (via activity)

Oct 2 10:35:39 Apple-TV UserEventAgent[23] <Warning>: Tracking com.apple.TVSystemBulletinService (via activity)

Oct 2 10:35:39 Apple-TV UserEventAgent[23] <Warning>: Tracking com.apple.TVMusic (via activity)

Oct 2 10:35:39 Apple-TV PineBoard[46] <Notice>: #T:[Main] #Notice #PBAppLaunchLog : Configure for Launch Running App

Oct 2 10:35:39 Apple-TV PineBoard[46] <Notice>: #T:[Main] #Notice #PBAppLaunchLog : Transition Controller from: com.apple.TVIdleScreen, to: com.apple.TVSettings, switcher: NO, app running: YES

Oct 2 10:35:42 Apple-TV mediaserverd[26] <Error>: [10:35:42.027] <<<< Boss >>>> figPlaybackBossPrerollCompleted: unexpected preroll-complete notification

Oct 2 10:35:42 Apple-TV mediaserverd[26] <Notice>: '' (pid = 140) setting DiscoveryMode = DiscoveryMode_None, currentDiscoveryMode = DiscoveryMode_None

Oct 2 10:35:42 Apple-TV mediaserverd[26] <Error>: <<<< CENTRAL >>>> playercentral_CopyProperty: returning err = -12784

Oct 2 10:35:42 Apple-TV mediaserverd[26] <Notice>: '' (pid = 140) setting DiscoveryMode = DiscoveryMode_None, currentDiscoveryMode = DiscoveryMode_None

Oct 2 10:35:56 Apple-TV TVSettings[139] <Error>: [CoreBluetooth] WARNING: <CBCentralManager: 0x15dfcf1e0> is disabling duplicate filtering, but is using the default queue (main thread) for delegate events

Oct 2 10:35:56 Apple-TV TVSettings[139] <Warning>: BTM: setting pairing enabled



Then, over the next hour, mixed between other non "AccessoryFirmwareUpdate" log notes are:


Oct 2 12:06:32 Apple-TV PineBoard[46] <Notice>: #T:[Main] #Notice #AccessoryFirmwareUpdate : Background task disabled

Oct 2 12:06:32 Apple-TV PineBoard[46] <Notice>: #T:[Main] #Notice #AccessoryFirmwareUpdate : Manual update in progress. Keep task.


But Settings still says remote firmware is 0x232

The GM build of tvOS finally updated the Siri remote for me and the motion drift got noticably better.

Motion Sensor drift.
 
 
Q