v2.4.0 (2024-11-05)
- fix concurrent map writes (#1063)
- add support for functional options, add tests (#1059)
- introduce in drivers folder (#1057)
- client: add scan timout (#1051)
- module: update tinygo.org/x/bluetooth to v0.10 and adapt code (#1084)
- go, deps: switch to Go 1.22 and update modules, linter v1.61.0 and adapt code (#1093,#1092)
- go, deps: switch to Go 1.20 and update modules (#1067)
- linter: update linter to v1.56.1 and fix issues (#1068)
- update links to release or tagged branch (#1069)
- core: prepare for release v2.4.0
- fix missing checks of return values (#1060)
- rename Master to Manager (#1070)
- use serialport adaptor and move driver to drivers/serial (#1062)
- use serialport adaptor and move driver to drivers/serial (#1061)
v2.3.0 (2024-01-06)
- fix data race in AnalogSensorDriver (#1024)
- all: introduce functional options (#1039)
- analog sensor: fix deadlock in cyclic reading (#1042)
- thermalzone: add driver for read a thermalzone from system (#1040)
- test: use -race for tests by default (#1035)
- fix data race in StepperDriver (#1029)
- fix data race in PIRMotionDriver (#1028)
- fix data race in ButtonDriver (#1027)
- fix data race in EasyDriver (#1025)
- all: introduce functional options (#1045)
- core: fix problems with usage of uintptr (#1033)
- test: fix data race in test (#1034)
- pwm: add support for sysfs and fix pi-blaster (#1048)
v2.2.0 (2023-10-29)
- PWM: fix wrong duty cycle after kill program (#994)
- doc: fix preceding typo (#985)
- deps: module update (#992)
- go, deps: switch to Go 1.19 and update modules (#1008)
- style: switch to gofumpt and add linters (#1009)
- roadmap: remove file ROADMAP.md after creating issues (#1005)
- fix example and documentation (#977)
- hcsr04: add driver for ultrasonic ranging module (#1012)
- PCA9685, adafruit, adafruit2327, adafruit2348: clean up architecture and fix init (#1021)
- PWM: fix set period (#1019)
- core: replace sdl with 0xcafed00d/joystick package (#988)
- Add support for calibration
- gpio: add edge polling function (#1015)
- all: substitude assert.Nil by assert.NoError if useful (#1016)
- all: substitude assert.Error by assert.ErrorContains (#1014, #1011)
- all: switch to test package stretchr testify (#1006)
- gpio, aio: cleanup helper_test (#1018)
v2.1.1 (2023-07-07)
- upgrade modules
- substitute deprecated ioutil methods (#923)
- linter: activate linters "errcheck", "ineffassign", "unused" and fix issues (#950)
- linter, format: format code and list of linter todo's (#962)
- linter: activate linter "makezero" and fix issue (#965)
- simplify and substitute errors.Wrap() (#958)
- go: switch to Go 1.18 (#940)
- CLI removed (#946)
- fix linter issues of errcheck (#959)
- syscall: switch to x/sys (#963)
- fix wifiMessage and lightMessage (#957)
- fix partially #793 by initialize doneCh in NewDriverWithIP (#931)
v2.1.0 (2023-05-29)
v2.0.3 (2023-05-24)
- accidentally created release without any changes
v2.0.2 (2023-05-22)
- v2: fix usage by moving code to a v2 subfolder (#927)
v2.0.1 (2023-05-21)
- style: add golangci-lint workflow configuration (#916)
- style: fix linter findings of "gosimple", "govet" and "staticcheck" (#917)
- periph.io/x/conn/v3 from 3.6.10 to 3.7.0 (#913)
- github.com/gofrs/uuid from 4.3.0+incompatible to 4.4.0+incompatible (#914)
- golang.org/x/net from 0.1.0 to 0.10.0 (#915)
- github.com/nats-io/nats-server/v2 from 2.1.0 to 2.7.4 (#906)
- fix Semantic Import Versioning for v2 (#921)
- core: adjust changelog generation (#924)
v2.0.0 (2023-05-15)
- update to TinyGo Bluetooth package v0.6.0 release
- update appveyor for go 1.19
- switch to new cimg with golang 1.17
- new home path for cimg
- check examples in CI (#884)
- add tests of more platforms to CI
- add configuration file for dependabot (#907)
- add PR template
- use base driver for all I2C devices
- rename package "sysfs" to "system"
- go.mod to 1.17 and all modules incl. code upgrades
- add example for generic i2c.Driver
- fix i2c.ReadBlockData(), Read_Data() and some small other fixes
- Halt does not terminate all the related goroutines and may wait forever when it is called multiple times
- README for gpio, pwm, i2c and add example
- document fields for flight data
- analog sensor driver to prevent ReadValue() to get float64
- fix examples and driver
- add advanced digital pin options (pull, bias, drive, debounce, event)
- add support for new character device Kernel ABI for GPIO
- add read firmware version and DHT sensors for grovepi
- add generic i2c driver
- fix I2C connection-bus caching and multiple device usage
- introduce I2cBusAdaptor for composition in platforms
- Adafruit1109: fix driver shows bad characters after Halt()
- ads1x15: fix driver not working stable when reading multiple inputs
- ADXL345: use ReadBlockData()
- bmxy8z: use ReadBlockData
- BMP180, BMP280 BMP388 BME280: use ReadBlockData()
- CCS811: use ReadBlockData()
- HMC5883L: fix I2C driver typo: change from HMC8553L
- HMC5883L: fix driver returns wrong values
- L3GD20H: fix full scale range usage
- MPL115A2: use ReadBlockData(), WriteByteData()
- MPU6050: fix wrong initialize and reduced temperature resolution
- PCA9501: add driver
- PCA953x: add driver
- PCF8583: add driver
- TH02: fix wrong register usage for read heater
- add Jetson Nano adpator
- fix pwm feature
- add Xbox-One controller
- add configuration for Nintendo Switch controllers (#903)
- add Dualsense joystick (PlayStation 5) (#880)
- add platform
- add unused but missing interface implementation
- add platform (#902)
- fix pwm cache
- fix Stopping and Starting Robot and LED Driver/LED does not toggle on restart
- fix spi.SpiConnection is not gobot.Connection: missing method Connect
- using GPIO's is now possible
- MFRC522: add driver
- increase some timings to make tests a little less fragile
- skip test TestNatsAdaptorFailedConnect when flaky
- stabilize "every"-test
- stabilize flaky utils_test
- stabilize firmata tests
- fix tests with sysfs mocks, ReadBlockData, WriteBlockData
- fix keyboard tests and exclude opencv
- fix PWM related read/write tests
- add check for examples in Makefile
- fix new pwm behaviour
- some interfaces moved, see folder system and adaptor.go
v1.16.0 (2022-05-02)
- failing leftovers after usage of PR #569
- Fix servo and DC motors presence
- FIX the bug #568 without further impact, heavy improvements of tests
- fixed PinMode, SetPullUp and SetPolarity, unit tests activated
- ReadGPIO fixed with #576, failing leftovers for PinMode, SetPullUp and SetPolarity
- helper_test ReadByteData, ReadWordData to use reg
- update uuid package and directly access it; remove archived uuid package
- fix ReadByte & WriteByte, rework and add i2c tests
- remove useless code in i2c test
- add AnalogActuatorDriver, analog temperature sensor, driver for PCF8591 (with 400kbit stabilization), driver for YL-40
- Adding support for hmc5883l compass
- bmp388 fix missing address write byte in test of Measurements
- drv2605l fix missing address write byte in test of Halt()
- introduce adafruit1109 2x16 LCD with 5 keys
- mcp23017: add mutex for write, hd44780: fix mutexes
- MCP3004: correct number of channels
- fix raspi PWMPin.SetDutyCycle (#800)
- Guards Dji Tello Halt against nil dereference
- don't panic on 'With*' allow simpler wrapping of drivers
- fix tinkerboard i2c0 to i2c4, improve comments in pin map, improve README
v1.15.0 (2020-11-30)
- Switch to CircleCI
- replace go-ble with tinygo bluetooth package, restore macOS functionality
- Update RelayDriver to invert value written on Inverted
- Add tests for DigitalWrite value
- Add support for HD44780 LCD controller
- Add delay for Run function of StepperDriver
- fixes #700 * Avoid to close the connection.
- add SHT2x device
- add BMP388 Barometric Pressure/Temperature/Altitude Sensor
- Resolve issue with PWM for PWMWrite
- Add method to publish MQTT messages with retain flag
- Add graceful halt for Tello driver
- Add Tello EDU driver
- add symbol keys for platform/keyboard
- Update ffmpeg command to decrease latency in tello example
v1.14.0 (2019-10-15)
- migrating from dep to go modules
- update codegangsta to urfave (#690)
- Fix a link in package docs' example code.
- fixed broken imports due to changed path causing go get to fail
- Added ability to make a relay driver inverted (#674)
- Update to GoCV 0.21.0
- Apa102 use default brightness (#671)
- Updated videoPort for DJI Tello to 11111
v1.13.0 (2019-05-22)
- Initial stab at Robot-based work
- correct package version as suggested by @dlisin thanks
- only build last 2 versions of Go plus tip for CI
- Update dep script for AppVeyor
- update deps to latest versions of dependencies for GoCV and others
- Update Gopkg and add test dep to Travis YML
- update OpenCV build script for OpenCV 4.1.0
- update to remove Gitter and replace with Slack, and update copyright dates
- add missing nobuild header
- Add SparkFun’s EasyDriver (and BigEasyDriver)
- Add unit tests for TH02 & Minor improvement
- Added rudiementary support for TH02 Grove Sensor
- pwm_pin * Fix DutyCycle() parse error, need to trim off trailing '\n' before calling strconv.Atoi(), as other functions in this package do
- Simplify code as suggested in #617
- add mutex to control transactionality of the device communication
- add 128x32 and 96x16 sizes to the i2c ssd1306 driver
- build out the ccs811 driver
- update PCA9685 driver to use same protocol as Adafruit Python lib
- Parser error in Pointable.Bases: Write test and fix
- Update gobot leap platform to support Leap Motion API v6
- fix mavlink README to use correct example code
- Add some new MQTT adaptor functions with QOS
- Allow setting QoS on MTT adaptor
- make tests run correctly even when a local MQTT server is in fact running
- Do not skip verification of root CA certificates by default InsecureSkipVerify
- Update Go NATS client library import
- minor updates to opencv README
- update to OpenCV 4.1.0
- Added methods to read Sphero Power States
- Added some new features to the sphero ollie, bb-8 and sprkplus
- correct param used for APA102 Draw() method
- Stop using Red parameter for brightness value
- add direct vector access
- add example with keyboard
- Change fps to 60
- Check for error immediately and skip publish if error occurred
- update FlightData struct
- add support for built-in LEDs
- correct i2c default bus information to match correct values
- finalize docs for UP2 config steps
- update README to include more complete setup information
- useful constant values to access the built-in LEDs
v1.12.0 (2018-08-27)
- further improvement of the modular API changes
- modify Start() for more modular initialization, and add StartRaw() for completely custom API implementations
- settled on StartWithoutDefaults() as the method to start API without default routes
- add Rescale utility function for straight linear rescaling
- add examples using digispark with i2c devices blinkm and mlp115a2
- Added i2c to digispark, but not working yet
- Added some tests for digispark i2c connector
- Digispark i2c fixes, added Test for checking available addresses
- remove test method that should not be in adaptor
- remove test that is expected to ofail, but passes when digispark board is actually connected
- add GrovePi to README
- adjust order of badges in README
- Fixing broken link
- add example that uses both the API and also a custom handler with MJPEG streaming from an attached camera
- small improvements to Tello examples
- update Tello examples for main thread friendly macOS/Windows, add Tello face tracker
- add commands to JHD1313MDriver
- add commands to PCA9685Driver
- add missing methods so the GrovePi fully implements the Adaptor interface
- add ShowImage() function to ssd1306 driver based on @mikegleasonjr suggestion
- GrovePi digitalwrite implemented
- implemented DigitalRead, DigitalWrite, and AnalogRead for GrovePi
- improve godocs for PCA9685
- mention that GrovePi requires running firmware 1.3.0
- update GrovePi to v1.3.0 firmware
- work in progress on GrovePi plus driver
- add config file for Magicsee R1 contributed by @carl-ranson
- add some additional test coverage for file-based config
- added error handling for config loading in joystick driver
- mention need to be running a Linux kernel v4.14+ for controller mappings to work as expected
- provide constant values for existing joystick configurations
- export PiBlasterPeriod in Adaptor
- add ShowImage() function to ssd1306 driver based on @mikegleasonjr suggestion
- specify end of msgType position
- add handleResponse testing
- Add motion cessation commands to Tello
- handleResponse only needs an io.Reader
- handleResponse should not send commands
- rename reqConn to cmdConn
- reqConn is only an io.WriteCloser
- send Land() command to drone on Halt() to avoid floating mid-air
1.11.1 (2018-07-10)
- exclude vendor and other previously excluded subpackages
- update Travis build to use OpenCV 3.4.2 release
- update deps for GoCV to v0.14.0 release
- Bump periph.io/x/periph to v3.0.0
- update to Go 1.10.3 and 1.9.7 for Travis builds
- Fix Leap Motion package link
- fix write/read gpio on mcp23017, and cleaned up some comments
- correct pca9685 SetPWMFreq function scaling
- update with default spi values, cleanup
1.11.0 (2018-05-31)
- correct profile file location for codecov upload
- Make Go Lint happier by adding some explicit type conversions and ignoring unused error returns
- single quotes needed to upload any .cov file to codecov for reporting
- update deps to latest versions for Paho MQTT, go-sdl, and gocv
- upload any .cov file to codecov for reporting
- use go 1.10.2 and 1.9.6 for Travis builds
- add step to call dep ensure before contributing #524
- correct events used by XBox360 joystick example
- Update the Firmata homepage in platform README
- Improve Stepper Driver
- Initial support for MAX7219 (gpio) led driver
- full corrected ds3 and ds4 mappings plus examples to match for latest sdl 2.0.8
- add instructions to README on how to install SDL on Linux from source
- add missing type conversion
- add new contributions to README
- Add T-Flight Hotas X flight controoller
- add xbox360 rock band drums controller
- Correct Dualshock4 controller mappings and add ps/left/right buttons
- correct test issue
- exclude scanner from test builds
- Fix joystick_driver to detect dpad input for xbox controllers
- Update dualshock4.json to match joystick_dualshock4.go
- update scanner to match go-sdl 0.3 API changes
- Update the joystick driver test to read DPAD properly
- change timestamp to uint64 to fix #516
- slow/fast mode switch function
- StopLanding feature
- Add Bounce() and PalmLand() funcs and their associated events.
- bug fix
- Change several fields in FlightData struct from int16 to bool
- Export the FlightData fields (see Issue #531)
1.10.2 (2018-04-24)
- update GoCV to latest version
1.10.1 (2018-04-24)
- improve support for DJI Tello drone, especially video
1.10.0 (2018-04-20)
- add gitter badge to readme
- AIP1640 led driver, used in Wemos D1 mini's matrix LED shield
- 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
- correct spelling error in function name
- update to latest version of Go 1.10 for Travis build
- remove extra newline
- add recently contributed GPIO devices to README
- 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
- add support for DJI Tello drone
v1.9.0 (2018-02-14)
- update pin naming, docs, and examples for the latest Debian OS releases
- update build settings needed to build OpenCV/GoCV as part of test suite
- deps for latest GoCV v0.9.0
- update Travis build to use very latest Go versions
- 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
- Initial support for TM1638 modules
- Added basic driver for BH1750 (light sensor), board GY-302
- support for accel ADXL345
- add Boost command
- add Set Back LED Output command
- add Set Raw Motor Values command
- add Set Rotation Rate command
- add Set Stabilization command
- Refactor TestAdaptorDigitalPinConcurrency test
v1.8.0 (2017-12-21)
- pause briefly to allow udev rules to apply when exporting PWMPin
- 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
- add support for PocketBeagle
- use universal io cape manager to initialize board setup
- improve docs for latest Debian OS
- Add dep, change how tests run in CI
- update dependencies to latest GoCV version
- 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
- initial work on support for UP2 board
- fixed set/get bug with motor dps
- Adding stepper motor module
- handle cases where out of sync data is read from serial port on first connecting
- Change init payload sequence within jhd1313m1 driver Start() func.
v1.7.1 (2017-11-05)
- add new platform for Sphero SPRK+
- correct problem where last analog pin(s) were being ignored from capabilities query
- use go-ble/ble fork for BLE interactions
- update to use latest OpenCV version
- update to use latest Golang versions
v1.7.0 (2017-10-23)
- Add Linux specific step to Intel Curie docs
- Added SetCleanSession
- 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
- some helpful edits for the initial spi implementation
- integration of recent GoPiGo3 contributions
- Added grove support, and more gopigo3 examples
- Add ButtonDriver.DefaultState to allow for 'reverse' buttons (ones that go from HIGH to LOW)
- Add initial support for HS-200
- SSD1306.WithDisplayHeight() and SSD1306.WithDisplayWidth() for SSD1306 that use different display ratios
- add CLI utilty to scan display events to make it easier to add new joyticks
- update README to address #441
- 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
v1.6.1 (2017-07-15)
- log failure errors on Robot Start()
- run test coverage with covermode=set
- update build to use Golang 1.7.6 and 1.8.3
- work on ROADMAP doc
- increase test coverage
- use updated ble adaptor interface for tests
- allow for characteristic writes both with and without a response
- allow override of specific HCI device to use
- eliminate race conditions from response handling
- Implement Accelerometer, Gyroscope, and Temperature sensors implemented
- motion detect implemented
- shock detect implemented
- step count implemented
- tap detect implemented
- update blink example to display error message on Start()
- update README with latest development info
- auto-discovery of Edison board option
- removed commented lines
- 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
- 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
- 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
- remove unused test code
- write config register in little endian
- add needed constants for all PS3 buttons
- littlewire.cc links changed to littlewire.github.io
- switch to using go-serial package
- switch to using go-serial package
- use updated ble adaptor interface for tests
- 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
- switch to using go-serial package
- use updated ble adaptor interface for tests
- switch to using go-serial package
- Updated Tinkerboard and sysfs tests to updated PWM polarity contract
v1.6.0 (2017-06-15)
- use updated ble adaptor interface for tests
- eliminate race conditions from response handling
- allow for characteristic writes both with and without a response
- allow override of specific HCI device to use
- update build to use Golang 1.8.3
- update build to use Golang 1.7.6 and 1.8.2
- run test coverage with covermode=set
- log failure errors on Robot Start()
- update docs formatting
- add Curie to main README platform list
- more improvements for README setup instructions
- improve README info
- improve tests and examples
- increase test coverage
- increase test coverage
- motion detect implemented
- tap detect implemented
- step count implemented
- shock detect implemented
- Accelerometer, Gyroscope, and Temperature sensors implemented
- WIP on adding support for Intel Curie IMU
- update blink example to display error message on Start()
- update README with latest development info
- add more wishlist to ROADMAP
- add helpful information to examples themselves
- correct installation instructions to match latest versions
- more wishlish items for roadmap
- update BLE connect info to latest
- more work on ROADMAP doc
- add first attempt at roadmap document
- refactor auto-discovery of Edison board option
- removed commented lines
- remove circular import in test
- make it possible to test external devices that use firmata adaptor
- Sysex response events now being handled as expected
- expose WriteSysex to external callers
- expose WriteSysex to external callers
- cleanup error handling for connection code
- improve connection code to use a proper timeout
- remove unused code, increase test coverage
- increase test coverage
- switch to using go-serial package
- return connect errors to client
- client tests don't need so many goroutines
- adjust client test timeout values
- refactoring firmata client
- signed/unsigned bug
- 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.
- PWM duty cycle calculation for C.H.I.P ServoWrite
- PWM init bug for C.H.I.P
- remove unused test code
- BME280 humidity initialisation so that it does not override existing oversampling rates that have been set up for the ctrl_meas register.
- #424: 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
- add needed constants for all PS3 buttons
- C.H.I.P PWM init robust for already enabled state
- switch to using go-serial package
- switch to using go-serial package
- use updated ble adaptor interface for tests
- never expect responses for characteristic writes
- add example for Parrot Mambo
- separate flight status processing and add test coverage
- add support for Mambo external accessories
- remove unneeded code, increase test coverage
- increase test coverage
- switch to using go-serial package
- use updated ble adaptor interface for tests
- for v1.6.0 release
- correct changelog incorrect section titles
- switch to using go-serial package
- increase test coverage
- Tinkerboard and sysfs tests to updated PWM polarity contract
- config register in little endian
v1.5.0 (2017-05-10)
- Add Running() methods for Manager and Robot and increase test coverage accordingly
- 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
- increase coverage on test helpers
- switching to Travis builds using Ubuntu 14.04 Trusty
- only need to support AnalogReader interface
- avoid test race conditions
- ensure that AnalogSensor event Data is always int
- only need to support DigitalReader/DigitalWriter interface
- 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
- implement DigitalPinner and PWMPinner interfaces
- protect against pin map races
- increase test coverage
- add preliminary support for C.H.I.P. Pro
- add back ServoWrite implementation
- implement DigitalPinnerProvider and PWMPinnerProvider interfaces
- protect against pin map races
- export DigitalPin and PWMPin adaptor methods
- protect against pin map races
- increase test coverage
- 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
- remove processing that might have been eating test events, increase test coverage
- 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
- add a Mavlink-over-UDP adaptor.
- Add DigitalWriter, DigitalReader, and AnalogReader support using IOPinDriver
- Handle start error and increase test coverage
- 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
- change the On() handler to take the subject as an argument
- increase test coverage
- implement DigitalPinnerProvider and PWMPinnerProvider interfaces
- add implementation for PWMPinner interface that wraps pi blaster
- fix adaptor race conditions
- increase test coverage
- Add support for ASUS Tinker Board
v1.4.0 (2017-04-12)
- Use 10-buffered chans for events, see #374
- 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
- Eliminate race conditions introduced by tests
- Fix motor mode change when speed is set
- Eliminate race conditions introduced by tests
- Reduce test side effects
- Increase test coverage
- Increase test coverage
- Refactoring to use BLEConnector interface and provide tests
- Increase test coverage
- Increase test coverage
- Increase test coverage for battery, device information, and generic access drivers
- Refactoring drivers to use BLEConnector interface and provide tests
- Added PWM0 support
- Increase test coverage
- Increase test coverage
- Increase test coverage
- Remove pointless error checking code
- Refactor digital pin creation process method
- Increase test coverage
- Eliminate race conditions introduced by tests
- Increase test coverage for i2c commands
- Increase test coverage
- Increase test coverage
- Increase test coverage
- Eliminate race conditions introduced by tests
- Increase test coverage
- Increase test coverage
- Refactoring to use BLEConnector interface and provide tests
- Address #404 by adding info about required magnetometer calibration step to README
- Increase test coverage
- Refactoring to use BLEConnector interface and provide tests
- Increase test coverage
- Increase test coverage
- Update neurosky README & example
- Eliminate race conditions introduced by tests
- Increase test coverage
- Refactoring to use BLEConnector interface and provide tests
- Correct race condition error on seq
- Increase test coverage
- Increase test coverage
- Increase test coverage
- Address #391 by providing more details about normal development workflow
- Increase test coverage
- Eliminate race conditions
- Increase test coverage
- Address race condition from udev rules when exporting GPIO pins
- Increase test coverage
- Improve explanations for scp/ssh workflow on SoC boards
- Include entire Apache 2.0 license in the license text
- 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
v1.3.0 (2017-03-22)
- Add new platform support
- Add new platform support
- Increase test coverage
- Update list of supported i2c devices
- Minor adjustments and test coverage improvements
- Added more capabilities checks for I2C
- Removed smbus block operations
- Increase test coverage
- Improvements to run tests much faster thanks @maruel
- Use codecov.io for code coverage reporting
- Update CoC based on Contributor Covenant
v1.2.1 (2017-02-16)
- NATS options to pass in the NATS adaptor for TLS support.
- correct docs to describe valid pin mappings
- version to 1.2.1 for point release
v1.2.0 (2017-02-16)
- Use new improved default namer to avoid API conflicts
- Removed scaling function from servo driver
- Correct servo driver to pass along angle to adaptor to sort out implementation
- Refactored platforms and drivers to new I2C interfaces
- Change to make I2C support more than one bus
- Refactor drivers to support new optional params
- Added collision detection support and example
- Correct i2c buses to match actual mapping
- Switch to using ble package for Bluetooth LE
- Basic serial over BLE working with Arduino101 with StandardFirmataBLE
- WIP on multiple simultaneous ble devices
- Fixed chip XIO base address lookup
- Fix #288 by using pkg-config to locate libusb-compat includes
- Remove race conditions identified in Firmata client
- Correct error in I2C reads not listening to board events
- 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
- Add driver to make it easier to create virtual devices
- Added collision detection support and example
- Add ValidatePitch helper function for Parrot Minidrone, Parrot Bebop & ARDrone 2.0 to package
- Fix #363 by using atomic.Value to protect current values used by multiple goroutines in drone examples
- Remove Golang 1.5 from TravisCI tests in prep for Golang 1.8 release
v1.1.0 (2017-01-09)
- use canonical import path for sysfs package
- Add a driver for the SHT3X chip
- Add a driver for BMP180
- Add support for L3GD20H gyroscope
- 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
- Correct README build instructions with missing 'go build' command
- Add the packaging metadata to build the gobot snap for Ubuntu Snappy
- Update examples to take key params via command line
- Address #160 by adding support for tinker-servo sketch if installed on Particle device
- Should fix #272 by using first byte of data as command register for I2C reads
- Some additional cleanup suggested by golint
- Add generic access service driver
- Update docs to include reference to included drivers
- Move various test code to test file
- Refactoring so no need to expose internal implementation details
- 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
- Correct NewDriver params and set name
- Add missing constructor to wrap Ollie implementation
- Update README with example and which specific models are currently supported
- Add all piloting flying state events
- Adds Emergency() and TakePicture() commands
- Add Golang 1.8beta2 to Travis builds
- Correct aio references for AnalogRead tests
v1.0.0 (2016-12-21)
- Refactoring to allow 'Metal' development using Gobot packages
- Able to run robots without being part of a Manager.
- Now running all work in separate goroutines
- Rename internal name of Manager 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 Manager 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
- 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
- Move I2C drivers into appropriately named 'drivers/i2c' directory
- Add support for Adafruit Servo/PWM HAT
- Move GPIO drivers into appropriately named 'drivers/gpio' directory
- Add support for PIR motion detector
- auto-detect Linux kernel version
- map usr LEDs to match all kernels
- Rename drivers to make them more obvious
- Add test placeholders
- Auto-detect OS version to adjust pin mappings
- Correct base for new 4.4 GPIO
- Support for other breakout boards besides Arduino
- Use io.ReadFull in platforms/firmata/client
- Update tarm/goserial to tarm/serial
- Add support for Intel Joule
- Adding support for MakeBlock megapi
- Add support for NATS server
- Complete renaming Spark platform to Particle
- Move Parrot Minidrone into own platform
- Move both ARDrone and Bebop under Parrot package
- Add missing godocs and small refactors for platform
- Add initial support for Sphero BB-8 platform
- Move Sphero Ollie into own platform
v0.13.0 (2016-10-10)
- PinMode test case
- PinMode func for MCP23017
- example for Edison blink demo without gobot initialization.
- ServoConfig to the FirmataAdaptor
- unit tests for ServoConfig
- support for MakeBlock megapi
- tests for the Adafruit driver, and corresponding minor driver changes.
- support for MakeBlock megapi
- a Servo example program for the Adafruit Servo Hat driver code.
- support for the Adafruit Servo/PWM HAT. This required a slight refactor to the existing Motor HAT code to support multiple I2C addresses.
- two API funcs for the Adafruit driver with respect to the DC Motor, fleshing out the raspi_adafruit example with a runner function.
- the initial NATS platform support
- attempt at correct Travis syntax for gnatsd -#5
- attempt at correct Travis syntax for gnatsd -#4
- attempt at correct Travis syntax for gnatsd -#3
- attempt at correct Travis syntax for gnatsd -#2
- attempt at correct Travis syntax for gnatsd
- fix unused var
- populate descriptors after descovering characterisitcs
- fix in the Adafruit stepper code, specifically with respect to the AdafruitDouble step-style.
- cleanups suggested by gosimple
- update README with an example of 'Metal' Gobot
- should correct occasional test errors due to event overlap with test
- correct behavior in Mavlink driver, correct tests to match
- Add Unsubscribe() to eventer, now Once() works as expected
- Add further tests for Eventer
- cleanup comments on Eventer interface
- function DeleteEvent added to Eventer interface
- Refactor tests to allow 'metal' development using Gobot adaptors/drivers.
- Refactor tests to allow 'metal' development using Gobot adaptors/drivers.
- Refactor tests to allow 'metal' development using Gobot adaptors/drivers.
- Refactor examples to allow 'metal' development using Gobot adaptors/drivers.
- Refactoring to allow 'metal' development using Gobot adaptors/drivers.
- Continue refactoring to allow 'metal' development using Gobot libs.
- Refactor events to use channels all the way down. Allows 'metal' development using Gobot libs.
- update README with an example of 'Metal' Gobot
- should correct occasional test errors due to event overlap with test
- correct behavior in Mavlink driver, correct tests to match
- Add Unsubscribe() to eventer, now Once() works as expected
- Add further tests for Eventer
- cleanup comments on Eventer interface
- function DeleteEvent added to Eventer interface
- Refactor tests to allow 'metal' development using Gobot adaptors/drivers.
- Refactor tests to allow 'metal' development using Gobot adaptors/drivers.
- Refactor tests to allow 'metal' development using Gobot adaptors/drivers.
- Refactor examples to allow 'metal' development using Gobot adaptors/drivers.
- Refactoring to allow 'metal' development using Gobot adaptors/drivers.
- Continue refactoring to allow 'metal' development using Gobot libs.
- Refactor events to use channels all the way down. Allows 'metal' development using Gobot libs.
- go fmt files that needed it from recent changes
- go fmt files that needed it from recent changes
- rename, adding a test file for the Adafruit driver, and slight func naming changes.
- rename, adding a test file for the Adafruit driver, and slight func naming changes.
- a typo and update the doc comment for FirmataAdaptor.ServoConfig
- the ServoConfig byte order
- issues flagged by 'go vet'
- misspellings
- some code and finally have Travis building
- tests, adding a few more, adding nats server to Travis CI for testing
- significant changes to the Adafruit Motor HAT driver to support Stepper Motors.
- commit of driver code, with accompanying example, for the Adafruit_MotorHat.
- add i2c example and notes to README about pullup resistors
- adds pin mappings from the second header
- add pin mapping info to README
- go fmt the multi-LED example
- branch 'dev' of github.com:jfinken/gobot into dev
- branch 'dev' of github.com:jfinken/gobot into dev
- update all LICENSE files for current year
- explicit initialization in Start, slight refactor, and separate DC Motor and Stepper Motor examples.
- interface assertions to test files.
- update to version 0.13.0
- debug message from i2c_device.go
- the raspi_adafruit program as it has been split into three separate programs, removing my Makefile for the raspi adafruit programs, and fixing up a few comments.
- my fork from the Adafruit tests.
- support for Intel Joule with the built-in LEDs and more
- add golang 1.7 to Travis CI tests
- add golang 1.7 to Travis CI tests
- complete move of test interfaces into the test files where they belong
- refactor test interfaces out of implementations and into the tests where they belong
- READMEs with up to date info for Edison/Joule
- platform support info
v0.12.1 (2016-07-13)
- little more WIP, can open a connection to a specific peripheral
- MQTT authentication support
- MQTT authentication support
- Go Reportcard badge for fun
- Go Reportcard badge for fun
- example of how to use temp36 temperature sensor with firmata
- example of how to use temp36 temperature sensor with firmata
- support for Dualshock4 wireless gamepad
- support for Dualshock4 wireless gamepad
- failures in Travis builds for Golang 1.3 due to SDL changes
- reading battery info
- seems to require Golang 1.4+
- see BLE devices, and connect to a specific one
- default value for PCMD flag to match the Bebop 2.0.57+ expectations
- default value for PCMD flag to match the Bebop 2.0.57+ expectations
- test delay to 50ms
- test delay to 50ms
- cleanup, improve go report card
- cleanup, improve go report card
- specs
- specs
- for analog (quick changes lag)
- for analog (quick changes lag)
- #201 by add 'make examples' command to Makefile
- mavlink link typo
- failing test
- failing test
- fmt the code
- hover time and remove cruft from simple Bebop drone example
- hover time and remove cruft from simple Bebop drone example
gobottest
package with test helpersgobottest
package with test helpers
- dev branch target more explicit
- sure tests pass
- branch 'feature/audio' into dev
- branch 'bugfix/gpio-button-tests' into dev
- branch 'feature/ble' into feature/ble-wip
- WIP on reading characteristics
- 229 value left out of test fixture on edison
- to use
gobottest
test helpers - to use
gobottest
test helpers
- fmt no longer used here
- commented lines
- test code
- merge conflicts
- merge conflict in Travis CI file
- implementation that can read data
- gpio pin turn on and off
- gpio pin turn on and off
- to currantlabs fork of gatt, and some related refactoring
- generated error messages as well
- generated error messages as well
- also need to be pointed to @veandco go-sdl2 fork
- to 0.12.1
- missing changelog entries
- missing changelog entries
- ARDrone face tracking example to use main go-opencv fork
- main go-sdl fork from @veandco to pickup any upstream changes
- OpenCV 2.4, as well as switch to main fork of go-opencv
- Seek to speed up read/write in sysfs
- on BLE
v0.12.0 (2016-07-13)
- 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
- Add new platform for Audio playback
- Support added for new GPIO device:
- RGB LED
- Bugfixes:
- Correct analog to better handle quick changes
- Correct handling of errors and buffering for Wiichuk
- Add support for MQTT authentication
- Switching to use main fork of OpenCV
- Some minor bugfixes related to face tracking
v.0.11.1 (2016-02-17)
- support for 'hand' and 'gesture' Leap Motion events
- MMA7660 accelerometer example for C.H.I.P.
- C.H.I.P. to supported platforms
- support for the CHIP platform
- MCP23017 write and read functionality to GPIO
- MCP23017 i2c device to README
- additional examples for C.H.I.P.
- I2C device descriptions in README
- the release command sent to pi-blaster.
- Intel Edison docs location thanks to @seanmarcia
- the new MQTT 'AutoReconnect' to false
- is no longer an option for Go 1.6
- event race condition
- I2C functionality before doing SMBus block I/O
- 1.3.3 still works, adding back to build
- button delay hack for test suite
- test delay hack for button tests
- C.H.I.P. pins according to printed names
- to explicitly set content type to text/html for Robeaux main page
- coveralls repo token for provate repos?
- coveralls badge
- builds against the latest major releases
- take-off-before-event-handling bug again
- to remove coveralls based code coverage
- conditional build before_install
- conditional build
- version to v.0.11.1
- version to 0.11
- MQTT README for latest info
- targeted golang versions to include 1.6, and to begin deprecating 1.3.3 and earlier
- coveralls badge in README
- API example
- newer naming system for C.H.I.P. pins
- about -v
- do this twice?
v0.11.0 (2016-02-17)
- Add support for GPIO & I2C interfaces on C.H.I.P. $9 computer
- Add support additional "hand" and "gesture" events
- Support latest update to Eclipse Paho MQTT client library
- Proper release of Pi Blaster for PWM pins
- Prevent event race conditions on takeoff/landing
- 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 (2015-10-27)
- Update Robeaux to v0.5.0
- Add support for the Parrot Bebop drone
- Add support for keyboard control
- 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
- Support added for 2 new Grove i2c devices:
- Grove Accelerometer
- Grove LCD with RGB backlit display
- Many useful fixes and updates for docs, mostly contributed by our wonderful community.
0.8.2 (2015-06-30)
- Refactor firmata adaptor and split firmata protocol implementation into sub
client
package
- Add support for LIDAR-Lite
- Add PWM support via pi-blaster
- Add
ConfigureLocator
,ReadLocator
andSetRotationRate
0.8.1 (2014-12-28)
- Add support for spark Events, Functions and Variables
- Add
SetDataStreaming
andConfigureCollisionDetection
methods
0.8 (2014-12-24)
- Update robeaux to v0.3.0
- Add optional io.ReadWriteCloser parameter to FirmataAdaptor
- Fix
thread exhaustion
error
-
generator
-
Update generator for new adaptor and driver interfaces
-
Add driver, adaptor and project generators
-
Add optional package name parameter
0.7.1 (2014-11-17)
- Fix pthread_create issue on Mac OS
0.7 (2014-11-10)
- Conform to the cppp.io spec
- Add support for basic middleware
- Add support for custom routes
- Add SSE support
- Add optional parameter to specify the drones network address
- Add
Once(e *Event, f func(s interface{})
Event function - Rename
Expect
toAssert
and addRefute
test helper function
- Add support for MPL115A2
- Add support for MPU6050
- Add support for
common
mavlink messages
- Add support for mqtt
- Add support for the Raspberry Pi
- Enable stop on sphero disconnect
- Add
Collision
data struct
- Add generic linux filesystem gpio implementation
0.6.3 (2014-09-24)
0.6.2 (2014-07-28)
- Fix typo in generator
- Fix incorrect Port reference
- Fix incorrect Event name
- Fix incorrect Event names
- Correctly format output of GetRGB
0.6.1 (2014-07-12)
- Fix template error in generator
0.6 (2014-07-11)
- Add robeaux support
- Refactor
Connection
andDevice
- Connections are now a collection of Adaptors
- Devices are now a collection of Drivers
- Add
Event(string)
function instead ofEvents[string]
for retrieving Driver event - Add
AddEvent(string)
function to register an event on a Driver
- Fix slice bounds out of range error
- Fix issue where the driver would not halt correctly on OSX
0.5.2 (2014-06-30)
- Add
DirectPinDriver
- Ensure slots are properly loaded
0.5.1 (2014-06-28)
- Add
Version()
function for Gobot version retrieval
- Fix issue with reading analog inputs
- Add
data
event forAnalogSensorDriver
0.5 (2014-06-17)
- 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 Manager type with Gobot type
- Every
and
Afternow accept
time.Duration` - Removed reflection helper methods
0.4 (2014-06-12)
- commands now return an array of results
- cors support
- basic auth support to api
- Joystick & Neurosky platforms to README
- utils tests
- coveralls
- user to set Host and Port when starting up Api
- README image source to gobot-site repo
- startApi to private function
- warning when using API without SSL
- the logo link
- device and connection type
- tests
- api test coverage
- tests
- tests
- Travis build from IRC
- ConnectToSerial
- ConnectToTcp util
- Reconnect and Disconnect from AdaptorInterface
- is now a pointer
- support in Api
- README.md
- README for new API security features
- api robeaux api compatibility
- .travis.yml
- generated driver
- examples
- coveralls badge
- platforms and drivers
- go-martini/martini
- for API host/port params
- api tests
0.3 (2014-04-07)
- Godeps file
- IRC notifications to Travis builds
- tests for generated projects
- Init function to DriverInterface
- Halt function to DriverInterface
- more GPIO devices to README
- scale functions
- updates for new gonuts/commander api
- typo in generator
- branch 'master' of github.com:hybridgroup/gobot
- generator
0.2 (2014-02-04)
- robeaux submodule
- Finalize on SIGINT
- Publish function for driver events
- device test coverage
- manager and robot test coverage
- up tests
- not run tests on gobot.io branch
- compatibility with cylon and artoo
- test coverage
- robot and manager
- robeaux submodule
- README.md
- examples
- golang log
- robeaux support
- POST and GET for commands
- and driver generator
- support for additional parameters
- serialport support
- Travis banner to README
- api commands
- POST command
- manager example
- robot manager
- Sphero example
- Digispark to list of supported platforms
- helper functions
- Driver channel for events
- port to adaptor
- structure
- Black GPIO
- up files
- up variables
- up some comments
- start drivers
- up On function
- for ignoring imports
- unnecessary api parameters
- robot functions via api
- example
- fmt examples
- GETs for api
- commit
- ginkgo and gomega dependencies
- branch 'examples'
- branch 'master' into ginkgo
- branch 'master' into ginkgo
- WIP of base structs
- using Connection.Connect()
- tests for Robot
- formatting for README example
- set default interval
- robot name assignment func, and tests to prove it
- examples using gofmt
- source using gofmt
- Params from driver struct
- extra nesting
- Gobot struct to Manager
- GOMAXPROCS property in GobotManager
- for ginkgo/gomega testing
- refactor
- robot refactor
- is now optional
- to adaptor, driver, connection and device interfaces
- lang build
- json output
- examples
- README.md
- timers and fix issues
- multiple robot support
- connections and devices
- is optional