Release NotesIndex

07.25.01 - Updated board info: Version 1.0, Build 1, SN 00000000

08.05.01 - Assembled first boards for Build 2.

08.20.01 - Assembled more boards for Build 2.

08.29.01 - We are now on Build 3.
           I moved the gp_ver.asm info into a file called core_ver.asm
           and changed some labels.  The core_ver.asm file has the
           table for all the chip ID data and can be common to all
           BrainStem modules.

09.12.01 - Performed assembly of Build 3 modules over several days.
09.15.01 No major changes to any firmware.
           Reversed order of Serial Number bytes in an attempt to
           get the SQTP feature to work. (Later found out that the
           SQTP feature will not work with the PIC18C252.)

09.26.01 - We are now on Build 4.
           Fixed servo STOP bug -- movlw should have been addlw (FW).
           Fixed servo LMT port bug -- POS0 had offset added twice (FW).
           Fixed servo REL port bug -- directions were reversed (FW).
           Fixed servo RFLX port bug -- MSG byte had erroneous 0-127 check (FW).
           Added 0-time check for timer set routines (VM and CMD).
           (Entering a 0-time crashed the timer routine.)

09.27.01 - Made digital polling use a copy
           of PORTB.  The polling has not had any problems,
           but this change should improve reliability.

10.01.01 - Turned on weak pull-ups for PORTB.  This seems to
           help with some of the pin interference problems I
           have been seeing (when combined with IO mode toggling).

10.01.01 - Assembled Build 4 modules.

10.06.01 - We are now working on Build 5.
           Fixed IIC Master Read bug.  Interrupt was not saving
           state correctly which would sometimes cause crashes.

10.09.01 - Assembled Build 5 modules.

10.15.01 - We are now on working Build 6.
           Added packet size verification in serial RX.
           A size of 0 or greater than the max (8) will be
           rejected and the packet will be discarded.  Otherwise,
           a bogus size could cause incoming data to overwrite
           system variables and crash the Stem.

10.18.01 - Software libraries completed and posted for WinCE with
           either a SH3 (HP Jornada) or ARM (Compaq iPAQ) processor
           running PocketPC 3.0.

10.18.01 - Software moved to Build 4

10.18.01 - We are still working on firmware Build 6
           Eliminated the 0-size packet check in the serial RX
           routine because that broke the Magic Byte function
           (which uses a 0-size packet).  When a digital input
           is switched to an output, the output state is
           initialized as 0.  The weak pull-ups may make the output
           state default to 1 otherwise.

10.26.01 - We are now working on Build 7 for firmware.
           Updated GP2D02 driver to assert VIN high at power-up.
           That puts the GP2D02 in its idle state.  Also increased
           the number of TEA files from 8 to 11.  There was some
           blank space that was reserved for future system data
           or user applications.  This feature was not documented.
           The blank space is better utilized as TEA file space.

10.26.01 - Added support for default extensions to Console.
           The following commands do not require filename extensions:
           Default extension for "steep" is ".tea"
           Default extension for "load" is ".cup"
           Default extension for "dsm" is ".cup"
           Default extension for "ast" is ".tea"
           Default extension for "pp" is ".tea"

10.28.01 - Fixed a problem in Windows in the aIO library where
           aStream_Read would return aErrIO instead of aErrNotReady
           if no bytes were available on the serial wire.

10.31.01 - Added unary ops -,+,!,~ to compiler.
           Updated TEA grammar file in docs.
           (Still debugging.)

11.02.01 - We are still working on Build 7 for firmware.
           Turned off internal weak pull-ups for digital IO ports.
           Although it added convenience for some things, it
           decreased the overall flexibility of the module.
           So starting with Build 7, the internal weak pull-ups
           will be off. (Builds 4-6 have weak pull-ups on.)

11.06.01 - Added implicit casting (byte to short) in compiler for most cases
           where it can be applied: constants, variables, functions, etc.
           (Still debugging.)

