Skip to content

Release Notes

ytai edited this page Feb 24, 2013 · 25 revisions

Release Notes

IOIO Bridge V1.00 (IOIOBridge-0100)

  • 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.

IOIODude V1.00 (IOIODude-0100)

  • A Java console application for communication with the device bootloader.
  • Allows reading version numbers from bootloader and app and flashing new app firmware.

Device Bootloader V4.00 (DevBoot-IOIO0400)

  • 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.

Bootloader V3.10 (Boot-IOIO0310)

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.

Application V3.30 (App-IOIO0330)

  • 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.

Application V3.26 (App-IOIO0326)

  • 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.

Bootloader V3.06 (Boot-IOIO0306)

  • Nothing new. Just change the version number and rebuild.

Application V3.25 (App-IOIO0325)

  • Fixed a minor bug with handling of USB errors in the ADB library.

Bootloader V3.05 (Boot-IOIO0305)

  • Fixed a minor bug with handling of USB errors in the ADB library.
  • Added the MINT0010 board.

Application V3.24 (App-IOIO0324)

  • 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.

Bootloader V3.04 (Boot-IOIO0304)

  • Fixed a bug where the bootloader would hang (stat LED constantly on) whenever connected to an Android without IOIO Manager installed.

Application V3.23 (App-IOIO0323)

  • 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.

Bootloader V3.03 (Boot-IOIO0303)

  • 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.

Application V3.22 (App-IOIO0322)

API Changes

  • 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 to ioio.lib.util.android.IOIOActivity. The latter is similar, but not identical. Notably, IOIOThread has been replaced by IOIOLooper, which is an interface. Likewise, createIOIOThread() is now createIOIOLooper(). The implementation of this interface is encouraged to use ioio.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.

Other Changes

  • 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 (and AbstractIOIOActivity) IOIO connection is opened / closed in onStart() / onStop() and not it onResume() / onPause() as it used to.
  • Fixed several bugs in Uart. Most notably, it now works OK with BufferedReader, and its InputStream.read() will exit cleanly with a -1 return value when calling Uart.close().