{"action":"created","issue":{"url":"https://api.github.com/repos/ArduCAM/ArduCAM_USB_Camera_Shield/issues/29","repository_url":"https://api.github.com/repos/ArduCAM/ArduCAM_USB_Camera_Shield","labels_url":"https://api.github.com/repos/ArduCAM/ArduCAM_USB_Camera_Shield/issues/29/labels{/name}","comments_url":"https://api.github.com/repos/ArduCAM/ArduCAM_USB_Camera_Shield/issues/29/comments","events_url":"https://api.github.com/repos/ArduCAM/ArduCAM_USB_Camera_Shield/issues/29/events","html_url":"https://github.com/ArduCAM/ArduCAM_USB_Camera_Shield/issues/29","id":319175687,"number":29,"title":"Camera shield USB data exchange format ","user":{"login":"RenGate","id":8874275,"avatar_url":"https://avatars0.githubusercontent.com/u/8874275?v=4","gravatar_id":"","url":"https://api.github.com/users/RenGate","html_url":"https://github.com/RenGate","followers_url":"https://api.github.com/users/RenGate/followers","following_url":"https://api.github.com/users/RenGate/following{/other_user}","gists_url":"https://api.github.com/users/RenGate/gists{/gist_id}","starred_url":"https://api.github.com/users/RenGate/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RenGate/subscriptions","organizations_url":"https://api.github.com/users/RenGate/orgs","repos_url":"https://api.github.com/users/RenGate/repos","events_url":"https://api.github.com/users/RenGate/events{/privacy}","received_events_url":"https://api.github.com/users/RenGate/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-05-01T11:26:20Z","updated_at":"2018-05-10T07:08:30Z","closed_at":"2018-05-10T07:08:30Z","author_association":"NONE","body":"Hi Lee, first of all big thanks to you for supporting the code base in this repository. Right now the SDK itself is closed source, which prohibits people from porting the software to other platforms or programming languages (as was mentioned in #13). \r\nIf open sourcing Arducam SDK code is not an option, can you please give us at least some info on how data is parsed by the SDK? What I'm particularly curious about is how much data must be transferred from the shield using USB bulk transfers to get 1 frame and what is its structure, i.e. how raw pixel data can be extracted from it? Thanks. "},"comment":{"url":"https://api.github.com/repos/ArduCAM/ArduCAM_USB_Camera_Shield/issues/comments/387971666","html_url":"https://github.com/ArduCAM/ArduCAM_USB_Camera_Shield/issues/29#issuecomment-387971666","issue_url":"https://api.github.com/repos/ArduCAM/ArduCAM_USB_Camera_Shield/issues/29","id":387971666,"user":{"login":"RenGate","id":8874275,"avatar_url":"https://avatars0.githubusercontent.com/u/8874275?v=4","gravatar_id":"","url":"https://api.github.com/users/RenGate","html_url":"https://github.com/RenGate","followers_url":"https://api.github.com/users/RenGate/followers","following_url":"https://api.github.com/users/RenGate/following{/other_user}","gists_url":"https://api.github.com/users/RenGate/gists{/gist_id}","starred_url":"https://api.github.com/users/RenGate/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RenGate/subscriptions","organizations_url":"https://api.github.com/users/RenGate/orgs","repos_url":"https://api.github.com/users/RenGate/repos","events_url":"https://api.github.com/users/RenGate/events{/privacy}","received_events_url":"https://api.github.com/users/RenGate/received_events","type":"User","site_admin":false},"created_at":"2018-05-10T07:08:30Z","updated_at":"2018-05-10T07:08:30Z","author_association":"NONE","body":"Lee kindly answered all my questions over an email. I will summarize the main points here in case if anyone else is interested.\r\n* The image data is transmitted from USB camera shield to the PC using USB bulk transfers. The size of bulk transfer must be a multiple of 512 bytes.\r\n* To separate individual frames a marker is used. It begins with a 10 byte sequence of [1, 2, 3, 4, 5, 6, 7, 8, 9, 170].\r\n* The image data is split into the 512 byte blocks. If data length isn't multiple of 512, not all data in the last data block will be valid.\r\n* There is no frame buffer on the USB camera shield, hence the data readout must be performed as quick as possible. Asynchronous libusb functions for bulk transfers must be used."}}
{"actor":{"display_login":"RenGate"}}