{"action":"closed","number":149,"pull_request":{"url":"https://api.github.com/repos/Arduboy/Arduboy/pulls/149","id":79576877,"html_url":"https://github.com/Arduboy/Arduboy/pull/149","diff_url":"https://github.com/Arduboy/Arduboy/pull/149.diff","patch_url":"https://github.com/Arduboy/Arduboy/pull/149.patch","issue_url":"https://api.github.com/repos/Arduboy/Arduboy/issues/149","number":149,"state":"closed","locked":false,"title":"Fix paintScreen() for IDE 1.6.10","user":{"login":"MLXXXp","id":8151717,"avatar_url":"https://avatars.githubusercontent.com/u/8151717?v=3","gravatar_id":"","url":"https://api.github.com/users/MLXXXp","html_url":"https://github.com/MLXXXp","followers_url":"https://api.github.com/users/MLXXXp/followers","following_url":"https://api.github.com/users/MLXXXp/following{/other_user}","gists_url":"https://api.github.com/users/MLXXXp/gists{/gist_id}","starred_url":"https://api.github.com/users/MLXXXp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MLXXXp/subscriptions","organizations_url":"https://api.github.com/users/MLXXXp/orgs","repos_url":"https://api.github.com/users/MLXXXp/repos","events_url":"https://api.github.com/users/MLXXXp/events{/privacy}","received_events_url":"https://api.github.com/users/MLXXXp/received_events","type":"User","site_admin":false},"body":"Arduino IDE 1.6.10 uses a new version of the compiler toolchain. The compiler now generates more efficient code so that the instruction padding in function *paintScreen()*, used to create a delay so a byte can be shifted out over SPI, is no longer sufficient.\r\n\r\nThe problem could be solved by adding more pad instructions, but this doesn't eliminate the possibility that the same thing won't occur in the future.\r\n\r\nThis PR fixes the problem by waiting for the *SPIF* flag to indicate that the byte has been sent and the SPI controller is ready for a new one, instead of blindly using a delay to allow time for the byte to be sent.\r\n\r\nThis technique takes a bit longer to update the display. Previously the total time was 1.16 ms and now it's 1.42 ms (which is still shorter than using *SPI.transfer()* for each byte, which takes 2.58 ms). \r\n\r\nAlthough it appears to be a significant increase in time, overall it shouldn't have too much of an impact. A sketch that used 100% of the CPU time to render frames at 60 fps will now still run at 59 fps.\r\n","created_at":"2016-08-01T14:25:46Z","updated_at":"2016-08-04T20:14:23Z","closed_at":"2016-08-04T20:14:23Z","merged_at":"2016-08-04T20:14:23Z","merge_commit_sha":"ae3cf94f69157b1872e82e49cffbe18f33c46951","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/Arduboy/Arduboy/pulls/149/commits","review_comments_url":"https://api.github.com/repos/Arduboy/Arduboy/pulls/149/comments","review_comment_url":"https://api.github.com/repos/Arduboy/Arduboy/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Arduboy/Arduboy/issues/149/comments","statuses_url":"https://api.github.com/repos/Arduboy/Arduboy/statuses/7205e6ee49e2986b4fd809ca8ca933a6082d9684","head":{"label":"MLXXXp:paintScreen_fix","ref":"paintScreen_fix","sha":"7205e6ee49e2986b4fd809ca8ca933a6082d9684","user":{"login":"MLXXXp","id":8151717,"avatar_url":"https://avatars.githubusercontent.com/u/8151717?v=3","gravatar_id":"","url":"https://api.github.com/users/MLXXXp","html_url":"https://github.com/MLXXXp","followers_url":"https://api.github.com/users/MLXXXp/followers","following_url":"https://api.github.com/users/MLXXXp/following{/other_user}","gists_url":"https://api.github.com/users/MLXXXp/gists{/gist_id}","starred_url":"https://api.github.com/users/MLXXXp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MLXXXp/subscriptions","organizations_url":"https://api.github.com/users/MLXXXp/orgs","repos_url":"https://api.github.com/users/MLXXXp/repos","events_url":"https://api.github.com/users/MLXXXp/events{/privacy}","received_events_url":"https://api.github.com/users/MLXXXp/received_events","type":"User","site_admin":false},"repo":{"id":47628580,"name":"Arduboy","full_name":"MLXXXp/Arduboy","owner":{"login":"MLXXXp","id":8151717,"avatar_url":"https://avatars.githubusercontent.com/u/8151717?v=3","gravatar_id":"","url":"https://api.github.com/users/MLXXXp","html_url":"https://github.com/MLXXXp","followers_url":"https://api.github.com/users/MLXXXp/followers","following_url":"https://api.github.com/users/MLXXXp/following{/other_user}","gists_url":"https://api.github.com/users/MLXXXp/gists{/gist_id}","starred_url":"https://api.github.com/users/MLXXXp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MLXXXp/subscriptions","organizations_url":"https://api.github.com/users/MLXXXp/orgs","repos_url":"https://api.github.com/users/MLXXXp/repos","events_url":"https://api.github.com/users/MLXXXp/events{/privacy}","received_events_url":"https://api.github.com/users/MLXXXp/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/MLXXXp/Arduboy","description":"","fork":true,"url":"https://api.github.com/repos/MLXXXp/Arduboy","forks_url":"https://api.github.com/repos/MLXXXp/Arduboy/forks","keys_url":"https://api.github.com/repos/MLXXXp/Arduboy/keys{/key_id}","collaborators_url":"https://api.github.com/repos/MLXXXp/Arduboy/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/MLXXXp/Arduboy/teams","hooks_url":"https://api.github.com/repos/MLXXXp/Arduboy/hooks","issue_events_url":"https://api.github.com/repos/MLXXXp/Arduboy/issues/events{/number}","events_url":"https://api.github.com/repos/MLXXXp/Arduboy/events","assignees_url":"https://api.github.com/repos/MLXXXp/Arduboy/assignees{/user}","branches_url":"https://api.github.com/repos/MLXXXp/Arduboy/branches{/branch}","tags_url":"https://api.github.com/repos/MLXXXp/Arduboy/tags","blobs_url":"https://api.github.com/repos/MLXXXp/Arduboy/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/MLXXXp/Arduboy/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/MLXXXp/Arduboy/git/refs{/sha}","trees_url":"https://api.github.com/repos/MLXXXp/Arduboy/git/trees{/sha}","statuses_url":"https://api.github.com/repos/MLXXXp/Arduboy/statuses/{sha}","languages_url":"https://api.github.com/repos/MLXXXp/Arduboy/languages","stargazers_url":"https://api.github.com/repos/MLXXXp/Arduboy/stargazers","contributors_url":"https://api.github.com/repos/MLXXXp/Arduboy/contributors","subscribers_url":"https://api.github.com/repos/MLXXXp/Arduboy/subscribers","subscription_url":"https://api.github.com/repos/MLXXXp/Arduboy/subscription","commits_url":"https://api.github.com/repos/MLXXXp/Arduboy/commits{/sha}","git_commits_url":"https://api.github.com/repos/MLXXXp/Arduboy/git/commits{/sha}","comments_url":"https://api.github.com/repos/MLXXXp/Arduboy/comments{/number}","issue_comment_url":"https://api.github.com/repos/MLXXXp/Arduboy/issues/comments{/number}","contents_url":"https://api.github.com/repos/MLXXXp/Arduboy/contents/{+path}","compare_url":"https://api.github.com/repos/MLXXXp/Arduboy/compare/{base}...{head}","merges_url":"https://api.github.com/repos/MLXXXp/Arduboy/merges","archive_url":"https://api.github.com/repos/MLXXXp/Arduboy/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/MLXXXp/Arduboy/downloads","issues_url":"https://api.github.com/repos/MLXXXp/Arduboy/issues{/number}","pulls_url":"https://api.github.com/repos/MLXXXp/Arduboy/pulls{/number}","milestones_url":"https://api.github.com/repos/MLXXXp/Arduboy/milestones{/number}","notifications_url":"https://api.github.com/repos/MLXXXp/Arduboy/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/MLXXXp/Arduboy/labels{/name}","releases_url":"https://api.github.com/repos/MLXXXp/Arduboy/releases{/id}","deployments_url":"https://api.github.com/repos/MLXXXp/Arduboy/deployments","created_at":"2015-12-08T14:51:11Z","updated_at":"2016-04-03T13:45:12Z","pushed_at":"2016-08-03T10:16:21Z","git_url":"git://github.com/MLXXXp/Arduboy.git","ssh_url":"git@github.com:MLXXXp/Arduboy.git","clone_url":"https://github.com/MLXXXp/Arduboy.git","svn_url":"https://github.com/MLXXXp/Arduboy","homepage":null,"size":369,"stargazers_count":1,"watchers_count":1,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":1,"default_branch":"master"}},"base":{"label":"Arduboy:stable","ref":"stable","sha":"c869ab2d3cf3ff510d8318061d4c60632724a47a","user":{"login":"Arduboy","id":12143957,"avatar_url":"https://avatars.githubusercontent.com/u/12143957?v=3","gravatar_id":"","url":"https://api.github.com/users/Arduboy","html_url":"https://github.com/Arduboy","followers_url":"https://api.github.com/users/Arduboy/followers","following_url":"https://api.github.com/users/Arduboy/following{/other_user}","gists_url":"https://api.github.com/users/Arduboy/gists{/gist_id}","starred_url":"https://api.github.com/users/Arduboy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Arduboy/subscriptions","organizations_url":"https://api.github.com/users/Arduboy/orgs","repos_url":"https://api.github.com/users/Arduboy/repos","events_url":"https://api.github.com/users/Arduboy/events{/privacy}","received_events_url":"https://api.github.com/users/Arduboy/received_events","type":"User","site_admin":false},"repo":{"id":34890803,"name":"Arduboy","full_name":"Arduboy/Arduboy","owner":{"login":"Arduboy","id":12143957,"avatar_url":"https://avatars.githubusercontent.com/u/12143957?v=3","gravatar_id":"","url":"https://api.github.com/users/Arduboy","html_url":"https://github.com/Arduboy","followers_url":"https://api.github.com/users/Arduboy/followers","following_url":"https://api.github.com/users/Arduboy/following{/other_user}","gists_url":"https://api.github.com/users/Arduboy/gists{/gist_id}","starred_url":"https://api.github.com/users/Arduboy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Arduboy/subscriptions","organizations_url":"https://api.github.com/users/Arduboy/orgs","repos_url":"https://api.github.com/users/Arduboy/repos","events_url":"https://api.github.com/users/Arduboy/events{/privacy}","received_events_url":"https://api.github.com/users/Arduboy/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Arduboy/Arduboy","description":"Core library for the Arduboy.","fork":false,"url":"https://api.github.com/repos/Arduboy/Arduboy","forks_url":"https://api.github.com/repos/Arduboy/Arduboy/forks","keys_url":"https://api.github.com/repos/Arduboy/Arduboy/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Arduboy/Arduboy/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Arduboy/Arduboy/teams","hooks_url":"https://api.github.com/repos/Arduboy/Arduboy/hooks","issue_events_url":"https://api.github.com/repos/Arduboy/Arduboy/issues/events{/number}","events_url":"https://api.github.com/repos/Arduboy/Arduboy/events","assignees_url":"https://api.github.com/repos/Arduboy/Arduboy/assignees{/user}","branches_url":"https://api.github.com/repos/Arduboy/Arduboy/branches{/branch}","tags_url":"https://api.github.com/repos/Arduboy/Arduboy/tags","blobs_url":"https://api.github.com/repos/Arduboy/Arduboy/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Arduboy/Arduboy/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Arduboy/Arduboy/git/refs{/sha}","trees_url":"https://api.github.com/repos/Arduboy/Arduboy/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Arduboy/Arduboy/statuses/{sha}","languages_url":"https://api.github.com/repos/Arduboy/Arduboy/languages","stargazers_url":"https://api.github.com/repos/Arduboy/Arduboy/stargazers","contributors_url":"https://api.github.com/repos/Arduboy/Arduboy/contributors","subscribers_url":"https://api.github.com/repos/Arduboy/Arduboy/subscribers","subscription_url":"https://api.github.com/repos/Arduboy/Arduboy/subscription","commits_url":"https://api.github.com/repos/Arduboy/Arduboy/commits{/sha}","git_commits_url":"https://api.github.com/repos/Arduboy/Arduboy/git/commits{/sha}","comments_url":"https://api.github.com/repos/Arduboy/Arduboy/comments{/number}","issue_comment_url":"https://api.github.com/repos/Arduboy/Arduboy/issues/comments{/number}","contents_url":"https://api.github.com/repos/Arduboy/Arduboy/contents/{+path}","compare_url":"https://api.github.com/repos/Arduboy/Arduboy/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Arduboy/Arduboy/merges","archive_url":"https://api.github.com/repos/Arduboy/Arduboy/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Arduboy/Arduboy/downloads","issues_url":"https://api.github.com/repos/Arduboy/Arduboy/issues{/number}","pulls_url":"https://api.github.com/repos/Arduboy/Arduboy/pulls{/number}","milestones_url":"https://api.github.com/repos/Arduboy/Arduboy/milestones{/number}","notifications_url":"https://api.github.com/repos/Arduboy/Arduboy/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Arduboy/Arduboy/labels{/name}","releases_url":"https://api.github.com/repos/Arduboy/Arduboy/releases{/id}","deployments_url":"https://api.github.com/repos/Arduboy/Arduboy/deployments","created_at":"2015-05-01T05:22:28Z","updated_at":"2016-07-14T10:15:38Z","pushed_at":"2016-08-04T20:14:23Z","git_url":"git://github.com/Arduboy/Arduboy.git","ssh_url":"git@github.com:Arduboy/Arduboy.git","clone_url":"https://github.com/Arduboy/Arduboy.git","svn_url":"https://github.com/Arduboy/Arduboy","homepage":"https://www.arduboy.com","size":523,"stargazers_count":88,"watchers_count":88,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":36,"mirror_url":null,"open_issues_count":12,"forks":36,"open_issues":12,"watchers":88,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Arduboy/Arduboy/pulls/149"},"html":{"href":"https://github.com/Arduboy/Arduboy/pull/149"},"issue":{"href":"https://api.github.com/repos/Arduboy/Arduboy/issues/149"},"comments":{"href":"https://api.github.com/repos/Arduboy/Arduboy/issues/149/comments"},"review_comments":{"href":"https://api.github.com/repos/Arduboy/Arduboy/pulls/149/comments"},"review_comment":{"href":"https://api.github.com/repos/Arduboy/Arduboy/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Arduboy/Arduboy/pulls/149/commits"},"statuses":{"href":"https://api.github.com/repos/Arduboy/Arduboy/statuses/7205e6ee49e2986b4fd809ca8ca933a6082d9684"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"rogosher","id":10454476,"avatar_url":"https://avatars.githubusercontent.com/u/10454476?v=3","gravatar_id":"","url":"https://api.github.com/users/rogosher","html_url":"https://github.com/rogosher","followers_url":"https://api.github.com/users/rogosher/followers","following_url":"https://api.github.com/users/rogosher/following{/other_user}","gists_url":"https://api.github.com/users/rogosher/gists{/gist_id}","starred_url":"https://api.github.com/users/rogosher/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rogosher/subscriptions","organizations_url":"https://api.github.com/users/rogosher/orgs","repos_url":"https://api.github.com/users/rogosher/repos","events_url":"https://api.github.com/users/rogosher/events{/privacy}","received_events_url":"https://api.github.com/users/rogosher/received_events","type":"User","site_admin":false},"comments":0,"review_comments":0,"commits":4,"additions":42,"deletions":13,"changed_files":4}}
{"actor":{"display_login":"rogosher"}}