- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
-
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
- 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
- Support added for new GPIO device:
- mqtt
- Add support for MQTT authentication
- opencv
- Switching to use main fork of OpenCV
- Some minor bugfixes related to face tracking
- 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
- Support added for new i2c device:
- 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
- Support added for 10 new Grove GPIO devices:
- i2c
- Support added for 2 new Grove i2c devices:
- Grove Accelerometer
- Grove LCD with RGB backlit display
- Support added for 2 new Grove i2c devices:
- docs
- Many useful fixes and updates for docs, mostly contributed by our wonderful community.
- firmata
- Refactor firmata adaptor and split firmata protocol implementation into sub
client
package
- Refactor firmata adaptor and split firmata protocol implementation into sub
- gpio
- Add support for LIDAR-Lite
- raspi
- Add PWM support via pi-blaster
- sphero
- Add
ConfigureLocator
,ReadLocator
andSetRotationRate
- Add
- spark
- Add support for spark Events, Functions and Variables
- sphero
- Add
SetDataStreaming
andConfigureCollisionDetection
methods
- Add
- 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
- generator
- opencv
- Fix pthread_create issue on Mac OS
- 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
- Add
- i2c
- Add support for MPL115A2
- Add support for MPU6050
- mavlink
- Add support for
common
mavlink messages
- Add support for
- 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
- Add support for the Intel Edison
- 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
- cli
- Fix template error in generator
- 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
- Refactor
- firmata
- Fix slice bounds out of range error
- sphero
- Fix issue where the driver would not halt correctly on OSX
- beaglebone
- Add
DirectPinDriver
- Ensure slots are properly loaded
- Add
- core
- Add
Version()
function for Gobot version retrieval
- Add
- firmata
- Fix issue with reading analog inputs
- Add
data
event forAnalogSensorDriver
- 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