Things currently on our todo list:
- add USB mass storage interface for drag/drop of BASIC
programs
- add a built-in INF file (thru
the USB
mass storage interface)
Known Bugs:
- pic32 flash (crash) (fixed in v1.92c)
- if you use a new PIC32 (silicon revision B6, 2011 date
code or later) with old bits, the flash code will crash; Microchip
introduced a new timing requirement for the new silicon revisions (of even
old parts!) which was not previously documented, and was not previously
implemented in the Microchip Application Library (MAL) -- so if you use old
bits compiled with the old MAL on a new silicon revision, it fails; old and
new silicon revisions (of even old parts!) are not binary compatible, and
the old MAL does not work with new silicon revisions; see:
http://support2.microchip.com/KBSearch/KB_StdProb.aspx?ID=SQ6UJ9A01008J
- workaround -- none, sorry, other than using v1.92 or
later
- usb host mode (broken) (fixed in v1.92c)
- print statements are not flushed to stickos.log.
- workaround -- none, sorry, other than using v1.92
or later
- paste into command line (crash) (fixed in v1.90e)
- if you paste text into the middle of a command
line, you can overflow the "echo" buffer and crash the MCU.
- workaround -- restart the MCU; delete
characters at the end of the line up to the insertion point before
pasting again
- lcd initialization ("lcd" statements have no effect)
(fixed in v1.92c)
- if "lcd" statements have no effect, you may have an lcd
that is too slow for the default initialization delays
- workaround -- before the first "lcd" statement, dimension
all lcd pins (en, rs, d4-d7) for digital output, set them all to 1, and then delay for 20ms
- putty and Windows 7 (hang) (fixed in putty v0.61)
- if you are using putty and Windows 7 and you
experience occasional USB hangs when typing or pasting text into the
terminal emulator, I suggest you try Tera
Term.
- workaround -- use Tera Term
StickOS Revision History:
1.92c -- 1 January 2012
- MCF5225x and PIC32MXx
- print missing sub and variable names in error
messages
- allow variables to begin with _...
- do not trace input or halt statements
- process console lines on \n or \r (but not both), to make
it possible to paste unix line endings into tera term
- fix editing a line with a "//" comment
- fix usb host mode (missing volatile keyword)
- change PIC32 clock config bits to XT
- recompile with fixed PIC32 MAL
1.90g -- 23 October 2011
- TWR-MECH (MCF52259)
- add "subs" command and BASIC library support
- add "random" system variable
- change "let" keyword to be (usually) optional; allow "?" as
alias for "print" keyword
- allow "//" as comment indicator to end-of-line
- switch from 8x 8-bit PWMs to 4x 16-bit PWMs
- fixed paste into command line crash
1.84e -- 28
September 2011
- CUI32Stem (PIC32MX795F512H)
1.84c -- 19 June 2011
- arduino-shield-compatible Firebird32 (MCF51JM128), chipKIT Uno32
(PIC32MX320F128H), chipKIT Max32 (PIC32MX795F512L)
-
Please note that as of v1.84, the
units of servo output pins was changed from centi-milliseconds (cms) to
microseconds (us)
- recompile all previous features from v1.82 for
MCF51JM128 and PIC32MXx
- rename pins for arduino-shield-compatible boards
(a0-a5, 0-13, etc.)
- change servo output pins unit from centi-milliseconds
(cms) to microseconds (us)
- upgrade skeleton project to MPLAB X
1.82e -- 30 May 2011
- all MCUs except MCF5225x, PIC32MXx
- recompile all previous features from v1.80 for all
MCUs
- add "lcd" statement to interface with
HD44780-compatible LCD
- add "analog" variable to return analog supply
millivolts
- add "keychar" variable and "keychars" mode to
interface with 4x4 scanned keypad
- deprecate "sleep" mode (in favor of
pre-existing and ambiguous "sleep"
statement)
1.80c -- 25 Mar 2011
- PIC32MX7 (other MCUs will follow)
1.80b/c -- 28 Aug 2010
- MCF5225x, PIC32MXx (other MCUs will follow)
- add string support, including "vprint" statement to print
to variables
- add character constants
- add "<variable>#" operator to return length of arrays or
strings
- add I2C support
- add "uart <n> (read|write) <variable> [, ...]" statements
as alternative uart I/O mechanism, to avoid pin variable soup on PIC32
- add "input" and "getchar" BASIC statements for slave mode
operation
- add "raw" print/input qualifier
- add persistent uart console baud rate support thru "baud"
command
- replace FTDI USB serial interface with CDC/ACM USB serial interface
- rev c: fixed qspi initialization cs bug; fixed print ";"
bug
1.72e/f/g -- 14 Mar 2010
- MCF51JM128, MCF5222x, MCF5225x, PIC32MXx
- add specific MCU type and bootloader identification to
"help
about" message
- fixed USB device race condition
-
fixed printf
for better USB performance
- fixed pin names r?10 thru r?15 to parse correctly with
"pins" command for PIC32
1.72c -- 28 Feb 2010
- MCF51CN128
- released beta versions of new platform
- move qspi from
ptb3/4/5 to ptc5/6/7
- change default
qspi/zigflea pins from pta* to ptf*
1.72a -- 27 Feb 2010
- MCF5225x, PIC32MXx
- disable USB Host Mode if autorun disable switch
pressed during boot
- change USB Host Mode to
append to stickos.log rather than truncate
- disable JTAG on boot for PIC32
- fixed transmit hang when "configure" follows "dim"
of UART pins for PIC32
- workaround -- "configure" UART pins before "dim" of
pins for PIC32
1.72 -- 21 Feb 2010
- all platforms official release!
- move console UART from U1 to U2 and hide U1 for PIC32
- move qspi from SD1 to SD2 for PIC32
- fixed "qspi" statement within false conditional block
statements
- workaround -- move the "qspi" statement to a
subroutine and call the subroutine from the conditional block statement
- fixed USB command line transport hangs
- workaround -- restart the terminal emulator program
*without* disconnecting the USB -- after a short delay, the terminal
emulator will reopen
1.70h -- 4 Jul 2009
- PIC32MXx-F512L
- fixed missing PORTA on PIC32MXx-F512L
1.70d/e -- 4 Jul 2009
- all platforms official release!
- changed skeleton project to rebuild StickOS from a
core library
- added absolute variables to access MCU registers
- added pin variable arrays to allow programmatic
access to sets of pins
- added more watchpoints and watchpoint performance improvements
("watchsmart" mode)
- added write-back caching for USB Host Mode
performance improvement (1000+ prints/second to USB flash drive)
- added ability to list program without line numbers
("numbers" mode) to paste back into "auto" command after editing in text
editor
- fixed "auto" to terminate auto line numbering on
error
- fixed "clear" command to reconfigure all user
configured pins as digital inputs
- fixed "reset" command on 8 and 16 bit MCUs
- fixed "qspi" statement to not toggle chip selects
automatically (use an explicit chip select in BASIC, instead); added
"pins qspi_cs*" control for automatic chip selects
- fixed zigflea to use nearly full power
1.60e/f -- 27 Mar 2009
- all platforms official release!
- added USB Host Mode, to allow trivial "print" statement
data logging to a USB
flash drive
file "stickos.log" (enabled with "usbhost on" mode)
- added "servo output" pin variable type with pulse width
specified in 1/100th ms (centi-milliseconds), to control pwm servo motors; added global servo frequency stored in flash ("servo"
mode)
- added "pins" command, to allow the user to change
default StickOS pin assignments for heartbeat LED, autorun disable
switch, etc.
- added "download" command, to allow StickOS to
be a S19 -> QSPI -> EzPort relay
- added QSPI support to all MCUs
- added MC9S12DP512 MCU support
- fixed "do...until" bug when followed by a "for...next" loop
1.50g/h/i/j -- 14 Mar 2009
- all platforms official release!
- added serial console support
- added auto line numbering ("auto" command),
which allows you to edit line-numberless programs in an editor and then
paste them into the command-line
- added analog voltage level stored in flash ("analog"
mode), so MCUs that don't run at 3.3V can set full scale millivolts
- added autorun disable switch support to all platforms,
to override "autorun on" mode
- removed sleep switch and autoreset mode support ("autoreset"
mode)
1.50 -- 7 Mar 2009, 12 Mar 2009
- MC9S08QE128, MCF9S12DT256, MCF51QE128, MCF521x,
PIC32MX3
- released beta versions of new platforms
1.43c -- 5 Mar 2009
- PIC32MX4
- fixed pin names r?10 thru r?15 to parse correctly
1.43b -- 1 Mar 2009
- PIC32MX4
- fixed array usage to not dereference an unaligned
pointer
1.43a -- 16 Feb 2009
- PIC32MX4
- changed pull-up resistors to only be enabled for
"digital input" pins
- added UBW32 HID Bootloader support in a separate
download
- fixed "help pins" online help text pin names
1.42
first tracked revision