Skip to content
Calvin Park edited this page Jun 15, 2016 · 11 revisions

Arduino/Genuino 101 1.0.6 - 2016.06.15

  1. New feature: SPI Flash

Feature highlights: The Arduino 101 platform offers a 2MB Serial Flash storage accessible via the SPI bus and, thus, the feature is named as SPI Flash. This flash storage, which is external to the Curie module, is completely dedicated for application Sketch usage. With the SerialFlash library, a Sketch can have nonvolatile data storage in form of files. Except for minor setup configuration, the SPI utilization is hidden behind the SerialFlash library. Please note that flash file write may consume substantially amount of time (that’s the nature of Flash storage). A developer may need to locate the flash writing strategically to avoid timing impact to the Sketch execution.

Specific changes to enable the feature:

  • Remove unsupported SerialFlash example
  • Remove SPI.set* calls from SerialFlash example
  • add SPI1 to keywords.txt
  • Add Paul Stoffregen's SerialFlash library
  • Fix SPI clock divider calculation
  • Clean up the SPI files
  • Add support for SPI1 device to SPIClass
  1. New feature: Improved floating point performance

Feature highlights: The ARC core provides a set of special hardware instructions that target the performance of floating point calculation, bit shifting arithmetic, array indexing, and procedure call stack frame processing. A new toolchain is created to utilize this set of instructions so that the ARC core can execute a Sketch with better performance. Using a standard Whetstone benchmark test, with the special hardware instructions enabled, the result shows that,

i. About 570% performance improvement with Trigonometric functions (heavily involved in floating point calculation).    
ii. A 240% performance increase with integer arithmetic (involved bit shifting, multiple, and division operations).    
iii. Array indexing and manipulation see an increase of 320+%.    
iv. Procedure calling has a 250% performance improvement.    
v. Standard math function has a 370% increase in performance.

Specific changes to enable the feature:

  • A new toolchain is created which software math functions being replaced by ARC specific hardware instructions. Specific compile options added to the Sketch build environment.
  • Fix bug when using StringConstructor with doubles
  • Convert float and double to strings. Output string is padded with spaces
  • Routine, dtostrf, did not work with the latest toolchain. Problem addressed
  • Merge pull request #172 from bbaltz505/new_toolchain
  • Updating compile command and driver lib for new toolchain
  • String constructor create floating point string with incorrect number of decimal places
  • Bug fixes to print float and double correctly, in a string or std output
  1. Improvement: IMU examples

Highlights: Create several sample Sketch to demonstrate the application of the IMU data.

Specific changes made:

  • FreeFallDetection, MotionDetection,ZeroMotionDetection
  • Bug fix. change CurieIMU.cpp line490 from 'setZeroMotionDetectionThreshold' to 'setZeroMtionDetectionDuration'
  • CurieIMU tap/double example
  • Change set/get accelerometer and gyro offsets to use floats values
  1. Improvement: BLE functionality

Highlights: Addressed several specific requests for the BLE peripheral library.

  • CurieBle library, class BLECharacteristic allocates memory using an incorrect variable which may result in memory corruption if the memory size is bigger than 16 bytes
  • Added Eddystone-URL support: added setAdvertisedServiceData() to support BLE Service Data; changed Incomplete to Complete Service UUID list code in Advertising initialization, required by Eddystone-URL protocol; added (for debugging) getAdvertisingLength() and getAdvertising() to enable a Sketch viewing the Advertizing packet.
  • Add setConnectionInterval API to CurieBle
  1. Misc improvement:
  • Remove SPI.set* calls from SerialFlash example
  • Remove unnecessary #undefs
  • README.md: clean up and add "support" section
  • Add SERIAL_PORT_USBVIRTUAL and SerialUSB macros
  • Fixed the license file to LGPLv2.1
  • Fix Klockwork issues in CurieEEPROM #142
  • Updating install steps in README
  • Updated README.md with instructions to manually install corelibs
  1. Improvement to the IDE appearance:

