Revision history for Device-BusPirate
0.25 2024-04-10
[CHANGES]
* Implement Device::Chip::ProtocolBase::SPI in SPI protocol adapter
to ensure we get the extra methods (write, read, write_then_read)
0.24 2024-01-09
[CHANGES]
* Much update for modern Object::Pad and style suggestions
+ Use `field` and `:isa` attribute of Object::Pad
+ Pod style updates
+ use VERSION in all files
+ Swap unit tests from `Test::More` to `Test2::V0`
0.23 2021-07-18
[CHANGES]
* Convert to Object::Pad
* Use signatures from perl 5.26+
* Docs fix to explain which versino first supported multiple I²C
protocols
0.22 2021-06-04
[CHANGES]
* Implement the helper-based Device::Chip::Adapter v0.18 ->txn API
[BUGFIXES]
* Fix concurrency of multiple I²C transactions
0.21 2021-06-03
[CHANGES]
* Unit-test various SPI concurrency scenarios
* Implement the Device::Chip::Adapter I²C ->txn API
0.20 2020-06-19
[CHANGES]
* Support UART protocol, transmit-only
0.19 2020-05-02
[CHANGES]
* Use ->syswrite_exactly from Future::IO 0.04
* Self-cycle the ->write futures in case caller doesn't hold onto
them
* Added ->read_adc_voltage + example program
* More PIRATE_DEBUG debug printing
* Updated included Tickit example to latest Tickit::Widgets 0.30
0.18 2019-04-25 23:01:19
[CHANGES]
* Use ->sysread_exactly from Future::IO 0.03
* Use Future::AsyncAwait to replace less readable
Future::Utils::repeat loops or ->then chaining
0.17 2019-04-10 02:02:05
[CHANGES]
* Implement the ->meta_gpios Device::Chip method
* Add some unit tests
* Added ->set_pwm method
* Remember to shut down I²C pullups at DESTROY time
* Use Future::IO instead of internal custom implementation
[BUGFIXES]
* Fixes for bitrate selection of SPI and I²C interfaces
* Put termios device into raw mode by using ->cfmakeraw
0.16 2018-08-07 12:03:40
[BUGFIXES]
* Allow multiple I²C adapters for mounting multiple Device::Chips on
a shared bus
0.15 2018-06-06 11:04:50
[BUGFIXES]
* Use O_NDELAY and set CLOCAL on serial port device as non-Linux OSes
may require it for strict POSIX conformance (RT#125409)
* Use O_NOCTTY when opening the serial port device
0.14 2018-03-13 14:14:24
[CHANGES]
* Simplify the D:C:A SPI protocol implementation by using
Device::Chip::ProtocolBase::SPI; thus automatically supporting the
new ->read and ->write_then_read methods
0.13 2016/10/02 19:45:24
[CHANGES]
* Enable pullups when configuring Device::Chip::Adapter for I²C
* Implement ->sleep method for Device::Chip::Adapter
[BUGFIXES]
* Use Future::Mutex instead of custom logic; ensures correct
unlocking even on failure
* Ensure I²C sends STOP conditions after write/read failures
0.12 2016/05/05 15:17:28
[CHANGES]
* Implement the ->read I2C method of Device::Chip::Adapter 0.07
[BUGFIXES]
* Ensure that the GPIO protocol instance has a ->power method
0.11 2015/11/29 01:17:38
[CHANGES]
* Have BB mode complain about unrecognised pin names
* Allow BB ->read method to set named pins as inputs first
* Implement GPIO protocol in Device::Chip::Adapter implementation
[BUGFIXES]
* Fix to make Device::Chip::Adapter I2C implementation actually work
0.10 2015/11/12 12:17:10
[CHANGES]
* Updates for Device::Chip::Adapter 0.02:
+ Provide ->new_from_description constructor
+ Implement I2C protocol
0.09 2015/11/10 00:18:14
[CHANGES]
* Longer startup timeout
* Handle I2C slave addressing failures
* Added a ->configure method to I2C mode to set clock speed
* Implement a Device::Chip::Adapter class
* Remark that Device::BusPirate::Chip is now deprecated in favour of
Device::Chip
[BUGFIXES]
* Ensure that PIRATE_DEBUG is always defined even if env. var. is
absent (RT108508)
0.08 2015/03/03 18:48:02
[CHANGES]
* Apply timeouts to all Bus Pirate UART communications
* Use Struct::Dumb instead of 2-element ARRAYrefs
[BUGFIXES]
* Ensure that Future::Utils::repeat isn't used for repeating failed
Futures
0.07 2015/01/15 22:34:27
[CHANGES]
* Added ->send_then_recv method to I2C mode, allowing the use of
registered devices which need a repeated START to operate
0.06 2014/11/01 15:29:58
[CHANGES]
* Document and expose the $pirate->sleep method as user API
* Added synopsis documentation to each Mode class
[BUGFIXES]
* Fix for timer cancellation; avoids memory/CPU leak
* Fix for sleep-only await with no IO read pending
* Don't worry about Chip:: subclasses that don't define a CHIP
constant
0.05 2014/10/20 22:04:21
[CHANGES]
* Support I2C mode
* Provide 'enter_mutex' method on main Device::BusPirate object;
document its use by the SPI and I2C modes
* Migrate power/pullup/aux peripheral methods to common Mode base
0.04 2014/09/27 17:03:35
[CHANGES]
* Added a small Tickit-driven UI for interacting with BBIO mode
* Expanded Mode::BB - ability to write/read multiple pins at once
* Default the Bus Pirate location from $BUS_PIRATE env. var.
0.03 2014/09/16 17:05:51
[CHANGES]
* Defined a model for attaching high-level 'Chip' interface modules
* Renamed 'SPI' mode config parameters to match Bus Pirate terminlogy
* Also support CPOL/CPHA and SPI mode numbers
0.02 2014/08/12 10:50:07
[CHANGES]
* Support bit-bang mode directly
* Renamed SPI's pin_3v3 configuration to open_drain, as it's clearer
in meaning
* Better timeouts and non-blocking behaviour
* Allow setting SPI bus speed
* Allow SPI bulk transfers of more than 16 bytes
* Rename 'SCK' to 'CLK' to match Bus Pirate terminology
* Document that ->stop doesn't return a Future
0.01 2014/08/11 16:05:39
First version, released on an unsuspecting world.