58 KiB
58 KiB
CHANGELOG
Unreleased
v2.1.0 (2023-05-29)
Build
v2.0.3 (2023-05-24)
- accidentally created release without any changes
v2.0.2 (2023-05-22)
Build
- v2: fix usage by moving code to a v2 subfolder (#927)
v2.0.1 (2023-05-21)
Build
- style: add golangci-lint workflow configuration (#916)
- style: fix linter findings of "gosimple", "govet" and "staticcheck" (#917)
Bump
- 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)
Core
- fix Semantic Import Versioning for v2 (#921)
Docs
- core: adjust changelog generation (#924)
v2.0.0 (2023-05-15)
ble
- update to TinyGo Bluetooth package v0.6.0 release
build
- 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
core
- use base driver for all I2C devices
- rename package "sysfs" to "system"
- go.mod to 1.17 and all modules incl. code upgrades
digispark
- add example for generic i2c.Driver
- fix i2c.ReadBlockData(), Read_Data() and some small other fixes
dji tello
- Halt does not terminate all the related goroutines and may wait forever when it is called multiple times
docs
- README for gpio, pwm, i2c and add example
- document fields for flight data
aio
- analog sensor driver to prevent ReadValue() to get float64
gopigo3
- fix examples and driver
gpio
- 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
i2c
- 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
jetson nano
- add Jetson Nano adpator
- fix pwm feature
joystick
- add Xbox-One controller
- add configuration for Nintendo Switch controllers (#903)
- add Dualsense joystick (PlayStation 5) (#880)
nanopi neo
- add platform
piblaster
- add unused but missing interface implementation
radxa rock pi 4(c+)
- add platform (#902)
raspi
- fix pwm cache
- fix Stopping and Starting Robot and LED Driver/LED does not toggle on restart
spi
- fix spi.SpiConnection is not gobot.Connection: missing method Connect
- using GPIO's is now possible
- MFRC522: add driver
test
- 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
tinkerboard
- fix new pwm behaviour
BREAKING CANGES
- some interfaces moved, see folder system and adaptor.go
v1.16.0 (2022-05-02)
bugfix
- 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
core
- update uuid package and directly access it; remove archived uuid package
digispark
- fix ReadByte & WriteByte, rework and add i2c tests
- remove useless code in i2c test
drivers
- 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
raspi
- fix raspi PWMPin.SetDutyCycle (#800)
tello
- Guards Dji Tello Halt against nil dereference
test
- don't panic on 'With*' allow simpler wrapping of drivers
tinkerboard
- fix tinkerboard i2c0 to i2c4, improve comments in pin map, improve README
v1.15.0 (2020-11-30)
build
- Switch to CircleCI
ble
- replace go-ble with tinygo bluetooth package, restore macOS functionality
gpio
- 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
spi
- fixes #700 * Avoid to close the connection.
i2c
- add SHT2x device
- add BMP388 Barometric Pressure/Temperature/Altitude Sensor
pwm
- Resolve issue with PWM for PWMWrite
mqtt
- Add method to publish MQTT messages with retain flag
tello
- Add graceful halt for Tello driver
- Add Tello EDU driver
keyboard
- add symbol keys for platform/keyboard
examples
- Update ffmpeg command to decrease latency in tello example
v1.14.0 (2019-10-15)
core
- migrating from dep to go modules
- update codegangsta to urfave (#690)
docs
- Fix a link in package docs' example code.
examples
- fixed broken imports due to changed path causing go get to fail
gpio
- Added ability to make a relay driver inverted (#674)
opencv
- Update to GoCV 0.21.0
spi
- Apa102 use default brightness (#671)
tello
- Updated videoPort for DJI Tello to 11111
v1.13.0 (2019-05-22)
api
- Initial stab at Robot-based work
build
- 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
docs
- update to remove Gitter and replace with Slack, and update copyright dates
example
- add missing nobuild header
gpio
- 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
grovepi
- add mutex to control transactionality of the device communication
i2c
- 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
leapmotion
- Parser error in Pointable.Bases: Write test and fix
- Update gobot leap platform to support Leap Motion API v6
mavlink
- fix mavlink README to use correct example code
mqtt
- 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
nats
- Update Go NATS client library import
opencv
- minor updates to opencv README
- update to OpenCV 4.1.0
sphero
- Added methods to read Sphero Power States
- Added some new features to the sphero ollie, bb-8 and sprkplus
spi
- correct param used for APA102 Draw() method
- Stop using Red parameter for brightness value
tello
- 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
up2
- 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)
api
- 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
core
- add Rescale utility function for straight linear rescaling
digispark
- 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
docs
- add GrovePi to README
- adjust order of badges in README
- Fixing broken link
examples
- 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
i2c
- 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
joystick
- 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
raspi
- export PiBlasterPeriod in Adaptor
spi
- add ShowImage() function to ssd1306 driver based on @mikegleasonjr suggestion
tello
- 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)
build
- 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
docs
- Fix Leap Motion package link
i2c
- fix write/read gpio on mcp23017, and cleaned up some comments
- correct pca9685 SetPWMFreq function scaling
gopigo3
- update with default spi values, cleanup
1.11.0 (2018-05-31)
build
- 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
examples
- correct events used by XBox360 joystick example
firmata
- Update the Firmata homepage in platform README
gpio
- Improve Stepper Driver
- Initial support for MAX7219 (gpio) led driver
joystick
- 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
leapmotion
- change timestamp to uint64 to fix #516
tello
- 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)
opencv
- update GoCV to latest version
1.10.1 (2018-04-24)
tello
- improve support for DJI Tello drone, especially video
1.10.0 (2018-04-20)
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
v1.9.0 (2018-02-14)
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
v1.8.0 (2017-12-21)
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.
v1.7.1 (2017-11-05)
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
v1.7.0 (2017-10-23)
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
v1.6.1 (2017-07-15)
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
v1.6.0 (2017-06-15)
Bb8
- use updated ble adaptor interface for tests
Ble
- eliminate race conditions from response handling
- allow for characteristic writes both with and without a response
- allow override of specific HCI device to use
Build
- 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
Core
- log failure errors on Robot Start()
Curie
- 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
Digispark
- update blink example to display error message on Start()
- update README with latest development info
Docs
- 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
Edison
- refactor auto-discovery of Edison board option
- removed commented lines
Firmata
- 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
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.
- PWM duty cycle calculation for C.H.I.P ServoWrite
- PWM init bug for C.H.I.P
I2c
- remove unused test code
Improved
- BME280 humidity initialisation so that it does not override existing oversampling rates that have been set up for the ctrl_meas register.
Issue
- #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
Joystick
- add needed constants for all PS3 buttons
Made
- C.H.I.P PWM init robust for already enabled state
Mavlink
- switch to using go-serial package
Megapi
- switch to using go-serial package
Microbit
- use updated ble adaptor interface for tests
Minidrone
- 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
Neurosky
- switch to using go-serial package
Ollie
- use updated ble adaptor interface for tests
Prepare
- for v1.6.0 release
Release
- correct changelog incorrect section titles
Sphero
- switch to using go-serial package
Sysfs
- increase test coverage
Updated
- Tinkerboard and sysfs tests to updated PWM polarity contract
Write
- config register in little endian
v1.5.0 (2017-05-10)
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
v1.4.0 (2017-04-12)
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
v1.3.0 (2017-03-22)
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
v1.2.1 (2017-02-16)
Allow
- NATS options to pass in the NATS adaptor for TLS support.
Chip
- correct docs to describe valid pin mappings
Update
- version to 1.2.1 for point release
v1.2.0 (2017-02-16)
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 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
v1.1.0 (2017-01-09)
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
v1.0.0 (2016-12-21)
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
v0.13.0 (2016-10-10)
Add
- PinMode test case
- PinMode func for MCP23017
- example for Edison blink demo without gobot initialization.
- ServoConfig to the FirmataAdaptor
- unit tests for ServoConfig
Adding
- 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
Another
- 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
Ble
- fix unused var
- populate descriptors after descovering characterisitcs
Bug
- fix in the Adafruit stepper code, specifically with respect to the AdafruitDouble step-style.
Code
- cleanups suggested by gosimple
Core
- 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.
Docs
- go fmt files that needed it from recent changes
- go fmt files that needed it from recent changes
File
- 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.
Fix
- a typo and update the doc comment for FirmataAdaptor.ServoConfig
- the ServoConfig byte order
- issues flagged by 'go vet'
- misspellings
Fixing
- some code and finally have Travis building
- tests, adding a few more, adding nats server to Travis CI for testing
Initial
- significant changes to the Adafruit Motor HAT driver to support Stepper Motors.
- commit of driver code, with accompanying example, for the Adafruit_MotorHat.
Joule
- 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
Merge
- branch 'dev' of github.com:jfinken/gobot into dev
- branch 'dev' of github.com:jfinken/gobot into dev
Misc
- update all LICENSE files for current year
More
- explicit initialization in Start, slight refactor, and separate DC Motor and Stepper Motor examples.
Move
- interface assertions to test files.
Release
- update to version 0.13.0
Remove
- debug message from i2c_device.go
Removing
- 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.
Starting
- support for Intel Joule with the built-in LEDs and more
Test
- add golang 1.7 to Travis CI tests
- add golang 1.7 to Travis CI tests
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
Update
- READMEs with up to date info for Edison/Joule
Updating
- platform support info
v0.12.1 (2016-07-13)
A
- little more WIP, can open a connection to a specific peripheral
Add
- MQTT authentication support
- MQTT authentication support
- Go Reportcard badge for fun
- Go Reportcard badge for fun
Added
- example of how to use temp36 temperature sensor with firmata
- example of how to use temp36 temperature sensor with firmata
Adds
- support for Dualshock4 wireless gamepad
- support for Dualshock4 wireless gamepad
Allow
- failures in Travis builds for Golang 1.3 due to SDL changes
Almost
- reading battery info
BLE
- seems to require Golang 1.4+
Can
- see BLE devices, and connect to a specific one
Change
- 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
Code
- cleanup, improve go report card
- cleanup, improve go report card
Fix
- specs
- specs
- for analog (quick changes lag)
- for analog (quick changes lag)
- #201 by add 'make examples' command to Makefile
- mavlink link typo
Fixes
- failing test
- failing test
Go
- fmt the code
Increase
- hover time and remove cruft from simple Bebop drone example
- hover time and remove cruft from simple Bebop drone example
Introduce
gobottest
package with test helpersgobottest
package with test helpers
Make
- dev branch target more explicit
Making
- sure tests pass
Merge
- branch 'feature/audio' into dev
- branch 'bugfix/gpio-button-tests' into dev
- branch 'feature/ble' into feature/ble-wip
More
- WIP on reading characteristics
Pin
- 229 value left out of test fixture on edison
Refactor
- to use
gobottest
test helpers - to use
gobottest
test helpers
Remove
- fmt no longer used here
- commented lines
- test code
Resolve
- merge conflicts
- merge conflict in Travis CI file
Simple
- implementation that can read data
Support
- gpio pin turn on and off
- gpio pin turn on and off
Switching
- to currantlabs fork of gatt, and some related refactoring
Test
- generated error messages as well
- generated error messages as well
Tests
- also need to be pointed to @veandco go-sdl2 fork
Update
- to 0.12.1
- missing changelog entries
- missing changelog entries
- ARDrone face tracking example to use main go-opencv fork
Use
- 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
WIP
- on BLE
v0.12.0 (2016-07-13)
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
v.0.11.1 (2016-02-17)
Add
- 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
Adds
- MCP23017 i2c device to README
- additional examples for C.H.I.P.
Better
- I2C device descriptions in README
Correct
- the release command sent to pi-blaster.
- Intel Edison docs location thanks to @seanmarcia
Default
- the new MQTT 'AutoReconnect' to false
Failure
- is no longer an option for Go 1.6
Fix
Fixed
- event race condition
Get
- I2C functionality before doing SMBus block I/O
Golang
- 1.3.3 still works, adding back to build
Increase
- button delay hack for test suite
- test delay hack for button tests
Name
- C.H.I.P. pins according to printed names
Need
- to explicitly set content type to text/html for Robeaux main page
No
- coveralls repo token for provate repos?
Remove
- coveralls badge
Run
- builds against the latest major releases
The
- take-off-before-event-handling bug again
Trying
- to remove coveralls based code coverage
- conditional build before_install
- conditional build
Update
- 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
Use
- newer naming system for C.H.I.P. pins
What
- about -v
Why
- do this twice?
v0.11.0 (2016-02-17)
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 (2015-10-27)
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.
0.8.2 (2015-06-30)
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
andSetRotationRate
0.8.1 (2014-12-28)
spark
- Add support for spark Events, Functions and Variables
sphero
- Add
SetDataStreaming
andConfigureCollisionDetection
methods
0.8 (2014-12-24)
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
-
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)
opencv
- Fix pthread_create issue on Mac OS
0.7 (2014-11-10)
Dramatically increased test coverage and documentation
api
- Conform to the cppp.io spec
- 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
toAssert
and addRefute
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
0.6.3 (2014-09-24)
Add support for the Intel Edison
0.6.2 (2014-07-28)
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
0.6.1 (2014-07-12)
cli
- Fix template error in generator
0.6 (2014-07-11)
api
- Add robeaux support
core
- 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
firmata
- Fix slice bounds out of range error
sphero
- Fix issue where the driver would not halt correctly on OSX
0.5.2 (2014-06-30)
beaglebone
- Add
DirectPinDriver
- Ensure slots are properly loaded
0.5.1 (2014-06-28)
core
- Add
Version()
function for Gobot version retrieval
firmata
- Fix issue with reading analog inputs
- Add
data
event forAnalogSensorDriver
0.5 (2014-06-17)
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
Afternow accept
time.Duration` - Removed reflection helper methods
0.4 (2014-06-12)
API
- commands now return an array of results
Add
- cors support
- basic auth support to api
- Joystick & Neurosky platforms to README
- utils tests
- coveralls
Allow
- user to set Host and Port when starting up Api
Change
- README image source to gobot-site repo
- startApi to private function
Display
- warning when using API without SSL
Fixed
- the logo link
Format
- device and connection type
Green
- tests
More
- api test coverage
- tests
Refactor
- tests
Remove
- Travis build from IRC
- ConnectToSerial
- ConnectToTcp util
- Reconnect and Disconnect from AdaptorInterface
Robot
- is now a pointer
SSL
- support in Api
Update
- README.md
- README for new API security features
- api robeaux api compatibility
- .travis.yml
- generated driver
- examples
- coveralls badge
- platforms and drivers
Use
- go-martini/martini
WIP
- for API host/port params
- api tests
0.3 (2014-04-07)
Add
- 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
All
- updates for new gonuts/commander api
Fix
- typo in generator
Merge
- branch 'master' of github.com:hybridgroup/gobot
Update
- generator
0.2 (2014-02-04)
Add
- robeaux submodule
- Finalize on SIGINT
- Publish function for driver events
- device test coverage
- master and robot test coverage
Clean
- up tests
Do
- not run tests on gobot.io branch
JSON
- compatibility with cylon and artoo
More
- test coverage
Refactor
- robot and master
Remove
- robeaux submodule
Update
- README.md
- examples
Use
- golang log
WIP
- robeaux support
0.1 (2013-12-30)
Accept
- POST and GET for commands
Adaptor
- and driver generator
Add
- support for additional parameters
- serialport support
- Travis banner to README
- api commands
- POST command
- master example
- robot master
- Sphero example
- Digispark to list of supported platforms
- helper functions
- Driver channel for events
- port to adaptor
Alter
- structure
Beaglebone
- Black GPIO
Clean
- up files
- up variables
- up some comments
Correctly
- start drivers
DRY
- up On function
Dots
- for ignoring imports
Drop
- unnecessary api parameters
Expose
- robot functions via api
Fix
- example
Go
- fmt examples
Initial
- GETs for api
- commit
Install
- ginkgo and gomega dependencies
Merge
- branch 'examples'
- branch 'master' into ginkgo
- branch 'master' into ginkgo
More
- WIP of base structs
Now
- using Connection.Connect()
Pending
- tests for Robot
Proper
- formatting for README example
Properly
- set default interval
Refactor
- robot name assignment func, and tests to prove it
Reformat
- examples using gofmt
- source using gofmt
Remove
- Params from driver struct
- extra nesting
Rename
- Gobot struct to Master
Set
- GOMAXPROCS property in GobotMaster
Skeleton
- for ginkgo/gomega testing
Small
- refactor
- robot refactor
StartDriver
- is now optional
Switch
- to adaptor, driver, connection and device interfaces
Travis
- lang build
Tweak
- json output
Update
- examples
- README.md
- timers and fix issues
WIP
- multiple robot support
- connections and devices
Work
- is optional