11.19.01 - Performed assembly of more Firmware Build 7 modules.
           Latest compiler improvements have been tested.
           Now working on releasing Build 4 of the software.

11.26.01 - Now working on Build 5 of the software.
           Switched to newer version (IDE 4.2.5.766) of Metrowerks compiler.
           Updated all relevant projects.

11.28.01 - Still working on Build 5 of the software.
           Added new default extension in Console.
           Default extension for "launch" is now ".cup"

12.14.01 - Re-naming effort with the TEA libraries.
           Now enforcing this naming convention: libfilename_functionname
           This cleans up the code and makes it easier to create
           libraries in the future.

01.07.02 - Now working on Build 8 Firmware.
           Added support for future system value.
           All other functionality is unchanged.

02.03.02 - Moved to Build 6 of the software libraries and applications

02.04.02 - Fixed a bug in the steep compiler when handling nested #defines

02.04.02 - Fixed a bug in the steep compiler where math was not
           left-to-right evaluation

02.10.02 - Finished Digital panels for all GP 1.0 platforms

02.28.02 - Pushed Build 6

03.01.02 - Moved to Build 7 of the software versions.

03.04.02 - Optimized the TEA compiler to better dead-strip code resulting
           in smaller object code.

03.23.02 - Fixed a bug where typing commands that take a filename argument without
           providing the filename would crash the console.

03.29.02 - Added a new LEAF compiler to the console commands to enable compilation
           of reflex definition files (LEAF).

04.17.02 - Changed the aPPRK library to default to module 2 when the controller
           is set to BrainStem.  This can be modified with a "module" setting in
           the aPPRK.config settings file.

04.25.02 - Pushed Build 7 of the software versions.

04.26.02 - Moved to Build 8 of the software versions.

04.26.02 - Fixed a typo in the aSRF08.tea library file where ms measurements were
           being returned in cm.  Thanks to Michael Cone for pointing this out!  Also
           added new routines for allowing multiple echo reads from a SRF08 within
           a TEA program, including the light sensor value.

05.17.02 - Released first GP modules with Build 9 firmware.
           Build 9 includes several bug fixes and new features:
           - Fixed Firmware Bug 08
           - Fixed Firmware Bug 09
           - Fixed Firmware Bug 10
           - Fixed Firmware Bug 11
           - Fixed Firmware Bug 12
           - Fixed Firmware Bug 13
           - Fixed Firmware Bug 14
           - support for 57600 and 115200 serial baud rates
           - hard reset now uses IIC SDA and serial SRX
           - adjustable serial timeout via system parameter 21
           - new serial relay mode (cmdSER_RELAY and cmdSER_TOIIC)
           - new TEA serial functionality via ports 0x0013 and 0x0014
           - new port 0x0015 for reading the EEPROM
           - new quiet mode for disabling VM messages
           - new "serialError" message when serial buffer is overwritten
           - timers can now be killed by issuing a cmdTMR_SET
             command with a timer ID, but no time setting

06.04.02 - Released first GP modules with Build 10 firmware.
           - Fixed Firmware Bug 15

07.10.02 - Fixed several steep compiler issues:
           - Added support for variable declarations inside of any
             compound statement, not just the routine scope.
           - Fixed a pre-processor bug with // comments
           - Fixed a bug where opcodes that expect parameters weren't
             requiring them.  Now appropriate messages are displayed.
           - Added a check for variable initialization.  Now if a
             variable is used before being initialized, it results in
             a compile error.

           Improved the console with the following features:
           - Resizable windows (accept on handhelds).
           - Improved coloring and aesthetics of UI.
           - Command line recall now allows you to recall
             previously typed commands.
           - The output window now supports scrolling and has
             an adjustable buffer size (through console.config).
           - Added an exit button for convenience on WinCE.

           Updated the TEA library files in aSystem directory:
           - Added initializers for variables.
           - Added aEEP.tea to TEA library files.
             This new file provides support for I2C EEPROMs.
           - Fixed bug in aMulti.tea routines.
             (The aMulti functions only worked on BrainStem modules
             with an address of 2.)

           Added a new aIO_MSSleep routine to the aIO library
           to give a low-resolution sleep function across platforms.

