{"action":"created","issue":{"url":"https://api.github.com/repos/ev3dev/ev3dev/issues/515","labels_url":"https://api.github.com/repos/ev3dev/ev3dev/issues/515/labels{/name}","comments_url":"https://api.github.com/repos/ev3dev/ev3dev/issues/515/comments","events_url":"https://api.github.com/repos/ev3dev/ev3dev/issues/515/events","html_url":"https://github.com/ev3dev/ev3dev/issues/515","id":127829166,"number":515,"title":"tacho-motor class - deprecate `speed_regulation` attribute","user":{"login":"rhempel","id":5571620,"avatar_url":"https://avatars.githubusercontent.com/u/5571620?v=3","gravatar_id":"","url":"https://api.github.com/users/rhempel","html_url":"https://github.com/rhempel","followers_url":"https://api.github.com/users/rhempel/followers","following_url":"https://api.github.com/users/rhempel/following{/other_user}","gists_url":"https://api.github.com/users/rhempel/gists{/gist_id}","starred_url":"https://api.github.com/users/rhempel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rhempel/subscriptions","organizations_url":"https://api.github.com/users/rhempel/orgs","repos_url":"https://api.github.com/users/rhempel/repos","events_url":"https://api.github.com/users/rhempel/events{/privacy}","received_events_url":"https://api.github.com/users/rhempel/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/ev3dev/ev3dev/labels/enhancement","name":"enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/ev3dev/ev3dev/labels/motors","name":"motors","color":"0052cc"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2016-01-21T02:11:29Z","updated_at":"2016-01-21T05:08:29Z","closed_at":null,"body":"After working on the tacho motor driver proposal lately, it became clear that `run-direct` is the only command where we can practically use the `duty_cycle_sp` - this command is intended to allow the user to control ramping and other motor characteristics using the application code.\r\n\r\nThe `run-to-pos` commands are very difficult to implement with duty-cycle as the controlled parameter, and it is confusing to users that below 20% to 30% power the motor may not even turn when loaded.\r\n\r\nTherefore, I am proposing that for all commands *except* `run-direct`, we use the `speed_sp` as the controlled parameter, which makes it easier for users to get the low speed control they expect when ramping to a position.\r\n\r\nSame goes for timed ramping - the `speed_sp` makes sense as the controlled parameter, not `duty_cycle` because the speed regulaiton algorithm tries to maintain a set speed in the face of varying loads, battery voltages, and motor characteristics. The `duty_cycle` can't compensate for any of that.\r\n\r\nI'm opening this issue for discussion so that we have a record of how we got here."},"comment":{"url":"https://api.github.com/repos/ev3dev/ev3dev/issues/comments/173454113","html_url":"https://github.com/ev3dev/ev3dev/issues/515#issuecomment-173454113","issue_url":"https://api.github.com/repos/ev3dev/ev3dev/issues/515","id":173454113,"user":{"login":"ddemidov","id":270503,"avatar_url":"https://avatars.githubusercontent.com/u/270503?v=3","gravatar_id":"","url":"https://api.github.com/users/ddemidov","html_url":"https://github.com/ddemidov","followers_url":"https://api.github.com/users/ddemidov/followers","following_url":"https://api.github.com/users/ddemidov/following{/other_user}","gists_url":"https://api.github.com/users/ddemidov/gists{/gist_id}","starred_url":"https://api.github.com/users/ddemidov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ddemidov/subscriptions","organizations_url":"https://api.github.com/users/ddemidov/orgs","repos_url":"https://api.github.com/users/ddemidov/repos","events_url":"https://api.github.com/users/ddemidov/events{/privacy}","received_events_url":"https://api.github.com/users/ddemidov/received_events","type":"User","site_admin":false},"created_at":"2016-01-21T05:08:29Z","updated_at":"2016-01-21T05:08:29Z","body":"It was a long time since I touched the official software, but I thought the\nunregulated blocks allowed at least run-timed command.\n"}}