{"action":"created","issue":{"url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/10821","repository_url":"https://api.github.com/repos/MarlinFirmware/Marlin","labels_url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/10821/labels{/name}","comments_url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/10821/comments","events_url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/10821/events","html_url":"https://github.com/MarlinFirmware/Marlin/pull/10821","id":325544393,"number":10821,"title":"[HAL][Native] Debug build for Linux","user":{"login":"p3p","id":24342,"avatar_url":"https://avatars1.githubusercontent.com/u/24342?v=4","gravatar_id":"","url":"https://api.github.com/users/p3p","html_url":"https://github.com/p3p","followers_url":"https://api.github.com/users/p3p/followers","following_url":"https://api.github.com/users/p3p/following{/other_user}","gists_url":"https://api.github.com/users/p3p/gists{/gist_id}","starred_url":"https://api.github.com/users/p3p/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/p3p/subscriptions","organizations_url":"https://api.github.com/users/p3p/orgs","repos_url":"https://api.github.com/users/p3p/repos","events_url":"https://api.github.com/users/p3p/events{/privacy}","received_events_url":"https://api.github.com/users/p3p/received_events","type":"User","site_admin":false},"labels":[{"id":208489635,"url":"https://api.github.com/repos/MarlinFirmware/Marlin/labels/T:%20Development","name":"T: Development","color":"1d76db","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2018-05-23T04:22:25Z","updated_at":"2018-05-24T18:34:02Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/MarlinFirmware/Marlin/pulls/10821","html_url":"https://github.com/MarlinFirmware/Marlin/pull/10821","diff_url":"https://github.com/MarlinFirmware/Marlin/pull/10821.diff","patch_url":"https://github.com/MarlinFirmware/Marlin/pull/10821.patch"},"body":"### Description\r\n(Not for merging)\r\n\r\nThis is a native build platform, ie. you can run Marlin from a terminal on linux with 'simulated' hardware, it is extremely limited in scope and you can't (and never will be able to) print with this, unless you are a Marlin developer this serves no purpose. Just something I've been playing with over the last few days and if cleaned up it may be useful for testing.\r\n\r\n### Benefits\r\n\r\nCan  run and debug Marlin without connecting to external hardware, could dump all the data you wanted to disk and analyse it. \r\n\r\nThis is limited to Linux because of the way I implemented the timers using realtime signals, averaged about 100 - 500 ns accuracy ( well reported precision, the precision clock used to measure this is limited in precision too) on my desktop but load will seriously compromise this without a realtime kernel installed (and even then). I'm not sure how to implement this in the same way on other operating systems but it is not really necessary you could run the fake timer at a set frequency and just tell Marlin what it wants to hear I was just curious how well a standard OS / Kernel could handle it.\r\n\r\nI realise this is of limited use to a very small group, compatible with an OS you probably don't use, but I may as well share :wink: \r\n\r\n### Example \r\nCollected using realtime step generation data\r\n\r\n![homing](https://user-images.githubusercontent.com/24342/40457878-da9df788-5ef0-11e8-8b61-1f6d5c11d7b1.png)\r\n![homehit-bezier-deviation-0j](https://user-images.githubusercontent.com/24342/40457886-e41e33b8-5ef0-11e8-9f6f-dee8887d2b9d.png)\r\n[data.csv](https://github.com/MarlinFirmware/Marlin/files/2033315/data.txt)\r\n"},"comment":{"url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/comments/391816130","html_url":"https://github.com/MarlinFirmware/Marlin/pull/10821#issuecomment-391816130","issue_url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/10821","id":391816130,"user":{"login":"p3p","id":24342,"avatar_url":"https://avatars1.githubusercontent.com/u/24342?v=4","gravatar_id":"","url":"https://api.github.com/users/p3p","html_url":"https://github.com/p3p","followers_url":"https://api.github.com/users/p3p/followers","following_url":"https://api.github.com/users/p3p/following{/other_user}","gists_url":"https://api.github.com/users/p3p/gists{/gist_id}","starred_url":"https://api.github.com/users/p3p/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/p3p/subscriptions","organizations_url":"https://api.github.com/users/p3p/orgs","repos_url":"https://api.github.com/users/p3p/repos","events_url":"https://api.github.com/users/p3p/events{/privacy}","received_events_url":"https://api.github.com/users/p3p/received_events","type":"User","site_admin":false},"created_at":"2018-05-24T18:34:02Z","updated_at":"2018-05-24T18:34:02Z","author_association":"MEMBER","body":"@mb300sd This PR is only for debug purposes only.. it's very unlikely a Raspberry Pi could handle the timing requirements even on a real-time kernel using a dedicated core. \r\n "}}
{"actor":{"display_login":"p3p"}}