Status Change

by

So you may have noticed my lack of activity here of late. I thought I should explain.

Last year, I returned to Walt Disney Imagineering Research & Development as a full-time employee. Then, in June, my wife and I pulled the trigger and relocated from Boston to Los Angeles. We spent almost 3 months in temporary housing while house hunting, and in September we purchased a new home in Los Feliz, a walkable neighborhood rich in film history. It’s a 1930′s Spanish house in need of tender loving care.

So between my 40+ hour a week job, the relocation and the house work, I simply haven’t had any free time lately.

SparkFun has always been the official merchant for the MP3 Trigger, and between their forum and customer support, they can handle just about anything that comes up. In the past, I’ve chimed in when appropriate, but SparkFun should be your main point of contact for issues. I’ll continue to monitor both their site and the forum here, but only as time permits.

Hopefully, after the dust settles, I’ll get my own lab back.

0

Sweeper Robertson

by

Some years ago, I wrote an acoustic fingerstyle guitar tune that reminded me of my buddy, our dog. When I eventually recorded it for a CD in 2007, I decided to name it “Sweepers Song”.

Because I’ve been mostly self-employed, we hung out together almost every day for 12 years. I got to know him well. He lived to play, and he made perfect strangers smile (unless they happened to be a dog.)  He made me slow down and have fun.

I knew this day would come of course, but never wanted to think about it.  Now that it has, and I’ve put images to the music, I realize just how right I was. The song finally has a purpose.

0

MP3 Trigger gets a hardware play status output – finally!

by

I just posted a new version of MP3 Trigger firmware (v2.52p) on the support page that provides the following improvements:

1) Indexing of MP3 files has been optimized so start-up time will be greatly improved if you have lots of files on your flash card.

2) A new init file command allows setting the initial volume to something other than full.

3) A new init file command allows turning TRIG18 into an active low play status output signal. This signal is driven to 0V when MP3 data is being written to the MP3 decoder, and pulled up to 3.3V otherwise.  Basically the same function as the play status LED. Without the init file command, TRIG18 defaults to its normal input trigger behavior.

Here is a sample initialization file that includes all of the documentation for commands supported by v2.52:

#BAUD 38400
#VOLM 0
#RAND 2
#TRIG 01, 0, 0
#TRIG 02, 0, 0
#TRIG 03, 0, 0
#TRIG 04, 0, 0
#TRIG 05, 0, 0
#TRIG 06, 0, 0
#TRIG 07, 0, 0
#TRIG 08, 0, 0
#TRIG 09, 0, 0
#TRIG 10, 0, 0
#TRIG 11, 0, 0
#TRIG 12, 0, 0
#TRIG 13, 0, 0
#TRIG 14, 0, 0
#TRIG 15, 0, 0
#TRIG 16, 0, 0
#TRIG 17, 0, 0
#TRIG 18, 0, 0

******************** ALL INIT COMMANDS ABOVE THIS LINE *********************

This is a sample init file for the MP3 Trigger v2, firmware version 2.52.

The init file is optional. If not present, the default parameters will be
in effect: 38.4Kbaud, full volume, and all triggers will start their corr-
esponding tracks with restart lockout disabled. If it is present, it must
be named MP3TRIGR.INI and be located in the root directory.

Only the first 512 bytes of the file are examined for commands, and the first
occurrence of the '*' character is treated as the end of file by the parser.
Comments are not allowed in the command section, but there is no restriction
on the length of the comments that follow the first '*'.

All commands must begin with the '#' character and be followed by a space,
then the command parameters separated by commas. White space is ignored. All
parameters are decimal numbers. Leading zeros are acceptable. See the above
examples - which are redundant since they are all default values.

The following commands are supported in firmware version 2.52:

#BAUD N

    where N is one of the following: 2400, 9600, 19200, 31250 or 38400

#VOLM N

    where N is from 0 to 255

    Default is full volume = 0. Higher numbers produce lower volume.
    Useful range is 0 to 64, with values above 64 being inaudible.

