The Raspberry Pi Pico SDK, a comprehensive development kit for RP-series microcontrollers, is grappling with stability issues in I2C and SPI communications, as evidenced by recent user-reported problems, while actively expanding its feature set and hardware support.
Recent issues and pull requests (PRs) reveal recurring themes of hardware communication challenges and dependency management complexities. Notable issues include I2C slave functionality (#1100) and UART communication (#1144), which suggest potential reliability problems. PRs such as #1865 address library installation path issues, while #1850 enhances firmware update safety. These activities indicate ongoing efforts to stabilize the SDK and enhance its robustness.
stdio_usb
issues on Windows, added new board definitions.Timespan | Opened | Closed | Comments | Labeled | Milestones |
---|---|---|---|---|---|
7 Days | 9 | 9 | 10 | 8 | 2 |
30 Days | 44 | 60 | 93 | 42 | 4 |
90 Days | 81 | 91 | 167 | 73 | 5 |
1 Year | 242 | 180 | 763 | 145 | 6 |
All Time | 945 | 759 | - | - | - |
Like all software activity quantification, these numbers are imperfect but sometimes useful. Comments, Labels, and Milestones refer to those issues opened in the timespan in question.
Developer | Avatar | Branches | PRs | Commits | Files | Changes |
---|---|---|---|---|---|---|
Graham Sanderson | 3 | 5/4/0 | 13 | 312 | 417102 | |
Andrew Scheller (lurch) | 3 | 7/6/0 | 13 | 61 | 2686 | |
None (will-v-pi) | 2 | 11/8/2 | 9 | 10 | 163 | |
Scott Shawcroft (tannewt) | 1 | 1/1/0 | 1 | 1 | 85 | |
J (jaguilar) | 1 | 3/2/1 | 2 | 4 | 82 | |
Nikhil Dabas (ndabas) | 1 | 1/1/0 | 1 | 1 | 45 | |
Peter Harper (peterharperuk) | 1 | 3/2/2 | 2 | 5 | 20 | |
Taylor Cramer (cramertj) | 1 | 1/1/0 | 1 | 3 | 17 | |
David Goffredo (dgoffredo) | 1 | 1/1/0 | 1 | 1 | 2 | |
Ikko Eltociear Ashimine (eltociear) | 1 | 1/1/0 | 1 | 1 | 2 | |
Alberto Udrea (U-alb) | 0 | 1/0/1 | 0 | 0 | 0 | |
Jonathan Suite (ai6aj) | 0 | 0/0/1 | 0 | 0 | 0 | |
Dranoel (Dranoel2) | 0 | 1/0/0 | 0 | 0 | 0 | |
Gregory Neverov (gneverov) | 0 | 1/0/0 | 0 | 0 | 0 | |
None (jming912) | 0 | 0/0/1 | 0 | 0 | 0 | |
Stephen Street (sgstreet) | 0 | 1/0/2 | 0 | 0 | 0 | |
None (TheRaf974) | 0 | 0/0/1 | 0 | 0 | 0 | |
Gabriel Marcano (gemarcano) | 0 | 0/0/1 | 0 | 0 | 0 | |
None (shabaz123) | 0 | 1/0/1 | 0 | 0 | 0 | |
Giampiero Baggiani (giampiero7) | 0 | 1/0/0 | 0 | 0 | 0 | |
Sylwester (DatanoiseTV) | 0 | 1/0/0 | 0 | 0 | 0 | |
Earle F. Philhower, III (earlephilhower) | 0 | 1/0/0 | 0 | 0 | 0 |
PRs: created by that dev and opened/merged/closed-unmerged during the period
The Raspberry Pi Pico SDK repository has experienced significant activity, with a total of 186 open issues. Recent issues reflect a variety of challenges faced by developers, including hardware integration problems, API enhancements, and requests for additional features. Notably, several issues indicate recurring themes related to I2C and SPI communication failures, which could imply underlying stability concerns in the SDK's handling of these protocols.
Several issues have drawn attention due to their implications for the usability of the SDK. For instance, issues related to I2C slave functionality (#1100) and UART communication (#1144) highlight potential reliability problems that could affect developers' ability to implement robust applications. Additionally, there are multiple requests for enhancements to existing APIs, such as adding support for condition variables (#1093) and improving the ADC module (#1455), indicating a strong demand for more comprehensive functionality.
Issue #1861: assertion "!(num < MIN_EXCEPTION_NUM || num >= MAX_EXCEPTION_NUM)" failed
Issue #1853: bazel: including bootloader targets in link_extra_lib
results in a dependency cycle
Issue #1849: TinyUSB submodule needs a bump in order to get Pico-PIO-USB working
Issue #1848: Pico 2 board intermittently does not re-enumerate after programming with picotool
Issue #1842: boot2_name missing in UF2 when compiled with sdk 2.0
Issue #1842
Issue #1848
Issue #1853
Issue #1861
The recent issues indicate several common themes:
Overall, the current state of open issues reflects both the active engagement of the developer community and the ongoing need for improvements in the SDK's robustness and usability.
The dataset contains a comprehensive list of pull requests (PRs) for the Raspberry Pi Pico SDK, including both open and closed PRs. The analysis focuses on the themes, commonalities, and notable aspects of these PRs, highlighting the ongoing development and improvements in the SDK.
PR #1865: Use lib instead of CMAKE_INSTALL_LIBDIR for pioasm install
find_package
calls.PR #1850: Add TBYB safe rom_pick_ab_partition function
PR #1845: Update extract configs
PR #1822: Improve best_effort_wfe_or_timeout
PR #1816: Changes for pico2_w
PR #1811: Update i2c_slave.c: clock stretching comment fix
PR #1795: Fixes to picolibc_interface
PR #1794: Fix typo in documentation of PICO_RAND_ENTROPY_SRC_TRNG
PR #1787: Add RP2350 PicoADK variant
PR #1786: Fix minor unused/uninitialized warnings from GCC 12.3.0
PR #1867: Small pico_pre_load_platform.cmake tweak
PR #1866: Fix #1861 - incorrect assertion on MAX_EXCEPTION_NUM
PR #1864: Fix assert in gpio_set_irq_enabled
PR #1863: Workaround gcc/newlib issue on Ubuntu 24
PR #1859: Add build-essential to README command line install
PR #1858: Reorder pins in bi_pins_with_names to be correct
PR #1857: Fix stdio_usb with reset interface disabled on Windows
PR #1856: Correct flushing of the SMx_SHIFTCTRL FIFOs
Other notable closed PRs include fixes for documentation errors, enhancements to existing functionality, and updates to maintain compatibility across various platforms and toolchains.
The pull requests reflect a robust development cycle within the Raspberry Pi Pico SDK project, showcasing active engagement from contributors and a focus on enhancing functionality, fixing bugs, and improving documentation.
Bug Fixes and Improvements: A significant number of PRs are dedicated to fixing bugs or improving existing features (e.g., PRs #1864, #1866). This indicates a strong commitment to maintaining code quality and addressing user-reported issues promptly.
Enhancements for New Hardware Support: Several PRs introduce support for new hardware variants (e.g., PRs #1787 and #1816), showcasing the project's adaptability as new devices are released or existing ones are updated.
Documentation Updates and Clarifications: Many PRs focus on improving documentation clarity (e.g., PRs #1794, #1811). This is crucial for user experience as it helps developers understand how to use the SDK effectively.
Community Engagement and Collaboration: The discussions within PR comments reveal a collaborative environment where contributors actively engage in code reviews, provide suggestions, and refine each other's work (e.g., discussions around PRs #1835 and #1821).
The presence of several long-standing open PRs (e.g., PR #1495) suggests that some features may be under consideration but have not yet been integrated into the main branch due to potential conflicts or lack of consensus among maintainers.
There is a noticeable trend towards addressing compiler-specific issues (e.g., PRs related to GCC warnings), which highlights the importance of cross-platform compatibility in embedded systems development.
While there is a steady flow of new contributions, some older PRs remain unmerged or have been converted into drafts without clear resolutions (e.g., PRs like #1495). This could indicate resource constraints or prioritization challenges within the development team.
In summary, the pull request activity within the Raspberry Pi Pico SDK reflects a dynamic project environment focused on continuous improvement and community involvement while also facing challenges typical of open-source software development such as managing contributions and ensuring timely merges.
hardware_alarm_get_irq_num
and CMSIS IRQ regressions.stdio_usb
functionality on Windows.Other contributors like dgoffredo, eltociear, and tannewt have made minor contributions focusing on documentation fixes and board definitions.
Overall, the development team demonstrates a proactive approach in addressing issues while expanding the capabilities of the Raspberry Pi Pico SDK.