07.11.02 - The MacOS version is no longer moving forward.  Future build releases
           will work natively on MacOS X.

07.11.02 - Pushed Build 8 of the software versions.

07.12.02 - Moved to Build 9 of the software versions.

07.17.02 - Fixed some problems with the aPPRK library and Config program on
           all supported platforms.

07.17.02 - Added the aIO and aStem library build trees to the Linux cdev
           distribution.

07.17.02 - Pushed Build 9 of the software versions.

07.17.02 - Moved to Build 10 of the software versions.

07.30.02 - Fixed a pre-processor problem when an include file couldn't be
           found.  Now the compilers can offer errors to this effect.

07.31.02 - Fixed a bug where a missing final curly brace in a TEA program
           would crash the compiler.  Now this is reported as an error.

09.30.02 - Fixed a problem with the steep compiler where goto statements in
           TEA code were not generating the opcodes.

10.05.02 - Fixed a problem with the steep compiler that prevented the
           continue statement from working properly.

10.07.02 - Fixed a problem with the leaf compiler that caused all messages
           to default to module address 2.

10.09.02 - Brought online the MacX versions of the Console and GP applications.

10.09.02 - Numerous stability fixes for the steep compiler.

10.09.02 - Changed the default debug level for the Console to 1 from 0.

10.09.02 - Added summary messages for the steep compiler to describe the
           success or failure of the compile.

10.11.02 - Pushed Build 10 of the software versions.

10.11.02 - Moved to Build 11 of the software versions.

10.14.02 - Standardized the PPRK Config program for all platfoms adding
           the MacOS X version as well.  The graphics are now all based
           on common code running against the aUI library.

10.17.02 - Fixed a bug in the Console application where packets typed in
           that were too long were quietly truncated.  Now they are not
           accepted and a meaningful error is generated.

10.17.02 - Fixed a pre-processor problem where #define would cause problems
           if a symbol was defined more than once.  This now generates
           an appropriate error in the tokenizer.  This affected the steep
           and leaf compilers.

10.19.02 - Added macro substitution to the pre-processor to allow parametrized
           macro substitution.

10.21.02 - Completed all the modes except Stepper Motor mode in the Moto
           Application.

10.22.02 - Fixed a problem when loading files onto module slots.  When the
           module was not present or the slot index was out of range, the
           console was not handling the problem gracefully.  Now the console
           reports a meaningful error and no longer can crash in this case.

10.22.02 - Pushed Build 11 of the software versions.

10.22.02 - Moved to Build 12 of the software versions.

10.23.02 - Fixed a problem in the WinCE consoles that was introduced in the
           last build where the link was never established

10.23.02 - Fixed a problem in the steep compiler where constant expressions
           with a shift by zero bits evaluated as 0.

10.22.02 - Pushed Build 12 of the software versions.

10.22.02 - Moved to Build 13 of the software versions.

11.02.02 - Added the commands "say" and "SP03" to the console to support the
           Devantech SP03 speech module on all platforms the console runs on.

11.06.02 - Fixed a bug in the MacOS X aIO library that prevented any baud rate
           other than 9600 from working properly.  Now all supported baud rates
           work well on the Mac.  This fix also affects the Linux code as well.

11.08.02 - Pushed Build 13 of the software versions.

11.08.02 - Moved to Build 14 of the software versions.

01.08.03 - Pushed Build 14 of the software versions.
           - Added beta version of opcode-level web-based debugger.
           - Fixed bug in handling trailing white space in settings file lines.
           - Increased default length of string tokens to 81 characters.
           - Console "stat" commands now displays TCP/IP address.
           - Console "relay" command automatically looks up TCP/IP address.
           - Restored aStub example.
           - Added aDataLogger example.