Highlights: Various fixes that address proper representation of the Corelibs libraries on the IDE.

  • Removing obsolete TFT library
  • Remove Intel Ethernet and SD libraries
  • Fixed spaces in keywords.txt; keywords now highlight properly
  • Merge pull request #141 from bbaltz505/memory_size
  • Decrease max sketch size to 155,648 bytes
  • Fixing sketch size calculation (text + ctors + rodata)
  • Update library.properties
  • Rename library.properties
  • Moved .h and .cpp file in src folder
  1. New feature: I2S interface support:

Feature highlights: An interrupt driver is implemented to enable the I2S interface. A Sketch can access the interface via the CurieI2S library. Sample Sketches are provided for reference.

Specific changes to enable the feature:

  • Merge pull request #156 from bigdinotech/i2slib
  • CurieI2S - minor fixes/improvements
  • CurieI2S add examples
  • Interrupt based I2S library
  • CurieI2S use interrupts for Tx
  1. Addressed bug fix requests:
  • getInterruptStatus(...) should return type of bool
  • Sync avr/pgmspace.h entries with SAMD core
  • check pin range first thing in pinMode(), digitalWrite() and digitalRead()
  • Fix CurieTimerOne example filename
  • pwmStop() leaves pin HIGH
  • Merge pull request #146 from bneedhamia/support-eddystone-url
  • Removed delay from examples as requested by Tom
  • Merge pull request #129 from 00alis/src_folders
  1. CurieTimerOne library improvement:
  • Make CurieTimerOne library to be compatible with the TimerOne library originated from Paul.
  • Created methods that have the same name and functionalities as in the TimerOne library.
  • Update CurieTimer1Interrupt.ino

Changelog

Core / Libraries
Changes since 1.6.4+1.68
Tools
Changes since 1.6.4+1.19-windows
Changes since 1.6.4+1.18-osx
Changes since 1.6.4+1.18-linux32
Changes since 1.6.4+1.18-linux64

Arduino/Genuino 101 1.0.5 - 2016.03.03

Core / Libraries

  • i2c bus scan workaround
  • Use Go-based upload script
  • CurieIMU API changes
  • Remove custom Adafruit_Motor_Shield_V2 library
  • Fix issues in CurieTimerOne
  • Rename CurieTimer to CurieTimerOne for JIRA-532
  • CurieEEPROM - ensure 32-bit allignment enhancement
  • CurieEEPROM - eeprom_write example
  • CurieEEPROM - reimplement put and get to not use STL
  • CurieEEPROM fixes
  • CurieSoftwareSerial Improvements
  • CurieSoftwareSerial timing issue fixes
  • CurieSoftwareSerial remove non-working example
  • Jira-429 CurieSoftwareSerial fixes
  • Jira-462: Call Available() after calling end() indicated data available.
  • Jira-487 CurieEEPROM library
  • Jira-491 - rename sketchUploader tool to arduino101load
  • Jira-500: pwdStop should be pwmStop, typo error.
  • Jira-501: CurieTimer.resume() did not re-enable interrupt at the controller.
  • Jira-507 and 514: 1. Bug corrected in timer ISR where the clearing of…
  • Remove custom OneWire and Adafruit_DotStar libraries.
  • find() missing overload in Stream.h
  • Update boards.txt with Arduino/Genuino 101
  • dtostrf: fix overflow problem
  • Stop interrupt when switching to 100% duty cycle
  • Green pixel fix for NeoPixel library
  • Rename CurieBle to CurieBLE
  • Add new APIs and examples to CurieIMU

Tools

  • Updated dfu-util binaries
  • Use Go-based upload script
  • Upload error message fixes for IDE
  • Fix more sketchUpload path issues
  • Change upload tool name to arduino101load to avoid conflict with Edison/Galileo

Changelog

Core / Libraries
Changes since 1.6.4+1.59
Tools
Changes since 1.6.4+1.14-windows
Changes since 1.6.4+1.14-osx
Changes since 1.6.4+1.14-linux32
Changes since 1.6.4+1.14-linux64