6/25/2021

How to Update the Puffin's Firmware to V1.30

Using the supplied allen key and USB cable, the Puffin can be updated via an internal micro USB header with either a Windows or macOS system. You can see the currently installed firmware version on the splash screen when the Puffin is turned on.

Note that updating your firmware will erase old settings saved in the Puffin's memory, so write down any current settings and cartridge hours that may help you set up after flashing the new firmware.


Windows Method:

Note: Skip step 2 for recurring firmware updates (i.e. you only do this step once).

  1. Download and unzip the latest Puffin firmware (check your serial number under unit):
         Firmware V1.30 for serial number 1019 and earlier
              OR     
         Firmware V1.30 for serial number 1020 and later (or clock upgraded older units)

  2. Download and unzip puffin.zip from the website: http://www.parksaudiollc.com/puffin.zip
  3. Then unzip puffin.zip and run "STM32 ST-LINK Utility v4.2.0 setup". This installs the programming software in your program list and also loads the USB driver.

  4. Unscrew the four corner screws on the Puffin top plate. This requires a 5/64" Hex Driver or Allen Wrench (supplied with Puffin).
  5. Connect USB cable (supplied with Puffin) to Windows computer. Connect USB-Micro connector to Puffin board - connector has sticker marked L432KC. No power is needed as it is powered via USB. Note: if you cannot connect to the processor, you are likely using a USB cable meant to provide power only, so dig out the supplied cable if having issues.
  6. Run the STM32 ST-LINK Utility from your program list or Desktop shortcut (ie the program, not the installer again).
    1. Select Target>Erase Chip.
    2. Select Target>Program & Verify...
    3. If this is the first time you've run this utility, then an 'Open' window will pop up for you to select "V130.hex" (located in Downloads folder or where unzipped). Otherwise choose the Browse button to select "V130.hex" (located in Downloads folder or where unzipped).
    4. After you've selected the new .hex file, the press the Start button (located beside the Cancel button in the pop up window).
  7. The Puffin has been upgraded after "Verification...OK". The green LED will continue to blink, but programming is finished and disconnecting the USB cable is OK. You'll need to disconnect all power (USB as well as the 12V DC if you had it plugged in) to exit programming mode as the power button will not turn the unit on while in programming mode. Place the Puffin back into the chassis and you can then verify that the firmware flashed correctly by plugging in the 12V DC power and noting the firmware splash screen at startup. Then disconnect the 12V DC power and screw in the four main screws.

macOS (10.11 & higher) Method:

