-
Notifications
You must be signed in to change notification settings - Fork 356
Release Notes
Ytai Ben-Tsvi edited this page Dec 27, 2015
·
25 revisions
- Software-only release.
- Fixed some issues with OSX El Capitan and Ubuntu 14.x.
- Upgraded to PJC 1.0.0.
- Fixed some issues with OSX El Capitan and Ubuntu 14.x.
- Upgraded to PJC 1.0.0.
- Fixed some issues with OSX El Capitan and Ubuntu 14.x.
- Upgraded to PJC 1.0.0.
- Fixed a bug causing oscillator calibration to sometimes never succeed (thanks to SparkFun for helping track this one down!).
- Firmware-only release.
- Small bug fix to UART handling of corrupt input.
- Built with a new compiler (XC16).
- Enabled a pull-up on USBID, which supposedly fixes some cases where device mode is not correctly detected.
- Improved ability of OpenAccessory-based connections to reconnect after dropping. Specifically, using them with
IOIOService
for extended period is now much more reliable. - Completely changed the way Android/PC applications are built, based on Gradle, Maven and Android Studio. The software bundle is now used most for distributing the example apps. The rest of the stuff is available as packages on the Maven Central repository.
- Support OpenAccessory for programmer mode.
- Fixed bug in
IOIO.sync()
causing a memory leak. - Added support for getting the versions numbers from the IOIO even when it has incompatible firmware.
- HelloIOIO now displays toasts with version numbers and warns for incompatible firmware versions.
- Upgraded PureJavaComm to v0.0.21, which improves Linux and OSX support.
- Software-only release fixing compatibility with Nexus 5 (fix idea courtesy of Maxwell Doherty!). A few internal clean-ups which may impact connection to the IOIO (hopefully for the better).
- Software-only release fixing some small Sequencer-related bugs found in V5.01.
- Software-only release fixing some small bugs around resource allocation found in V5.00 as result of major refactoring in this area.
- Support for Android working in host mode, courtesy of Misha and Nadir (thanks!).
- Fix support for Open-Accessory with the Android in device mode for newer platforms, not having the Google-API.
- Added the Motor Control API.
- Added APIs for synchronizing asynchronous I/O operations. For example, it is now possible to write to a DigitalOutput, and then read an AnalogInput that was sampled after the output pin changed its state.
- Fixes of various race conditions in the firmware, as well as some general firmware cleanup.
- Major refactoring of IOIOLib implementation resulting in simpler code.
- Closing resources now causes blocking methods on them to exit with an InterruptedException.
- Ant scripts for automated building of all the software (Android, PC, libraries, apps).
- Improved support for Linux / OSX when working in PC mode (including upgrade to PJC 0.0.21).
- Upgraded the IOIO Bluetooth stack and added class of device reporting, which solved some compatibility problems with various Android 2.x devices. This version of btstack supports Simple Secure Pairing (SSP), but this is currently intentionally disabled.
- Graceful handling of protocol corruption - previously we would have some uncaught exceptions in some cases.
- On Android: XML resources and manifest changes previously required to be in the apps have been moved to the libraries, requiring less boilerplate on the apps.
- Fixed a bug where it was possible for applications to extend into the bootloader configuration area. The impact of this bug is not too severe as none of the applications published to date have this problem, and future applications are protected against it.
- Upgraded PureJavaComm to v0.0.21, which improves Linux and OSX support.
- Added Capacitive Sensing, allowing up to 16 concurrent channels.
- Fixed bug in AnalogInput causing an expected behavior whenever more than 12 pins are used concurrently.
- Fixed ADB bug which prevented V3.10 from working with IOIO Manager.
- A Java console application allowing an Android connected to a PC or an Android emulator running on a PC to access a physical IOIO board connected to this PC over Bluetooth or as a USB device.
- Assists in debugging, especially when using Bluetooth on the Android is undesirable.
- A Java console application for communication with the device bootloader.
- Allows reading version numbers from bootloader and app and flashing new app firmware.
- Initial version of the device-mode bootloader.
- Only works on the IOIO-OTG board.
- Supports firmware upgrades via IOIODude.
- Automatic internal oscillator calibration by connecting to a USB host.
Note: This version is broken (firmware upgrades do not work). A new one will follow shortly.
- Added a configuration for IOIO-OTG (although the recommended bootloader for that is the device bootloader).
- Rebuilt with various changes in libusb, having no semantic impact on IOIO V1.
- Support for USB device mode and IOIO-OTG.
- Revised IOIOLib to have an Android library and a PC library.
- Fixed an unlikely race condition in ByteQueue.
- Fixed a firmware bug preventing TWI working with 10-bit addresses.
- Some firmware fixes to input capture (pulse input).
- Upgraded btstack to r1681.
- Store Bluetooth link keys in RAM, so that there is no need to re-enter the PIN on every connection in secure connections. Now this only needs to happen once on every IOIO power-up.
- Nothing new. Just change the version number and rebuild.
- Fixed a minor bug with handling of USB errors in the ADB library.
- Fixed a minor bug with handling of USB errors in the ADB library.
- Added the MINT0010 board.
- Fixed a bug with analog input occasionally giving bogus samples.
- Fixes a bug with TWI wouldn't accept a null response buffer when the response size is 0.
- Fixed a bug where the bootloader would hang (stat LED constantly on) whenever connected to an Android without IOIO Manager installed.
- Changed behavior of open-accessory: do not attempt to activate open-accessory on a recognized device. That means, among other things, that when ADB is enabled on an Android, open-accessory mode will not be triggered, and the open-accessory dialog will not pop. This fixes some issues where trying to activate open-accessory would cause problems.
- Synced to latest btstack version.
- Improved behavior of missing run-time support for connection types (e.g. Bluetooth, etc.) in IOIOLib. No error will be logged. Graceful handling of no Bluetooth adapter present (e.g. in emulator).
- Fixed firmware to build on MPLAB-X 1.10.
- Configure the USB device before suspending. The outcome is fix a problem with some devices (Bluetooth dongles, Androids) not working immediately after power-up, but start working after a re-connect.
- Fixed firmware to build on MPLAB-X 1.10.
- Added buffered reading to
AnalogInput
. Allows reading acquired samples one by one. More details on the Analog Input page. - Added batch operations to the
IOIO
interface. This allows the client to group several write operations together, thus reducing latency and jitter. Read more on the IOIOLib Basics page, in the section called "Batching Operations". -
ioio.lib.util.AbstractIOIOActivity
is now deprecated. Clients should move toioio.lib.util.android.IOIOActivity
. The latter is similar, but not identical. Notably,IOIOThread
has been replaced byIOIOLooper
, which is an interface. Likewise,createIOIOThread()
is nowcreateIOIOLooper()
. The implementation of this interface is encouraged to useioio.lib.util.BaseIOIOLooper
as a base class. Converting from the old style to the new style should be trivial. See the example projects as reference. - Added
ioio.lib.util.android.IOIOService
, which serves as a base class for creating Android services using IOIO. - Added
ioio.lib.util.IOIOApplicationHelper
, which can be used by clients that need a different model than the Activity or Service above. - Read more about the new utilities API on the IOIOLib Basics page, in the section called "Using the Application-Level Utilities".
- Added
IOIO.getState()
for querying the connection state.
- Added Open-Accessory support. Open Accessory will provide improved latency, throughput and jitter and will work when USB debugging is off. It will also cause Android to open a launch dialog upon connection of the IOIO. Some changes are required in the application manifest (see Wiki page), and you also need to add IOIOLibAccessory to your application dependencies. If ADB is enabled on the Android, ADB will take precedence over Open Accessory. Disable ADB to have IOIO working over Open Accessory.
- Fixed issue #2: broken backward compatibility between firmware V3 and software V1.
- Improved IOIOLib Javadocs.
- Fixed issue #15: the
loop()
method will no longer be called after a disconnection, even if the client hasn't thrown an exception. -
DigitalOutput.write()
will now silently ignore the operation if writing the same value as the last written value. This is merely an optimization, but may result in performance boost for applications doing high-rate digital output. - In
IOIOActivity
(andAbstractIOIOActivity
) IOIO connection is opened / closed inonStart()
/onStop()
and not itonResume()
/onPause()
as it used to. - Fixed several bugs in
Uart
. Most notably, it now works OK withBufferedReader
, and itsInputStream.read()
will exit cleanly with a -1 return value when callingUart.close()
.