01.10.03 - Moved to Build 15 of the software versions

01.29.03 - Assembled first GP 1.0 Build 11 modules.

01.29.03 - Now shipping Moto 1.0 Build 3 and GP 1.0 Build 11.

02.10.03 - Moved up maximum setting length to 32 characters for files
           like console.config, moto.config, and gp.config.  This
           accomodates long portnames on MacOS X.

02.10.03 - Console "stat" command now displays portname and baudrate.

02.20.03 - Added i686 directories to Linux distribution for building
           on PII and better platforms.  Also fixed some minor compile
           issues for Linux.

03.01.03 - Added packet synchronization to the aStem library to
           automatically synchronize packet framing when ill formed
           packets show up.  This affects all platforms and will work
           for any software that relies on the aStem library.

03.03.03 - Fixed extern "C" in headers for distributed source files to
           avoid problems with C++ mangling of names.  This allows
           easier linking from C++ to the basic libraries and these
           auxilary routines.

03.04.03 - Changed to style-sheets and re-designed the reference
           generation to work more smoothly and be visually easier.

03.08.03 - Software Build 15 Released

04.07.03 - Fixed a bug for Win95 relating to socket communication.

04.07.03 - Made the aPPRK library slightly more general with regard to
           creating the serial stream.  This now allows relaying through
           TCP/IP connections for BrainStem-based PPRK models.  This change
           adds the requirement of the aUI library for aPPRK linked code.

04.22.03 - Added a compiler message to warn when declaring a routine
           with a name that has already been #defined as a symbol.  For
           example:

             #define foo 5
             int foo() {
               return 2;
             }

           This used to create a zero-lengthed file with no error message.
           Now it would give the error "identifier required, found integer".
           Thanks to David Rosenbaum for pointing this one out!

04.22.03 - Added a compiler check for multiple type definitions in
           declarators.  An example would be:

             int void foo() {
               return 0;
             }

           This now give a "type already defined" error.

04.22.03 - Added a better compiler warning when types do not match.  It used
           to not always point to the error file location.

04.22.03 - Fixed a compiler bug where simple expressions were not being
           carefully type checked which could cause bad code generation.
           An example would be:

             int foo() {
               char a = 1;
               char b = 2;
               int c;
               c = a + b;
               return c;
             }

           Now, this will result in a type mismatch at "a + b".

04.22.03 - Added the ability to have nested parens in pre-processor
           macro calls.  An example would be:

             #define foo(a, b) (a+b)

             int bar() {
               return foo((1), 3);
             }

           Also added check for mismatched numbers of parens in
           macro calls.

04.28.03 - Added a new routine to the aIO library to enumerate
           files in a directory.  This is plumbing to allow
           plugin architectures and automated software updates.
           The new routine is aDirectory_List.

05.03.03 - Added a new routine to the aStem library to create
           Streams to serial relays on slave modules.  This
           was tested up to 115200 baud and seems reliable.
           The new routine is aStem_CreateRelayStream.

05.08.03 - Software Build 16 Released

05.19.03 - GP 1.0 Build 12, Moto 1.0 Build 6 Released
           - Fixes Errata 22,23,24,25.
           - Complete Overhaul and Upgrade of I2C routines.
           - Counter and enabler RAM may be used as scratch pad.
             (Makes it possible to use 56 scratch pad bytes.)
           - New I2C Slave Transmit from scratch pad feature
           - New cmdPAD_SETPTR command for setting address register
             for I2C Slave Transmit.

06.25.03 - Software Build 17 Released

           - New user library files: aAnalog.c, aDigital.c, aServo.c
             (They replace some functions in aStemCore.c)
             New functions in aModuleVM.c.
             See online C docs for details.
           - aStemCore.c only contains an input filter routine.
           - Added extra info to Console debug output:
             Echos lines typed in input box to StemDebug file.