#RAND N

    where N is from 1 to 255

    The default behavior of the random trigger function is to play a random
    track from all the MP3 files on the flash card. The #RAND function will
    exclude the first N tracks (in the directory) from the random trigger
    function. So if there are 18 MP3 files on the card and N=4, then the
    first 4 MP3 files will be excluded from the random trigger function.

#TRIG N, F, L

    where: N is the trigger number (1 - 18)
           F is the trigger function type (see below)
           L is the restart lockout enable (see below)

    The defined trigger function types (F) are as follows:

    F = 0: Normal operation
    F = 1: Next (same as the forward Nav switch)
    F = 2: Random
    F = 3: Previous (same as the back Nav switch)
    F = 4: Start (restarts the current track)
    F = 5: Stop
    F = 6: Volume Up
    F = 7: Volume Down

    The restart lockout feature, if enabled, will prevent that trigger
    from working if audio is currently playing. Use this if you want
    to prevent restarts before the track has reached the end. This
    feature does not apply to function types 5 - 7.

    L = 0: Restart lockout disabled (default)
    L = 1: Restart lockout enabled

#STAT N

    where N = 1 to enable this function

    This command, when used with a value of 1, repurposes TRIG18 to
    be an active low play status output. TRIG18 will be HIGH when no
    audio is playing, and LOW when MP3 data is being sent to the VS-1063.
    It mirrors the behavior of the Status LED after inititialization.
    Be careful! The HIGH state is a weak pullup to 3.3V, and the low
    state is a strong drive to 0V.

You only need to include entries for triggers that are to be non-default.
As an example, I use the following single-line init file to make trigger
18 be a "Next" function, then hard-wire the trigger so that my MP3 Trigger
powers up and loops continuously through all the tracks on the card.

#TRIG 18, 1, 0

Not a ton of testing for this release yet, so please post any observations one way or the other on the forum. Thanks!

0

MP3 Trigger V2 Adds Support for FAT32 SDHC microSD Cards

by

Just posted MP3 Trigger V2 firmware version 2.50 on the support page. This latest version supports MP3 playback from FAT32 formatted SDHC microSD cards as well as the older FAT16 formatted SDSC cards. Also, code optimization allows for 192kbps stereo MP3 playback over a wider range of cards than before.

All the new features of version 2.40 beta are included. Please read important info about these features here.

Please note that if you’re updating an existing MP3 Trigger V2 with this new firmware, you’ll need to do so, now and in the future, with a FAT16 SDHC microSD card. This is because the resident bootloader does not support FAT32 SDHC cards, and updating the firmware does not update the bootloader. Newly manufactured MP3 Triggers will eventually come with a FAT32 capable bootloader, but your existing units don’t. So hang on to at least one FAT16 card for future updates.

4

MP3 Trigger Firmware Version 2.40 Beta

by

Updated 5/31/2011

There have been many good suggestions for improvements and features over the past year. One reason they haven’t been incorporated is simply that I’ve been extremely busy with other work. The second reason is that each time I add a new feature or improve performance, I’ve had to make multiple version for different baudrates, alternate trigger functions, etc. A big pain. Clearly, what’s been missing is a way to set these options at run time.

So here is a beta release of a new version of MP3 Trigger firmware with the following features:

  • An MP3TRIGR.INI file (optional) that allows setting the baud rate and individual options for all 18 triggers, including regular, random, next and previous triggering functions as well as a restart lockout feature.
  • The ability to reprogram trigger inputs to control volume up and down.
  • A modified trigger file naming scheme that allows for more flexible track names.
  • Increased compatibility with SDSC (2GB or less) microSD cards.

New File Names

Previous firmware versions required that tracks associated with triggers be named “TRACKnnn.MP3″, where nnn was the trigger number. Beginning with version 2.40, the only requirement is that the track names begin with nnn.  So the following are both valid file names for trigger number 14:

“014Track.mp3″

“014 Breaking Glass.mp3″

The old style file names will no longer be associated with trigger inputs beginning with this version.

Flash Card Follies

