{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":724242888,"defaultBranch":"main","name":"pico-w-neopixel-server","ownerLogin":"krzmaz","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-11-27T17:25:47.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/25637557?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1704404646.0","currentOid":""},"activityList":{"items":[{"before":"4b433f555a3be3333a1b019f2e3bdbc75256363c","after":"4c8429d0ca0afcf025d02b3b17a9d4d508600ddf","ref":"refs/heads/workspace","pushedAt":"2024-01-05T17:22:47.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"krzmaz","name":"Krzysztof Mazur","path":"/krzmaz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/25637557?s=80&v=4"},"commit":{"message":"Add flushing PIO data\n\n[Problem]\nWhen providing data fast enough, multiple frames could be concatenated\nsince we only waited 60 microseconds after the last bytes were pushed\nto the PIO, not since the last bytes were actually pushed to the\nneopixels.\n\n[Solution]\n\"Flush\" the PIO after pushing the last bytes, by waiting until it's\nempty.","shortMessageHtmlLink":"Add flushing PIO data"}},{"before":null,"after":"4b433f555a3be3333a1b019f2e3bdbc75256363c","ref":"refs/heads/workspace","pushedAt":"2024-01-04T21:44:06.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"krzmaz","name":"Krzysztof Mazur","path":"/krzmaz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/25637557?s=80&v=4"},"commit":{"message":"Add flushing PIO data\n\n[Problem]\nWhen providing data fast enough, multiple frames could be concatenated\nsince we only waited 60 microseconds after the last bytes were pushed\nto the PIO, not since the last bytes were actually pushed to the\nneopixels.\n\n[Solution]\n\"Flush\" the PIO after pushing the last bytes, by waiting until it's\nempty.","shortMessageHtmlLink":"Add flushing PIO data"}},{"before":"226bb80fe50594168b02c0ca0dcfd369dc366d85","after":"bb92dfcde45cc099561dc8400941215979523efa","ref":"refs/heads/multicore_bbqueue","pushedAt":"2024-01-04T19:02:00.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"krzmaz","name":"Krzysztof Mazur","path":"/krzmaz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/25637557?s=80&v=4"},"commit":{"message":"WIP multicore","shortMessageHtmlLink":"WIP multicore"}},{"before":null,"after":"226bb80fe50594168b02c0ca0dcfd369dc366d85","ref":"refs/heads/multicore_bbqueue","pushedAt":"2024-01-01T22:19:44.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"krzmaz","name":"Krzysztof Mazur","path":"/krzmaz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/25637557?s=80&v=4"},"commit":{"message":"WIP multicore","shortMessageHtmlLink":"WIP multicore"}},{"before":"c519600f9f9f4e729e9c0c8a1e1427794ac28d0f","after":null,"ref":"refs/heads/docs","pushedAt":"2023-12-28T17:40:11.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"krzmaz","name":"Krzysztof Mazur","path":"/krzmaz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/25637557?s=80&v=4"}},{"before":"03fe410b8edc3168d63ef6d61fb9007a97ccc9da","after":"2653f91e3e5cce1bb5ce2ce9870c96433ef33944","ref":"refs/heads/main","pushedAt":"2023-12-28T17:40:08.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"krzmaz","name":"Krzysztof Mazur","path":"/krzmaz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/25637557?s=80&v=4"},"commit":{"message":"Add wiring documentation","shortMessageHtmlLink":"Add wiring documentation"}},{"before":"199726f6b2356c958c7e5e15fedac73c4f439d8f","after":"c519600f9f9f4e729e9c0c8a1e1427794ac28d0f","ref":"refs/heads/docs","pushedAt":"2023-12-28T16:33:52.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"krzmaz","name":"Krzysztof Mazur","path":"/krzmaz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/25637557?s=80&v=4"},"commit":{"message":"Add wiring documentation","shortMessageHtmlLink":"Add wiring documentation"}},{"before":null,"after":"199726f6b2356c958c7e5e15fedac73c4f439d8f","ref":"refs/heads/docs","pushedAt":"2023-12-28T16:30:36.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"krzmaz","name":"Krzysztof Mazur","path":"/krzmaz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/25637557?s=80&v=4"},"commit":{"message":"Add wiring documentation","shortMessageHtmlLink":"Add wiring documentation"}},{"before":"76cb777579166b3feef9e5c6a751aa092a0614b5","after":null,"ref":"refs/heads/clear-buffer","pushedAt":"2023-12-27T13:27:58.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"krzmaz","name":"Krzysztof Mazur","path":"/krzmaz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/25637557?s=80&v=4"}},{"before":"57a5a8c4b6649020d156c2e81f2493270db72f4f","after":"03fe410b8edc3168d63ef6d61fb9007a97ccc9da","ref":"refs/heads/main","pushedAt":"2023-12-27T13:27:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"krzmaz","name":"Krzysztof Mazur","path":"/krzmaz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/25637557?s=80&v=4"},"commit":{"message":"tcp: Clear buffer on new connection\n\nWhile TCP ensures that individual packets arrive whole and in order,\nthere is no guarantee that a frame arrives in a single packet,\nwhich means some of it could be lost.\n\nInstead of retransmitting the rest of the frame (as in that time\nthe animation pattern will change anyway, so it's better to just\nsend a new frame), we will abandon the stream on any connection\nissues and restart transmitting with the next entire frame.\n\nIn order for that to work, receiver needs to drop any partial\nframes it received in the meantime, so that the beginning of the\nnext frame is not interpreted as the end of the previous one,\nand some arbitrary bytes in the middle of it aren't treated\nas the length of the next one.\n\nAdditionally, the connection is abandoned much faster in case\nno data is received, to allow for a faster reconnection.\nFor that reason the timeout was lowered to 1 second, and keepalive\npackets were turned off entirely.","shortMessageHtmlLink":"tcp: Clear buffer on new connection"}},{"before":null,"after":"76cb777579166b3feef9e5c6a751aa092a0614b5","ref":"refs/heads/clear-buffer","pushedAt":"2023-12-27T13:05:11.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"mrozycki","name":"Mariusz Różycki","path":"/mrozycki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/509418?s=80&v=4"},"commit":{"message":"tcp: Clear buffer on new connection\n\nWhile TCP ensures that individual packets arrive whole and in order,\nthere is no guarantee that a frame arrives in a single packet,\nwhich means some of it could be lost.\n\nInstead of retransmitting the rest of the frame (as in that time\nthe animation pattern will change anyway, so it's better to just\nsend a new frame), we will abandon the stream on any connection\nissues and restart transmitting with the next entire frame.\n\nIn order for that to work, receiver needs to drop any partial\nframes it received in the meantime, so that the beginning of the\nnext frame is not interpreted as the end of the previous one,\nand some arbitrary bytes in the middle of it aren't treated\nas the length of the next one.\n\nAdditionally, the connection is abandoned much faster in case\nno data is received, to allow for a faster reconnection.\nFor that reason the timeout was lowered to 1 second, and keepalive\npackets were turned off entirely.","shortMessageHtmlLink":"tcp: Clear buffer on new connection"}},{"before":null,"after":"f8d6271d3817d2027ba72f026699c087db53b93a","ref":"refs/heads/display-all-frames","pushedAt":"2023-12-23T14:52:38.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"mrozycki","name":"Mariusz Różycki","path":"/mrozycki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/509418?s=80&v=4"},"commit":{"message":"Display all frames before accepting more data","shortMessageHtmlLink":"Display all frames before accepting more data"}},{"before":"d8598abacac566c2bf8f9e1cbb4a1e53e78c100c","after":null,"ref":"refs/heads/fix-full-ringbuf","pushedAt":"2023-12-23T14:42:17.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"krzmaz","name":"Krzysztof Mazur","path":"/krzmaz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/25637557?s=80&v=4"}},{"before":"0b89924bcd133a364d58a14f981758ebbe88aeb6","after":"57a5a8c4b6649020d156c2e81f2493270db72f4f","ref":"refs/heads/main","pushedAt":"2023-12-23T14:42:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"krzmaz","name":"Krzysztof Mazur","path":"/krzmaz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/25637557?s=80&v=4"},"commit":{"message":"Fix server freezing when ringbuffer is full","shortMessageHtmlLink":"Fix server freezing when ringbuffer is full"}},{"before":null,"after":"d8598abacac566c2bf8f9e1cbb4a1e53e78c100c","ref":"refs/heads/fix-full-ringbuf","pushedAt":"2023-12-23T14:39:37.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"mrozycki","name":"Mariusz Różycki","path":"/mrozycki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/509418?s=80&v=4"},"commit":{"message":"Fix server freezing when ringbuffer is full","shortMessageHtmlLink":"Fix server freezing when ringbuffer is full"}},{"before":"7c06580a5cb3c62ef6a21bad725c01d0e41a46f2","after":"0b89924bcd133a364d58a14f981758ebbe88aeb6","ref":"refs/heads/main","pushedAt":"2023-12-21T21:12:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"krzmaz","name":"Krzysztof Mazur","path":"/krzmaz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/25637557?s=80&v=4"},"commit":{"message":"Add testing section to README","shortMessageHtmlLink":"Add testing section to README"}},{"before":"bf390f0fbf209482b65c143af9919a5abc42cfd4","after":"7c06580a5cb3c62ef6a21bad725c01d0e41a46f2","ref":"refs/heads/main","pushedAt":"2023-12-21T21:00:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"krzmaz","name":"Krzysztof Mazur","path":"/krzmaz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/25637557?s=80&v=4"},"commit":{"message":"Add debug logs","shortMessageHtmlLink":"Add debug logs"}},{"before":"63b11cd3afc7e78322c4b2d53c3bc8f7f1637fbf","after":"bf390f0fbf209482b65c143af9919a5abc42cfd4","ref":"refs/heads/main","pushedAt":"2023-12-04T07:38:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"krzmaz","name":"Krzysztof Mazur","path":"/krzmaz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/25637557?s=80&v=4"},"commit":{"message":"Improve documentation","shortMessageHtmlLink":"Improve documentation"}},{"before":"a4f2fea8b68238e3a034531a7abdd2afc0e71724","after":null,"ref":"refs/heads/UDP","pushedAt":"2023-12-04T07:06:18.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"mrozycki","name":"Mariusz Różycki","path":"/mrozycki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/509418?s=80&v=4"}},{"before":"1799001244117d69c8dee09c76b5f173264383d9","after":"63b11cd3afc7e78322c4b2d53c3bc8f7f1637fbf","ref":"refs/heads/main","pushedAt":"2023-12-04T07:06:14.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mrozycki","name":"Mariusz Różycki","path":"/mrozycki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/509418?s=80&v=4"},"commit":{"message":"Add UDP version","shortMessageHtmlLink":"Add UDP version"}},{"before":null,"after":"a4f2fea8b68238e3a034531a7abdd2afc0e71724","ref":"refs/heads/UDP","pushedAt":"2023-12-04T06:12:14.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"krzmaz","name":"Krzysztof Mazur","path":"/krzmaz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/25637557?s=80&v=4"},"commit":{"message":"Add UDP version","shortMessageHtmlLink":"Add UDP version"}},{"before":"d3ab6a7245512efa58dcd17e61d6008dd4848ffa","after":null,"ref":"refs/heads/tcp-bin","pushedAt":"2023-12-01T10:40:03.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"krzmaz","name":"Krzysztof Mazur","path":"/krzmaz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/25637557?s=80&v=4"}},{"before":"1d053cfb4b509d70aafcd83d790d2ae9328d7f8f","after":"1799001244117d69c8dee09c76b5f173264383d9","ref":"refs/heads/main","pushedAt":"2023-12-01T10:39:59.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"krzmaz","name":"Krzysztof Mazur","path":"/krzmaz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/25637557?s=80&v=4"},"commit":{"message":"Move TCP server to separate bin file","shortMessageHtmlLink":"Move TCP server to separate bin file"}},{"before":"94876ad12dd71c541c46481218aaf5b834d7c62b","after":"d3ab6a7245512efa58dcd17e61d6008dd4848ffa","ref":"refs/heads/tcp-bin","pushedAt":"2023-12-01T10:27:03.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"mrozycki","name":"Mariusz Różycki","path":"/mrozycki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/509418?s=80&v=4"},"commit":{"message":"Move TCP server to separate bin file","shortMessageHtmlLink":"Move TCP server to separate bin file"}},{"before":null,"after":"94876ad12dd71c541c46481218aaf5b834d7c62b","ref":"refs/heads/tcp-bin","pushedAt":"2023-12-01T10:21:07.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"mrozycki","name":"Mariusz Różycki","path":"/mrozycki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/509418?s=80&v=4"},"commit":{"message":"Move TCP server to separate bin file","shortMessageHtmlLink":"Move TCP server to separate bin file"}},{"before":"abc76750d47d39c9ddd6a89d5ff433f608cc4e98","after":"1d053cfb4b509d70aafcd83d790d2ae9328d7f8f","ref":"refs/heads/main","pushedAt":"2023-12-01T07:28:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"krzmaz","name":"Krzysztof Mazur","path":"/krzmaz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/25637557?s=80&v=4"},"commit":{"message":"Add GRB feature","shortMessageHtmlLink":"Add GRB feature"}},{"before":"910244de9bfbb968951da22d3afcea4eaa96ba55","after":"e5725a87aa318be1abece0704aba9af6b8cb7ed4","ref":"refs/heads/multicore","pushedAt":"2023-11-29T12:54:25.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"pnwkw","name":null,"path":"/pnwkw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/90510234?s=80&v=4"},"commit":{"message":"WIP multicore\n\nCo-authored-by: pnwkw ","shortMessageHtmlLink":"WIP multicore"}},{"before":null,"after":"910244de9bfbb968951da22d3afcea4eaa96ba55","ref":"refs/heads/multicore","pushedAt":"2023-11-28T21:28:28.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"krzmaz","name":"Krzysztof Mazur","path":"/krzmaz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/25637557?s=80&v=4"},"commit":{"message":"WIP multicore\n\nCo-authored-by: pnwkw ","shortMessageHtmlLink":"WIP multicore"}},{"before":"ec6043a9fc36c4cf4b2be3b14e6c4e92639b1f4e","after":"abc76750d47d39c9ddd6a89d5ff433f608cc4e98","ref":"refs/heads/main","pushedAt":"2023-11-28T19:46:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"krzmaz","name":"Krzysztof Mazur","path":"/krzmaz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/25637557?s=80&v=4"},"commit":{"message":"Remove buffering when writing data to neopixels\n\nCo-authored-by: pnwkw ","shortMessageHtmlLink":"Remove buffering when writing data to neopixels"}},{"before":"4aec342704cd55ee2517905d62b3b59db6cd08f7","after":"ec6043a9fc36c4cf4b2be3b14e6c4e92639b1f4e","ref":"refs/heads/main","pushedAt":"2023-11-27T20:14:00.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"krzmaz","name":"Krzysztof Mazur","path":"/krzmaz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/25637557?s=80&v=4"},"commit":{"message":"Use ringbuffer for the data","shortMessageHtmlLink":"Use ringbuffer for the data"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wMS0wNVQxNzoyMjo0Ny4wMDAwMDBazwAAAAPYxBaS","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wMS0wNVQxNzoyMjo0Ny4wMDAwMDBazwAAAAPYxBaS","endCursor":"Y3Vyc29yOnYyOpK7MjAyMy0xMS0yN1QyMDoxNDowMC4wMDAwMDBazwAAAAO5Heyn"}},"title":"Activity · krzmaz/pico-w-neopixel-server"}