Control a low-voltage relay driver with safe default and timeout. The implementation must operate inside the electrical, timing and memory limits of the exact RP2350 device.
System design
Circuit & Wiring Studio
Exact target required
Drag components. In Connect mode, select one pin and then another pin.
Build with the exact target and warning level enabled.
Flash the program and capture startup output.
Measure supply and relevant I/O signals.
Inject one safe input or communication fault.
Repeat the functional test for at least 20 cycles.
Record code version, board revision and results.
Test
Expected
Instrument
Acceptance criteria
Supply rail
Within target-board tolerance
Idle current
Below approved project limit
Functional output
Matches the stated objective
Fault response
Safe and recoverable
Repeated test
20 of 20 cycles pass
Viva questions
Why was this pin selected?
Explain pin capability, boot function and voltage limit.
What fails if timing blocks?
Other work and fault response become delayed.
How was current limited?
Use a resistor, driver and protected supply as required.
What evidence proves operation?
Code version, measurements, serial output and repeated tests.
Prototype safety
Verify voltage, polarity, GPIO limits and isolation before power-up. Use current limiting and disconnect power before wiring changes.
Guided practical
Complete learning and build guide
Intermediate4–6 hoursMotors, relays and robotics
Objective
Control a low-voltage relay driver with safe default and timeout.
Required knowledge
RP2350 pin functions and voltage limits
Embedded C/C++ fundamentals
Safe breadboard wiring
Serial debugging and measurement
Power and current calculation
Calculate total current from the board, sensor/module and output load. GPIO supplies only logic-level current; motors, relays, buzzers and high-current LEDs require a correctly rated driver and protected external rail. Start with current limiting and verify actual idle and peak current.
Libraries and build procedure
Libraries: Pico SDK hardware_gpio, hardware_adc, hardware_pwm and selected bus library
Create a project for RP2350 using Pico SDK with CMake.
Select the exact MCU/board and clock configuration.
Paste the complete program and change only the documented pin constants.
Install only the libraries listed for this project.
Build with warnings enabled and resolve every error.
Connect the board with outputs disconnected and upload/program it.
Confirm startup diagnostics, then connect the protected load.