I’ve spent a fair amount of time studying the microSD flash card situation. There are currently two basic types now available:  SDSC cards (2GB or less), and SDHC cards (greater than 2GB). Before the industry acceptance of SDHC, some manufacturers made larger capacity (>2GB) cards that were not SDHC compliant, and I’m discounting those in this discussion.

SDHC cards are only formatted FAT32 and cannot be formatted FAT16. Currently the MP3 Trigger V2 does not support FAT32, nor does it recognize the SDHC card during initialization. So don’t even think about trying to use one for the time being.

SDSC cards are only formatted FAT16 and these are what the current firmware is designed to use.  In this new version, I have found and fixed an issue that prevented certain SDSC cards from being recognized. (The Master Boot Record can sometimes be in sector 0 and sometimes not. I did not know that!) Also, I have found some PNY 2GB cards which are simply too slow to play 192kbps mp3 audio. File access measurements indicate that these cards are around 8% slower than “normal”, enough to introduce clicks and pops at the higher bits rates. Encoding the same audio at 128kbps allowed these cards to work.

So the message here is this: Use SDSC cards, and if you have trouble with 192kbps you probably have a slow card. In that case, either get another card or use a lower bitrate encoding.  If you find an SDSC card that is not recognized, please let me know.

Init File

The init file must be named “MP3TRIGR.INI” and must, like all the mp3 files, be in the root directory. The file is optional. If it does not exist, then the MP3 Trigger defaults to normal operation at 38.4Kbaud and all triggers starting their respect tracks (with the new names!).

Init file commands must begin with the “#” character and be followed by a space. Currently, the following three commands are supported:

#BAUD N      where N can be 2400, 9600, 19200, 31250 or 38400

#RAND N      where N can be 1 to 255

This function excludes the first N MP3 files from the random trigger function

#TRIG N, F, L     where N = trigger number (1 – 18), F = function type, and L = restart lockout enable

The allowable function types are as follows: F = 0 Normal trigger operation, F = 1 Next (same as nav forward),  F = 2 Random,  F = 3 Previous (same as nav back), F = 4 Start, F = 5 Stop, F = 6 Volume Up, F = 7 Volume Down.

The lockout feature, when enabled  (L = 1), will prevent the trigger from doing anything while audio is playing. This allows you to have tracks which cannot be restarted until they have completed.

For example, the following line will set trigger number 7 to be a random select, with restart lockout enabled:

#TRIG 07, 2, 1

All commands are optional. If you want 38.4Kbaud, you don’t need the #BAUD command. If you don’t want to change the behavior of a trigger input, you don’t need an entry for that trigger.  So for example, I use a single line in the init file to make trigger 18 be sequential (next), then I jumper that trigger and my MP3 Trigger powers up and continuously loops through all the tracks on the card:

#TRIG 18, 1, 0

Here is a sample MP3TRIGR.INI file that includes all of the documentation for the commands.

#BAUD 38400
#RAND 2
#TRIG 01, 0, 0
#TRIG 02, 0, 0
#TRIG 03, 0, 0
#TRIG 04, 0, 0
#TRIG 05, 0, 0
#TRIG 06, 0, 0
#TRIG 07, 0, 0
#TRIG 08, 0, 0
#TRIG 09, 0, 0
#TRIG 10, 0, 0
#TRIG 11, 0, 0
#TRIG 12, 0, 0
#TRIG 13, 0, 0
#TRIG 14, 0, 0
#TRIG 15, 0, 0
#TRIG 16, 0, 0
#TRIG 17, 0, 0
#TRIG 18, 0, 0

******************** ALL INIT COMMANDS ABOVE THIS LINE *********************

This is a sample init file for the MP3 Trigger V2, firmware version 2.40.

The init file is optional. If not present, the default parameters will be
in effect: 38.4Kbaud, and all triggers will start their corresponding
tracks with restart lockout disabled. If it is present, it must be named
MP3TRIGR.INI and be located in the root directory.

Only the first 512 bytes of the file are examined for commands, and the first
occurrence of the '*' character is treated as the end of file by the parser.
Comments are not allowed in the command section, but there is no restriction
on the length of the comments that follow the first '*'.

