Release Notes

1.0.0.21 (2/10/16)

  • Added Servo palette and example.
  • Added Due Timer Interrupts and example.

Known Issues:

Case 134: If Serial Settings not wired to Serial Open 1-3, Serial Port 0 will be used.

Workaround: Ensure Serial Settings are always wired.

Case 133: Arduino 1.6.8 moved Wire source files causing I2CLiquidCrystal lib to not compile.

Workaround: Modify I2CIO.cpp to change include path (see here).

Case 132: SD File Exists.v in SD library not functional.

Workaround: Do not use this VI as it has been deprecated.

Case 130: Auto-indexed For loop input wired to Shift Register in a nested loop can cause compilation error.  Deeply nested loops with flat sequence structures cause unexpected behaviour.

Workaround: Avoid using auto indexed For loops if wired to shift registers.  Avoid using flat sequence structures and use error wires and subVIs for program flow instead.

Case 127: In place optimization is performed inside loops on wires coming from outside of a loop. This can cause an issue on subsequent iterations of the loop that expect the original value to be preserved.

Workaround: Avoid branching of wires coming into For loops where the branch can modify the original data.

Case 110: For Loop doesn’t support output tunnel concatenate option.

Workaround: Use a shift register instead.

 

1.0.0.20 (1/9/16)

  • Case 126: I2C Attach Request Interrupt was incorrectly casting function call to an int instead of void.  Fixed.
  • Case 128: Optimization logic failed if input of a function was branched and also wired to a subVI. Fixed.
  • Case 129: Added support for board packages installed to the Local APPDATA directory since Arduino IDE 1.6.6+ has moved the location of board packages here.

1.0.0.19 (9/18/15)

  • Implemented Offset input for Decimal String to Number and Frac/Exp String to Number.
  • Case 115: Compilation error if wire is connected to flat sequence input and bypassed to connect to node after sequence structure as opposed to wired through structure. Fixed.
  • Case 116: Serial Connection error if user compiles and downloads VI while Serial Monitor is open. Fixed.
  • SD File Open.vi Mode input set to required.  Compilation error would result if not wired.
  • Changed Home Edition watermark to Home/Student Edition
  • Case 117: Compilation error if a string constant/control included the (“) character and if any element of a string array constant/control contained special characters. Fixed.
  • Case 118: Fixed compilation issue with using multiple Serial Ports in same VI on Mega targets.
  • Case 119: Fixed issue with ‘<’ character as part of a String constant getting dropped.
  • Case 120: Decimal and Frac/Exp String to Number if Offset Past Number was the only output wired, a compilation error would happen.  This output is not handled at this time, however a change was made so 0 is returned instead of producing a compilation error.
  • Case 121: Compilation error if both N and “I” terminal were wired inside a For Loop. Fixed.
  • Case 123: SD File Write String and Array if Bytes Written output not wired then no data is written to SD card.  Fixed to allow the output terminal to be unwired.
  • Case 124: String Array constants or controls with default values with elements that contain commas generate erroneous compiled code. Included this as an exception as part of the product User Manual.
  • Case 125: Fixed issue with auto-indexed String output tunnels of FOR and WHILE loops that were not working and produced an empty array.

1.0.0.18 (7/22/15)

  • Removed restriction of protected characters as part of the controls/constant labels.
  • Added Digilent Shield example to examples folder.
  • Added packaging of .lvlibs to error logs for addon use cases.
  • Case 111: Added support for boolean array input to boolean to 0,1 LabVIEW primitive.
  • Case 112: freeRAM in A4Lhelper.h needs #ifdef AVR since this only works on AVR targets.  Fixed.
  • Case 113: Check Unused RAM gives compilation error on some new Arduino boards.  Fixed and implemented functionality where available.
  • Case 114: Removed Read RTC Time and Format.vi, SD Data Logger.vi, Debug Tool.vi, SD Format CSV Data.vi, Binary to BCD.vi, and BCD to Binary.vi from .lvlib since these are subVIs and trial mode will force password protection.  These could not be used in trial mode as subVIs otherwise.

