Kevin Thomas
f24358bfc2
Update README.md
2026-04-20 07:58:09 -04:00
Kevin Thomas
5e7345756c
Update README.md
2026-04-19 08:52:41 -04:00
Kevin Thomas
36764a1538
Update README.md
2026-04-18 09:28:10 -04:00
Kevin Thomas
299bac08ab
Update README.md
2026-04-17 09:20:24 -04:00
Kevin Thomas
406a74e905
Format initialization of simple_led_ctrl_t structure
2026-04-17 04:35:18 -04:00
Kevin Thomas
c386217714
style: enforce coding standard — headers, @brief on #define, Doxygen on statics, remove _ prefix, max 8 lines per function
2026-04-16 22:45:11 -04:00
Kevin Thomas
7f1f647234
Update tutorial date and lesson details
2026-04-16 08:43:20 -04:00
Kevin Thomas
38b5b1bcb5
Updated DS refs
2026-04-15 17:23:21 -04:00
Kevin Thomas
6d01ea5f24
Update tutorial date and lesson details
2026-04-15 08:21:32 -04:00
Kevin Thomas
7b7956adc2
Update tutorial date and lesson information
2026-04-14 08:24:55 -04:00
Kevin Thomas
5fb3bf6dba
Update tutorial date and lesson details
2026-04-13 08:35:48 -04:00
Kevin Thomas
e4d5d5161e
Update README.md
2026-04-12 09:01:30 -04:00
Kevin Thomas
0df58712e1
Fixed improper _
2026-04-11 10:52:10 -04:00
Kevin Thomas
f6683beff5
Update tutorial date and lesson number in README
2026-04-11 09:01:27 -04:00
Kevin Thomas
ad1841d3d7
Revise tutorial date and lesson information
...
Updated tutorial date and lesson details for April 2026.
2026-04-10 08:15:32 -04:00
Kevin Thomas
bb7193d07e
Update training links to include 'HERE' text
2026-04-09 16:57:23 -04:00
Kevin Thomas
63e3de34e2
Add Required Skills section to README
2026-04-09 16:54:58 -04:00
Kevin Thomas
bb5201e803
Update README.md
2026-04-09 15:09:36 -04:00
Kevin Thomas
c6af164b42
Update tutorial date and lesson number in README
2026-04-08 08:51:35 -04:00
Kevin Thomas
3fa61aa63a
Updated formatting of cbm
2026-04-07 19:40:29 -04:00
Kevin Thomas
b1ae057efb
Change tutorial date and lesson from 151 to 152
...
Updated tutorial date and lesson number in README.
2026-04-07 08:42:12 -04:00
Kevin Thomas
e2d2b21551
fix(ir_cbm): clear PDE bit in pad config for proper pull-up input
...
PADS_BANK0 GPIO5 had PDE (pull-down enable, bit 2) still set to its
reset default. With both PUE and PDE active the pin floated to ~VDD/2,
causing the Schmitt trigger to read LOW permanently. Clear PDE in
_configure_pad() so the pull-up works correctly.
Added PADS_BANK0_PDE_SHIFT define to rp2350.h.
2026-04-06 21:47:48 -04:00
Kevin Thomas
8f20fcde28
fix(dht11_cbm): add dummy read on init to prevent first-read failure
2026-04-06 17:26:05 -04:00
Kevin Thomas
066c69f24b
fix: remove duplicate docstrings from public functions in .c files
...
Public function docstrings belong exclusively in .h headers per
coding convention. Only static helper functions and static variables
retain docstrings in .c files. Removed 413 duplicate docstrings
across 185 files (15 CBM + 15 C SDK projects). All 30 projects
rebuild with zero errors.
2026-04-06 08:49:37 -04:00
Kevin Thomas
3604b3c921
refactor: enforce max 8 code lines, add docstrings, fix warnings across all Rust and C SDK projects
...
Rust (all 15 projects):
- Refactored overlength functions: format_counter, format_u8, format_f32_1,
format_u32_minimal, gpio_drive, read_sensor, poll_sensor, format_round_trip,
format_u32, prepare_write_buf, write_min_digits, write_temp, UartDriver::init,
init_spi, angle_to_pulse_us, compute_servo_level
- Added 200+ docstrings to test functions, mock structs, impl blocks
- Fixed pub static comments (//) to doc comments (///) in all main.rs files
- Fixed helper function ordering (helpers above callers)
- Fixed Fn(u32) -> FnMut(u32) bound in button poll_button
- Moved OneShot trait import from main.rs to board.rs in adc project
- Added unsafe {} blocks in flash unsafe fn bodies (Rust 2024 edition)
- Removed unused hal::Clock imports from pwm/servo main.rs
- All 15 projects build with zero errors and zero warnings
C Pico SDK (all 15 projects):
- Added docstrings to all public functions, macros, and static variables
- All 15 projects rebuilt with zero errors
Cleanup:
- Removed build/ and target/ directories from git tracking
- Added target/ to .gitignore
- Deleted temporary fix_rust_docs.py script
2026-04-06 08:33:17 -04:00
Kevin Thomas
d9fe6c314e
Update README.md
2026-04-06 08:19:56 -04:00
Kevin Thomas
c6c3d4a045
remove unused coprocessor driver from all CBM projects
...
No project uses floating-point, so coprocessor_enable() was dead code.
Removes rp2350_coprocessor.c/.h and all references from reset handlers
and Makefiles across all 15 CBM drivers (0x01-0x0f).
2026-04-05 21:36:42 -04:00
Kevin Thomas
e6d8ab4850
refactor: enforce 8-line Reset_Handler limit across CBM drivers
...
Extract _late_init() wrappers in 0x04, 0x05, 0x0b, 0x0d, 0x0e, 0x0f
to keep Reset_Handler within the max 8 code-line standard.
2026-04-05 21:29:31 -04:00
Kevin Thomas
1b4dfb3af4
Add 0x0f_flash_cbm bare-metal on-chip flash driver
2026-04-05 21:21:12 -04:00
Kevin Thomas
9f7cd133aa
Add 0x0e_watchdog_cbm: bare-metal watchdog timer driver for RP2350
2026-04-05 20:39:08 -04:00
Kevin Thomas
eb8377e9d6
Move C Bare-Metal Drivers section above C Drivers in README
2026-04-05 20:33:06 -04:00
Kevin Thomas
66e66f9ac3
Add C Bare-Metal Drivers section to README (0x01-0x0d_cbm)
2026-04-05 20:32:01 -04:00
Kevin Thomas
424f604935
Add 0x0d_timer_cbm: bare-metal TIMER0 repeating alarm driver for RP2350
2026-04-05 20:28:23 -04:00
Kevin Thomas
998518dcda
feat: add 0x0c_multicore_cbm bare-metal dual-core FIFO driver
2026-04-05 20:14:56 -04:00
Kevin Thomas
e82bd3d326
feat: add 0x0b_spi_cbm bare-metal SPI loopback driver
2026-04-05 18:49:36 -04:00
Kevin Thomas
9a760585e6
feat: add 0x0a_ir_cbm bare-metal NEC IR receiver
2026-04-05 18:36:30 -04:00
Kevin Thomas
108f3f5598
feat: add 0x09_dht11_cbm bare-metal DHT11 driver
...
- Single-wire protocol on GPIO4 via SIO register bit-bang
- TIMER0 TIMERAWL for microsecond pulse-width measurement
- Tick generator configured for 1 us ticks at 12 MHz clk_ref
- UART output: humidity/temperature or wiring failure message
- Zero warnings, 1876 bytes text
2026-04-05 18:30:18 -04:00
Kevin Thomas
6bb722ddee
fix: correct 14.5 MHz to 12 MHz across all CBM projects
...
- Update all docstrings from 14.5 MHz to 12 MHz XOSC (29 files)
- Fix 0x05_servo_cbm divider: INT=14/FRAC=8 (14.5) -> INT=12/FRAC=0 (12)
- Verified against RP2350 datasheet, Pico 2 board schematic, and SDK
2026-04-05 18:19:43 -04:00
Kevin Thomas
99ed43d69f
Add 0x08_lcd1602_cbm bare-metal LCD1602 driver
2026-04-05 18:01:39 -04:00
Kevin Thomas
614062fa52
Add bare-metal I2C driver for RP2350 (0x07_i2c_cbm)
2026-04-05 17:43:31 -04:00
Kevin Thomas
e36a1a537f
Add bare-metal ADC driver for RP2350 (0x06_adc_cbm)
2026-04-05 17:34:07 -04:00
Kevin Thomas
10b514ed38
Add 0x05_servo_cbm: bare-metal RP2350 servo driver
...
- PWM slice 3, channel A on GPIO6 at 50 Hz
- Fractional divider 14.5 (14.5 MHz XOSC / 50 Hz / 20000)
- Sweep 0-180-0 degrees in 10-degree steps
- Pulse range 1000-2000 us, angle-to-pulse mapping
- UART reports each angle step
- 1557B FLASH, 11 source files, zero warnings
2026-04-05 16:25:29 -04:00
Kevin Thomas
7a42b2e088
Add 0x04_pwm_cbm: bare-metal RP2350 PWM driver
...
- PWM slice 4, channel B on GPIO25 (onboard LED)
- Duty cycle sweep 0-100% in 5% steps for breathing effect
- Wrap 9999 with no clock division (~650 Hz from ROSC)
- UART reports each duty step
- 1390B FLASH, 11 source files, zero warnings
2026-04-05 16:21:47 -04:00
Kevin Thomas
d912771a5e
Add 0x03_button_cbm: bare-metal RP2350 button driver
...
- GPIO15 active-low button input with internal pull-up
- 20ms software debounce via busy-wait confirmation
- LED mirrors button state, UART reports edge transitions
- New gpio_config_input_pullup() in GPIO driver
- 1555B FLASH, 13 source files, zero warnings
2026-04-05 16:06:46 -04:00
Kevin Thomas
d5bdf49894
refactor: convert 0x01_uart_cbm and 0x02_blink_cbm to bare-metal Inc/Src structure
...
- Restructure flat files into Inc/ (headers) and Src/ (sources)
- Replace constants.h with rp2350.h register layer (datasheet-verified)
- Add full Doxygen docstrings on all files, functions, and structs
- Replace build.bat/clean.bat with cross-platform Makefile
- Fix GPIO_IN offset (0x004), XOSC COUNT offset (0x10), SRAM size (520K)
- Rename blink_* API to led_* (name after peripheral, not feature)
- Build outputs to build/ directory
- Cross-platform .vscode configs (Windows/macOS/Linux)
2026-04-05 15:57:44 -04:00
Kevin Thomas
e875b8af89
Update tutorial date and lesson number
2026-04-05 08:49:39 -04:00
Kevin Thomas
eb6150ffad
Added cbm 1 2
2026-04-04 12:11:58 -04:00
Kevin Thomas
aa8f2ca754
Update README.md
2026-04-04 08:38:34 -04:00
Kevin Thomas
587ed8206e
Update tutorial date and lesson information
2026-04-03 08:28:18 -04:00
Kevin Thomas
9834d5c96c
Fixed Rust drivers
2026-04-02 11:36:06 -04:00