<HTML><HEAD></HEAD>
<BODY dir=ltr>
<DIV dir=ltr>
<DIV style="FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: 12pt">
<DIV>
<H2>NLS D T B M Firmware</H2>
<P>The NLS Materials Development Division (MDD) modifies the DTBM software from
time to time to correct faults, improve usability, or to add additional
features.</P>
<P>The latest player firmware is version 2.1.7 (October 24, 2011) <A
href="http://www.loc.gov/nls/DTBM/DTBMsoftware-2.1.7.zip">http://www.loc.gov/nls/DTBM/DTBMsoftware-2.1.7.zip</A></P>
<P>Libraries and patrons can upgrade players to the latest software in the
following manner:</P>
<OL>
<LI>Obtain the latest software from the NLS web site:<BR><A
href="http://www.loc.gov/nls/DTBM/DTBMsoftware-latest.zip">http://www.loc.gov/nls/DTBM/DTBMsoftware-latest.zip</A>
<LI>Extract (unzip) this file onto a cartridge or USB drive so that the
directory "upgrade" appears in the "root" directory of the drive.
<LI>Turn on the player.
<LI>Insert the cartridge or USB drive containing the software.
<LI>The player will announce "Upgrading your player's software."
<LI>Wait until the upgrade is complete and the player restarts (about 10
seconds), then remove the cartridge.
<LI>The upgrade will only occur if the player's version is older than the
version of the software on the cartridge; reinserting the cartridge will not
repeat the upgrade.
<LI>The table below describes the major changes made in each revision.
</LI></OL>
<TABLE class=mkstyle cellSpacing=0 width="100%">
<TBODY>
<TR>
<TD vAlign=bottom colSpan=2 align=center><STRONG><BR>D</STRONG><STRONG>TBM
Software Version History (September 26, 2011)</STRONG></TD></TR>
<TR>
<TH vAlign=bottom>
<P><STRONG>Version</STRONG></P></TH>
<TH vAlign=bottom>
<P><STRONG>Changes/Enhancements</STRONG></P></TH></TR>
<TR>
<TD>
<P>2.1.7</P></TD>
<TD>
<UL>
<LI>Sort books and directories alphabetically (for multi-book media)
instead of file inode order
<LI>Change default USB suspend policy, for AT port, to prevent
patron-owned drives from suspending by default (at the expense of higher
power consumption/reduced battery life)
<LI>Updated English and Spanish user guides and Play/Stop key-describer
message (additional information on Bookshelf and BARD)
<LI>Correct gender rendering of numbers in Spanish
<LI>Correct "prev page" behavior in Z39.86 books so that reading
position moves to the beginning of the current page (unless less than
five seconds have elapsed since a previous page move)
<LI>Correct "cartridge test" function so that an error is not given when
testing APH-formatted cartridges
<LI>Correct page search, where pages in the DTB are not contiguous
<LI>Correct problem causing multi-cartridge DAISY 2.02 books to forget
new cartridge position if forced to use one not in sequence (by pressing
Play after wrong cartridge warning)
<LI>Correct error in finding the start of file in audio file (i.e. mp3)
book when rewinding
<LI>Play a double beep as an indicator when navigating off the current
cartridge in a multi-cartridge DAISY 2.02 book. (as is done with Z39.86
books)
<LI>Differentiate Z39.86 books with the same opf file name on a USB
flash drive with multiple books
<LI>Correct problem causing segfaults when navigating DAISY 2.02 books
<LI>Go to beginning of book if Play/Stop is pressed when playing the
second end-of-book message
<LI>Correct problem with CEA-format book in the root directory
<LI>Correct error causing a silent boot if mains power is connected
while the boot/loader was shutting down due to empty battery signal from
gas gauge
<LI>New "directive" tags in "options.xml":
<UL>
<LI>USBsuspend: (On, Off or Default) to explicitly direct USB suspend
behavior
<LI>recharge: to initiate battery recharge.</LI></UL>
<LI>New "configuration" tags in "options.xml":
<UL>
<LI>loop: to endlessly loop the book (used when calibrating battery by
charging then depleting battery)
<LI>currentBatteryCapacity: to explicitly set the gas gauge "last
measured discharge" value</LI></UL>
<LI>Add "service level 3" debug command "batt LMD" to explicitly set the
gas gauge "last measured discharge" value
<LI>Additional internal DTB resource tags recognized
<LI>Correct bug in service level 2 "mwrite" function (end address
counter overwritten)
<LI>Cancel forced recharge flag if waiting for recharge for more than 30
minutes (gave false impression that recharge was occurring)
<LI>Show gas gauge EMPTY signal in service level 3 "batt hw" command
<LI>Restore volume to correct level if "Stop" is pressed while the
volume is being lowered during the fadeout at the termination of the
sleep period.</LI></UL></TD></TR>
<TR>
<TD>
<P>2.1.6</P></TD>
<TD>
<UL>
<LI>Correct setting of tone Add function to calculate CRC32 of internal
flash memory partitions in Service Level 3 (for manufacturer to verify
the integrity of initial programming (or updates))
<LI>Further enhancements to gas gauge algorithm.
<LI>Do not disable charging if gas gauge reads incorrect voltage (this
is already handled by charger in hardware).
<LI>Do not permanently inhibit charging if charge time limit exceeded
(instead increment fault counter as per design plan (charge inhibited
after 5 faults))
<LI>Reset battery recharge inhibit latch when issuing a "Force Recharge"
command.(when recalling from profile)</LI></UL></TD></TR>
<TR>
<TD>
<P>2.1.5</P></TD>
<TD>
<UL>
<LI>Measure actual bit timing when reading/writing to single wire gas
gauge. (close loop) to eliminate battery state read errors.
<LI>DAISY 2.02: Fix bug that Next/Prev gets stuck if navigation occurs
off the current cartridge in a multi-cartridge book.
<LI>DAISY 2.02: Fix bug to allow announcements to be interrupted when
Menu button is pressed whilst stopped.
<LI>Correct communication so application knows when charge is pending
and will inform user that "charge is in progress".
<LI>Correct "Elapsed Time and Remaining Time" in Information for "loose
audio" files
<LI>Replace "maintenance" by "notes" in service level 3 help
<LI>Loose audio files: Add file beep when rewinding mp3/audio files in
time mode.
<LI>Loose audio files: Do not ignore first file boundary points for
press and hold of Rewind.</LI></UL></TD></TR>
<TR>
<TD>
<P>2.1.4</P></TD>
<TD>
<UL>
<LI>Various bug fixes and enhancements to boot code and kernel drivers
<LI>Correct case where expiry of sleep timer would cause a segmentation
fault if volume set at lowest level
<LI>Optimize initial parsing of NCX to reduce initial delay in playing
of NISO book</LI></UL></TD></TR>
<TR>
<TD>
<P>2.1.3</P></TD>
<TD>
<UL>
<LI>Ignore book files with the ._ prefix. <BR><EM>The Apple OSX
operating system adds additional files (to the actual book files) that
appear to the player to be a second book (although they are housekeeping
files for OSX). e.g. the file "65432.opf" would have a companion file
generated by OSX "._65432.opf"<BR>Ignoring these files allows Apple
users to copy files from BARD without having to do any corrective
action. These files are not visible to the Macintosh user, but are
visible if the drive is examined on a Linux or Microsoft Windows
computer.</EM></LI></UL></TD></TR>
<TR>
<TD>
<P>2.1.2</P></TD>
<TD>
<UL>
<LI>Correct issue causing the User Guide on the Standard player not to
be selected initially when entering the 'bookshelf' (when using a
multibook cartridge) even though the player announces "Standard Player
user guide"</LI></UL></TD></TR>
<TR>
<TD>
<P>2.1.1</P></TD>
<TD>
<UL>
<LI>Tone, Speed adjustment messages ("Tone Up", "Speed Up" etc.) are
rendered with the tone adjustment applied (not at neutral tone)
<LI>Correct issue that caused the player not to enter the User Guide if
a book was being initiated when the User Guide was loaded.
<LI>Correct issue that caused a reboot occasionally if a cartridge was
removed while was being accessed.
<LI>Look for .opf extension only at the end of the file name (stops
files like "book.opf.bak" from being recognized as a Z39.86 book.
<LI>Stop the loading of a Z39.86 book and wait for "key describer"
before trying to start the user guide. (for books with long NCX and thus
long start up times, UG could not be entered during this
time)</LI></UL></TD></TR>
<TR>
<TD>
<P>2.1.0<STRONG><BR></STRONG></P></TD>
<TD>
<UL>
<LI>Implement "bookshelf" mode when multiple books are found on a UFD.
(Press and hold "Play/Stop" to enter bookshelf and RW/FF to select
book.)
<LI>Reset "charge inhibit" flag when clearing power & status error
in level 1 and 2 service modes. (so that the player will attempt to
charge (without having to reset battery statistics))
<LI>Correct book mark behavior (adding book marks on bookmark level just
after beginning of book (in play))
<LI>Do not announce current section heading when navigating by book mark
(just time) (it was far too verbose and confusing)
<LI>Add additional error checking to prevent "segmentation fault"
restart during cartridge initialization
<LI>Accept loose audio files if in "Audio+Podcasts" directory if other
books present
<LI>Only announce "book error" if a cartridge is still inserted
<LI>Check for removal of cartridge during cartridge initialization to
abort processing if user removes cartridge just after insertion.
<LI>Stop playing messages prior to announcing "User Key Not Processed"
(when processing KXO)
<LI>Add <noUSBsuspend/> option to directives in "option.xml" file
so that troublesome USB drives may be used (albeit with higher battery
drain)
<LI>Move the CEA "book found" notice to after we've found the book!
<LI>Suppress key describer when processing cartridges (accumulating
books onto the chain)
<LI>Add feature: <BR>Press and hold bookmark to move to bookmark
navigation level and announce the number of bookmarks in the book
<LI>Change Sleep behavior so that first press will announce number of
minutes remaining and subsequent steps will increase sleep time
(quantized to 15 min intervals)
<LI>Announce "Sleep Cancel" when stopping player with sleep active.
<LI>Cancel sleep (and announce sleep cancel) when cartridge removed
<LI>Re-vamp the undo action at bookmark level to make it logical and
consistent (and functional!)
<LI>Correct CEA play segment (incorrectly calculated end time of short
segments.. meaning they never finished)
<LI>Correct Daisy 2.02 (D2_PlayAllTask) so that playing of segments (in
stop and segment mode) did not update the current pointer. (This caused
playing of snippet of book in stop mode to move the read pointer).
<LI>Recognize "NLS-Shared Master" as an NLS book (don't announce title
when at beginning of book and don't engage AGC)
<LI>Add "beep" at end of Daisy 2 segment play.
<LI>Restore navigation level or phrase / bookmark (previously would set
to lowest hierarchical level if on phrase or bookmark level).
<LI>Check for cartridge removal in processing of authorization object
and in parsing html (to prevent a "segmentation fault" restart if the
patron removes cartridge when the book is initially processed)
<LI>In Daisy 2.02 operation, do not reset the read position to the
beginning of the SMIL segment after playing title.
<LI>Handle the play/stop after pressing the "Info" button to play the
book if the information message had stopped.
<LI>Give a message for but do not "eject" the disc (enter key describer)
when finding a text only Z39.86 book (e.g. Bookshare).
<LI>Create a dummy interface to handle parking the user interface when a
text only book found.
<LI>Correct "level jump" announced to actual level for coarser
navigation levels than that at the current reading position. (It was the
most dominant at that level)
<LI>Changed the routine to determine the dominant resource at a level to
count those not in the resource list. (previously if the class is not
found in the internal resource is was ignored (although it may have been
the dominant class))
<LI>Announce page number using "text" number if audio is not present
<LI>Ignore various Microsoft recycle bin directories and Apple
"__macosx" directories when looking for books (in addition to upgrade,
'.' And '..")</LI></UL></TD></TR>
<TR>
<TD>2.0.3</TD>
<TD>
<UL>
<LI>Correction to battery recharge algorithm.</LI></UL></TD></TR>
<TR>
<TD>2.0.2</TD>
<TD>
<UL>
<LI>Various corrections to battery recharge algorithm.
<LI>Correct formatting for Voltage display in Service level 3. (did not
give correct value for less than 1.0V)
<LI>Report accumulated faults in Service Level 3 "b hw" command. (if one
or more faults)
<LI>Change the delay before book play (after title started) to
300ms.</LI></UL></TD></TR>
<TR>
<TD>2.0.1</TD>
<TD>
<UL>
<LI>Recurse into directory structure to add to book chain for Z39.86,
DAISY 2.02 and CEA books
<LI>Ignore all "dot" directories (not just . and ..) when recursing
looking for books (Apple & Unix hidden directory practice)
<LI>Correct spelling of 'ingles' in 'options.xml'
<LI>Added some error checking to prevent "segmentation fault" restarts
with some CNIB Daisy 2.02 books.
<LI>Initialize some auto variables (strings) so that strcmp() will have
a sensible value if the function that sets the string fails.
<LI>Add checking to various routines during Z39.86 initialization to
abort if cartridge removed. When processing a large NCX (Joy of
Cooking), many seconds can be spent processing the NCX.
<LI>Separate time for "prev" to jump over datum for normal navigation (5
sec) and SMIL navigation (2.5 sec) so that we have less tendency to jump
over items when jumping back by SMIL segment in play mode. (short
ingredient lists for example)
<LI>Do not terminate other messages when playing "End of book" so that
title will play to completion (if already at end when cartridge
inserted).
<LI>Do not play forward time (Forward 20 seconds) on multiple FF presses
when at End of Book.
<LI>Add a small pause (250ms) before "NISO_PlayAll" when playing Title
to avoid playing 50ms segment of book before title in some circumstances
(when large NCX is processed).
<LI>Give "beep/bop" response to returning to "current position" when in
bookmark navigation. (Same response as other navigation levels)
<LI>Make MP3 and CEA Information (Info button response) consistent with
Z39.86 & Daisy 2.02 (Position/Time/Book/Power)</LI></UL></TD></TR>
<TR>
<TD>2.0.0</TD>
<TD>
<UL>
<LI>If audio file is in stereo, preserve channel separation if
headphones are used. (do not mix to mono)
<LI>First production release</LI></UL></TD></TR>
<TR>
<TD>1.1.77</TD>
<TD>
<UL>
<LI>Correct setting of tone (when recalling from profile)</LI></UL></TD></TR>
<TR>
<TD>1.1.76</TD>
<TD>
<UL>
<LI>Don't announce "player on" if recovering from watchdog (warm reset)
<LI>Don't beep if recovering from watchdog (warm reset)
<LI>If removal of cartridge detected, then wait for the end of the snap
point initialization, so that position can be saved without a
“segmentation fault” restart.
<LI>Flag Z39.86 initialization that does not complete (so we don't try
and change position based on bogus data)
<LI>Cause persistent full keyboard buffer to initiate a watchdog event.
<LI>Allow power off in "Service 3" (when entered via
options.xml)</LI></UL></TD></TR></TBODY></TABLE></DIV></DIV></DIV></BODY></HTML>