7/21/2023

Puffin Firmware V1.50 Official Release

If updating from earlier firmware versions, then BE SURE TO WRITE DOWN YOUR CURRENT SETTINGS if needed, including your cart hours. These settings will be erased. If you are upgrading from V1.50 Beta A or Beta B, then your settings will be re-used, so you can skip this step.

Updates At A Glance:
-Super Mono added to Modes (#10)
-Many new frequencies added to Hi (#8) and Lo (#9)
-Lo (#9) filter improved w/ more rejection out of band and less attenuation in band
-Brown Noise functionality added to fx (#13)
-DeRumble (#14) filter performance improved
-Bypass function is added at (#24) and Test suite is shifted to (#25)
-Sine generator added to Test (#25)
-Test (#25) suite changes

Beta A - 3/16/23 - Initial release
Beta B - 3/19/23 - Fixes output clipping bug. Clips in the DSP weren't logged correctly and caused an overflow. Reverted to previous clipping code (V1.30) that had been inadvertently omitted during rewrite.
Released - 7/21/23 - Rolled back SWEEP filter changes to V1.30. This had added rumble and made the frequency detection much worse.



SUPER MONO (#10)
Super Mono has been something I've been working on since the Puffin launched the Summer of 2018, and am thrilled with the end results. I truly believe it will be one of the most important vinyl innovations released this year. What is it? When using a stereo cartridge with mono vinyl record, the Puffin quickly - hundreds of times a second - determines if the left, right, or summed (typical mono: left and right added together) has the best noise floor characteristics and uses that section of the vinyl. This eliminates a lot of noise just using the LP itself without digital filtering or interpolation. Then it greatly helps Magic to work more effectively - so both Super Mono and Magic are a fantastic pairing.


Key points:
- Super Mono is geared towards true mono PVC records - both LPs and 45s. Effectiveness with 78 shellacs is unknown at this point.
- The Puffin's old "Mono" setting is now called "Mono Summed". They are the same. A record graded with Super Mono versus Mono Summed will typically be one full grade higher (e.g. B- becomes A-). You can objectively compare by grading a record both ways. Note that these Modes (Stereo, Mono Summed, etc.) affect the Grade but the Magic setting (currently) does not.
- Unlike the previous Mono, Left, and Right functions, Super Mono doesn't work with Stereo. You can't chop up stereo music and get anything useful. Indeed, it will sound bad and "digital". I worked on some detection schemes because I hate anything bad sounding coming out of the Puffin, but the detection schemes just lessened Super Mono's performance and also hid from the user that we were using a subpar mode for a stereo disc. So don't use Stereo records with Super Mono, and if the music sounds bad, check this first. Super Mono also throws an asterisk (*) when it detects dissimilar channels. This shows up for stereo LPs, but will show up for damaged sections of a mono track, too. I've seen it a lot on inner and outer edges - probably damage from stylus due to tonearm error (most likely a short arm in the past and not your current tonearm error). The "stereo detect" asterisk is a handy feature to help you determine if an album is mono, too, as some albums aren't specified. Do watch out for unmarked records that are a collection of mono and stereo tracks. With use, you'll intuitively get a feel for this. Note: the asterisk isn't currently useful with 78s due to the detection scheme that I use.
- Like Magic, I encourage use of your best records! This will make your clean mono pressings sound amazing - some will sound the absolute best that you have ever heard. If you have a nice mono collection you'll want to re-listen to all of it.
- You'll get addicted to collecting mono. Get that scuffed up mono copy of Flowers from the $3 discount bin! Starting place for mono rookies: Rolling Stones, Beatles, Beach Boys, Bob Dylan. Still plenty of affordable early 60s mono jazz records are available. Classical LPs are available for $1.50 on Discogs - find a good seller and load up. Super Mono works wonders on these dynamic classical discs and makes them so enjoyable.


HI (#8) AND LO (#9) FILTERS
At a glance, there are many more settings that you can play with and may help with certain records or to achieve an audio effect (e.g. an AM radio sound). But I've also started thinking about how one can get better feedback and develop more intuition on how these filters affect the sound. The basic way is to listen, adjust, and listen. But if we have an "inverted" filter, it will give us a little more information. For example, we might adjust the Hi filter to 9kHz to help a particularly noisy record. But we could instead first leave Hi at 20kHz and instead change Lo to 9kHz to actually hear what we'll be cutting out. This gives us a feel for the frequency response of the recording, what we might be accidentally discarding, as well as our own hearing response. Another interesting sound experiment, as recommended by Brian Eno, is to listen to music with the Hi filter set to 100Hz or 200Hz. It's like far-off music and some may find it relaxing.


LO (#9) FILTER IMPROVED
The Lo Filter was previously using a custom, overdamped (long slope and not as steep) filter design of mine and not a 4th order Butterworth per the manual. I just wasn't getting the performance in my DSP code for this filter, but I've rewritten it and all looks good now. It is now a true 4th order Butterworth and much improved. With the 25Hz filter (thus -3.0dB at 25Hz) we had -1.0dB attenuation at 46Hz previously and now it is 0dB. At 10Hz it previously had -15.9dB of rejection and now it is -32.5dB of rejection.


DERUMBLE (#14) IMPROVED
The DeRumble filter has been improved, similar to the Lo filter. So we have slightly better separation of the channels at low and mid frequencies, with a steeper rolloff at the filter transition (i.e. 150 Hz)


BROWN NOISE ADDED TO FX (#13)
This is kind of a fun thing I wanted to try and hopefully will be well loved by a few folks. You can also adjust the Lo Filter higher to tweak the regular noise to sound more like rain or wind (Lo: use 25Hz to 1kHz).


BYPASS (#24) ADDED
At the bottom of the menu (bumping Test to #25), is a new function that permits turning off all the tone, mode, and phase controls. Basically, it's an "idiot check" - lets you compare your settings with default settings. The EQ (#20) and Lo (#9) settings are *not* bypassed. The menu is locked during bypass, as it is meant as a temporary function. I.e., I don't want it to disable Puffin functionality all the time and folks don't understand why nothing works.


SINE GENERATOR (Test suite: h)
I've added a sine generator to the Test suite. It's a 20Hz to 20kHz generator and may be used with a SPL meter (dedicated or a phone app) to monitor system and room performance. The Volume (#1) control can be adjusted before/after use, to control the tone level. Note: use earplugs and don't damage your hearing with this OR annoy your significant other or neighbors. I think this may give more concrete results than using Pink Noise or similar methods with a spectrum analyzer.


TEST SUITE CHANGES
-The RPM (a,b,c) modes now temporarily turn off any filters or modes that might hinder the measurement.
-Azimuth (d) now changes Lo to 400Hz for the duration of the measurement. This can improve separation numbers with all the low noise rumble removed.
-Sweep (e): the Hi and Lo filters are turned off for the test duration. [EDIT: removed in final release]



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

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

Note that updating your firmware may erase old settings (typically major revs 1.X, but not 1.XX) 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.

YouTube: Parks Audio #7 - Updating Puffin Firmware with Win 10 & macOS Big Sur

Connect to any computer:

  • Download and UNZIP the latest Puffin firmware (check your serial number under unit, eg SN 001020 is serial number 1020):
         Firmware V1.50 for serial number 1019 and earlier: V150_PRE_1020.bin
              OR     
         Firmware V1.50 for serial number 1020 and later (or clock upgraded older units): V150_POST_1020.bin

  • Once unzipped (macOS does this automatically), you'll see a BIN file called V150_PRE_1020.bin or V150_POST_1020.bin. We will simply copy this file to the Puffin once we hook up the USB cable.
  • Unscrew the four corner screws on the Puffin top plate. This requires a 5/64" Hex Driver or Allen Wrench (supplied with Puffin).
  • Connect USB cable (supplied with Puffin) to your computer. Connect USB-Micro connector to Puffin board - connector has sticker marked L432KC. No power is needed as it is powered via USB. Once connected to your computer the Puffin micro will appear as an external drive (like a thumb drive) named "NODE_L432KC". It will contain two files, DETAILS.TXT and MBED.HTM - just ignore these files. Note: if you cannot connect to your computer, you are likely using a USB cable meant to provide power only (and is missing the data wires), so dig out the supplied cable or try another if having issues.
  • Go ahead and copy the unzipped BIN file (not the zip!) to the NODE_L432KC drive.
  • The Puffin will immediately start programming itself and the green LED will flash for about six seconds. After the green light stops flashing, reset (unplug and then reconnect) the USB connection at your computer (ignore macOS warnings) press the On/Off button to turn on the Puffin to verify it has been upgraded (shows firmware rev on splash screen at startup). After verifying, unplug the USB and reassemble the Puffin. You are finished.



  • Troubleshooting:

  • If the NODE_L432KC drive doesn't appear when you connect the USB cable, try another USB cable.

  • If the green LED doesn't flash when you drag the bin file to the NODE_L432KC drive, you may have an old bootloader (early serial Puffins).

    1. If you haven't done this from previous upgrades, then download and unzip puffin.zip from the website: http://www.parksaudiollc.com/puffin.zip
    2. - otherwise just run it if you already have it on your PC and skip to step #3.

    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. Connect the Puffin and click (on the menu bar) ST-LINK -> Firmware Upgrade. Then click 'Device Connect' and then 'Yes>>>>'

    5. Then disconnect after it is finished. You'll be able to do the easy BIN method going forward (i.e. your bootloader is up-to-date).

  • Alternatively, you can use the old hex programming method: http://www.parksaudiollc.com/firmwareold.html







    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