hybridgroup.gobot/CHANGELOG.md

789 lines
25 KiB
Markdown
Raw Permalink Normal View History

1.10.2
---
* **opencv**
* update GoCV to latest version
1.10.1
---
* **tello**
* improve support for DJI Tello drone, especially video
1.10.0
---
* **docs**
* add gitter badge to readme
* **gpio**
* AIP1640 led driver, used in Wemos D1 mini's matrix LED shield
* **spi**
* switch to using periph.io for SPI interfaces
* add support for ssd1306
* add optional params such as bus/chip to all current drivers
* complete refactoring to spi.Connection
* remove unneeded code as suggested by @maruel
* remove unneeded type and cleanup GoDocs
* **ble**
* correct spelling error in function name
* **build**
* update to latest version of Go 1.10 for Travis build
* **cli**
* remove extra newline
* **docs**
* add recently contributed GPIO devices to README
* **joystick**
* able to configure joysticks without external json file
* correct error in scanning script
* correct events used by gamepad-style up/down/left/right buttons
* correct scanner error from ID
* removed double release event
* **tello**
* add support for DJI Tello drone
1.9.0
---
* **beaglebone**
* update pin naming, docs, and examples for the latest Debian OS releases
* **opencv**
* update build settings needed to build OpenCV/GoCV as part of test suite
* deps for latest GoCV v0.9.0
* **build**
* update Travis build to use very latest Go versions
* **docs**
* add references to new drivers for ADXL345, BH1750, and TM1638.
* improve docs for installation and use of OpenCV/GoCV from Gobot
* update copyright date to 2018
* **gpio**
* Initial support for TM1638 modules
* **i2c**
* Added basic driver for BH1750 (light sensor), board GY-302
* support for accel ADXL345
* **bb8/ollie/sprkplus**
* add Boost command
* add Set Back LED Output command
* add Set Raw Motor Values command
* add Set Rotation Rate command
* add Set Stabilization command
* **test**
* Refactor TestAdaptorDigitalPinConcurrency test
1.8.0
---
* **sysfs**
* pause briefly to allow udev rules to apply when exporting PWMPin
* **beaglebone**
* correct uboot installation instructions
* add SPI support
* no more slots, add docs on configuring u-boot overlays
* handle gpio pinmux without relying on specific pre-existing setup
* **pocketbeagle**
* add support for PocketBeagle
* use universal io cape manager to initialize board setup
* improve docs for latest Debian OS
* **build**
* Add dep, change how tests run in CI
* update dependencies to latest GoCV version
* **spi**
* Add MCP3002, MCP3202, MCP3204, MCP3208, MCP3304, MCP3004, and MCP3008 A/D converter drivers
* adding initial support for APA102 LEDs, thanks to code sample from @rakyll
* extract shared SPI init code into spi package
* **up2**
* initial work on support for UP2 board
* **gopigo3**
* fixed set/get bug with motor dps
* **gpio**
* Adding stepper motor module
* **firmata**
* handle cases where out of sync data is read from serial port on first connecting
* **i2c**
* Change init payload sequence within jhd1313m1 driver Start() func.
1.7.1
---
* **sprkplus**
* add new platform for Sphero SPRK+
* **firmata**
* correct problem where last analog pin(s) were being ignored from capabilities query
* **ble**
* use go-ble/ble fork for BLE interactions
* **build**
* update to use latest OpenCV version
* update to use latest Golang versions
1.7.0
---
* **curie**
* Add Linux specific step to Intel Curie docs
* **mqtt**
* Added SetCleanSession
* **build**
* add go1.9 to versions tested in Travis CI
* add missing OpenCV lib dependency
* Update build to use latest Golang versions
* Travis build will now require sudo to install due to OpenCV
* **docs**
* some helpful edits for the initial spi implementation
* **gopigo3**
* integration of recent GoPiGo3 contributions
* Added grove support, and more gopigo3 examples
* **gpio**
* Add ButtonDriver.DefaultState to allow for 'reverse' buttons (ones that go from HIGH to LOW)
* **holystone**
* Add initial support for HS-200
* **i2c**
* SSD1306.WithDisplayHeight() and SSD1306.WithDisplayWidth() for SSD1306 that use different display ratios
* **joystick**
* add CLI utilty to scan display events to make it easier to add new joyticks
* update README to address #441
* **opencv**
* Switchover to use GoCV and OpenCV 3.3
* Switch to use custom domain for GoCV package
* all examples using new GoCV based code
* correct formatting in face detect example
* OpenCV face detector that is much more concurrent
* update interface and examples to indicate multipurpose
1.6.0
---
* **core**
* log failure errors on Robot Start()
* **build**
* run test coverage with covermode=set
* update build to use Golang 1.7.6 and 1.8.3
* **docs**
* work on ROADMAP doc
* **sysfs**
* increase test coverage
* **bb8**
* use updated ble adaptor interface for tests
* **ble**
* allow for characteristic writes both with and without a response
* allow override of specific HCI device to use
* eliminate race conditions from response handling
* **curie**
* Implement Accelerometer, Gyroscope, and Temperature sensors implemented
* motion detect implemented
* shock detect implemented
* step count implemented
* tap detect implemented
* **digispark**
* update blink example to display error message on Start()
* update README with latest development info
* **edison**
* auto-discovery of Edison board option
* removed commented lines
* **firmata**
* expose WriteSysex to external callers
* adjust client test timeout values
* cleanup error handling for connection code
* client tests don't need so many goroutines
* expose WriteSysex to external callers
* improve connection code to use a proper timeout
* increase test coverage
* make it possible to test external devices that use firmata adaptor
* refactoring firmata client
* remove circular import in test
* remove unused code, increase test coverage
* return connect errors to client
* switch to using go-serial package
* Sysex response events now being handled as expected
* **bme280**
* fix signed/unsigned bug
* Fixed incorrect error condition check when reading the 'ctrl_hum' register.
* Expanded the BME280 unit test for TestBME280DriverStart() to support reading from the 'ctrl_hum' register.
* Enables humidity readings in the BME280 driver by enforcing the write to the 'ctrl_meas' register, as per Section 5.4.3 of the BME280 data sheet
* **chip**
* Fixed PWM duty cycle calculation for C.H.I.P ServoWrite
* Fixed PWM init bug for C.H.I.P
* C.H.I.P PWM init robust for already enabled state
* **i2c**
* remove unused test code
* write config register in little endian
* **joystick**
* add needed constants for all PS3 buttons
* **littlewire**
* littlewire.cc links changed to littlewire.github.io
* **mavlink**
* switch to using go-serial package
* **megapi**
* switch to using go-serial package
* **microbit**
* use updated ble adaptor interface for tests
* **minidrone**
* add example for Parrot Mambo
* add support for Mambo external accessories
* increase test coverage
* never expect responses for characteristic writes
* remove unneeded code, increase test coverage
* separate flight status processing and add test coverage
* **neurosky**
* switch to using go-serial package
* **ollie**
* use updated ble adaptor interface for tests
* **sphero**
* switch to using go-serial package
* **tinkerboard**
* Updated Tinkerboard and sysfs tests to updated PWM polarity contract
1.5.0
---
* **core**
* Add Running() methods for Master and Robot and increase test coverage accordingly
* **sysfs**
* define DigitalPinnerProvider and PWMPinnerProvider interfaces
* add Chip to be able to change pwmchip, and some related refactoring
* add file read/write testing for failure conditions
* proper handling of busy state vs. other errors
* return sensible result when no valid data read
* **test**
* increase coverage on test helpers
* **build**
* switching to Travis builds using Ubuntu 14.04 Trusty
* **aio**
* only need to support AnalogReader interface
* avoid test race conditions
* ensure that AnalogSensor event Data is always int
* **gpio**
* only need to support DigitalReader/DigitalWriter interface
* **i2c**
* Added support for the ADS1015 and ADS1115 ADCs
* Add INA3221 Voltage Monitor
* Ensure lock of i2c bus for each individual operation
* Small refactoring and increase test coverage for BMP180
* **beaglebone**
* implement DigitalPinner and PWMPinner interfaces
* protect against pin map races
* increase test coverage
* **chip**
* add preliminary support for C.H.I.P. Pro
* add back ServoWrite implementation
* implement DigitalPinnerProvider and PWMPinnerProvider interfaces
* protect against pin map races
* **dragonboard**
* export DigitalPin and PWMPin adaptor methods
* protect against pin map races
* increase test coverage
* **edison**
* auto-detect arduino breakout board, if no specific board is expected
* ensure that we initialize tristate if arduino breakout board
* export DigitalPin and PWMPin adaptor methods
* implement DigitalPinnerProvider and PWMPinnerProvider interfaces
* protect against pin map races
* refactoring to reduce code duplication
* **firmata**
* remove processing that might have been eating test events, increase test coverage
* **joule**
* implement DigitalPinnerProvider and PWMPinnerProvider interfaces
* protect against pin map races
* remove incorrect pin assignment and improve test coverage
* add examples using Joule with ADS1015 ADC
* naming system changes
* correct pin mappings and add PWM example
* **mavlink**
* add a Mavlink-over-UDP adaptor.
* **microbit**
* Add DigitalWriter, DigitalReader, and AnalogReader support using IOPinDriver
* Handle start error and increase test coverage
* **mqtt**
* Add a (topic, payload) event type
* change the On handler to take mqtt.Message
* increase test coverage
* update examples that use mqtt for updated notification signature
* **nats**
* change the On() handler to take the subject as an argument
* increase test coverage
* **raspi**
* implement DigitalPinnerProvider and PWMPinnerProvider interfaces
* add implementation for PWMPinner interface that wraps pi blaster
* fix adaptor race conditions
* increase test coverage
* **tinkerboard**
* Add support for ASUS Tinker Board
1.4.0
---
* **core**
* Use 10-buffered chans for events, see #374
* **i2c**
* Many refactors and increases in test coverage
* Eliminate race conditions introduced by tests
* Adds Altitude() function to BMP280/BME280
* bme280 driver Humidity compensation formula
* ssd1306 driver implementation
* **aio**
* Eliminate race conditions introduced by tests
* **gpio**
* Fix motor mode change when speed is set
* Eliminate race conditions introduced by tests
* Reduce test side effects
* **ardrone**
* Increase test coverage
* **audio**
* Increase test coverage
* **bb8**
* Refactoring to use BLEConnector interface and provide tests
* **bebop**
* Increase test coverage
* **beaglebone**
* Increase test coverage
* **ble**
* Increase test coverage for battery, device information, and generic access drivers
* Refactoring drivers to use BLEConnector interface and provide tests
* **chip**
* Added PWM0 support
* Increase test coverage
* **digispark**
* Increase test coverage
* **dragonboard**
* Increase test coverage
* **edison**
* Remove pointless error checking code
* Refactor digital pin creation process method
* Increase test coverage
* **firmata**
* Eliminate race conditions introduced by tests
* Increase test coverage for i2c commands
* **joule**
* Increase test coverage
* **joystick**
* Increase test coverage
* **keyboard**
* Increase test coverage
* **mavlink**
* Eliminate race conditions introduced by tests
* Increase test coverage
* **mavlink**
* Increase test coverage
* **microbit**
* Refactoring to use BLEConnector interface and provide tests
* Address #404 by adding info about required magnetometer calibration step to README
* Increase test coverage
* **minidrone**
* Refactoring to use BLEConnector interface and provide tests
* **mqtt**
* Increase test coverage
* **nats**
* Increase test coverage
* **neurosky**
* Update neurosky README & example
* Eliminate race conditions introduced by tests
* Increase test coverage
* **ollie**
* Refactoring to use BLEConnector interface and provide tests
* Correct race condition error on seq
* Increase test coverage
* **opencv**
* Increase test coverage
* **particle**
* Increase test coverage
* **raspi**
* Address #391 by providing more details about normal development workflow
* Increase test coverage
* **sphero**
* Eliminate race conditions
* Increase test coverage
* **sysfs**
* Address race condition from udev rules when exporting GPIO pins
* Increase test coverage
* **docs**
* Improve explanations for scp/ssh workflow on SoC boards
* Include entire Apache 2.0 license in the license text
* **test**
* Add crude travis check for gofmt; format all sources
* Significantly speed up travis and make runs
* Remove test code no longer being called
* Update Travis to run tests using Golang 1.8.1
* Increase gobottest test coverage
1.3.0
---
* **microbit**
* Add new platform support
* **dragonboard**
* Add new platform support
* **gpio**
* Increase test coverage
* **i2c**
* Update list of supported i2c devices
* Minor adjustments and test coverage improvements
* Added more capabilities checks for I2C
* Removed smbus block operations
* **core**
* Increase test coverage
* **test**
* Improvements to run tests much faster thanks @maruel
* Use codecov.io for code coverage reporting
* **docs**
* Update CoC based on Contributor Covenant
1.2.0
---
* **core**
* Use new improved default namer to avoid API conflicts
* **gpio**
* Removed scaling function from servo driver
* Correct servo driver to pass along angle to adaptor to sort out implementation
* **i2c**
* Refactored platforms and drivers to new I2C interfaces
* Change to make I2C support more than one bus
* Refactor drivers to support new optional params
* **bb8**
* Added collision detection support and example
* **beaglebone**
* Correct i2c buses to match actual mapping
* **ble**
* Switch to using [ble](https://github.com/currantlabs/ble) package for Bluetooth LE
* Basic serial over BLE working with Arduino101 with StandardFirmataBLE
* WIP on multiple simultaneous ble devices
* **chip**
* Fixed chip XIO base address lookup
* **digispark**
* Fix #288 by using pkg-config to locate libusb-compat includes
* **firmata**
* Remove race conditions identified in Firmata client
* Correct error in I2C reads not listening to board events
* **mqtt**
* Add driver for syntactical sugar around virtual devices
* Add SSL/TLS client options support
* Fix #277 by adding SetAutoReconnect method to set Paho MQTT client
* Change both 'On' and 'Publish' method function signatures to match Eventer interface
* **nats**
* Add driver to make it easier to create virtual devices
* **ollie**
* Added collision detection support and example
* **parrot**
* Add ValidatePitch helper function for Parrot Minidrone, Parrot Bebop & ARDrone 2.0 to package
* **docs**
* Fix #363 by using atomic.Value to protect current values used by multiple goroutines in drone examples
* **test**
* Remove Golang 1.5 from TravisCI tests in prep for Golang 1.8 release
1.1.0
---
* **core**
* use canonical import path for sysfs package
* **i2c**
* Add a driver for the SHT3X chip
* Add a driver for BMP180
* Add support for L3GD20H gyroscope
* **firmata**
* Add support for TCPFirmata connections, allowing ESP8266 and other WiFi-connected controllers
* Add mention to README to use 'tty.' serial port on OSX
* Add mention of A4 and A5 normally unavailable on Firmata
* **raspi**
* Correct README build instructions with missing 'go build' command
* **snapcraft**
* Add the packaging metadata to build the gobot snap for Ubuntu Snappy
* **particle**
* Update examples to take key params via command line
* Address #160 by adding support for tinker-servo sketch if installed on Particle device
* **esp8266** add experimental ESP8266 support to list of supported platforms
* **sysfs**
* Should fix #272 by using first byte of data as command register for I2C reads
* Some additional cleanup suggested by golint
* **ble**
* Add generic access service driver
* Update docs to include reference to included drivers
* Move various test code to test file
* **ollie**
* Refactoring so no need to expose internal implementation details
* **bebop**
* Add support/example of RTP video
* Enable video on firmware 3.3+
* Update ps3 and video example to enable the video stream
* Update README for brief explanation of how to get drone video
* Corrected import paths for client examples
* **bb8**
* Correct NewDriver params and set name
* Add missing constructor to wrap Ollie implementation
* **minidrone**
* Update README with example and which specific models are currently supported
* Add all piloting flying state events
* Adds Emergency() and TakePicture() commands
* **test**
* Add Golang 1.8beta2 to Travis builds
* Correct aio references for AnalogRead tests
1.0.0
---
* **core**
* Refactoring to allow 'Metal' development using Gobot packages
* Able to run robots without being part of a Master.
* Now running all work in separate goroutines
* Rename internal name of Master type
* Refactor events to use channels all the way down.
* Eliminate potential race conditions from Events and Every functions
* Add Unsubscribe() to Eventer, now Once() works as expected
* DeleteEvent function added to Eventer interface
* Ranges over event channels instead of using select
* No longer return non-standard slices of errors, instead use hashicorp/go-multierror
* Ensure that all drivers have default names
* Now both Robot and Master operate using AutoRun as expected
* Use canonical import domain of gobot.io for all code
* Use time.Sleep unless waiting for a timeout in a select
* Uses time.NewTimer() instead of time.After() to be more efficient
* **test**
* Add deps tasks to Makefile
* Add golang 1.7 to Travis CI tests
* Add golang 1.8beta1 to build matrix for Travis
* Reduce Travis builds to golang 1.4+ since it is late 2016 already
* Complete move of test interfaces into the test files where they belong
* Adds Parrot Minidrone and Sphero Ollie to Travis tests
* **Add missing godocs for everything**
* **i2c**
* Move I2C drivers into appropriately named 'drivers/i2c' directory
* Add support for Adafruit Servo/PWM HAT
* **gpio**
* Move GPIO drivers into appropriately named 'drivers/gpio' directory
* Add support for PIR motion detector
* **beaglebone**
* auto-detect Linux kernel version
* map usr LEDs to match all kernels
* **ble**
* Rename drivers to make them more obvious
* Add test placeholders
* **chip**
* Auto-detect OS version to adjust pin mappings
* Correct base for new 4.4 GPIO
* **edison**
* Support for other breakout boards besides Arduino
* **firmata**
* Use io.ReadFull in platforms/firmata/client
* Update tarm/goserial to tarm/serial
* **joule**
* Add support for Intel Joule
* **megapi**
* Adding support for MakeBlock megapi
* **nats**
* Add support for NATS server
* **particle**
* Complete renaming Spark platform to Particle
* **parrot**
* Move Parrot Minidrone into own platform
* Move both ARDrone and Bebop under Parrot package
* **raspi**
* Add missing godocs and small refactors for platform
* **sphero**
* Add initial support for Sphero BB-8 platform
* Move Sphero Ollie into own platform
0.12.0
---
* **Refactor Gobot test helpers into separate package**
* **Improve Gobot.Every method to return channel, allowing it to be halted**
* **Refactor of sysfs adds substantial speed improvements**
* **ble**
* Experimental support for Bluetooth LE.
* Initial support for Battery & Device Information services
* Initial support for Sphero BLE robots such as Ollie
* Initial support for Parrot Minidrone
* **audio**
* Add new platform for Audio playback
* **gpio**
* Support added for new GPIO device:
* RGB LED
* Bugfixes:
* Correct analog to better handle quick changes
* Correct handling of errors and buffering for Wiichuk
* **mqtt**
* Add support for MQTT authentication
* **opencv**
* Switching to use main fork of OpenCV
* Some minor bugfixes related to face tracking
2016-02-25 03:48:25 +08:00
0.11.0
---
* **Support for Golang 1.6**
* **Determine I2C adaptor capabilities dynamically to avoid use of block I/O when unavailable**
* **chip**
* Add support for GPIO & I2C interfaces on C.H.I.P. $9 computer
* **leap motion**
* Add support additional "hand" and "gesture" events
* **mqtt**
* Support latest update to Eclipse Paho MQTT client library
* **raspberry pi**
* Proper release of Pi Blaster for PWM pins
* **bebop**
* Prevent event race conditions on takeoff/landing
* **i2c**
* Support added for new i2c device:
* MCP23017 Port Expander
* Bugfixes:
* Correct init and data parsing for MPU-6050
* Correct handling of errors and buffering for Wiichuk
0.10.0
---
* **Refactor core to cleanup robot initialization and shutdown**
* **Remove unnecessary goroutines spawned by NewEvent**
* **api**
* Update Robeaux to v0.5.0
* **bebop**
* Add support for the Parrot Bebop drone
* **keyboard**
* Add support for keyboard control
* **gpio**
* Support added for 10 new Grove GPIO devices:
* Grove Touch Sensor
* Grove Sound Sensor
* Grove Button
* Grove Buzzer
* Grove Led
* Grove Light Sensor
* Grove Vibration Sensor
* Grove Rotary
* Grove Relay
* Grove Temperature Sensor
* **i2c**
* Support added for 2 new Grove i2c devices:
* Grove Accelerometer
* Grove LCD with RGB backlit display
* **docs**
* Many useful fixes and updates for docs, mostly contributed by our wonderful community.
2015-07-01 09:12:57 +08:00
0.8.2
---
- firmata
- Refactor firmata adaptor and split firmata protocol implementation into sub `client` package
- gpio
- Add support for LIDAR-Lite
- raspi
- Add PWM support via pi-blaster
- sphero
- Add `ConfigureLocator`, `ReadLocator` and `SetRotationRate`
2014-12-29 00:20:16 +08:00
0.8.1
---
- spark
- Add support for spark Events, Functions and Variables
- sphero
- Add `SetDataStreaming` and `ConfigureCollisionDetection` methods
2014-12-25 04:42:25 +08:00
0.8
---
- Refactor core, gpio, and i2c interfaces
- Correctly pass errors throughout packages and remove all panics
- Numerous bug fixes and performance improvements
- api
- Update robeaux to v0.3.0
- firmata
- Add optional io.ReadWriteCloser parameter to FirmataAdaptor
- Fix `thread exhaustion` error
- cli
2014-12-25 04:42:25 +08:00
- generator
- Update generator for new adaptor and driver interfaces
- Add driver, adaptor and project generators
- Add optional package name parameter
2014-11-18 03:54:46 +08:00
0.7.1
---
- opencv
- Fix pthread_create issue on Mac OS
2014-11-11 11:12:11 +08:00
0.7
---
- Dramatically increased test coverage and documentation
- api
- Conform to the [cppp.io](https://gobot.io/x/cppp-io) spec
2014-11-11 11:12:11 +08:00
- Add support for basic middleware
- Add support for custom routes
- Add SSE support
- ardrone
- Add optional parameter to specify the drones network address
- core
- Add `Once(e *Event, f func(s interface{})` Event function
- Rename `Expect` to `Assert` and add `Refute` test helper function
- i2c
- Add support for MPL115A2
- Add support for MPU6050
- mavlink
- Add support for `common` mavlink messages
- mqtt
- Add support for mqtt
- raspi
- Add support for the Raspberry Pi
- sphero
- Enable stop on sphero disconnect
- Add `Collision` data struct
- sysfs
- Add generic linux filesystem gpio implementation
2014-09-25 01:20:45 +08:00
0.6.3
---
- Add support for the Intel Edison
2014-07-29 03:02:12 +08:00
0.6.2
---
- cli
- Fix typo in generator
- leap
- Fix incorrect Port reference
- Fix incorrect Event name
- neurosky
- Fix incorrect Event names
- sphero
- Correctly format output of GetRGB
2014-07-29 03:02:12 +08:00
2014-07-13 00:53:05 +08:00
0.6.1
---
- cli
- Fix template error in generator
2014-07-11 08:42:49 +08:00
0.6
---
- api
- Add robeaux support
- core
- Refactor `Connection` and `Device`
2014-07-11 08:42:49 +08:00
- Connections are now a collection of Adaptors
- Devices are now a collection of Drivers
- Add `Event(string)` function instead of `Events[string]` for retrieving Driver event
- Add `AddEvent(string)` function to register an event on a Driver
2014-07-11 10:30:58 +08:00
- firmata
- Fix slice bounds out of range error
- sphero
- Fix issue where the driver would not halt correctly on OSX
2014-07-11 08:42:49 +08:00
0.5.2
---
- beaglebone
- Add `DirectPinDriver`
- Ensure slots are properly loaded
2014-07-11 08:42:49 +08:00
0.5.1
---
- core
- Add `Version()` function for Gobot version retrieval
- firmata
- Fix issue with reading analog inputs
- Add `data` event for `AnalogSensorDriver`
0.5
---
- Idomatic clean up
- Removed reflections throughout packages
- All officially supported platforms are now in ./platforms
- API is now a new package ./api
- All platforms examples are in ./examples
- Replaced martini with net/http
- Replaced ginkgo/gomega with system testing package
- Refactor gobot/robot/device commands
- Added Event type
- Replaced Master type with Gobot type
- Every` and `After` now accept `time.Duration`
- Removed reflection helper methods