uMP3 Firmware Beta Release

We've got a new firmware to test out. Please feel free to try it out.

uMP3 Firmware Beta 111-08-b003

If you have any questions, send an email to support @ roguerobotics.com

We are working on documentation, but for now, here is a list of the features, commands, and new settings:

New Features
========

FAT12, FAT16, FAT32:
 - All FAT formats are supported (that means cards from 1MB up to 8TB - yes 8TB -
   268,435,445 clusters max @ 32KB/cluster - once we support SDXC,
   we can address up to 2TB of space)

MMC, SDC, and SDHC:
 - We now support SDHC cards.  That means you can use your 32GB SDHC card in your project.
   (SDHC maximum card size is 32GB)

microSD and miniSD support (with adapters)

RTC:
 - RTC built-in.  Requires setting after start.
 - File times are updated with current time.

Configuration on card:
 - Settings stored in /UMP3.CFG are read in on start.
 - One setting per line.
   e.g. D5
        R5
        L1
        H1
        U1

File Commands ("FC"):
  Random writes:
   - You can write to any location in a file.

  New open mode - "RW" mode:
   - Files can now be opened in RW mode, so you can read, as well as write data.

  File attributes:
   - File attributes can be set/cleared.

  File seek:
   - Used for jumping around in a file for reading or writing.
   - You can use the file seek (jump) to pre-allocate files for quicker writing.

  File truncation:
   - Used to truncate a file.

  File listing (two modes):
   - 1) original format (e.g. [D|num] name)
   - 2) new format with dates/attributes

  Change file timestamp:
   - Set file timestamps to anything you want.

  Readline command:
   - Read from a file, one line at a time.

  Writeline command:
   - Write until end of line.
   - Configurable terminator: just CR, just LF, or CR/LF.

  File copy:
   - Copy data from one file to another directly.
   - Configurable copy progress status.

=====


COMMAND LIST (* = new, ! = updated/new features)
=====

ST - Settings               "ST setting [value]"

*T - get/set Time           "T [yr [m [d [h [m [s]]]]]]"

V - Version                 "V"

PC (Play Commands)
 F - play file              "PC F path"
 I - play info              "PC I"
 O - loop count             "PC O [num]"
 P - play/pause             "PC P"
 R - reset audio            "PC R"
 S - stop                   "PC S"
 T - play tone              "PC T [toneval]"
 V - volume                 "PC V [left/both [right]]"
 X - speed change           "PC X [num]"
 Z - playback status        "PC Z"


FC (File Commands)
 *A - set attributes        "FC A +|- A|H|R|S path"
 *B - copy file             "FC B fh1 fh2 [num]"
 C - close file             "FC C fh"
 *D - change timestamp      "FC D year month day hour min sec path"
 E - erase file/directory   "FC E path"
 F - free file              "FC F"
 I - file info              "FC I fh"
 *J - file jump/seek        "FC J fh addr|E" (E = end)
 !K - CSD/CID               "FC K [B|I]" (new: "I" - gets more info from card)
 L - list file/directory    "FC L [path]"
 M - make directory         "FC M path"
 *N - rename file/directory "FC N path|newpath"
 !O - open file             "FC O fh r|w|a|rw path" (new: "rw" mode)
 !Q - query volume          "FC Q [A]" (new: "A" - lists FS type)
 R - read file              "FC R fh [num] [addr]"
 *RL - read line            "FC RL fh [num] [addr]" (see "E" setting for EOL handling)
 *U - truncate at position  "FC U fh"
 W - write file             "FC W fh [num]"
 *WL - write line           "FC WL fh" (check "E" setting for end of line handling)
 !Z - card/file status      "FC Z [fh]" (new: "Z fh" - OK or EOF)
=====


SETTINGS LIST (* = new) [] = default
=====
D - baud/bit rate [0]
  - 0 = 9600
  - 1 = 19200
  - 2 = 38400
  - 3 = 57600
  - 4 = 115200
  - 5 = 2400
  - 6 = 4800
  - *7 = 230400
  - *8 = 460800
T - write timeout (in 10ms increments) [0]
*P - prompt character [62 (= '>')]
*L - directory listing style [0]
  - 0 = old style
  - 1 = new style (attributes, timestamp, size, name)
*R - response delay (in 10 ms increments) [0]
*C - copy progress style [0]
   - 0 = none
   - 1 = progress hash every 2048 bytes
   - 2 = total bytes copied & copy rate
   - 3 = progress hash & bytes&rate
*E - R/W Line Terminator [0]
   - 0 = CR
   - 1 = LF
   - 2 = CRLF
B - bass boost [0]
O - loop count [1]
V - volume [16 16]
S - digital input style [0]
N - digital input file offset [0]
!U - "uninterrupted"/non-stop playback [0x00]
  - *new individual setting for 8 switch, set 8 bit value
    to control individual non-stop playback
    (e.g. 0x13 = bits 4, 1, 0 non-stop)
H - hardware busy indicator [0]
*A - 8 switch button polarity [0x00]
    (0 = negative trigger, 1 = positive trigger)
    (e.g. 0x21 = bits 5, 0 positive triggered)
*M - Enable debounce mode [0]
  - When set (1), enables a 40ms debounce control of 8 switch input

=====

Changes:

b001 -> b002
 - Added debounce feature for 8 switch mode
 - Added individual control over non-stop mode in 8 switch mode
   - i.e. each individual switch can be set to non-stop or interruptible
 - Added switch polarity for 8 switch mode

b002 -> b003
 - fixed audio choke on large files
 - added audio seek (second resolution)
 - added play "next" file - (queue next file to be played - blocking command)
 - fixed audio choke on listing commands
 - added/fixed bass and treble boost settings
 - fixed tone play state in events