gobot.io/x/gobot@v1.16.0/CHANGELOG.md (about)

     1  1.16.0
     2  ---
     3  * **bugfix**
     4    * failing leftovers after usage of PR #569
     5    * Fix servo and DC motors presence
     6    * FIX the bug #568 without further impact, heavy improvements of tests
     7    * fixed PinMode, SetPullUp and SetPolarity, unit tests activated
     8    * ReadGPIO fixed with #576, failing leftovers for PinMode, SetPullUp and SetPolarity
     9    * helper_test ReadByteData, ReadWordData to use reg
    10  * **core**
    11    * update uuid package and directly access it; remove archived uuid package
    12  * **digispark**
    13    * fix ReadByte & WriteByte, rework and add i2c tests
    14    * remove useless code in i2c test
    15  * **drivers**
    16    * add AnalogActuatorDriver, analog temperature sensor, driver for PCF8591 (with 400kbit stabilization), driver for YL-40
    17    * Adding support for hmc8553l compass
    18    * bmp388 fix missing address write byte in test of Measurements
    19    * drv2605l fix missing address write byte in test of Halt()
    20    * introduce adafruit1109 2x16 LCD with 5 keys
    21    * mcp23017: add mutex for write, hd44780: fix mutexes
    22    * MCP3004: correct number of channels
    23  * **raspi**
    24    * fix raspi PWMPin.SetDutyCycle (#800)
    25  * **tello**
    26    * Guards Dji Tello Halt against nil dereference
    27  * **test**
    28    * don't panic on 'With*' allow simpler wrapping of drivers
    29  * **tinkerboard**
    30    * fix tinkerboard i2c0 to i2c4, improve comments in pin map, improve README
    31  
    32  1.15.0
    33  ---
    34  * **build**
    35      * Switch to CircleCI
    36  * **ble**
    37      * replace go-ble with tinygo bluetooth package, restore macOS functionality
    38  * **gpio**
    39      * Update RelayDriver to invert value written on Inverted
    40      * Add tests for DigitalWrite value
    41      * Add support for HD44780 LCD controller
    42      * Add delay for Run function of StepperDriver
    43  * **spi**
    44      * fixes #700 - Avoid to close the connection.
    45  * **i2c**
    46      * add SHT2x device
    47      * add BMP388 Barometric Pressure/Temperature/Altitude Sensor
    48  * **pwm**
    49      * Resolve issue with PWM for PWMWrite
    50  * **mqtt**
    51      * Add method to publish MQTT messages with retain flag
    52  * **tello**
    53      * Add graceful halt for Tello driver
    54      * Add Tello EDU driver
    55  * **keyboard**
    56      * add symbol keys for platform/keyboard
    57  * **examples**
    58      * Update ffmpeg command to decrease latency in tello example
    59  
    60  1.14.0
    61  ---
    62  * **core**
    63      * migrating from dep to go modules
    64      * update codegangsta to urfave (#690)
    65  * **docs**
    66      * Fix a link in package docs' example code.
    67  * **examples**
    68      * fixed broken imports due to changed path causing go get to fail
    69  * **gpio**
    70      * Added ability to make a relay driver inverted (#674)
    71  * **opencv**
    72      * Update to GoCV 0.21.0
    73  * **spi**
    74      * Apa102 use default brightness (#671)
    75  * **tello**
    76      * Updated videoPort for DJI Tello to 11111
    77  
    78  1.13.0
    79  ---
    80  * **api**
    81      * Initial stab at Robot-based work
    82  * **build**
    83      * correct package version as suggested by @dlisin thanks
    84      * only build last 2 versions of Go plus tip for CI
    85      * Update dep script for AppVeyor
    86      * update deps to latest versions of dependencies for GoCV and others
    87      * Update Gopkg and add test dep to Travis YML
    88      * update OpenCV build script for OpenCV 4.1.0
    89  * **docs**
    90      * update to remove Gitter and replace with Slack, and update copyright dates
    91  * **example**
    92      * add missing nobuild header
    93  * **gpio**
    94      * Add SparkFun’s EasyDriver (and BigEasyDriver)
    95      * Add unit tests for TH02 & Minor improvement
    96      * Added rudiementary support for TH02  Grove Sensor
    97      * pwm_pin - Fix DutyCycle() parse error, need to trim off trailing '\n' before calling strconv.Atoi(), as other functions in this package do
    98      * Simplify code as suggested in #617
    99  * **grovepi**
   100      * add mutex to control transactionality of the device communication
   101  * **i2c**
   102      * add 128x32 and 96x16 sizes to the i2c ssd1306 driver
   103      * build out the ccs811 driver
   104      * update PCA9685 driver to use same protocol as Adafruit Python lib
   105  * **leapmotion**
   106      * Parser error in Pointable.Bases: Write test and fix
   107      * Update gobot leap platform to support Leap Motion API v6
   108  * **mavlink**
   109      * fix mavlink README to use correct example code
   110  * **mqtt**
   111      * Add some new MQTT adaptor functions with QOS
   112      * Allow setting QoS on MTT adaptor
   113      * make tests run correctly even when a local MQTT server is in fact running
   114      * Do not skip verification of root CA certificates by default InsecureSkipVerify
   115  * **nats**
   116      * Update Go NATS client library import
   117  * **opencv**
   118      * minor updates to opencv README
   119      * update to OpenCV 4.1.0
   120  * **sphero**
   121      * Added methods to read Sphero Power States
   122      * Added some new features to the sphero ollie, bb-8 and sprkplus
   123  * **spi**
   124      * correct param used for APA102 Draw() method
   125      * Stop using Red parameter for brightness value
   126  * **tello**
   127      * add direct vector access
   128      * add example with keyboard
   129      * Change fps to 60
   130      * Check for error immediately and skip publish if error occurred
   131      * update FlightData struct
   132  * **up2**
   133      * add support for built-in LEDs
   134      * correct i2c default bus information to match correct values
   135      * finalize docs for UP2 config steps
   136      * update README to include more complete setup information
   137      * useful constant values to access the built-in LEDs
   138  
   139  1.12.0
   140  ---
   141  * **api**
   142    * further improvement of the modular API changes
   143    * modify Start() for more modular initialization, and add StartRaw() for completely custom API implementations
   144    * settled on StartWithoutDefaults() as the method to start API without default routes
   145  * **core**
   146    * add Rescale utility function for straight linear rescaling
   147  * **digispark**
   148    * add examples using digispark with i2c devices blinkm and mlp115a2
   149    * Added i2c to digispark, but not working yet
   150    * Added some tests for digispark i2c connector
   151    * Digispark i2c fixes, added Test for checking available addresses
   152    * remove test method that should not be in adaptor
   153    * remove test that is expected to ofail, but passes when digispark board is actually connected
   154  * **docs**
   155    * add GrovePi to README
   156    * adjust order of badges in README
   157    * Fixing broken link
   158  * **examples**
   159    * add example that uses both the API and also a custom handler with MJPEG streaming from an attached camera
   160    * small improvements to Tello examples
   161    * update Tello examples for main thread friendly macOS/Windows, add Tello face tracker
   162  * **i2c**
   163    * add commands to JHD1313MDriver
   164    * add commands to PCA9685Driver
   165    * add missing methods so the GrovePi fully implements the Adaptor interface
   166    * add ShowImage() function to ssd1306 driver based on @mikegleasonjr suggestion
   167    * GrovePi digitalwrite implemented
   168    * implemented DigitalRead, DigitalWrite, and AnalogRead for GrovePi
   169    * improve godocs for PCA9685
   170    * mention that GrovePi requires running firmware 1.3.0
   171    * update GrovePi to v1.3.0 firmware
   172    * work in progress on GrovePi plus driver
   173  * **joystick**
   174    * add config file for Magicsee R1 contributed by @carl-ranson
   175    * add some additional test coverage for file-based config
   176    * added error handling for config loading in joystick driver
   177    * mention need to be running a Linux kernel v4.14+ for controller mappings to work as expected
   178    * provide constant values for existing joystick configurations
   179  * **raspi**
   180    * export PiBlasterPeriod in Adaptor
   181  * **spi**
   182    * add ShowImage() function to ssd1306 driver based on @mikegleasonjr suggestion
   183  * **tello**
   184    * specify end of msgType position
   185    * add handleResponse testing
   186    * Add motion cessation commands to Tello
   187    * handleResponse only needs an io.Reader
   188    * handleResponse should not send commands
   189    * rename reqConn to cmdConn
   190    * reqConn is only an io.WriteCloser
   191    * send Land() command to drone on Halt() to avoid floating mid-air
   192  
   193  1.11.1
   194  ---
   195  * **build**
   196      * exclude vendor and other previously excluded subpackages
   197      * update Travis build to use OpenCV 3.4.2 release
   198      * update deps for GoCV to v0.14.0 release
   199      * Bump periph.io/x/periph to v3.0.0
   200      * update to Go 1.10.3 and 1.9.7 for Travis builds
   201  * **docs** 
   202      * Fix Leap Motion package link
   203  * **i2c** 
   204      * fix write/read gpio on mcp23017, and cleaned up some comments
   205      * correct pca9685 SetPWMFreq function scaling
   206  * **gopigo3** 
   207      * update with default spi values, cleanup
   208  
   209  1.11.0
   210  ---
   211  * **build**
   212      * correct profile file location for codecov upload
   213      * Make Go Lint happier by adding some explicit type conversions and ignoring unused error returns
   214      * single quotes needed to upload any .cov file to codecov for reporting
   215      * update deps to latest versions for Paho MQTT, go-sdl, and gocv
   216      * upload any .cov file to codecov for reporting
   217      * use go 1.10.2 and 1.9.6 for Travis builds
   218      * add step to call dep ensure before contributing #524
   219  * **examples**
   220      * correct events used by XBox360 joystick example
   221  * **firmata**
   222      * Update the Firmata homepage in platform README
   223  * **gpio**
   224      * Improve Stepper Driver
   225      * Initial support for MAX7219 (gpio) led driver
   226  * **joystick**
   227      * full corrected ds3 and ds4 mappings plus examples to match for latest sdl 2.0.8
   228      * add instructions to README on how to install SDL on Linux from source
   229      * add missing type conversion
   230      * add new contributions to README
   231      * Add T-Flight Hotas X flight controoller
   232      * add xbox360 rock band drums controller
   233      * Correct Dualshock4 controller mappings and add ps/left/right buttons
   234      * correct test issue
   235      * exclude scanner from test builds
   236      * Fix joystick_driver to detect dpad input for xbox controllers
   237      * Update dualshock4.json to match joystick_dualshock4.go
   238      * update scanner to match go-sdl 0.3 API changes
   239      * Update the joystick driver test to read DPAD properly
   240  * **leapmotion**
   241      * change timestamp to uint64 to fix #516
   242  * **tello**
   243      * slow/fast mode switch function
   244      * StopLanding feature
   245      * Add Bounce() and PalmLand() funcs and their associated events.
   246      * bug fix
   247      * Change several fields in FlightData struct from int16 to bool
   248      * Export the FlightData fields (see Issue #531)
   249  
   250  1.10.2
   251  ---
   252  * **opencv**
   253      * update GoCV to latest version
   254  
   255  1.10.1
   256  ---
   257  * **tello**
   258      * improve support for DJI Tello drone, especially video
   259  
   260  1.10.0
   261  ---
   262  * **docs**
   263      * add gitter badge to readme
   264  * **gpio**
   265      * AIP1640 led driver, used in Wemos D1 mini's matrix LED shield
   266  * **spi**
   267      * switch to using periph.io for SPI interfaces
   268      * add support for ssd1306 
   269      * add optional params such as bus/chip to all current drivers
   270      * complete refactoring to spi.Connection
   271      * remove unneeded code as suggested by @maruel
   272      * remove unneeded type and cleanup GoDocs
   273  * **ble**
   274      * correct spelling error in function name
   275  * **build**
   276      * update to latest version of Go 1.10 for Travis build
   277  * **cli**
   278      * remove extra newline
   279  * **docs**
   280      * add recently contributed GPIO devices to README
   281  * **joystick**
   282      * able to configure joysticks without external json file
   283      * correct error in scanning script
   284      * correct events used by gamepad-style up/down/left/right buttons
   285      * correct scanner error from ID
   286      * removed double release event
   287  * **tello**
   288      * add support for DJI Tello drone
   289  
   290  1.9.0
   291  ---
   292  * **beaglebone**
   293    * update pin naming, docs, and examples for the latest Debian OS releases
   294  * **opencv**
   295    * update build settings needed to build OpenCV/GoCV as part of test suite
   296    * deps for latest GoCV v0.9.0
   297  * **build**
   298    * update Travis build to use very latest Go versions
   299  * **docs**
   300    * add references to new drivers for ADXL345, BH1750, and TM1638.
   301    * improve docs for installation and use of OpenCV/GoCV from Gobot
   302    * update copyright date to 2018
   303  * **gpio**
   304    * Initial support for TM1638 modules
   305  * **i2c**
   306    * Added basic driver for BH1750 (light sensor), board GY-302
   307    * support for accel ADXL345
   308  * **bb8/ollie/sprkplus**
   309    * add Boost command
   310    * add Set Back LED Output command
   311    * add Set Raw Motor Values command
   312    * add Set Rotation Rate command
   313    * add Set Stabilization command
   314  * **test** 
   315    * Refactor TestAdaptorDigitalPinConcurrency test
   316  
   317  1.8.0
   318  ---
   319  * **sysfs** 
   320    * pause briefly to allow udev rules to apply when exporting PWMPin
   321  * **beaglebone** 
   322    * correct uboot installation instructions
   323    * add SPI support
   324    * no more slots, add docs on configuring u-boot overlays
   325    * handle gpio pinmux without relying on specific pre-existing setup
   326  * **pocketbeagle** 
   327    * add support for PocketBeagle
   328    * use universal io cape manager to initialize board setup
   329    * improve docs for latest Debian OS
   330  * **build** 
   331    * Add dep, change how tests run in CI
   332    * update dependencies to latest GoCV version
   333  * **spi** 
   334    * Add MCP3002, MCP3202, MCP3204, MCP3208, MCP3304, MCP3004, and MCP3008 A/D converter drivers
   335    * adding initial support for APA102 LEDs, thanks to code sample from @rakyll
   336    * extract shared SPI init code into spi package
   337  * **up2** 
   338    * initial work on support for UP2 board
   339  * **gopigo3**
   340    * fixed set/get bug with motor dps
   341  * **gpio**
   342    * Adding stepper motor module
   343  * **firmata** 
   344    * handle cases where out of sync data is read from serial port on first connecting
   345  * **i2c**
   346    * Change init payload sequence within jhd1313m1 driver Start() func.
   347  
   348  1.7.1
   349  ---
   350  * **sprkplus**
   351    * add new platform for Sphero SPRK+
   352  * **firmata** 
   353    * correct problem where last analog pin(s) were being ignored from capabilities query
   354  * **ble** 
   355    * use go-ble/ble fork for BLE interactions
   356  * **build** 
   357    * update to use latest OpenCV version
   358    * update to use latest Golang versions
   359  
   360  1.7.0
   361  ---
   362  * **curie**
   363    * Add Linux specific step to Intel Curie docs
   364  * **mqtt**
   365    * Added SetCleanSession
   366  * **build**
   367    * add go1.9 to versions tested in Travis CI
   368    * add missing OpenCV lib dependency
   369    * Update build to use latest Golang versions
   370    * Travis build will now require sudo to install due to OpenCV
   371  * **docs**
   372    * some helpful edits for the initial spi implementation
   373  * **gopigo3**
   374    * integration of recent GoPiGo3 contributions
   375    * Added grove support, and more gopigo3 examples
   376  * **gpio**
   377    * Add ButtonDriver.DefaultState to allow for 'reverse' buttons (ones that go from HIGH to LOW)
   378  * **holystone**
   379    * Add initial support for HS-200
   380  * **i2c**
   381    * SSD1306.WithDisplayHeight() and SSD1306.WithDisplayWidth() for SSD1306 that use different display ratios
   382  * **joystick**
   383    * add CLI utilty to scan display events to make it easier to add new joyticks
   384    * update README to address #441
   385  * **opencv**
   386    * Switchover to use GoCV and OpenCV 3.3
   387    * Switch to use custom domain for GoCV package
   388    * all examples using new GoCV based code
   389    * correct formatting in face detect example
   390    * OpenCV face detector that is much more concurrent
   391    * update interface and examples to indicate multipurpose
   392  
   393  1.6.0
   394  ---
   395  * **core**
   396    * log failure errors on Robot Start()
   397  * **build**
   398    * run test coverage with covermode=set
   399    * update build to use Golang 1.7.6 and 1.8.3
   400  * **docs**
   401    * work on ROADMAP doc
   402  * **sysfs**
   403    * increase test coverage
   404  * **bb8**
   405    * use updated ble adaptor interface for tests
   406  * **ble**
   407    * allow for characteristic writes both with and without a response
   408    * allow override of specific HCI device to use
   409    * eliminate race conditions from response handling
   410  * **curie**
   411    * Implement Accelerometer, Gyroscope, and Temperature sensors implemented
   412    * motion detect implemented
   413    * shock detect implemented
   414    * step count implemented
   415    * tap detect implemented
   416  * **digispark**
   417    * update blink example to display error message on Start()
   418    * update README with latest development info
   419  * **edison**
   420    * auto-discovery of Edison board option
   421    * removed commented lines
   422  * **firmata**
   423    * expose WriteSysex to external callers
   424    * adjust client test timeout values
   425    * cleanup error handling for connection code
   426    * client tests don't need so many goroutines
   427    * expose WriteSysex to external callers
   428    * improve connection code to use a proper timeout
   429    * increase test coverage
   430    * make it possible to test external devices that use firmata adaptor
   431    * refactoring firmata client
   432    * remove circular import in test
   433    * remove unused code, increase test coverage
   434    * return connect errors to client
   435    * switch to using go-serial package
   436    * Sysex response events now being handled as expected
   437  * **bme280**
   438    * fix signed/unsigned bug
   439    * Fixed incorrect error condition check when reading the 'ctrl_hum' register.
   440    * Expanded the BME280 unit test for TestBME280DriverStart() to support reading from the 'ctrl_hum' register.
   441    * 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
   442  * **chip**
   443    * Fixed PWM duty cycle calculation for C.H.I.P ServoWrite
   444    * Fixed PWM init bug for C.H.I.P
   445    * C.H.I.P PWM init robust for already enabled state
   446  * **i2c**
   447    * remove unused test code
   448    * write config register in little endian
   449  * **joystick**
   450    * add needed constants for all PS3 buttons
   451  * **littlewire**
   452    * littlewire.cc links changed to littlewire.github.io
   453  * **mavlink**
   454    * switch to using go-serial package
   455  * **megapi**
   456    * switch to using go-serial package
   457  * **microbit**
   458    * use updated ble adaptor interface for tests
   459  * **minidrone**
   460    * add example for Parrot Mambo
   461    * add support for Mambo external accessories
   462    * increase test coverage
   463    * never expect responses for characteristic writes
   464    * remove unneeded code, increase test coverage
   465    * separate flight status processing and add test coverage
   466  * **neurosky**
   467    * switch to using go-serial package
   468  * **ollie**
   469    * use updated ble adaptor interface for tests
   470  * **sphero**
   471    * switch to using go-serial package
   472  * **tinkerboard**
   473    * Updated Tinkerboard and sysfs tests to updated PWM polarity contract
   474  
   475  1.5.0
   476  ---
   477  * **core**
   478    * Add Running() methods for Master and Robot and increase test coverage accordingly
   479  * **sysfs**
   480    * define DigitalPinnerProvider and PWMPinnerProvider interfaces
   481    * add Chip to be able to change pwmchip, and some related refactoring
   482    * add file read/write testing for failure conditions
   483    * proper handling of busy state vs. other errors
   484    * return sensible result when no valid data read
   485  * **test**
   486    * increase coverage on test helpers
   487  * **build**
   488    * switching to Travis builds using Ubuntu 14.04 Trusty
   489  * **aio**
   490    * only need to support AnalogReader interface
   491    * avoid test race conditions
   492    * ensure that AnalogSensor event Data is always int
   493  * **gpio**
   494    * only need to support DigitalReader/DigitalWriter interface
   495  * **i2c**
   496    * Added support for the ADS1015 and ADS1115 ADCs
   497    * Add INA3221 Voltage Monitor
   498    * Ensure lock of i2c bus for each individual operation
   499    * Small refactoring and increase test coverage for BMP180
   500  * **beaglebone**
   501    * implement DigitalPinner and PWMPinner interfaces
   502    * protect against pin map races
   503    * increase test coverage
   504  * **chip**
   505    * add preliminary support for C.H.I.P. Pro
   506    * add back ServoWrite implementation
   507    * implement DigitalPinnerProvider and PWMPinnerProvider interfaces
   508    * protect against pin map races
   509  * **dragonboard**
   510    * export DigitalPin and PWMPin adaptor methods
   511    * protect against pin map races
   512    * increase test coverage
   513  * **edison**
   514    * auto-detect arduino breakout board, if no specific board is expected
   515    * ensure that we initialize tristate if arduino breakout board
   516    * export DigitalPin and PWMPin adaptor methods
   517    * implement DigitalPinnerProvider and PWMPinnerProvider interfaces
   518    * protect against pin map races
   519    * refactoring to reduce code duplication
   520  * **firmata**
   521    * remove processing that might have been eating test events, increase test coverage
   522  * **joule**
   523    * implement DigitalPinnerProvider and PWMPinnerProvider interfaces
   524    * protect against pin map races
   525    * remove incorrect pin assignment and improve test coverage
   526    * add examples using Joule with ADS1015 ADC
   527    * naming system changes
   528    * correct pin mappings and add PWM example    
   529  * **mavlink**
   530    * add a Mavlink-over-UDP adaptor.
   531  * **microbit**
   532    * Add DigitalWriter, DigitalReader, and AnalogReader support using IOPinDriver
   533    * Handle start error and increase test coverage
   534  * **mqtt**
   535    * Add a (topic, payload) event type
   536    * change the On handler to take mqtt.Message
   537    * increase test coverage
   538    * update examples that use mqtt for updated notification signature
   539  * **nats**
   540    * change the On() handler to take the subject as an argument
   541    * increase test coverage
   542  * **raspi**
   543    * implement DigitalPinnerProvider and PWMPinnerProvider interfaces
   544    * add implementation for PWMPinner interface that wraps pi blaster
   545    * fix adaptor race conditions
   546    * increase test coverage
   547  * **tinkerboard**
   548    * Add support for ASUS Tinker Board
   549  
   550  1.4.0
   551  ---
   552  * **core**
   553    * Use 10-buffered chans for events, see #374
   554  * **i2c**
   555    * Many refactors and increases in test coverage
   556    * Eliminate race conditions introduced by tests
   557    * Adds Altitude() function to BMP280/BME280
   558    * bme280 driver Humidity compensation formula
   559    * ssd1306 driver implementation
   560  * **aio**
   561    * Eliminate race conditions introduced by tests
   562  * **gpio**
   563    * Fix motor mode change when speed is set
   564    * Eliminate race conditions introduced by tests
   565    * Reduce test side effects
   566  * **ardrone**
   567    * Increase test coverage
   568  * **audio**
   569    * Increase test coverage
   570  * **bb8**
   571    * Refactoring to use BLEConnector interface and provide tests
   572  * **bebop**
   573    * Increase test coverage
   574  * **beaglebone**
   575    * Increase test coverage
   576  * **ble**
   577    * Increase test coverage for battery, device information, and generic access drivers
   578    * Refactoring drivers to use BLEConnector interface and provide tests
   579  * **chip**
   580    * Added PWM0 support
   581    * Increase test coverage
   582  * **digispark**
   583    * Increase test coverage
   584  * **dragonboard**
   585    * Increase test coverage
   586  * **edison**
   587    * Remove pointless error checking code
   588    * Refactor digital pin creation process method
   589    * Increase test coverage
   590  * **firmata**
   591    * Eliminate race conditions introduced by tests
   592    * Increase test coverage for i2c commands
   593  * **joule**
   594    * Increase test coverage
   595  * **joystick**
   596    * Increase test coverage
   597  * **keyboard**
   598    * Increase test coverage
   599  * **mavlink**
   600    * Eliminate race conditions introduced by tests
   601    * Increase test coverage
   602  * **mavlink**
   603    * Increase test coverage
   604  * **microbit**
   605    * Refactoring to use BLEConnector interface and provide tests
   606    * Address #404 by adding info about required magnetometer calibration step to README
   607    * Increase test coverage
   608  * **minidrone**
   609    * Refactoring to use BLEConnector interface and provide tests
   610  * **mqtt**
   611    * Increase test coverage
   612  * **nats**
   613    * Increase test coverage
   614  * **neurosky**
   615    * Update neurosky README & example
   616    * Eliminate race conditions introduced by tests
   617    * Increase test coverage
   618  * **ollie**
   619    * Refactoring to use BLEConnector interface and provide tests
   620    * Correct race condition error on seq
   621    * Increase test coverage
   622  * **opencv**
   623    * Increase test coverage
   624  * **particle**
   625    * Increase test coverage
   626  * **raspi**
   627    * Address #391 by providing more details about normal development workflow
   628    * Increase test coverage
   629  * **sphero**
   630    * Eliminate race conditions
   631    * Increase test coverage
   632  * **sysfs**
   633    * Address race condition from udev rules when exporting GPIO pins
   634    * Increase test coverage
   635  * **docs**
   636    * Improve explanations for scp/ssh workflow on SoC boards
   637    * Include entire Apache 2.0 license in the license text
   638  * **test**
   639    * Add crude travis check for gofmt; format all sources
   640    * Significantly speed up travis and make runs
   641    * Remove test code no longer being called
   642    * Update Travis to run tests using Golang 1.8.1
   643    * Increase gobottest test coverage
   644  
   645  1.3.0
   646  ---
   647  * **microbit**
   648    * Add new platform support
   649  * **dragonboard**
   650    * Add new platform support
   651  * **gpio**
   652    * Increase test coverage
   653  * **i2c**
   654    * Update list of supported i2c devices
   655    * Minor adjustments and test coverage improvements
   656    * Added more capabilities checks for I2C
   657    * Removed smbus block operations
   658  * **core**
   659    * Increase test coverage
   660  * **test**
   661    * Improvements to run tests much faster thanks @maruel
   662    * Use codecov.io for code coverage reporting
   663  * **docs**
   664    * Update CoC based on Contributor Covenant
   665  
   666  1.2.0
   667  ---
   668  * **core**
   669    * Use new improved default namer to avoid API conflicts
   670  * **gpio**
   671    * Removed scaling function from servo driver
   672    * Correct servo driver to pass along angle to adaptor to sort out implementation
   673  * **i2c**
   674    * Refactored platforms and drivers to new I2C interfaces
   675    * Change to make I2C support more than one bus
   676    * Refactor drivers to support new optional params
   677  * **bb8**
   678    * Added collision detection support and example
   679  * **beaglebone**
   680    * Correct i2c buses to match actual mapping
   681  * **ble**
   682    * Switch to using [ble](https://github.com/currantlabs/ble) package for Bluetooth LE
   683    * Basic serial over BLE working with Arduino101 with StandardFirmataBLE
   684    * WIP on multiple simultaneous ble devices
   685  * **chip**
   686    * Fixed chip XIO base address lookup  
   687  * **digispark**
   688   * Fix #288 by using pkg-config to locate libusb-compat includes
   689  * **firmata**
   690    * Remove race conditions identified in Firmata client
   691    * Correct error in I2C reads not listening to board events
   692  * **mqtt**
   693    * Add driver for syntactical sugar around virtual devices
   694    * Add SSL/TLS client options support
   695    * Fix #277 by adding SetAutoReconnect method to set Paho MQTT client
   696    * Change both 'On' and 'Publish' method function signatures to match Eventer interface
   697  * **nats**
   698    * Add driver to make it easier to create virtual devices
   699  * **ollie**
   700    * Added collision detection support and example
   701  * **parrot**
   702    * Add ValidatePitch helper function for Parrot Minidrone, Parrot Bebop & ARDrone 2.0 to package
   703  * **docs**
   704    * Fix #363 by using atomic.Value to protect current values used by multiple goroutines in drone examples
   705  * **test**
   706    * Remove Golang 1.5 from TravisCI tests in prep for Golang 1.8 release
   707  
   708  1.1.0
   709  ---
   710  * **core**
   711    * use canonical import path for sysfs package
   712  * **i2c**
   713    * Add a driver for the SHT3X chip
   714    * Add a driver for BMP180
   715    * Add support for L3GD20H gyroscope
   716  * **firmata**
   717    * Add support for TCPFirmata connections, allowing ESP8266 and other WiFi-connected controllers
   718    * Add mention to README to use 'tty.' serial port on OSX
   719    * Add mention of A4 and A5 normally unavailable on Firmata
   720  * **raspi**
   721    * Correct README build instructions with missing 'go build' command
   722  * **snapcraft**
   723    * Add the packaging metadata to build the gobot snap for Ubuntu Snappy
   724  * **particle**
   725    * Update examples to take key params via command line
   726    * Address #160 by adding support for tinker-servo sketch if installed on Particle device
   727  * **esp8266** add experimental ESP8266 support to list of supported platforms
   728  * **sysfs**
   729    * Should fix #272 by using first byte of data as command register for I2C reads
   730    * Some additional cleanup suggested by golint
   731  * **ble**
   732    * Add generic access service driver
   733    * Update docs to include reference to included drivers
   734    * Move various test code to test file
   735  * **ollie**
   736    * Refactoring so no need to expose internal implementation details
   737  * **bebop**
   738    * Add support/example of RTP video
   739    * Enable video on firmware 3.3+
   740    * Update ps3 and video example to enable the video stream
   741    * Update README for brief explanation of how to get drone video
   742    * Corrected import paths for client examples
   743  * **bb8**
   744    * Correct NewDriver params and set name
   745    * Add missing constructor to wrap Ollie implementation
   746  * **minidrone**
   747    * Update README with example and which specific models are currently supported
   748    * Add all piloting flying state events
   749    * Adds Emergency() and TakePicture() commands
   750  * **test**
   751    * Add Golang 1.8beta2 to Travis builds
   752    * Correct aio references for AnalogRead tests
   753  
   754  1.0.0
   755  ---
   756  * **core**
   757    * Refactoring to allow 'Metal' development using Gobot packages
   758    * Able to run robots without being part of a Master.
   759    * Now running all work in separate goroutines
   760    * Rename internal name of Master type
   761    * Refactor events to use channels all the way down.
   762    * Eliminate potential race conditions from Events and Every functions
   763    * Add Unsubscribe() to Eventer, now Once() works as expected
   764    * DeleteEvent function added to Eventer interface
   765    * Ranges over event channels instead of using select
   766    * No longer return non-standard slices of errors, instead use hashicorp/go-multierror
   767    * Ensure that all drivers have default names
   768    * Now both Robot and Master operate using AutoRun as expected
   769    * Use canonical import domain of gobot.io for all code
   770    * Use time.Sleep unless waiting for a timeout in a select
   771    * Uses time.NewTimer() instead of time.After() to be more efficient
   772  
   773  * **test**
   774    * Add deps tasks to Makefile
   775    * Add golang 1.7 to Travis CI tests
   776    * Add golang 1.8beta1 to build matrix for Travis
   777    * Reduce Travis builds to golang 1.4+ since it is late 2016 already
   778    * Complete move of test interfaces into the test files where they belong
   779    * Adds Parrot Minidrone and Sphero Ollie to Travis tests
   780  
   781  * **Add missing godocs for everything**
   782  
   783  * **i2c**
   784    * Move I2C drivers into appropriately named 'drivers/i2c' directory
   785    * Add support for Adafruit Servo/PWM HAT
   786  
   787  * **gpio**
   788    * Move GPIO drivers into appropriately named 'drivers/gpio' directory
   789    * Add support for PIR motion detector
   790  
   791  * **beaglebone**
   792    * auto-detect Linux kernel version
   793    * map usr LEDs to match all kernels
   794  
   795  * **ble**
   796    * Rename drivers to make them more obvious
   797    * Add test placeholders
   798  
   799  * **chip**
   800    * Auto-detect OS version to adjust pin mappings
   801    * Correct base for new 4.4 GPIO
   802  
   803  * **edison**
   804    * Support for other breakout boards besides Arduino
   805  
   806  * **firmata**
   807    * Use io.ReadFull in platforms/firmata/client
   808    * Update tarm/goserial to tarm/serial
   809  
   810  * **joule**
   811    * Add support for Intel Joule
   812  
   813  * **megapi**
   814    * Adding support for MakeBlock megapi
   815  
   816  * **nats**
   817    * Add support for NATS server
   818  
   819  * **particle**
   820    * Complete renaming Spark platform to Particle
   821  
   822  * **parrot**
   823    * Move Parrot Minidrone into own platform
   824    * Move both ARDrone and Bebop under Parrot package
   825  
   826  * **raspi**
   827    * Add missing godocs and small refactors for platform
   828  
   829  * **sphero**
   830    * Add initial support for Sphero BB-8 platform
   831    * Move Sphero Ollie into own platform
   832  
   833  0.12.0
   834  ---
   835  * **Refactor Gobot test helpers into separate package**
   836  * **Improve Gobot.Every method to return channel, allowing it to be halted**
   837  * **Refactor of sysfs adds substantial speed improvements**
   838  * **ble**
   839    * Experimental support for Bluetooth LE.
   840    * Initial support for Battery & Device Information services
   841    * Initial support for Sphero BLE robots such as Ollie
   842    * Initial support for Parrot Minidrone
   843  * **audio**
   844    * Add new platform for Audio playback
   845  * **gpio**
   846    * Support added for new GPIO device:
   847      * RGB LED
   848    * Bugfixes:
   849      * Correct analog to better handle quick changes
   850      * Correct handling of errors and buffering for Wiichuk
   851  * **mqtt**
   852    * Add support for MQTT authentication
   853  * **opencv**
   854    * Switching to use main fork of OpenCV
   855    * Some minor bugfixes related to face tracking
   856  
   857  0.11.0
   858  ---
   859  * **Support for Golang 1.6**
   860  * **Determine I2C adaptor capabilities dynamically to avoid use of block I/O when unavailable**
   861  * **chip**
   862    * Add support for GPIO & I2C interfaces on C.H.I.P. $9 computer
   863  * **leap motion**
   864    * Add support additional "hand" and "gesture" events
   865  * **mqtt**
   866    * Support latest update to Eclipse Paho MQTT client library
   867  * **raspberry pi**
   868    * Proper release of Pi Blaster for PWM pins
   869  * **bebop**
   870    * Prevent event race conditions on takeoff/landing
   871  * **i2c**
   872    * Support added for new i2c device:
   873      * MCP23017 Port Expander
   874    * Bugfixes:
   875      * Correct init and data parsing for MPU-6050
   876      * Correct handling of errors and buffering for Wiichuk
   877  
   878  0.10.0
   879  ---
   880  * **Refactor core to cleanup robot initialization and shutdown**
   881  * **Remove unnecessary goroutines spawned by NewEvent**
   882  * **api**
   883    * Update Robeaux to v0.5.0
   884  * **bebop**
   885    * Add support for the Parrot Bebop drone
   886  * **keyboard**
   887    * Add support for keyboard control
   888  * **gpio**
   889    * Support added for 10 new Grove GPIO devices:
   890      * Grove Touch Sensor
   891      * Grove Sound Sensor
   892      * Grove Button
   893      * Grove Buzzer
   894      * Grove Led
   895      * Grove Light Sensor
   896      * Grove Vibration Sensor
   897      * Grove Rotary
   898      * Grove Relay
   899      * Grove Temperature Sensor
   900  * **i2c**
   901    * Support added for 2 new Grove i2c devices:
   902      * Grove Accelerometer
   903      * Grove LCD with RGB backlit display
   904  * **docs**
   905    * Many useful fixes and updates for docs, mostly contributed by our wonderful community.
   906  
   907  0.8.2
   908  ---
   909    - firmata
   910      - Refactor firmata adaptor and split firmata protocol implementation into sub `client` package
   911    - gpio
   912      - Add support for LIDAR-Lite
   913    - raspi
   914      - Add PWM support via pi-blaster
   915    - sphero
   916      - Add `ConfigureLocator`, `ReadLocator` and `SetRotationRate`  
   917  
   918  0.8.1
   919  ---
   920    - spark
   921      - Add support for spark Events, Functions and Variables
   922    - sphero
   923      - Add `SetDataStreaming` and `ConfigureCollisionDetection` methods
   924  
   925  0.8
   926  ---
   927    - Refactor core, gpio, and i2c interfaces
   928    - Correctly pass errors throughout packages and remove all panics
   929    - Numerous bug fixes and performance improvements
   930    - api
   931      - Update robeaux to v0.3.0
   932    - firmata
   933      - Add optional io.ReadWriteCloser parameter to FirmataAdaptor
   934      - Fix `thread exhaustion` error
   935    - cli
   936      - generator
   937        - Update generator for new adaptor and driver interfaces
   938        - Add driver, adaptor and project generators
   939        - Add optional package name parameter
   940  
   941  0.7.1
   942  ---
   943    - opencv
   944      - Fix pthread_create issue on Mac OS
   945  
   946  0.7
   947  ---
   948    - Dramatically increased test coverage and documentation
   949    - api
   950      - Conform to the [cppp.io](https://gobot.io/x/cppp-io) spec
   951      - Add support for basic middleware
   952      - Add support for custom routes
   953      - Add SSE support
   954    - ardrone
   955      - Add optional parameter to specify the drones network address
   956    - core
   957      - Add `Once(e *Event, f func(s interface{})` Event function
   958      - Rename `Expect` to `Assert` and add `Refute` test helper function
   959    - i2c
   960      - Add support for MPL115A2
   961      - Add support for MPU6050
   962    - mavlink
   963      - Add support for `common` mavlink messages
   964    - mqtt
   965      - Add support for mqtt
   966    - raspi
   967      - Add support for the Raspberry Pi
   968    - sphero
   969      - Enable stop on sphero disconnect
   970      - Add `Collision` data struct  
   971    - sysfs
   972      - Add generic linux filesystem gpio implementation
   973  
   974  0.6.3
   975  ---
   976  - Add support for the Intel Edison
   977  
   978  0.6.2
   979  ---
   980  - cli
   981    - Fix typo in generator
   982  - leap
   983    - Fix incorrect Port reference
   984    - Fix incorrect Event name
   985  - neurosky
   986    - Fix incorrect Event names
   987  - sphero
   988    - Correctly format output of GetRGB
   989  
   990  0.6.1
   991  ---
   992  - cli
   993    - Fix template error in generator
   994  
   995  0.6  
   996  ---  
   997  - api
   998    - Add robeaux support
   999  - core
  1000    - Refactor `Connection` and `Device`
  1001    - Connections are now a collection of Adaptors
  1002    - Devices are now a collection of Drivers
  1003    - Add `Event(string)` function instead of `Events[string]` for retrieving Driver event
  1004    - Add `AddEvent(string)` function to register an event on a Driver
  1005  - firmata
  1006    - Fix slice bounds out of range error
  1007  - sphero
  1008    - Fix issue where the driver would not halt correctly on OSX
  1009  
  1010  0.5.2  
  1011  ---  
  1012  - beaglebone
  1013    - Add `DirectPinDriver`
  1014    - Ensure slots are properly loaded
  1015  
  1016  0.5.1  
  1017  ---  
  1018  - core
  1019    - Add `Version()` function for Gobot version retrieval
  1020  - firmata
  1021    - Fix issue with reading analog inputs
  1022    - Add `data` event for `AnalogSensorDriver`
  1023  
  1024  0.5      
  1025  ---  
  1026  - Idomatic clean up
  1027  - Removed reflections throughout packages
  1028  - All officially supported platforms are now in ./platforms
  1029  - API is now a new package ./api
  1030  - All platforms examples are in ./examples
  1031  - Replaced martini with net/http
  1032  - Replaced ginkgo/gomega with system testing package
  1033  - Refactor gobot/robot/device commands
  1034  - Added Event type
  1035  - Replaced Master type with Gobot type
  1036  - Every` and `After` now accept `time.Duration`
  1037  - Removed reflection helper methods