1.0.0.17 (6/26/15)

  • Removed minor warnings from A4Lhelper.h.
  • Fixed Serial Open baud default to 9600 when input is unconnected.
  • Modified Serial Open to work correctly for Teensy.
  • Added Utility APIs for writing and reading read-only data to Program Memory.
  • Added user library addon plugin to allow the community to develop their own LabVIEW APIs that wrap custom libraries or existing Arduino libraries.
  • Added ability for the user to create his own LabVIEW APIs for custom Arduino libraries. Refer to the Porting an Existing Arduino Library to the Arduino Compatible Compiler User Guide for details
  • Case 108: Controls/Indicators starting with a number generate compilation error. Fixed.
  • Case 109: Backslash character in string controls/indicators generate compilation error. Fixed.

1.0.0.16 (6/5/15)

  • Changed all inputs to required for String Replace API.
  • Compilation error if user inadvertently stacked multiple tunnels in the input of a sequence frame and tunnels existed without having a wired connected to them.
  • Added –save-prefs command when changing processors during compilation per Arduino IDE 1.6.4.
  • Added automatic coercion of un-matched array datatypes on subVI inputs.
  • Serial Write String casting to unsigned char * for support on other boards using HardwareSerial libraries that use explicit unsigned pointer.
  • Added ability to read board files from 3rd party hardware and add them to the board list.
  • Added Serial Read Until.vi which reads serial bytes until a termination character is received.
  • Changed implementation of Quotient and Remainder such that if integers are used, simple math using divide and remainder (%) is used instead of floor, which takes excessive computation power.
  • Case 86: Was reopened for condition if all inputs to build array were singular strings and did not contain a string array.  This condition has now been resolved.
  • Case 89: Fixed compilation error when string input to subVI left unconnected.
  • Case 90: Compilation error if the output of a primitive or subVI is wired to the “N” terminal of a For Loop. Fixed.
  • Case 91: Fixed issue with global variable write inside SubVI where wire is a different datatype as the variable which causes a new local variable to be written instead of the global.
  • Case 92: Added documentation to the Important Considerations Before Start Creating Arduino VIs document on the compilation error generated for a Case Statement having an Enum datatype wired to its case selector if the Enum comes from a subVI.
  • Case 93: Fixed issue where Match Pattern, with not all string outputs wired causing a runtime crash.
  • Case 94: Enabled text wrapping in Serial Monitor text output which was causing data to fall outside the screen to the right.
  • Case 95: For Loop N Terminal wired inside For Loop generated compilation error. Fixed.
  • Case 96: Compilation error for un-initialized input Shift Register. Fixed.
  • Case 97: Fixed issue with subVIs with a dot (.) in the name producing compilation error.
  • Case 98: Auto-cast inputs to U8 for I2C Write Array.vi so compilation errors do not occur with unaccepted datatypes.
  • Case 99: Compilation error if auto-indexed array on loop input was directly wired to output Shift Registers.
  • Case 100: Internal.
  • Case 101: Compilation error if more than one instance of the same subVI was used in a VI and the subVI has a case statement. Fixed.
  • Case 102: SD Write Array does not have bytes written output and SD Write String bytes written is not working.  Fixed.
  • Case 103: Change value input to Analog Write VI to a U16 to support the Due in 10+ bit resolution mode.
  • Case 104: Compilation error when output of a node or subVI inside a case statement was being coerced to another data type on the case statement output tunnel. Fixed.
  • Case 105: Fixed issue with String array input to concat string function not working.
  • Case 106: Fixed issue when SubVI has error cluster and array outputs causing datatype mismatch error

1.0.0.15 (5/6/15)

  • Case 76: Added support for unwired tunnels set to default on case structures. This used to not be allowed on previous versions of the compiler.
  • Case 77: Added automatic initialization of Global Variables. On previous versions of the compiler, the user needed to include initialization of all Global Variables as part of the user VI.
  • Case 78: Fixed compilation error with Callback VI using subVIs that were not part of the main VI.
  • Case 79: Fixed issue with unconnected subVI output indicator generating compilation error.
  • Case 80: Fixed compilation error with unconnected concatenate string function output in SubVI of another subVI in the same VI also uses concatenate string.
  • Case 81: If a callback VI was not selected for APIs that accept callbacks, a compilation error occurs. Generation of a meaningful user friendly error has been implemented.
  • Case 82: String control default value was not captured if control is inside structure and VI has subVI outside structure. This has been resolved.
  • Case 83: Fixed issue with Pin Attach Interrupt not properly setting mode (Falling, Rising, etc.) on Due target.
  • Case 84: Match Pattern with offset past match unwired was not getting converted. Fixed so that this output does not have to be wired.
  • Case 85: Fix for compilation error if a local variable was placed inside a structure and was read only and never written.
  • Case 86: Implemented build array with String datatypes.
  • Case 87: Multiframed sequence was generating compilation error if input/output tunnels were coming in/going out of structure from middle frames. Fixed.
  • Added Debug Tool as part of Utilities palette and example.
  • Added SD Card palette and examples.
  • Added I2C palette and examples.
  • Added SPI palette and examples.

