Marc's Public Blog


All | Aquariums | Arduino | Btrfs | Cars | Cats | Clubbing | Computers | Diving | Dreamstate | Edc | Electronics | Exercising | Festivals | Flying | Halloween | Hbot | Hiking | Linux | Linuxha | Monuments | Museums | Oshkosh | Outings | Public | Rc | Sciencemuseums | Solar | Tfsf | Trips




More pages: November 2024 October 2024 September 2024 August 2024 July 2024 June 2024 May 2024 April 2024 March 2024 February 2024 January 2024 December 2023 November 2023 October 2023 September 2023 August 2023 July 2023 June 2023 May 2023 April 2023 March 2023 February 2023 January 2023 December 2022 November 2022 October 2022 September 2022 August 2022 July 2022 June 2022 May 2022 April 2022 March 2022 February 2022 January 2022 December 2021 November 2021 October 2021 September 2021 August 2021 July 2021 June 2021 May 2021 April 2021 March 2021 February 2021 January 2021 December 2020 November 2020 October 2020 September 2020 August 2020 July 2020 June 2020 May 2020 April 2020 March 2020 February 2020 January 2020 December 2019 November 2019 October 2019 September 2019 August 2019 July 2019 June 2019 May 2019 April 2019 March 2019 February 2019 January 2019 December 2018 November 2018 October 2018 September 2018 August 2018 July 2018 June 2018 May 2018 April 2018 March 2018 February 2018 January 2018 December 2017 November 2017 October 2017 September 2017 August 2017 July 2017 June 2017 May 2017 April 2017 March 2017 February 2017 January 2017 December 2016 November 2016 October 2016 September 2016 August 2016 July 2016 June 2016 May 2016 April 2016 March 2016 February 2016 January 2016 December 2015 November 2015 October 2015 September 2015 August 2015 July 2015 June 2015 May 2015 April 2015 March 2015 February 2015 January 2015 December 2014 November 2014 October 2014 September 2014 August 2014 July 2014 June 2014 May 2014 April 2014 March 2014 February 2014 January 2014 December 2013 November 2013 October 2013 September 2013 August 2013 July 2013 June 2013 May 2013 April 2013 March 2013 February 2013 January 2013 December 2012 November 2012 October 2012 September 2012 August 2012 July 2012 June 2012 May 2012 April 2012 March 2012 February 2012 January 2012 December 2011 November 2011 October 2011 September 2011 August 2011 July 2011 June 2011 May 2011 April 2011 March 2011 February 2011 January 2011 December 2010 November 2010 October 2010 September 2010 August 2010 July 2010 June 2010 May 2010 April 2010 March 2010 February 2010 January 2010 December 2009 November 2009 October 2009 September 2009 August 2009 July 2009 June 2009 May 2009 April 2009 March 2009 February 2009 January 2009 December 2008 November 2008 October 2008 September 2008 August 2008 July 2008 June 2008 May 2008 April 2008 March 2008 February 2008 January 2008 December 2007 November 2007 October 2007 September 2007 August 2007 July 2007 June 2007 May 2007 April 2007 March 2007 February 2007 January 2007 December 2006 November 2006 October 2006 September 2006 August 2006 July 2006 June 2006 May 2006 April 2006 March 2006 February 2006 January 2006 December 2005 November 2005 October 2005 September 2005 August 2005 July 2005 June 2005 May 2005 April 2005 March 2005 February 2005 January 2005 December 2004 November 2004 October 2004 September 2004 August 2004 July 2004 June 2004 May 2004 April 2004 March 2004 February 2004 January 2004 October 2003 August 2003 July 2003 May 2003 April 2003 March 2003 January 2003 November 2002 October 2002 July 2002 May 2002 April 2002 March 2002 February 2002 November 2001 October 2001 September 2001 August 2001 July 2001 June 2001 May 2001 April 2001 March 2001 February 2001 January 2001 December 2000 November 2000 October 2000 September 2000 August 2000 July 2000 June 2000 April 1999 March 1999 September 1997 August 1997 July 1996 September 1993 July 1991 December 1988 December 1985 January 1980





2024/11/22 Second Dreamstate Socal in Long Beach by Queen Mary
π 2024-11-22 01:01 in Clubbing, Dreamstate, Festivals
Glad to be back, Dreamstate Socal is an event I look forward to, all year.

This is our second year at Queen Mary, you can read last year's report for Queen Mary vs NOS where DS used to be before that

glad to be back ;)
glad to be back ;)

And if you wanted to compare with DS at QM vs DS at NOS, you can go read this Dreamstate Socal 2022.

