Instructions for loading new firmware into the AM4. IMPORTANT: MUST USE A CF CARD NO LARGER THAN 2G TO UPDATE FIRMWARE. 1) Start with a freshly formatted Compact Flash card. To do this, insert the CF card into the AM4 while pressing and holding down the front panel button. The LED will activate Green for a few seconds, and then go out. The CF card is not formatted. 2) Using your PC, rename the OSnnn.NEW file ('nnn' replaced by version number) to OS.NEW. 3) Copy the OS.NEW file to the Compact Flash card. 4) Put the CF card back into the AM4 and cycle power. The LED will alternately flash Green-Red-Orange while the update takes place. Once the LED goes out, the firmware update is complete. If you have any questions or problems, please contact support@alcorn.com, or call 407-296-5800. Revision History Date Version Changes 9/20/04 1.02 Initial Release 10/18/04 1.03 Fixed bug where commands during playing were not being acked. Also added "*AD" command which is basically an unmute command which returns volume to previous level. 10/20/04 1.04 Added RL command which controls relays manually. Added resume feature where background sound pick up from where it left off. 10/25/04 1.05 Modified RL command. 11/04/04 1.06 Fixed bug where usernames with even number of letters caused ftp login lockup. 11/09/04 1.07 Added Random GPS playlist mode. Fixed bug where playlist would malfunction with comments at end of lines Fixed bug with GPS playlist with wait codes (^). Fixed bug where WAV file would get cut off at end. 01/03/05 1.08 Fixed Bug where selecting another file with parallel inputs while another was playing caused malfunciton. Compiler was trashing stuff with the sprintf involved in the read_parallel function. 01/04/05 1.09 1.08 wouldn't do parallel input with files > #10. This is fixed now. 01/05/05 1.10 Added random playlist capability. Fixed bug where front pushbutton file search was not ignoring deleted files. 01/13/05 1.11 Fixed multiday load problem with scheduler engine. Added "PS" for printing schedule as a debug tool. Improved random playlisting (more random). Some changes to FTP to make compatible with Media Manager. Changed UDP to answer to source's port number. Added ?C command (chapter request). 01/18/05 1.12 Fixed problem where certain files (especially OS.NEW!!) would not FTP correctly because I was not monitoring DRQ from CF on a word-by-word basis resulting in too fast a write. The FTP would hang, then no write would occur. Also fixed FTP rename where file extension could not be renamed. 01/19/05 1.13 Directory dump now removes spaces in filename and sends only text.ext for FTP and ?D serial command. The spaces were not compatible with windows- based FTP rename and delete functions. 01/27/05 1.14 Added .SCL and .GPS file extension recognition. 02/08/05 1.15 Fixed bug where GPS playlist wouldn't trigger with background turned on. 02/08/05 1.16 Added AD feedback command so that current volume level could be retrieved. Also added code to prevent problems when issueing PL command without a a search first, or issuing a PA command on bootup and then trying to play. Also fixed some potential problems with the ?C and ?P commands. 02/18/05 1.17 Fixed bug where 'Test' button would play last sound played by rear inputs. Also now naming volume 'MP3AM4' on formatting now. 03/08/05 1.18 Fixed problems with unterruptable playlist operation. Also added a couple of things to UDP streaming stuff so that it's compatible with DMM paging feature. 04/01/05 1.19 Removed redundant call to check_socket() and ffinit() in sysinit.c which seemed to be preventing some CF cards from initializing. There was some inidication that only builds with TI LV245 chips and certain CF cards were sensitive to this. 04/08/05 1.20 Added BR command which changes the baud rate. Can be used in playlist to change baud rate for 9600 baud GPS mice in conjunction with controlling external serial equip. with GPS triggered playlist sendstring commands. 04/26/05 1.21 Fixed bug in Send_Directory where message flag was not being cleared causing false fault status during directory reads. This also seemed to clear up some intermittant CF FTP problems. 04/28/05 1.22 Fixed bug where Select before Play of playlist would result in error condition. Direct Play of playlist worked, however. 06/03/05 1.23 Updated version number to 1.23, because 1.22 was actually labled 1.21. No other changes. 08/04/05 1.24 Changed GPS triggering so that sounds could be interrupted by another trigger. 10/14/05 2.00 Enabled Daylight Savings time functionality. Inverted CF reset and fixed up software CF reset - doesn't affect new cards but makes year 2000 SanDisk cards work. New Boot code - adds Factory.new file name support - new OS file that doesn't get renamed after new OS is loaded. NOTE: If this version is used with original boot code, the year 2000 cards will not work if installed during power-up. They will however, work if installed after power-up. 10/18/05 2.01 Increased filename buffer size because compiler put it just before command_buffer in memory which caused the command buffer to get trashed on boot-up after a BOOT event in scheduler during string copy in looking for file number zero. Also increased lastfilename and playlistfilename. The symptom was a red blinking led on bootup when a BOOT event that played a file was present. 11/9/05 2.02 Fixed intermittant problem with RTC where the I2C bus would hang and make it unable\ to read the clock. 11/21/05 2.03 Fixed problem where sometimes play LED would stay on after play was finished if file size of 8-bit WAVs was an odd number of bytes. 06/26/06 2.04 Fixed problem with large GPS playlists where MP3 decoder would starve while parsing and looking for triggers. 07/14/06 2.05 Added directional sensitivity to GPS. Also fixed bug where regular playlists would not execute properly when in GPS mode. 07/20/06 2.06 Fixed problem with direction calculation. 07/24/06 2.07 Uninteruptable playlist now stays uninterrupted when selected different files via parallel. 07/25/06 2.08 GPS points without direction are interpreted as omnidirectional now if included with in playlist containing point with direction. 08/01/06 2.09 Fixed bug where direction comparison might not work if headed between 337 and 360 degrees. 08/09/06 2.10 Fixed bug where playlist_parse variable was still being checked even when not operating in GPS mode. This caused the unit not to play when in non-GPS mode. 08/14/06 2.11 Fixed bug in GPS tolerance calculation. 08/16/06 2.12 Further "enhancements" to tolerance calc. and some fix-ups to direction. Improved trigger reliability. 08/17/06 2.13 In order to prevent retriggering at gps trigger boundaries playlist entries will be prevented from triggering more than once. You will need to have a different entry trigger before the current entry can be triggered again. 08/18/06 2.14 Fixed bug in shedule function where when playlists were triggered from schedule they would sometimes be skipped, and if you triggered the same playlist twice in a row from a schedule it would hang. 08/25/06 2.15 Removed Sequential GPS mode to make code more readable and cleaned up some things. Also now parsing GPS playlist line-by-line with the subindex, which makes system immune to funkyentries. 09/05/06 2.16 Removed an 'if' statement in scheduler_porthis.c that was causing the schedule file to not be reloaded at midnight if the AM-4 was in the 'PLAY' state. -SAH 10/12/06 2.17 Removed GPS functionality for WAV files - call to GPS related code was causing normal serial commands to malfunction during WAV playback. 10/19/06 2.18 Added play next and loop next feature. 10/20/06 2.19 Added announce feature. 02/26/07 2.20 Modified Daylight Saving Time in accordance to new rules starting in 2007. 3/21/07 2.21 Modified system so that new OS was loaded on a reset and not just by a power-on so that OS could be updated remotely. 3/29/07 2.22 Fixed a problem with the TCP/IP protocol regarding use of a gateway. This problem affected responses sent back through a router. -SAH 4/25/07 2.23 Disabled playlist steppng while in GPS mode. 5/2/07 2.24 Fixed Ethernet operation during playback. 6/1/07 2.25 Fixed Random playlist functionality. OS upgrade no longer repeates if OS.SAV has been left on media. 6/20/07 2.26 Fixed an issue that would cause FTP transfers to drop intermittently. The issue was caused by a combination of things: 1) A problem with storing TEMP ARP entries 2) The Ethernet Interrupt priority was too low. -SAH 7/23/07 2.27 Added calibration serial command to RTC. Also checking that the CF card is not busy before issueing a hardware reset because some 2Gig Sandisk cards did not like that. 10/18/07 2.28 Fixed bug in calibration where if a negative calibration was chosen system lost 1 minute each day. 10/23/07 2.29 Factory.new firmware upgrade method broke in V2.21. 10/24/07 2.30 Factory.new does not get renamed to os.sav now. Needs reboot without CF card with factory.new after update finishes. 3/20/08 2.31 Enhanced Random Playlist capability to be non-repeating (within each playlist) and more random. 04/08/08 2.32 Changed GPS Playlist operation so that repeated Select-Plays (or loops) to same file via parallel or serial would restart playlist instead of stepping through it. 05/07/08 2.33 Added feature for Universal Mummy Ride where if you have the Pause input activated on power-up then the parallel file selects operate as "Play Next" commands instead of Play. 06/09/08 2.34 Added serial command Bank Select (BS) to allow the selections of playlist banks 0-9. This adds 10,000 to the playlist number for each bank, so that the same parallel input can be used to play different banks of sound files. The BS command can be issued via the scheduler so that at different times of the day different playlists can be executed via the same parallel input. 07/14/08 2.35 Fixed bug in random playlist where system would intermittantly hang with certain playlists. Added wildcard Long/Lat to GPS operation. 01/06/09 3.00 Added FAT32 support so >2G media could be used. NOTE: Still need <2G media to update OS. 01/09/09 3.01 Added "Shuffle" command - SH. It can be send as a command via serial, Enet, or used in a PLY00000.LST autoexec playlist to randomly play all the files on a media card without requiring any random playist listing all the files, etc. 01/27/09 3.02 Added NTP Support. Optimized FAT32 file reads so which made WAV file playback possible, and fixed some hiccups toward the end of MP3 file playback. 03/02/09 3.03 Front panel button now skips currently-playing song when in shuffle mode. 5/13/09 3.04 Fixed bug where background music resume would always restart from beginning when using >2G cards. 6/4/09 3.05 Fixed bug where parallel Pause input broke since V2.33. 6/10/09 3.06 Now sending freespace available for DMM when using >2G media. Fixes incompatibility with DMM. 7/17/09 3.07 Fixed bug which disabled >2G capability since V3.04 Can now trigger the same GPS point twice in a row. Need to exit zone, then re-enter. Also changed the way the Pause discrete input works. You no longer need to activate the file select input again to resume play. Play resumes when Pause is deactivated. 8/12/09 3.08 No longer sending init_LCD strings on power-up. Enabled HEX characters to be sent out with SendString. 8/13/09 3.09 Further changes to handle LCD strings. Removed ability to trigger same gps index twice in a row. 10/1/09 3.20 Added new mode. Strapping the 'Loop' input on power-up now causes the 4 file selects to operate this way: Select 1 - Inc. Playlist Number, Select 2 - Dec. Playlist Number, Select 3 - Dec. Vol, Select 4 - Inc. Vol Selected playlist and volume setting are saved in EEPROM for restore on power-up. 10/12/09 3.21 Added check for file 0 when reading EEPROM location for last incremented filenum. This (and 0xFF) could indicate uninitialized EEPROM. 11/30/09 3.22 A few changes. 1) Re-enabled Factory.new 2) Cards >2G can now be used to update Firmware! 3) Fixed bug where schedule would not get loaded after midnight when using >2G cards. 12/16/09 3.23 Fixed a bug introduced in V3.09 where a small part of the previous sound was left in the sound buffer and sometimes heard just at the beginning of playing the next. 3/24/10 3.24 Fixed bug when operating with NTP in Daylight Savings Time. Hour would always be reset to non-DST time. 07/13/10 3.25 A few NTP fix-ups: System would still revert to non-DST time with NTP. This is fixed now. Increased frequency of NTP server query to 2 times per day. Found that NTP could never be disableddue to typo in EEPROM write routine for the SNTP enable variable. 06/01/11 3.26 Added "+AD" and "-AD" increment and decrement volume serial (& Enet) commands 06/24/11 3.27 Implemented new schedule engine which enables the year to be ignored so that perpetual seasonal events could be created. Also completely rebuilt project. 07/08/11 3.28 Fixed pause functionality. Also fixed parallel mute and pause functionality. 09/12/11 3.29 Added functionality to the "AN" (Announce) command so that it would resume GPS playlists by adding a special "Announce Mode" initiated when the "Mute" parallel input is active on power-up. 03/06/12 3.30 Fixed problem where S/PDIF output was decimated and 1/2 bandwidth. 07/27/12 3.31 Fixed problem where Announce command would not work in a schedule.