1.0.0.14 (4/24/15)

  • Case 62: If the user included a “:”, “;”, “/”, “\”, “#”, or “&” as part of a control/indicator name it would generate a cryptic compilation error. Added error generation as part of the compiler to give the user clear information on what control/indicator has the problem.
  • Case 63: Diagram Disable was generating sporadic compilation errors. The issue was related to which frame of the structure was made into the Enable frame. Added flexibility to have the Enable frame as any frame number.
  • Case 64: Internal to capture product feature enhancement for a future release.
  • Case 65: Duplicate of case 62.
  • Case 66: SubVI with two terminals of the same name and different data types were generating cryptic compilation error. Added meaningful error for that specific case.
  • Case 67: Duplicate of case 69.
  • Case 68: User VI with uninitialized Global Variable was generating compilation error. All Global Variables need to be initialized as part of the user VI. Added to documentation. Fixed issues with multiple nested loops on subVIs when the same subVIs are used multiple times in the same VI.
  • Case 69: Case structures with Radix different than Decimal are not supported. This is not supported by the Arduino Compatible Compiler for LabVIEW. Added to documentation.
  • Case 70: When installed with Arduino IDE 1.6.2/1.6.3, board list is not populating. This was due to a change in how supported boards are libraries are handled and packaged in the latest Arduino IDE. Included proper search paths for the new location of supported boards. Also set the architecture before compilation in the preferences file as the Arduino IDE now uses this to select the library directory.
  • Case 71: A case statements with multiple output tunnels internally connected to the same constant was generating compilation error. This has been fixed.
  • Case 73: Auto-cast inputs to U8 for Serial Write Bytes.vi so compilation errors do not occur with unaccepted datatypes.
  • Case 74: Wiring non-matching datatypes to a shift register, either the input side or within a loop, causes a compilation error. This has been fixed by casting the input datatype to the shift register datatype.
  • Added info for ACC4L version, Arduino IDE version board type and metadata to error reports and included callback information.
  • Added I2C LCD Express VI for initialization.
  • Added Serial Monitor.

1.0.0.13 (4/2/15)

  • Case 50: Fixed localization issue running the compiler on OS with language settings that use comma for decimal points.
  • Case 51: Fixed issue with finding Arduino install and registry entries on Windows 32-Bit systems.
  • Case 52: Fixed issue with NOP on Due targets.
  • Case 53: Fixed issue with handling Case Statements with greater or less than expressions (in the format ..## or ##.. in case structures).
  • Case 54: Fixed issue with floating point local variables causing compilation error.
  • Case 55: Fixed issue with Unicode characters in control labels causing compilation error.
  • Case 56: Fixed issue with subVIs with all terminals unwired causing compilation error.
  • Case 57: Fixed issue with inplaceness optimization with local variables used.
  • Case 58: Fixed issue with inplaceness optimization executing on constant variable inputs.
  • Case 59: Fixed issue with unconnected concatenate string function output causing compilation error.
  • Case 60: Fixed issue with unconnected auto-indexed terminals on output of loop causing compilation error.
  • Case 61: Fixed issue with unwired Byte Array to String function output causing memory corruption.
  • Added primitives for Inverse Sine, Inverse Cosine, and Inverse Tangent.
  • Added Math Constants sub-palette.
  • Added Timer1 Interrupts for AVR with example.
  • Added Analog Input 3-axis accelerometer example.

1.0.0.12 (3/13/15)

  • Initial Release