All commands must begin with the '#' character and be followed by a space,
then the command parameters separated by commas. White space is ignored. All
parameters are decimal numbers. Leading zeros are acceptable. See the above
examples - which are redundant since they are all default values.

The following commands are supported in firmware version 2.40:

#BAUD N

    where N is one of the following: 2400, 9600, 19200, 31250 or 38400

#RAND N

    where N is from 1 to 255

    The default behavior of the random trigger function is to play a random
    track from all the MP3 files on the flash card. The #RAND function will
    exclude the first N tracks (in the directory) from the random trigger
    function. So if there are 18 MP3 files on the card and N=4, then the
    first 4 MP3 files will be excluded from the random trigger function.

#TRIG N, F, L

    where:   N is the trigger number (1 - 18)
    F is the trigger function type (see below)
    L is the restart lockout enable

    The defined trigger function types (F) are as follows:

    F = 0: Normal operation
    F = 1: Next (same as the forward Nav switch)
    F = 2: Random
    F = 3: Previous (same as the back Nav switch)
    F = 4: Start (restarts the current track)
    F = 5: Stop
    F = 6: Volume Up
    F = 7: Volume Down

    The restart lockout feature, if enabled, will prevent that trigger
    from working if audio is currently playing. Use this if you want
    to prevent restarts before the track has reached the end. This
    feature does not apply to function types 5 - 7.

    L = 0: Restart lockout disabled (default)
    L = 1: Restart lockout enabled

You only need to include entries for triggers that are to be non-default.
As an example, I use the following single-line init file to make trigger
18 be a "Next" function, then hard-wire the trigger so that my MP3 Trigger
powers up and loops continuously through all the tracks on the card.

#TRIG 18, 1, 0

I’m currently working on updating the user manual for the new features and will post it here once the new firmware version is officially released. I wanted to get a beta release version out there to solicit some testing and feedback.

49

Guitar Clinic with Sam Broussard

by

As part of the 2009 Strawberry Park Cajun/Zydeco Music Festival, the supremely talented songwriter/singer/guitarist Sam Broussard held a clinic, during which he played a lot of material from his newly released, and highly recommended solo CD “Veins”. At one point, he asked me to grab a guitar and play rhythm for a couple of solo demos, including one of my favorites from The Mamou Playboys’ song “Domino”. Here’s a very short clip.

Sam Broussard 2009 Strawberry Park Guitar Clinic from Jamie Robertson on Vimeo.

All kinds of fun.

0

All current MP3 Trigger firmware files are now on the Support page

by

Just a quick note to say that all files for the most up-to-date version of the MP3 Trigger firmware can now be found on the support page of this site. All future updates will be posted there.

2

Random Trigger Function for the MP3 Trigger

by

Here’s an alternate version of the latest firmware for the MP3 Trigger that changes the behavior of TRIG17 and TRIG18. In this version:

TRIG17 is a sequential trigger. It will loop through all of the tracks on the flash card, one track per activation. (Same as the “Forward” navigation switch function.)

TRIG18 is a random trigger. It will play a random track from the flash card, one track per activation.

Here’s one example of how a combination of jumpering and buttons can be used to good effect: Let’s say that TRACK001.MP3 is background music, and all the other tracks are spoken messages. If you jumper TRIG01 and put a button on TRIG18, then as soon as the MP3 Trigger is powered up it will start looping the background music. Every time the button is pushed, you’ll get a random spoken message after which it will go back to looping the background music. (You could also do this with the button on TRIG17, in which case the spoken messages will cycle through in a particular order.)

UPDATE: If you grabbed this version before 8/21/2010 please reprogram your unit with this file. There was a bug in the random track generator algorithm that made it not work properly when there were only one or two tracks on your flash card. All fixed now. Sorry for any inconvenience.

MP3 Trigger V2 Firmware v2.23r 2400 baud
MP3 Trigger V2 Firmware v2.23r 9600 baud
MP3 Trigger V2 Firmware v2.23r 38.4k baud

This version is the same as the latest v2.23 in all other regards.

0