Changes for version 3.1802 - 2026-07-13

  • GPIO chip-select transfers now hold the hardware CE line off with SPI_NO_CS (via WiringPi::API's spiNoCS()) so they no longer strobe a device on CE0/CE1; requires WiringPi::API 3.1804
  • Added full software bit-bang mode: pass new() a hashref of clk, mosi, miso, cs (and optional mode/delay) GPIO pins to run the whole bus in software via WiringPi::API's spiBitBang()
  • new()'s speed parameter now croaks on an explicit non-positive or non-integer value instead of silently rewriting it to the 1MHz default; an undefined speed still means "use the default"
  • rw() now croaks on a non-arrayref buffer or a non-positive-integer length instead of failing deep in the transport layer
  • Added t/05-unit.t: HW-free coverage of channel/CS routing, speed handling, bit-bang param validation, rw() argument validation, and the rw() framing sequence for the plain, GPIO-CS (with and without SPI_NO_CS), and bit-bang paths (transport funcs stubbed - no bus, no wiring)

Modules

Communicate with devices over the Serial Peripheral Interface (SPI) bus on Raspberry Pi