Important: Skip steps 3 and 4 for recurring firmware updates (i.e. you only do these steps once).

  1. Download and unzip the latest Puffin firmware (check your serial number under unit):
         Firmware V1.30 for serial number 1019 and earlier
              OR     
         Firmware V1.30 for serial number 1020 and later (or clock upgraded older units)

  2. Start the Terminal app using either of the following methods:
         a. Press Command+Space and type Terminal and press return key.
         or
         b. Finder>Applications>Utilities>Terminal. Double-click on Terminal.

  3. Cut-n-paste (Command+C then Command+V) the following highlighted text into the Terminal app:
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    and press return key.
    If the screen prompts you to enter a password, please enter your Mac's user password to continue. When you type the password, it won't be displayed on screen, so just type your password and press return key. Then wait for the command to finish.
    This step installs Homebrew: a macOS installer package. This permits loading the update software and USB drivers in the next step.

  4. Cut-n-paste the following and run in the Terminal app:
    brew install stlink
  5. Unscrew the four corner screws on the Puffin top plate. This requires a 5/64" Hex Driver or Allen Wrench (supplied with Puffin).
  6. Connect USB cable (supplied with Puffin) to Mac. Connect USB-Micro connector to Puffin board - connector has sticker marked L432KC. No power is needed as it is powered via USB. Note: if you cannot connect to the processor, you are likely using a USB cable meant to provide power only, so dig out the supplied cable if having issues.
  7. Cut-n-paste the following text and run in the Terminal app (note: change the word Downloads to Documents or Desktop if you moved the hex file after downloading.:
    st-flash --format ihex write ~/Downloads/V130.hex

  8. The software should say "Flash written and verified! jolly good!" if the Puffin has been upgraded. You'll need to disconnect all power (USB as well as the 12V DC if you had it plugged in) to exit programming mode as the power button will not turn the unit on while in programming mode. Place the Puffin back into the chassis and you can then verify that the firmware flashed correctly by plugging in the 12V DC power and noting the firmware splash screen at startup. Then disconnect the 12V DC power and screw in the four main screws.








Rev history:

V1.00
5/16/2018
Initial release. SP

V1.01
6/8/2018
Added flash saves at Set?>OFF, Set?>LOAD, Set?>SAVE, and main menu Gain change. Moved phase polarity to pre-DSP so we can get 2H cancellation. SP

V1.02
6/15/2018
Fixed Load setting bug where 200 ohms setting could be overwritten to 47k. SP

V1.03
8/25/2018
Screen refresh timer was active during standby sleep. Would cause faint flicker on LCD if Puffin turned off with main menu set to Set? or Signal Levels. SP 

V1.04
2/11/2019
Added immunity to static electricity discharge that could put unit into Standby state. SP

V1.10
8/18/2019
Changes:
-Added adjustable RIAA eq function
-Added adaptive Bass Boost
-Added Pink Noise for Room EQ
-Added Null to Phase controls
-DSP code re-written for speed in assembly SP

V1.11
8/29/2019
Fixed Tube 2H function. Right channel had bug which could add extra non-2nd harmonic distortion. SP

V1.13
4/18/2020
Saved FPU registers to stack during DSP interrupt that could have caused "no sound from Puffin" when adjusting menu.
Adjusted Tube 2H and Tape 3H constants for much less distortion. SP

V1.20
5/26/2020
Changes:
-Added Magic pop and click minimizer
-Added Grade which is a record grading function
-Added DeRumble
-Added RoomEQ
-Added new clip alerts with asterisk * at
Volume (output/DAC clip) & Gain (input/ADC clip)
-Changed TF to fx: think Effects or f(x)
-Lowered 2H Tube distortion (7%THD at full signal)
-Fixed 3H Tape distortion (3.5%THD at full signal)
-Removed 2H&3H from fx
-Added Out function & merged with SPDIF branch
but Out:SPDIF is disabled on non-modded Puffins
-Fixed FPU memory stack bug
-General bug fixes and tweaks
-Added many new Lo filters SP

V1.21
8/3/2020
Changes:
Bug fix for digital output SPDIF (analog users unaffected). Memory alignment issue dropped 25% of Magic corrections. SP

V1.30
6/25/2021
Changes:
-Added cartridge timer that logs hrs:min:sec of your cart's actual playing time to 10000 hours (saved to memory when: 1) turned off with standby, or 2) Set? is selected)
-Added Easy menu functionality to just have your most used functions on a shorter menu list
-Added a millisecond counter to Select button presses:
         - Pressing for 1 second pushes a copy of the control onto the Easy menu while in Full menu (small period -> large period)
         - Pressing for 1 second pops a copy of the control off the Easy menu while in Full menu (large period -> small period)
         - Pressing for 1 second pops a copy of the control off the Easy menu while in Easy menu
         - Pressing for 1 second during Grade process pauses the Grade process
         - Pressing for 10 seconds on Cart timer selection resets Cart timer to OFF
-Renamed Tilt to Warmth and inverted the controls (e.g. Tilt -3 is now Warmth +3)
-Added collapsible Test menu:
         - added 33, 45, and 78 RPM turntable speed checkers with +/-0.01% accuracy
         - added Azimuth function that measures channel separation with test LP track
         - added Sweep function that measures frequency and relative level with test LP track
         - added Skate function that measures channel distortion with test LP tracks
         - moved FineBaL (fine balance) to Test menu and can monitor and adjust this offset in 0.1dB increments directly
-Modified clip detection:
         - input (ADC) clip appears in Gain display with arrow into asterisk ->*
                  - indicates Gain should be adjusted lower
                  - number of input (ADC) clip events shown in levels display
         - output (DAC) clip appears in Gain display with arrow out of asterisk *->
                  - indicates Gain should be adjusted lower if >10 clips per session, otherwise just handling needle drops, bad pops, etc.
                  - number of output (DAC) clip events shown in levels display
         - adjusting Gain resets all these detections
-Modified Gain to be in 1dB increments (was 4dB steps) - still has muting between changes to prevent thumps in analog circuit settling
-Modified Out menu to: Analog or 24/48 (pre-SN1020) and Analog, 24/48, or 24/96 (post-SN1020) - helps support older DACs
-Fixed bug as Phase:Invert did not work (no functionality) and this bug crept in at either V1.10 or V1.20
-Rewrote the entire LCD screen refresh code in order to display less artifacts and flicker on levels and animation screens
-Rewrote the "A av" and "D av" level averaging functions so now True RMS instead of quasi-peak average
-Fixed LCD initial power up refresh bug SP