If you like this report, and want to see others/future ones, you can go on these pages:

  • All festival reports: http://marc.merlins.org/perso/festivals
  • IG stories and posts: https://www.instagram.com/ledtranceguy
  • FB reports and pictures: https://www.facebook.com/ledtranceguy


  • The Grounds: Long Beach by Queen Mary

    Passport (for insomniac event subscribers) was back:





    they had meet and greets
    they had meet and greets

    Passport was actually the 6th stage with a secret lineup for both days
    Passport was actually the 6th stage with a secret lineup for both days

    Dream VIP lost the covered area, but still had nice booths:


    Lots of booths:

    this time offered heli rides from not somewhere not that far. I'm not sure if they saved any time or were worth it. Please leave comments in the links at the top of this page if you used them
    this time offered heli rides from not somewhere not that far. I'm not sure if they saved any time or were worth it. Please leave comments in the links at the top of this page if you used them




    Getting to void was the same as last year, although the tunnel was prettier;

    boring during the day
    boring during the day

    nice a night
    nice a night

    tunnel to get back, people said it felt slippery and tough to climb when you were tired and altered
    tunnel to get back, people said it felt slippery and tough to climb when you were tired and altered

    Some different art this year:



    Views from the boat, were great:




    what it looks inside
    what it looks inside

    And if you were wondering about sound inside the boat, it depends where your room is, but there you go:

    Nice to see the venue late at night/early morning:




    People

    As always, a big part of what makes US insomniac events so much fun is the people who are part of the party.



    it was nice and sunny during the day (until it got very cold just hours later)
    it was nice and sunny during the day (until it got very cold just hours later)

    Props to Jose, barefoot photographer for all his shots
    Props to Jose, barefoot photographer for all his shots

    and also Thorgodofbass, our favorite videographer
    and also Thorgodofbass, our favorite videographer


    Ulrich!
    Ulrich!

    TFSF crew
    TFSF crew

    More fun at night, as always:







    And of course, fun totems:





    So, due to my LED outfit and the tech I carry/wear, things break but I'm also a McGuyver, so I care spares and repair tools. Funny thing was a totem that got damaged, the owner asked me "I heard you have a soldering iron", and I had to reply "I'm sorry, I don't have one, I have two" :)

    we got it fixed
    we got it fixed

    woohoo, it's working again
    woohoo, it's working again

    We took some Trancefamily pictures:




    Big props to the insomniac entertainers, always adding to the party:



    oh no, they didn't have batteries for their lights this year ;)
    oh no, they didn't have batteries for their lights this year ;)

    Thanks for taking pictures with us:




    Also shout out to ground control:


    Also, it's a great opportunity to meet DJs:

    JoC
    JoC

    Miyuki and Richard Durand
    Miyuki and Richard Durand

    Astrix
    Astrix

    Craig Connelly
    Craig Connelly

    Allen Watts
    Allen Watts

    Armin!
    Armin!

    RAM
    RAM

    first time meeting Darude!
    first time meeting Darude!

    Fadi after his wonderful set in the rain
    Fadi after his wonderful set in the rain

    Mark Sixma
    Mark Sixma

    Orjan Nilsen
    Orjan Nilsen

    Paul Oakenfold
    Paul Oakenfold

    OMG, got to meet Judge Jules
    OMG, got to meet Judge Jules

    Sean Tyas, having such a great time
    Sean Tyas, having such a great time

    Also great to see Alex Morph again
    Also great to see Alex Morph again

    Day 1

    DS opened a bit late on the first day, Queen with Mr Brooks was a bit empty
    DS opened a bit late on the first day, Queen with Mr Brooks was a bit empty





    Xijaro and Pitch
    Xijaro and Pitch




    nice visuals at vision
    nice visuals at vision

    Craig Connelly
    Craig Connelly

    Sequence was pretty packed
    Sequence was pretty packed

    Because Astrix ;)
    Because Astrix ;)

    GO debuted Octagon at DS
    GO debuted Octagon at DS


    Armnin was next (which sadly meant missing Blastoyx b2b Infected Mushroom)
    Armnin was next (which sadly meant missing Blastoyx b2b Infected Mushroom)




    thank you for adding the lasers
    thank you for adding the lasers

    Day 1 Summary Video:

    Day 1: Queen Mary Afterparty






    And that was it for Day 1, headed back around 04:00

    So if anyone wonders, lots of lights means lots of batteries and things to charge every night:


    new bigger 1S lipo batteries for my hat
    new bigger 1S lipo batteries for my hat

    and more
    and more

    Day 2

    Back for Day #2, it was hard to be there at 13:00 ;)

    thankfully made it to Khromata
    thankfully made it to Khromata

    it was early for most
    it was early for most












    Aly and Fila in the light rain, was majestic:






    So much joy to enjoy Ferry Corsten - Gouryella, again:

    the super tall flags were annoying, they messed up a lot of my pictures
    the super tall flags were annoying, they messed up a lot of my pictures

    finished the night with Above and Beyond
    finished the night with Above and Beyond



    Above and Beyond:

    Day 2: Queen Mary Afterparty

    After 01:00, it was time to migrate to the boat:

    Ruben again!
    Ruben again!


    Finished the night with Ferry Corsten, who even finished his set with some drum and bass ;)

    f
    f

    Day 2 Summary Video:

    Weather concerns with QM vs NOS

    So, I am biased and I still prefer NOS once you're inside the venue (San Bernardino is not great, but once you're inside NOS, it's real wonderland), but the weather aspect is a concern for QM. Both years, QM had rain, NOS did not. NOS is inland in a somewhat arid area, QM is by the water, and even when it wasn't raining, everything was kind of wet due to dew (very high water concentration in the air that would condense on chairs and so forth).

    this is what I meant, by dew, almost fog to the ground
    this is what I meant, by dew, almost fog to the ground

    So, the relentless light rain that fell mostly all day on day #2, made the lasers on dream look dreamy indeed, but at the same time I was soaked by the end of the day, and my gopro literally had water inside and was barely rescued after several days in rice. Water and electricity aren't friends, this can't be easy on all the gear (although I didn't see anything that failed due to water).

    yes, it was pretty :)
    yes, it was pretty :)

    The rain was manageable this year, but I need to state again that last year got pissing rain in the middle of the night while we were on the boat party, and if that rain had been just a few hours earlier, it would have ruined the event. This just makes me nervous, Interstellar was entirely cancelled for freak weather, I honestly would prefer for DS to be back at NOS, if only for the more reliable weather.

    If DS is to stay at QM, I hope Insomniac plans for full covered spaces to deal with heavy rain if it happens. Of course, this is already present at NOS for 3 out of the 4 stages (2 with megastructures and one indoors)

    Aftermath and Conclusion: Should this not be 3 days and with a bit more sleep?

    Haha, I just realized this is the same thing I wrote last year. Since last year was too much music with 4 stages and music from 17:00 to 01:00 and then until 06:00 on the boat, Insomniac heard this, and fixed it by:

  • still two days
  • added a 5th stage, the art car, with very good trance :)
  • well, if you could passport, it was really 6 different stages. Insane!
  • now started at 13:00, making it 12H plus 5h afterparty, 17h per day
  • like last year, the long days created casualties :)
    like last year, the long days created casualties :)


    So yeah, suck it up people and your FOMO, here's even more music you won't all be able to see and even less sleep, haha :)
    It was literally 34h of music, which is usually what you get from a 3 day festival with 3 to 5 stages, a lot indeed. I would personally still prefer 3 shorter days to have more of a chance to see more artists and not miss as much (especially for all the sets that were not recorded), but it is #firstworldproblems :)

    The afterparty on the boat helped seeing some artists if you had missed them during the day, but even then it was 3 stages that were not that close from one another, and honestly how stayed up until 06:00 both nights while having started at 13:00? I barely made it for the first sets on the 2nd day :)

    Notes / Thoughts for this year:

  • This year had more daylight hours, which was a bit rough on DJs who were opening, and made costumes/outfits a bit more challenging (it was pretty warm during the day, but got very chily at night, including wind chill). Sure, it would be nice to have more hours at night, but with a curfew of 01:00 on the venue (vs 02:00 for NOS), the options are limited outside of making this a 3 day festival, which I'm surely down, for ;)
  • Void unfortunately was still "so close but yet so far" across a bridge that was dicey for some, or an underground tunnel that was a bit of a detour when going from dream to void.
  • I didn't feel it was easier to get to Void, the venue is very challenging layout, only so much can be done with that location
  • I missed the animated burning man LED art from last year, there was still art this year though
  • Dream VIP was shrunk somewhat and lost the covered spaces, which was unfortunate given the rain
  • As stated above, if DS is to stay at QM, I hope insomniac adds covered spaces to deal with rain.
  • Sound at Vision was much improved despite the challenging location. Not sure how they did it, but it was better
  • I still miss the NOS megastructures, but dream got improved a fair bit this year. The added lasers were beautiful
  • Dream was just beautiful
    Dream was just beautiful


    beautiful front and back
    beautiful front and back

    I still wish we could use the passenger terminal dome, looks like a sweet venue:


    Should you go? Would I go Back?

  • Don't let some of my observations/suggestions confuse you from the fact that this was another fantastic Dreamstate and I had so much fun, and so did everyone I talked to
  • I missed so many sets I wanted to see, I don't know how many sets were recorded, but I missed many I wanted to see and I was there almost every of hour
  • Insomniac improved some things at QM this year, not that last year was bad to start with ;) and continued to show that, within reason with layout issues (the street cutting off Void from the rest of the festival), they can do incredible things with a mere parking lot.
  • I'll repeat like each time, that the insomniac team has the most relentless overachievers I've ever seen. I'm thankful we have them.
  • Security continued to nice overall, they did ask for backpacks to be transparent this year, which is spreading and understandable. I guess we probably don't want people to walk around with big black backpacks that could have anything inside if somehow they made it past security
  • I'll continue to give the same answer to "Is it worth flying across the world for?" If you like trance and you want a better production value than many european shows (not counting Tomorrowland and arguably untold), yes, it is worth going to. Only 2 days, but it's really good and the night decors and costumes are much better than what you'll find in Europe.
  • So much fun, 'till next time:



    2024/11/20 Festival Dreamstate Hat Built with RGBPanel, Neopixels, and Lipos
    π 2024-11-20 01:01 in Clubbing, Electronics, Festivals
    Tech specs:
  • 32x16 flexible LED rgbpanel (displaying scrolling Dreamstate Logo)
  • 2 strings of Ray Wu P15 WS2812 both for layout reasons and for backup if one string breaks, the other one will keep working.
  • Lipo battery checker (but the lipos are protected, so they will self shut down)
  • flexible 16x32 RGBpanel
    flexible 16x32 RGBpanel

    found a hat big enough that it mostly fits on it
    found a hat big enough that it mostly fits on it

    of course, it needed a few LEDs :)
    of course, it needed a few LEDs :)

    what it looked inside and it worked with a small 1S 700mAh lipo (although not long enough)
    what it looked inside and it worked with a small 1S 700mAh lipo (although not long enough)

    bigger battery upgrade, and BTW those batteries lie, they are only 1600mAh
    bigger battery upgrade, and BTW those batteries lie, they are only 1600mAh

    testing battery draw, a bit over 0.5A which is a bit too much
    testing battery draw, a bit over 0.5A which is a bit too much

    So, why 3-4V lipos instead of USB battery packs with 5V that is expected by both the panels and neopixels/WS2812? Well, space is limited, USB battery packs are kind of big, and carry extra hardware to recharge that isn't needed inside the hat. There is also a side byproduct that powering both the panels and the LEDs with a lower voltage, limits their brightness and the amount of power (watts) they need, which means that a 16Wh lipo inside a USB battery pack stepped up to 5V, makes everyting brighter, but only lasts about half as long as powering directly from the lipo at lower voltage.

    bigger 4Ah 1S lipo worked for 8H at full power and LEDs worked all the way down to 2.8V!
    bigger 4Ah 1S lipo worked for 8H at full power and LEDs worked all the way down to 2.8V!

    panel worked all the way down to 3.4A before colors went wrong, 16H on a 1.6Ah battery
    panel worked all the way down to 3.4A before colors went wrong, 16H on a 1.6Ah battery

    of course now I had to find a buy a faster 1S lipo charger with the right connectors (had to get JST adapters)
    of course now I had to find a buy a faster 1S lipo charger with the right connectors (had to get JST adapters)

    quick test that a smaller 700mAh battery would last around 5H before things got dim
    quick test that a smaller 700mAh battery would last around 5H before things got dim

    After testing, I was able to confirm that both the $7 amazon controller (SP002E from https://www.amazon.com/gp/product/B09Y8SWJ77 ) and the RGBpanels, work fine with lower voltages (which is not a given since both run a microcontroller that was originally meant to be powered from 5V).
    The RGBPanel controller is a bit more picky about voltage and reboots around 3.5V, while the neopixels tend to drag the battery voltage down, causing the RGBPanel to crash and reboot when a single battery runs both, so I gave it its own lipo.

    Pixels still take 0.3 to 0.5A (I use a potentiometer to dial them down as the cheap controller I put has no dimming control) and the RGBPanel takes less than 0.1A, so that's nice (it actually goes all the way down to 0.05A or just 50mA) when the voltage drops.
    The combined tricks should give around 18H of runtime with the 2 batteries (4Ah and 1.5Ah 1S lipos), which is enough for 17 hours of dreamstate (they are not screwing around this time, 17H !!!)

    About the neopixel controller, I used a cheap $7 amazon controller that only had 3 physical buttons but sadly no dimming control, mostly because I wanted something very small, and while pixelblaze micro is also small, it doesn't have the pattern I want, and I didn't see the point of programming a pattern I already had on the other controller, so I just put a potentiometer to lower the voltage. It's obviously the wrong way to do it, but it works :)

    Here is the end result:



    2024/11/17 Vidcomp Script: recompress videos on linux with mencoder or ffmpeg to div3, div4, div5, xvid, mpeg4, h264, h265, VP9, and AV1
    π 2024-11-17 01:01 in Linux
    This is a script I've had for over 20 years to recompress videos to multiple formats, including resizing resolution, rotating files, changing framerate, capturing from PAL analog cards, back in the day capturing videos from an analog tivo (circa 20 years ago), and much more.
    While some amount is kind of obsolete and left for posterity, it's full of options that took me a long time to find for mencoder, and now ffmpeg, the better solution.

    The script: https://marc.merlins.org/linux/scripts/vidcomp

    There isn't a lot of documentation, except the script itself. Please get the version from the link above, but for indexing purposes, I'll include a potentially slightly out of date version here:

    #!/bin/bash

    # vidcomp -h -time "-dvd-device . -alang English" dvd://1 /var/local/space/vid/10com8.avi

    # http://gentoo-wiki.com/HOWTO_Mencoder_Introduction_Guide # http://electron.mit.edu/~gsteele/ffmpeg
    # http://www.mplayerhq.hu/DOCS/HTML/en/menc-feat-enc-libavcodec.html # http://web.njit.edu/all_topics/Prog_Lang_Docs/html/mplayer/encoding.html # http://www.linux.com/article.pl?sid=06/08/22/2121258

    # transcode -f 15 -w 800,250,100 -y divx5,lame -N 0x55 -o test.avi -i $1 # enable PAL on PVR350 mpeg2 encoder #v4l2-ctl --set-input 2 #v4l2-ctl -s 2 #v4l2-ctl --set-ctrl=video_peak_bitrate=8000000 #v4l2-ctl --set-ctrl=video_bitrate=6000000

    # dumpstream stream# file.tivo dumpstream () { mplayer tivo://tivo/$1 -demuxer 33 -dumpstream -dumpfile "$2" }

    die () { echo "${1:-}" exit 1 }

    # vidcomp -br 10000 -time "-edl cuts" rec_0012.mov

    #mplayer -vf cropdetect enquete.vob #vidcomp -h -vf crop=336:320:12:126 enquete.vob # Aspect ratio has to be forced with codecs other than xvid #vf='-vf scale=480:370' # vidcomp -vf "-filter:v fps=29" $i vf="" af="" #codec=h264 #codec=h265 #br=3000

    # AV1 is supposed to be better tan VP9, but on my short tests, # VP9 was faster and gave smaller files. codec=vp9 br=2000 abr=128 rot="" ffrot="" aud_channels="" aud_srate="" time="" # -ss 10 -endpos 1:54:00 (mencoder) # -time "-ss 0:3:40 -t 3:20" (ffmpeg) # or -time "-ss 0:3:40 -t 3:20" -vf "mp=eq2=0.9:1:-0.1" (ffmpeg) # vidcomp -br 8000 -time "-ss 04:00 -t 0:29:20" -vf "mp=eq2=0.9:1:-0.1" full.avi

    # Crop the right side crop=1540:1080:0:0

    if [ $0 = *tivo* ]]; then echo "Tivo Mode" # tivo files are sometimes mis-detected: force the right demuxer demux="-demuxer 33" # Aspect ratio has to be forced with codecs other than xvid aspect='-force-avi-aspect 1.333' # and remove crap we don't want (tivo inserts a line of crap at the top) vf="-vf crop=352:476,kerndeint" elif [ $0 = *pal* ]]; then # Couldn't quite get this to work yet, crop overrides it :( #vf='-vf scale=540:405,crop=512:384,kerndeint' vf='-vf scale=768:576,kerndeint' # problem with divx is that pass2 can fail with br too low errors codec=h264 br=800 # elif [ $0 = *camvidrecomp ]]; then # codec=ffmpeg # br=8000 # abr=128 # old cameras # abr=48 # br=2400 # aud_channels="-channels 1" # aud_srate="-srate 22050" fi # Hack for MTS demux="-mc 100" #demux="-demuxer lavf"

    #aspect='-force-avi-aspect 1.777'

    while [ ! -z "$1" ] && [ "$1" =~ ^-.* ]] do if [ "$1" = "-w" ]; then shift codec=win vf="-forceidx -vf kerndeint" fi

    if [ "$1" = "-d" ]; then shift codec=divx #vf="-forceidx -vf kerndeint" fi

    if [ "$1" = "-D" ]; then shift codec=divx1 vf="-forceidx -vf kerndeint" fi

    if [ "$1" = "-F" ]; then shift codec=flv br=400 abr=56 aud_srate="-srate 22050" vf='-vf scale=512:384' fi

    if [ "$1" = "-h" -o "$1" = "-h4" ]; then shift codec=h264 vf="-forceidx -vf kerndeint" fi

    if [ "$1" = "-h4ff" ]; then shift codec=ffmpeg4 fi

    if [ "$1" = "-h5" ]; then shift codec=h265 fi

    if [ "$1" = "-vp9" ]; then shift codec=vp9 fi

    if [ "$1" = "-av1" ]; then shift codec=av1 fi

    if [ "$1" = "-x" ]; then shift codec=xvid vf="-forceidx -vf kerndeint" fi

    if [ "$1" = "-ff" ]; then shift codec=ffmpeg fi

    # https://trac.ffmpeg.org/wiki/Encode/H.264 # says not compatible with most players if [ "$1" = "-ffll" ]; then shift codec=ffmpegll fi

    if [ "$1" = "-vol" ]; then shift vol=":vol=$1" shift fi

    # try instead of rotate if [ "$1" = "-f" ]; then shift rot="-vf flip,mirror" #ffrot="-vf hflip,vflip" # https://www.baeldung.com/linux/ffmpeg-rotate-video#:~:text=transpose%20is%20an%20FFmpeg%20filter,the%20values%20from%200%2D3. ffrot="-vf hflip,vflip" ffrot="-vf transpose=1,transpose=3" fi

    if [ "$1" = "-r" ]; then #rot="-vf mirror,rotate=$2" # works with -r 3 rot="-vf rotate=$2" ffrot="-vf transpose=$2" shift 2 fi

    if [ "$1" = "-br" ]; then br="$2" shift 2 fi

    # -ss 10 -endpos 1:54:00 # -ss 00:01:00 -to 00:02:00 if [ "$1" = -time ]; then time="$2" shift 2 fi

    # for instance -vf scale=540:405,crop=512:384 if [ "$1" = -vf ]; then vf="$2" shift 2 fi done

    test $# -eq 1 || test $# -eq 2 || die "$0 file_src file_dest (please read script for options)" test $# -eq 2 && test -f "$2" && die "file_dest should not exist"

    src="$1" dest="${2:-$src.new}"

    #set -vx if [ "$codec" = win ]; then ionice -c3 nice -19 mencoder $demux $aud_channels $aud_srate -oac mp3lame -lameopts mode=3:abr:br=$abr$vol $time $aspect $vf -ovc lavc -lavcopts vcodec=msmpeg4v2:vhq:vbitrate=$br $rot -o "$dest" "$src" elif [ "$codec" = divx1 ]; then ionice -c3 nice -19 mencoder $demux $aud_channels $aud_srate -oac mp3lame -lameopts mode=3:abr:br=$abr$vol $time $aspect $vf -ovc lavc -lavcopts vcodec=mpeg4:vhq:trell=yes:v4mv=yes:vbitrate=$br -ffourcc DX50 $rot -o "$dest" "$src" elif [ "$codec" = flv ]; then # http://www.jeremychapman.info/cms/mencoder-avi-to-flv-conversion ionice -c3 nice -19 mencoder $demux $aud_channels $aud_srate -oac mp3lame -lameopts mode=3:abr:br=$abr$vol $time $aspect $vf -ovc lavc -lavcopts vcodec=flv:vbitrate=$br:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 -of lavf $rot -o "$dest" "$src" elif [ "$codec" = xvid ]; then ionice -c3 nice -19 mencoder $demux $aud_channels $aud_srate -oac mp3lame -lameopts mode=3:abr:br=$abr$vol $time $aspect $vf -ovc xvid -xvidencopts bitrate=$br $rot -o "$dest" "$src" elif [ "$codec" = ffmpeg4 ]; then # aspect/-force-avi-aspect not supported by ffmpeg #ionice -c3 nice -19 ffmpeg $time -analyzeduration 9999999 -probesize 9999999 -y -i "$src" $vf -c:v libx264 -preset medium -b:v ${br}k -pass 1 -c:a libfdk_aac -b:a 128k -f mp4 /dev/null #ionice -c3 nice -19 ffmpeg $time -analyzeduration 9999999 -probesize 9999999 -i "$src" $vf -c:v libx264 -preset medium -b:v ${br}k -pass 2 -c:a libfdk_aac -b:a 128k -f mp4 "$dest" ionice -c3 nice -19 ffmpeg $time -analyzeduration 9999999 -probesize 9999999 -y -i "$src" -filter:v fps=30 $vf -c:v libx264 -preset medium -b:v ${br}k -pass 1 -an -f mp4 /dev/null ionice -c3 nice -19 ffmpeg $time -analyzeduration 9999999 -probesize 9999999 -i "$src" -filter:v fps=30 $vf -c:v libx264 -preset medium -b:v ${br}k -pass 2 -c:a aac -b:a 128k -f mp4 "$dest"

    ### H265 in MP4 => slow and royalties elif [ "$codec" = h265 ]; then # https://trac.ffmpeg.org/wiki/Encode/H.265 ionice -c3 nice -19 ffmpeg $time -y -i "$src" $vf $ffrot -filter:v fps=30 -c:v libx265 -b:v ${br}k -x265-params pass=1 -an -f mp4 /dev/null ionice -c3 nice -19 ffmpeg $time -i "$src" $vf $ffrot -filter:v fps=30 -c:v libx265 -b:v ${br}k -x265-params pass=2 -c:a aac -b:a 128k -f mp4 "$dest"

    # https://trac.ffmpeg.org/wiki/Encode/AV1 # # vp9 vs av1 comparison and flags: # https://jonathanmh.com/p/encoding-webm-videos-with-ffmpeg-vp9-av1
    # Gemini says: Compression Efficiency # * AV1: Offers the best compression efficiency, resulting in smaller file sizes for a given quality level # * H.265: Provides significant improvements over H.264, offering better compression than VP9 in many cases # * VP9: While not as efficient as H.265 or AV1, it still offers decent compression and is widely supported. # Encoding and Decoding Speed: # * AV1: Requires more computational power for encoding and decoding, which can impact performance on older hardware # * H.265: Offers a good balance between compression efficiency and encoding/decoding speed. # * VP9: Generally faster to encode and decode compared to AV1.

    ### VP9 is free version of H265 # https://caniuse.com/?search=vp9 # cpu used lower values are slower but better quality -row-mt 1 added HT. Speed is faster than AV1 but compression seems still good # 2453715 file1.mp4 # 1555963 file1_av1_4.webm # 1611192 file1_av1_6.webm # 1611192 file1_av1_8.webm # 1668740 file1_vp9_4.webm # 1598794 file1_vp9_6.webm # 1595698 file1_vp9_8.webm elif [ "$codec" = vp9 ]; then ionice -c3 nice -19 ffmpeg $time -y -i "$src" $vf $ffrot -filter:v fps=30 -c:v libvpx-vp9 -b:v ${br}k -cpu-used 6 -row-mt 1 -pass 1 -an -f null /dev/null ionice -c3 nice -19 ffmpeg $time -i "$src" $vf $ffrot -filter:v fps=30 -c:v libvpx-vp9 -b:v ${br}k -cpu-used 6 -row-mt 1 -pass 2 -c:a libopus -b:a 128k "$src.webm"

    ### AV1 a better version of VP9 # https://caniuse.com/?search=av1 # https://trac.ffmpeg.org/wiki/Encode/AV1 # cpu used lower values are slower but better quality -row-mt 1 added HT elif [ "$codec" = av1 ]; then ionice -c3 nice -19 ffmpeg $time -y -i "$src" $vf $ffrot -filter:v fps=30 -c:v libaom-av1 -b:v ${br}k -cpu-used 8 -row-mt 1 -pass 1 -an -f null /dev/null ionice -c3 nice -19 ffmpeg $time -i "$src" $vf $ffrot -filter:v fps=30 -c:v libaom-av1 -b:v ${br}k -cpu-used 8 -row-mt 1 -pass 2 -c:a libopus -b:a 128k "$src.webm"

    # old legacy mencoder stuff (mencoder h264 or divx) else pass="$dest".pass for i in 1 2 do echo "DOING $codec PASS $i" echo "------------------" if [ "$codec" = h264 ]; then #vf=$vf,dsize=4/3,scale #vf=$vf,scale=720:480 vf=$vf,scale # why is scale there by itself? # Trellis searched quantization

    # do not allow space in source, to allow a multi file source ionice -c3 nice -19 mencoder -passlogfile "$pass" $demux $aud_channels $aud_srate -oac mp3lame -lameopts mode=3:abr:br=$abr$vol $time $aspect -vf $vf -ovc x264 -x264encopts bitrate=$br:turbo=1:pass=1:threads=0 $rot -o "$dest" $src || die "multipass failed on pass $i" elif [ "$codec" = divx ]; then # Trellis searched quantization ionice -c3 nice -19 mencoder -passlogfile "$pass" $demux $aud_channels $aud_srate -oac mp3lame -lameopts mode=3:abr:br=$abr$vol $time $aspect $vf -ovc lavc -lavcopts vcodec=mpeg4:vhq:trell=yes:v4mv=yes:vbitrate=$br:vpass=$i -ffourcc DX50 $rot -o "$dest" "$src" || die "multipass failed on pass $i" fi done /bin/rm "$pass" *.pass.mbtree &>/dev/null #else # echo "Unknown $codec" >&2 fi

    #vidrename --noinfo "$dest"

    /bin/rm ffmpeg2pass-0.log ffmpeg2pass-0.log.mbtree x265_2pass.log* &>/dev/null

    Again, to up to date version is here: https://marc.merlins.org/linux/scripts/vidcomp

    2024/11/17 Vidrename Script: Clean-up/Normalize Video Filenames and Add Codec And Container Format With Mplayer
    π 2024-11-17 01:01 in Linux
    This is for linux, using mplayer because it was written many years ago before ffmpeg was a proper option. It parses mplayer video file decoding to rename filenames with the proper codec and file container.

    The script: https://marc.merlins.org/linux/scripts/vidrename

    Possible video containers supported by this script *.mpeg (original mpep1/mpeg2 from the '90s) *.rm (very old realaudio/realvideo from the 90's) *.mov (old apple quicktime container, also from 90's)

  • wmv (old video media player, still from 90's)
  • avi (newer-ish video media)
  • mp4 (for a while new format used by most videos)
  • ogv (Org Vorbis OSS format, now obsolete)
  • mkv (free open source container to get around mp4 patents and royalties)
  • webm (newer free/open source container)
  • The script does not bother to show old/obsolete codecs for WMV/AVI (you can add support if you care), and concentrates on only showing some more popular formats over the years that I cared more about:

  • divx3.avi
  • divx4.avi
  • divx5.avi
  • xvid.avi
  • H264.mp4 (for a while the most popular format after divx5/divx4/divx3)
  • H265.mp4 (the more efficient version of H264, but the patent/royalties fees on it are way high)
  • VP9.mp4 / VP4.webm (meant to replace H264 and H265 with more efficient and free version)
  • AV1.mp3 / AV1.webm (newer versino of VP9, still open source and free)
  • This is what it looks like

    sauron [mc]$ l total 15148 drwxr-sr-x 1 merlin merlin 188 Nov 17 19:32 .
    drwxr-sr-x 1 merlin merlin 184 Nov 17 19:32 ..
    -rw-r--r-- 1 merlin merlin 2453715 Nov 17 19:31 file1.mp4 -rw-r--r-- 1 merlin merlin 1572011 Nov 17 19:31 file2.mp4 -rw-r--r-- 1 merlin merlin 1734137 Nov 17 18:25 Out16_av1.mp4 -rw-r--r-- 1 merlin merlin 1433362 Nov 17 18:29 Out16a_vp9.mp4 -rw-r--r-- 1 merlin merlin 827673 Nov 17 18:35 Out16c_vp9.mp4 -rw-r--r-- 1 merlin merlin 1449311 Nov 17 18:26 Out16_vp9.mp4 -rw-r--r-- 1 merlin merlin 3496280 Nov 17 18:22 Out_av1.mp4 -rw-r--r-- 1 merlin merlin 2527312 Nov 17 18:20 Out_vp9.mp4 sauron [mc]$ vidrename --noinfo * Going from file1.mp4 to File1 - H265.mp4 Going from file2.mp4 to File2 - VP9.mp4 Warning for Out16_av1.mp4, webm != mp4 Going from Out16_av1.mp4 to Out16 av1 - AV1.webm Warning for Out16a_vp9.mp4, webm != mp4 Going from Out16a_vp9.mp4 to Out16a vp9 - VP9.webm Warning for Out16c_vp9.mp4, webm != mp4 Going from Out16c_vp9.mp4 to Out16c vp9 - VP9.webm Warning for Out16_vp9.mp4, webm != mp4 Going from Out16_vp9.mp4 to Out16 vp9 - VP9.webm Warning for Out_av1.mp4, webm != mp4 Going from Out_av1.mp4 to Out av1 - AV1.webm Warning for Out_vp9.mp4, webm != mp4 Going from Out_vp9.mp4 to Out vp9 - VP9.webm sauron [mc]$ l total 15148 drwxr-sr-x 1 merlin merlin 298 Nov 17 19:32 .
    drwxr-sr-x 1 merlin merlin 184 Nov 17 19:32 ..
    -rw-r--r-- 1 merlin merlin 2453715 Nov 17 19:31 'File1 - H265.mp4' -rw-r--r-- 1 merlin merlin 1572011 Nov 17 19:31 'File2 - VP9.mp4' -rw-r--r-- 1 merlin merlin 1734137 Nov 17 18:25 'Out16 av1 - AV1.webm' -rw-r--r-- 1 merlin merlin 1433362 Nov 17 18:29 'Out16a vp9 - VP9.webm' -rw-r--r-- 1 merlin merlin 827673 Nov 17 18:35 'Out16c vp9 - VP9.webm' -rw-r--r-- 1 merlin merlin 1449311 Nov 17 18:26 'Out16 vp9 - VP9.webm' -rw-r--r-- 1 merlin merlin 3496280 Nov 17 18:22 'Out av1 - AV1.webm' -rw-r--r-- 1 merlin merlin 2527312 Nov 17 18:20 'Out vp9 - VP9.webm'

    Other example uses:

    sauron [mc]$ vidrename --help
    Unknown option: help
    /var/local/scr/vidrename [--fixepisodes] [--verbose] [--extonly] [--dots] [--spacedash] [--spaces2dash] [--ucname [num]] [--add text] [--noinfo] [--writetofile] [--norename] [--addfps]
    

    --extonly: only fix file extension, do not beautify filename --dots: remove all dots from filenames ane replace with spaces --spacedash: add spaces around all dashes if not already present (only one by default) (IGNORED, ON BY DEFAULT) --spaces2dash: replace all spaces with dashes --fixepisodes: normalize showname - 1x01 episodename.ext --ucname: number of letters in a word before we uppercase the first (default 3) (IGNORED) --add: add random text before the extension --noinfo: do not add file info to filename ( - XxY - z kbps) --writetofile: do not add fileinfo to filename, write to a different file --norename: only print what would be done, do not rename files --addfps add fps of video to filenames

    sauron [mc]$ vidrename --spaces2dash --addfps * Going from File1_-_H265_-_H265.mp4 to File1_-_H265_-_1920x1080_-_2974kbps_-_30.000_fps_-_H265.mp4 Going from File2_-_VP9_-_VP9.mp4 to File2_-_VP9_-_1920x1080_-_1861kbps_-_60.000_fps_-_VP9.mp4 Going from Out16_av1_-_AV1_-_AV1.webm to Out16_av1_-_AV1_-_1920x1080_-_30.000_fps_-_AV1.webm Going from Out16a_vp9_-_VP9_-_VP9.webm to Out16a_vp9_-_VP9_-_1920x1080_-_30.000_fps_-_VP9.webm Going from Out16c_vp9_-_VP9_-_VP9.webm to Out16c_vp9_-_VP9_-_1920x1080_-_30.000_fps_-_VP9.webm Going from Out16_vp9_-_VP9_-_VP9.webm to Out16_vp9_-_VP9_-_1920x1080_-_30.000_fps_-_VP9.webm Going from Out_av1_-_AV1_-_AV1.webm to Out_av1_-_AV1_-_1920x1080_-_30.000_fps_-_AV1.webm Going from Out_vp9_-_VP9_-_VP9.webm to Out_vp9_-_VP9_-_1920x1080_-_30.000_fps_-_VP9.webm

    And again, the script is here: https://marc.merlins.org/linux/scripts/vidrename

    2024/11/16 Orbital at Midway SF, back to the 90's!
    π 2024-11-16 01:01 in Clubbing
    As far as trips back in memory lane, go, this was a winner. Orbital are OGs in the electronic music world. After Jean Michel Jarre and Vangelis, they were likely the 3rd electronic music act I listened to, way back when. It's very hard to define their genre, especially since they predate most EDM genres, but I've seen "industrial electro funk" although Halycon and on is definitely it's own genre still (more ambient).

    The event was organized by Goldenvoice. The flier didn't have any info on whether they were going to be OTC, have openers, or until what time the event was running. The only piece of info was that it was supposed to start at 21:00. By the time I arrived at 22:00, wary of previous events announced at 21:00 but having so-so openers, or sometimes not even really opening doors until 22:00, but this time around they apparently did open at 21:00 and Orbital themselves did start at 21:00, go figure... So, I missed the first hour, but they were going strong by the time I arrived:





    not every time you see this
    not every time you see this



    The somewhat weird thing is they stopped in the middle of the set after saying something I was unable to comprehend due to poor microphone sound, but they took a 20mn break where they just left the stage and everyone in the room, and came back 20mn later :)

    The 2nd half of the show had more top tracks, including of course the Halcyon and on, but plenty more including "where times becomes a loop" that I had totally forgotten about:

    the room was packed
    the room was packed

    one of them performed without shoes :)
    one of them performed without shoes :)


    The show ended at 00:40. Definitely good time were had:


    2024/11/14 Neil deGrasse Tyson back at San Jose Center for Performing Arts: An Astrophysicist Goes To The Movies, the Sequel
    π 2024-11-14 01:01 in Outings, Public
    Back to see Neil deGrasse Tyson for a 3rd time, this time for part 2 of "An Astrophysicist Goes To The Movies". It ws a fun evening as any evening would him, would be, although I found this specific talk a little weaker than the first one, probably because he had to find other material that he hand't already used in the first talk, but that said there were still plenty of fun bits, and as I said, any time with him is a fun time :)



    he still has a few books I should read :)
    he still has a few books I should read :)

    the list of movies for his 2nd talk
    the list of movies for his 2nd talk

    those doors were indeed portals to a 4th dimension we can't see as 3 dimensional beings
    those doors were indeed portals to a 4th dimension we can't see as 3 dimensional beings

    wizard of oz was wrong all along!
    wizard of oz was wrong all along!

    I never caught that one either
    I never caught that one either

    parsecs are a unit of distance, they can't be used for speed or time (BTW a parsec is 3.6 light years as I found out)
    parsecs are a unit of distance, they can't be used for speed or time (BTW a parsec is 3.6 light years as I found out)

    Gravity: haha, that's an easy one. It had lots of good physics, but also some glaring holes
    Gravity: haha, that's an easy one. It had lots of good physics, but also some glaring holes


    Oh no, don't let him go! :)


    As a bonus, he gave he attendees a hall pass for the next day if they were late :)


    And I had no idea he was on zoolander 2 :)


    It was another very fun night, very quick video summary:

    2024/11/11 Adding USB-Serial and USB-Storage to Ubiquity Edgerouter 4
    π 2024-11-11 01:01 in Computers, Linux
    So, after using WNDR routers that allowed various linux fimrware replacements, the last one I had was just struggling running a name server and other things I needed due to old hardware and lack of horsepwoer and RAM.

    After asking around, I was told to try the Ubiquity Edgerouter 4, which is indeed a nice little router and comes with linux out of the box. The best thing is it's designed to give you full access so you can install your own linux software. Well done!


    But, for some strange reason, the then wonderful people at ubiquity did not figure out that it was useful to plug a serial port adapter to monitor or connect to another device, or even to use/need external USB storage. It is of course linux, you can build your own kernel and modules, but doing it for another architecture requires cross compilers and a non trivial setup that would likely have taken me days to setup.

    This is where Nils Andreas Svee (Lockhair) comes in, and as part of his CAKE project to improve networking on that device (requiring a new kernel), he built a full compiler suite for that kernel, and very nicely added USB serial modules to his build for me a few years back for the ER1.x firmware.

    Fast forward a few years, and the original 1.10.11 was based on Debian 7 (Wheezy) which became totally obsolete. Getting updated packages for that ancient distro became difficult, so I figured I should upgrade to 2.x.
    After doing so ( EdgeRouter ER-4/ER-6P/ER-12/ER-12P: Firmware v2.0.9-hotfix.7 31 Jul 2023 from https://ui.com/download/releases/firmware ), I of course realized it was a new kernel that needed new modules.

    But then I realized that during that time Ubiquity turned evil and stopped releasing GPL required code, including the kernel, which in turn caused Lochnair to stop being able to maintain his project: https://community.ui.com/questions/CAKE-thread-gone/27de66b2-9ac2-4fcb-93f7-d02cd5785b4c

    I had a glimmer of hope that the new binary kernels were close enough to the last officially released kernel source, and asked him if he could build the extra missing modules: https://github.com/Lochnair/kernel_e300/issues/2 . He super nicely agreed and they worked!

    Thanks to him, I now have have a fully upgraded and featured linux route with usb-serial support and usb-storage support.

    You can get the modules here: 4.9.79-UBNT Serial and USB-Storage Modules << DOWNLOAD ME

  • lib/modules/4.9.79-UBNT/kernel/drivers/usb/misc/ezusb.ko
  • lib/modules/4.9.79-UBNT/kernel/drivers/usb/storage/uas.ko
  • lib/modules/4.9.79-UBNT/kernel/drivers/usb/class/cdc-wdm.ko
  • lib/modules/4.9.79-UBNT/kernel/drivers/usb/serial/pl2303.ko
  • lib/modules/4.9.79-UBNT/kernel/drivers/usb/serial/ftdi_sio.ko
  • lib/modules/4.9.79-UBNT/kernel/drivers/usb/serial/usbserial.ko
  • lib/modules/4.9.79-UBNT/kernel/drivers/usb/serial/keyspan.ko
  • usbcore: registered new interface driver pl2303 usbserial: USB Serial support registered for pl2303 pl2303 1-1.1:1.0: pl2303 converter detected usb 1-1.1: pl2303 converter now attached to ttyUSB0 usbcore: registered new interface driver uas usb 1-1.2: new high-speed USB device number 4 using xhci-hcd usb 1-1.2: New USB device found, idVendor=0951, idProduct=1666 usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 1-1.2: Product: DataTraveler 3.0 usb 1-1.2: Manufacturer: Kingston usb 1-1.2: SerialNumber: 1C6F654E48EBB131D95D0ABB usb-storage 1-1.2:1.0: USB Mass Storage device detected scsi host0: usb-storage 1-1.2:1.0 scsi 0:0:0:0: Direct-Access Kingston DataTraveler 3.0 PMAP PQ: 0 ANSI: 6 sd 0:0:0:0: [sda] 121110528 512-byte logical blocks: (62.0 GB/57.8 GiB) sd 0:0:0:0: [sda] Write Protect is off sd 0:0:0:0: [sda] Mode Sense: 45 00 00 00 sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA sda: sda1 sda2 sd 0:0:0:0: [sda] Attached SCSI removable disk

    If you use this, please make a donation to him for his good work:

  • https://paypal.me/nsvee.
  • https://wise.com/pay/me/nilsandreass
  • 2024/11/10 Getting Things Done in an ADHD World
    π 2024-11-10 01:01 in Arduino, Computers, Electronics
    I attended Pasadena Hackaday Supercon, so I figured I'd put my pictures into a quick blog entry, shouldn't take long...


    1) Oh, I need to finish writing code to get the SAO badge holder to do something fun

    2) Mmmh, why does this python global variable thing doessn't work in the function

    3) Goes to re-learn python, with help from gemini and how python forks global variables by default in functions so what you write to them isn't saved at local scope (oh my, why did they do that?)

    4) after more hacking, get a proper demo working:

    5) publish code https://github.com/marcmerlin/2024-Supercon-8-Add-On-Badge/blob/main/README.md (actual code is here: https://github.com/marcmerlin/2024-Supercon-8-Add-On-Badge/blob/main/software/software/main.py )

    6) Oh, I need to make a video demo of the SAO, but...

    7) oh yeah, there was that hat on my desk I needed to add LEDs on for an upcoming party, start hacking on that

    8) mmmh, the hat won't work long enough with a USB battery, start hacking on a lipo solution

    9) ah, lipos work, but the front LED panels rated for 5V start failing around 3.5V, so I need to make a dual lipo solution, one for the neopixels and one for the RGB panels

    10) test and measure the dual lipo solution and figure out it will last close to 12H, that's good. Ok, hat works mostly, post that https://www.instagram.com/p/DCYEl1jJd_-
    11) Ah yes, the SAO video I was supposed to work on: https://www.youtube.com/watch?v=z7MSywf7js4

    12) During that time, I get interesting distracting packages on my doorstep, like lovely flexible LED panels that will hopefully power my future outfit: https://rpi-rgb-led-matrix.discourse.group/t/rpi0-2w-speed-compared-to-rpi3a/913/2

    13) While I'm testing them, also try some new rPi0 2w chips and microcontrollers to see if they can power my LED outfit with a smaller form factor (and yes they can): https://rpi-rgb-led-matrix.discourse.group/t/rpi0-2w-speed-compared-to-rpi3a/913 . In the interest of briefty, I'm going to skip the part that included migrating from raspbian to a new dietpi linux distro and port back all my custom changes on it :)

    14) That said, I had a long-ish discussion and planning with the electrodragon folks in China on how to make a new 3 channel daughter board that is much smaller and would decrease the over footprint of all new picture frames like the one I built, and of course my LED outfit.

    15) but wait, now I also find out there is a new beaglebone solution that does 6 channels output instead of 3? Ok, make a post about it: https://rpi-rgb-led-matrix.discourse.group/t/interesting-6-port-board-beaglebone-pocketcroller-v2/918/2

    16) and file a couple of RFE bugs to look into it: https://github.com/hzeller/rpi-rgb-led-matrix/issues/1733 + https://github.com/FalconChristmas/fpp/issues/2054

    17) Oh, I just found this old video on my laptop, why did I never post it? Ok, fix that: https://marc.merlins.org/perso/linux/post_2021-01-23_Linux_conf_au-2021-LED-Talk.html

    18) Mmmh, so when I quickly posted those pictures from Neil deGrasse Tyson who just gave a talk, I got a reminder it was annoying for my blog system not to be able to link to videos directly without having to upload them to youtube.

    19) Ok, learn about html5 video tag, hack my blog system to support videos, and push a new blog with my first video tag: https://marc.merlins.org/perso/outings/post_2024-11-14_Neil-deGrasse-Tyson-back-at-San-Jose-Center-for-Performing-Arts_-An-Astrophysicist-Goes-To-The-Movies_-the-Sequel.html

    20) ok, but why did I have to rescue my video from my phone because the H265 recompressed version did not work in the blog? Ah, because of royalties on H265 being too high, most browsers refuse to add support for it: http://marc.merlins.org/perso/linux/post_2024-11-17_Vidrename-Script_-Clean-up-Normalize-Video-Filenames-and-Add-Codec-And-Container-Format-With-Mplayer.html

    21) Ok, sure, but now I need to upgrade my vidcomp script to support VP9 and AV1: http://marc.merlins.org/perso/linux/post_2024-11-17_Vidcomp-Script_-recompress-videos-on-linux-with-mencoder-or-ffmpeg-to-div3_-div4_-div5_-xvid_-mpeg4_-h264_-h265_-VP9_-and-AV1.html

    22) then I find an Email from a chinese engineer who is willing to talk to me about making better LED shoes. That's exciting, let me reply to him first

    23) ok, now I can recompress my videos to VP9, which I benchmarked to somehow be faster to compress and still smaller file size than AV1 (not supposed to be the case, but that's what I'm getting). On the plus side, VP9 works with more browsers than AV1.

    24) what as I doing again? (now days have passed). Oh yes, I was supposed to write a blog on hackaday supercon: http://marc.merlins.org/perso/electronics/post_2024-11-01_Pasadena-Hackaday-Supercon-2024.html

    25) of course the ridiculous amount of time spent to allow these 2 videos in that post, is a bit hard to justify, but it's really solving a problem I've had for over 10 years, and never got to the top of the pile, because, well, you see what happens when I try to put something on top of the pile :)

    26) and I was good, I didn't even play with the micropython rpi micro I received in the mail this week, or the electromage pixelblaze and I/O board, or more LED panels that somehow showed up at my doorstep :)

    27) mmmh, and there are all those webcams I ordered and need to configure, but now it's clear I'm going to have to re-install my camera controller, shinobi, from scratch, and that's yet another rabithole...

    28) in the meantime I have to finish my LED hat, and design my new shirt and pants for Dreamstate in 4 days... Wish me luck :)

    2024/11/09 Jason Ross at MidwaySF
    π 2024-11-09 01:01 in Clubbing
    It had been a while since I had seen Jason Ross, so it was good news when I heard he was coming back at Midway SF.

    What wasn't expected, was that it would be in a side building which was mostly a hangar party, for some reason they were badly lacking bathrooms, so there was a 30mn bathroom line, which was not good.
    The lineup felt a bit all over the place in that there was no real unity in the music style, and I found myself waiting for Jason to take over, which he did at 0:30. I had a good time for the remaining 90mn.



    30mn bathroom line outside
    30mn bathroom line outside



    See more images for Jason Ross at MidwaySF
    2024/11/01 Pasadena Hackaday Supercon 2024
    π 2024-11-01 01:01 in Arduino, Electronics
    After having such a great time at the linux.conf.au Open Hardware Miniconfs over the year, and missing them after the last one where I built those badges, I somehow missed a local-enough Hackaday Supercon that had been going on for years. Oh noes!

    It was very cool that I got to wear my LCA SAO badges for the first time:


    This post, because of its 2 video inserts, a new addition to my blogging software, was also an interesting exercise in non linear time and tasks, more on this page: Getting Things Done in an ADHD World

    Day 1, Friday

    Thanks to Anthony for letting me know about it, and I was able to attend. Went there early on friday for the pre-conf to work on the badges:


    the conference badge was this 6 port micropython rPi micro with a couple of SAOs.
    the conference badge was this 6 port micropython rPi micro with a couple of SAOs.

    they nicely provided food all 3 days
    they nicely provided food all 3 days

    essential geek survival food :)
    essential geek survival food :)

    They gave us a quick primer on how the badge worked, although it would have been better on a webpage with links and info for total beginners who had never used micropython and thorny or knew what thorny was (that included me):


    I'm glad I took pictures of these slides, they only made sense many hours later. They should have been online
    I'm glad I took pictures of these slides, they only made sense many hours later. They should have been online

    finding fellow LED geeks :)
    finding fellow LED geeks :)

    learning blinkies for beginners, scan this
    learning blinkies for beginners, scan this

    While I was there, I 9ound out they had a wonderful 4 bit computer some years back. I actually really regret not having been there that year, programming that in hand crafted assembly would have been epic:


    someone hacked a basic I2C on it
    someone hacked a basic I2C on it

    people now hard at work
    people now hard at work

    I used the opportunity to bring previous LCA toys and show them off (and fix a few)
    I used the opportunity to bring previous LCA toys and show them off (and fix a few)


    People came with plenty of SAOs:



    some came more ready than me :)
    some came more ready than me :)

    SAO extenders, cool!
    SAO extenders, cool!

    SOA badge holder bag, sweet!
    SOA badge holder bag, sweet!

    I found Tom Verbeure, the person who had been hacking on RGB Panels with open source FPGAs (colorlight). Cool project for sure. See: https://github.com/q3k/chubby75?tab=readme-ov-file#colorlight-5a-75b and https://github.com/lucysrausch/colorlight-led-cube/tree/master


    Also, finally got to meet Henner Zeller, the rpi-rgb-panels author I've been working online with for years:


    epic watch!
    epic watch!

    Also got to meet Daryll Strauss from precision insight, later acquired by VA Linux some 25+ years ago:



    People still hacking at night:


    I was lit up enough not to get lost :)
    I was lit up enough not to get lost :)

    Day 2-3, Saturday & Sunday

    Saturday and Sunday were the main conference days:


    went to attend a few talks
    went to attend a few talks

    hacking radio sound and B&W video from a chip, super cool!
    hacking radio sound and B&W video from a chip, super cool!

    learned about an online microcontroller emulator, wokwi, very nice
    learned about an online microcontroller emulator, wokwi, very nice




    I got to see a pick and place machine, nice to see them work:


    this is what the machine was 'printing'
    this is what the machine was 'printing'


    I tried the SMD challenge, that was hard as hell:


    we got old and fat irons, making things harder :)
    we got old and fat irons, making things harder :)


    I couldn't get the last 2 LEDs working, they were so stupidly small
    I couldn't get the last 2 LEDs working, they were so stupidly small

    I had someone help me fix mine :)
    I had someone help me fix mine :)

    and they all worked, thank you to the master solderer!
    and they all worked, thank you to the master solderer!

    added the result on my badge :)
    added the result on my badge :)

    Random fun shots :)


    people hard at work
    people hard at work



    During the weekend, the SAO wall got populated:






    Fun to see this SAO based on this burning man sign

    Original from Burning Man
    Original from Burning Man

    more and more
    more and more

    and more :)
    and more :)

    Saturday evening party had a nice real time AI image generator:





    some were far out :)
    some were far out :)



    The conf ended with a presentation of best SAOs:



    This guy won the contest of biggest SAO, he had a printer working off USB, run by his SAO
    This guy won the contest of biggest SAO, he had a printer working off USB, run by his SAO


    Sunday ended with a party at a bar, thankfully I had my battery soldering iron :)


    This was loads of fun, and I definitely learned some good stuff. Sad I didn't go earlier but glad I went this year. Thanks bunch to all the organizers and attendeers who contributed!

    More pictures: https://photos.app.goo.gl/2hYRaaB5dF5mvv4N8

    See more images for Pasadena Hackaday Supercon 2024
    2024/11/01 Pasadena Hackaday Supercon 2024 SAO Badge
    π 2024-11-01 01:01 in Arduino, Electronics
    SAO stands for Shitty Add Ons, all explained here:
  • https://hackaday.com/2019/03/20/introducing-the-shitty-add-on-v1-69bis-standard
  • https://hackaday.io/project/52950-shitty-add-ons
  • In 2021 I got my first SAO Conference Badge from Linux.conf.au (clickme for more) That LCA board had 4 SAO ports and came with 2 little cute penguins that I hacked a bit:


    one of them was then in charge of running a neopixel necklace
    one of them was then in charge of running a neopixel necklace

    I got a few spare SAOs to attach to my heavily hacked LCA badge :)
    I got a few spare SAOs to attach to my heavily hacked LCA badge :)

    Anyway, back to Pasadena Hackaday Supercon 2024, they gave us a 6 SAO badge also running a micropython chip:

    attendees nicely donated a few extra SAOs to me, which I wrote code for
    attendees nicely donated a few extra SAOs to me, which I wrote code for


    even got an SAO extender :)
    even got an SAO extender :)

    I had to solder it from parts at the after party in the pub
    I had to solder it from parts at the after party in the pub

    Back to the conf SAO and code I wrote, here is the result:

    Micropython Code:

  • https://github.com/marcmerlin/2024-Supercon-8-Add-On-Badge/blob/main/software/software/main.py
  • Main repo:

  • https://github.com/marcmerlin/2024-Supercon-8-Add-On-Badge/tree/main
  • This was loads of fun, thanks to the organizers!


    More pages: November 2024 October 2024 September 2024 August 2024 July 2024 June 2024 May 2024 April 2024 March 2024 February 2024 January 2024 December 2023 November 2023 October 2023 September 2023 August 2023 July 2023 June 2023 May 2023 April 2023 March 2023 February 2023 January 2023 December 2022 November 2022 October 2022 September 2022 August 2022 July 2022 June 2022 May 2022 April 2022 March 2022 February 2022 January 2022 December 2021 November 2021 October 2021 September 2021 August 2021 July 2021 June 2021 May 2021 April 2021 March 2021 February 2021 January 2021 December 2020 November 2020 October 2020 September 2020 August 2020 July 2020 June 2020 May 2020 April 2020 March 2020 February 2020 January 2020 December 2019 November 2019 October 2019 September 2019 August 2019 July 2019 June 2019 May 2019 April 2019 March 2019 February 2019 January 2019 December 2018 November 2018 October 2018 September 2018 August 2018 July 2018 June 2018 May 2018 April 2018 March 2018 February 2018 January 2018 December 2017 November 2017 October 2017 September 2017 August 2017 July 2017 June 2017 May 2017 April 2017 March 2017 February 2017 January 2017 December 2016 November 2016 October 2016 September 2016 August 2016 July 2016 June 2016 May 2016 April 2016 March 2016 February 2016 January 2016 December 2015 November 2015 October 2015 September 2015 August 2015 July 2015 June 2015 May 2015 April 2015 March 2015 February 2015 January 2015 December 2014 November 2014 October 2014 September 2014 August 2014 July 2014 June 2014 May 2014 April 2014 March 2014 February 2014 January 2014 December 2013 November 2013 October 2013 September 2013 August 2013 July 2013 June 2013 May 2013 April 2013 March 2013 February 2013 January 2013 December 2012 November 2012 October 2012 September 2012 August 2012 July 2012 June 2012 May 2012 April 2012 March 2012 February 2012 January 2012 December 2011 November 2011 October 2011 September 2011 August 2011 July 2011 June 2011 May 2011 April 2011 March 2011 February 2011 January 2011 December 2010 November 2010 October 2010 September 2010 August 2010 July 2010 June 2010 May 2010 April 2010 March 2010 February 2010 January 2010 December 2009 November 2009 October 2009 September 2009 August 2009 July 2009 June 2009 May 2009 April 2009 March 2009 February 2009 January 2009 December 2008 November 2008 October 2008 September 2008 August 2008 July 2008 June 2008 May 2008 April 2008 March 2008 February 2008 January 2008 December 2007 November 2007 October 2007 September 2007 August 2007 July 2007 June 2007 May 2007 April 2007 March 2007 February 2007 January 2007 December 2006 November 2006 October 2006 September 2006 August 2006 July 2006 June 2006 May 2006 April 2006 March 2006 February 2006 January 2006 December 2005 November 2005 October 2005 September 2005 August 2005 July 2005 June 2005 May 2005 April 2005 March 2005 February 2005 January 2005 December 2004 November 2004 October 2004 September 2004 August 2004 July 2004 June 2004 May 2004 April 2004 March 2004 February 2004 January 2004 October 2003 August 2003 July 2003 May 2003 April 2003 March 2003 January 2003 November 2002 October 2002 July 2002 May 2002 April 2002 March 2002 February 2002 November 2001 October 2001 September 2001 August 2001 July 2001 June 2001 May 2001 April 2001 March 2001 February 2001 January 2001 December 2000 November 2000 October 2000 September 2000 August 2000 July 2000 June 2000 April 1999 March 1999 September 1997 August 1997 July 1996 September 1993 July 1991 December 1988 December 1985 January 1980

    Contact Email