09.10.03 - Software Build 18 Released

           - Improved error checking in LEAF compiler.
           - LEAF messages and vectors now must be wrapped
             in a module[n]{} block.  This new syntax makes
             it possible to write multi-module reflexes.
           - Removed LEAF compiler limitation where a reflex could
             only send messages to itself and not to other modules.
           - Compiler prints warning when it finds illegal characters.
           - Garcia braindump features added to Console.
           - New aGarciaTool application.
           - Updated Garcia libraries and TEA source code.
           - New TEA libraries: aI2C.tea, aIRCM.tea, aDump.tea.

09.30.03 - Software Build 19 Released

           - Updated aGarciaTool application.
             Includes Recovery and BrainDump features.
           - Updated Garcia libraries and TEA source code.

11.18.03 - Software Build 20 Released

           - Cleaned up all warnings and errors
             in the Linux source tree.
           - Cleaned up and made current all the primitive
             operations in the Garcia APIView
             that the Garcia API serves as a website
             whenever it is in use.
           - Support for XML scripts in Garcia API.
           - New aGarciaScript application.
           - New TEA library: aGPM.tea
           - Updated Garcia libraries and TEA source code.
           - Fixed problem where Console would halt upon
             reaching a blank line when executing batch command.
           - Fixed problem where TEA compiler would
             perform unsigned comparisons incorrectly.
           - Fixed other signed vs. unsigned issues in TEA compiler.

02.27.04 - Software Build 21 Released

           - Fixed bug in compiler which was generating
             faulty code for doing signed subtractions.
           - Fixed some bugs in the aGPM.tea library.
           - Added two new routines to aPPRK.tea library.
           - Did complete overhaul of Garcia API.  Switched
             to an Object-Oriented design with inherited
             interfaces for all objects and a Property-Value
             protocol for accessing attributes of the Garcia
             and associated objects.
           - Updated TEA code and reflexes for Garcia.
           - New aGarciaAgent application.  Acts as a relay
             between the Garcia and other applications.

05.19.03 - GP 1.0 Build 14 Released

           - Fixes Errata 26

06.30.04 - Software Build 22 Released

           - Fixed bug in compiler which was generating
             faulty code for the continue statement.
           - Added many new features to GarciaTool:
             Button indicator and user LED controls.
             Stats and new log view in Config pane.
             RF pane for reconfiguring RF module.
             Motor test pane.  IR transmit and receive
             test pane.
           - The aStem.dll now supports a stem.config file
             which can be added to the aBinary folder.
             A "tea-delay" setting can be added to this
             config file to alter the delay between packets when
             downloading TEA files.  The default value is 5ms.
           - Updated TEA code and reflexes for Garcia.
             Demo roaming program uses more sophisticated logic.
           - Updated Mac OS X example projects for Xcode
             development environment.
           - Added TEA library with routines for use with
             the Wheel Watcher encoder assembly.

07.08.04 - Moto 1.0 Build 7 Released

           - Fixes Errata 27

08.17.04 - GP 1.0 Build 15 Released

           - Supports the MIDI Baud Rate (31250).

11.11.04 - Moto 1.0 Build 8 Released

           - Fixes Errata 28.
           - Dual-read feature added for cmdMO_ENC32.
           - Added servo PWM output mode.
           - Centering offset parameter will adjust the
             servo center point in servo PWM output mode.
           - Velocity damping can be applied to PID position modes
             to make gradual setpoint changes.
           - PID minimum period lowered to 0.5ms.
           - Setpoint in encoder-based PID control mode has
             been changed from a relative setpoint with respect
             to the previous position to an absolute setpoint
             with respect to starting position when the mode
             is enabled.
           - The 32-bit odometer is no longer applicable
             in the encoder-based PID control mode.


version: 1.0, build 80903
© Copyright 1994-2008 Acroname, Inc., Boulder, Colorado.  All rights reserved.