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: December 2024 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



2019/05/26 Trance Family SF Party v2 at 1015
π 2019-05-26 01:01 in Clubbing, Tfsf
TFSF returned to 1015 for a 4 room set. It was 5H in 4 rooms, difficult to see it all, but we did our best (Jennifer was able to join me).

Here's close to 1H from my roving camera: https://www.youtube.com/watch?v=6D4Db10AfJo


























And here is close to 1H of DJ Blurr's set in the classics' room:

Here's another 30mn+ from the front room with Alastair James B2B Voices From Within:

See more images for Trance Family SF Party v2 at 1015
2019/05/26 FastLED_SPITFT::GFX on top of Framebuffer::GFX for SPI TFTs like SSD1331 or ILI9341
π 2019-05-26 01:01 in Arduino
Show me the code! Sure:
  • https://github.com/marcmerlin/FastLED_SPITFT_GFX (SSD1331, ST7735, or ILI9341 on top of FastLED CRGB 2D Matrix)
  • https://github.com/marcmerlin/Framebuffer_GFX
  • Framebuffer::GFX

    After writing my 3rd backend glue driver (SSD1331 SPI TFTs) that supports Adafruit::GFX, FastLED CRGB's primitives (nblend, dim, etc...) and matrix mapping via XY() function, and LEDMatrix which is another GFX like API on top of FastLED, I realized that I had to factor that out into a new base class I called Framebuffer::GFX:
    https://github.com/marcmerlin/Framebuffer_GFX

    That new base class takes all the GFX glue and color support I mixed (GFX RGB565, FastLED CRGB structs (RGB888 24bit), and uint32_t backed 24bit RGB888 colors, and creates a virtual framebuffer compatible with FastLED and SmartMatrix (which thankfully can use the same 3 byte per pixel array type).
    Framebuffer::GFX in itself is only a framebuffer storage and method holder, but it contains so much common code that my 3 drivers that use it are only a few dozen lines of code after inheriting from it.

    Here is the list of drivers I've written against Framebuffer::GFX:

  • https://github.com/marcmerlin/FastLED_NeoMatrix
  • https://github.com/marcmerlin/SmartMatrix_GFX
  • https://github.com/marcmerlin/FastLED_SPITFT_GFX (SSD1331 and ILI9341 TFTs)
  • Here is an example of code ultimately running on top of Framebuffer::GFX with FastLED::NeoMatrix on ESP8266 (24x32 and 32x32) and SmartMatrix::GFX on ESP32 (64x96):


    Below is the same code again now running on top of FastLED_SPITFT::GFX on an SSD1331 96x64 TFT screen:


    FastLED_SPITFT::GFX

    SSD1331

    FastLED_SPITFT_GFX, the last driver I wrote, takes any Adafruit SPI TFT object (like SSD1331 and ILI9341), and a FastLED CRGB array. You then tell it the size of each (it's up to you not to make mistakes or you can create buffer overruns), and the overloaded show() method will send the framebuffer to the TFT (it is done line by line with an SPI copy method):
  • FastLED_SPITFT_GFX(fb, 96, 64, 96, 64, ssd1331, 0) for unrotated
  • FastLED_SPITFT_GFX(fb, 64, 96, 96, 64, ssd1331, 1) for a 90 degree rotation
  • Here is the end result, an ESP8266 running LEDMatrix code rendered in Framebuffer_GFX, downsampled from 24bit color to 16bit color, rotated and copied line by line to a SSD1331



    Here is a video of Jason Coon's Aurora in 64x96 rotated to the SSD1331 96x64 resolution:

    It's ironic that normally Neopixel matrices look like they have huge pixels compared to RGBPanes, but here my 64x96 RGBPanel looks huge compared to the same resolution on SSD1331:



    rotating 3D cube with temporal fade
    rotating 3D cube with temporal fade

    Table from Mark Estes Video Demo:

    ST7735 or ILI9341

    Thankfully Adafruit wrote other TFT drivers like ST7735 and ILI9341 against the same Adafruit_SPITFT object from Adafruit-GFX, so I was able to target that tft object in FastLED_SPITFT::GFX and get the same code to work with other TFTs without any modifications.

    As a result, all you need to do is to pass the different tft object, display size, and everything else works.

    Adafruit_ILI9341 *tft = new Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_RST);
    or
    Adafruit_ST7735 *tft = new Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);
    FastLED_SPITFT_GFX *matrix = new FastLED_SPITFT_GFX(matrixleds, mw, mh, mw, mh, tft, 0);

    For comparison, SSD1331 vs ST7735 128x128, ST7735 128x160 from 2 different vendors and slightly different chips, and ILI9341 with a full 320x240 which stretches the limit of this library since it requires 225KB for that many pixels and that only fits on a teensy 3.5/3.6:

    the SSD1331 screen is off as it's not compatible and requires different code to turn on
    the SSD1331 screen is off as it's not compatible and requires different code to turn on

    ST7735R vs ST7735S chip revisions show a few differences
    ST7735R vs ST7735S chip revisions show a few differences

    brightness is also different
    brightness is also different




    code for the 128x128 ST7735 doesn't mis-display the same on the two 128x160 displays
    code for the 128x128 ST7735 doesn't mis-display the same on the two 128x160 displays

    Some demos showing 128x128 and 128x160 on multiple size screens (for physical size comparison):

    7 months later, I was also able to make Framebuffer::GFX working on ESP32 after adding PSRAM support as the fragmented ESP32 memory didn't have the 224KB of required contiguous RAM. It was barely working on teensy 3.6 which didn't have this problem, but it was still very low on RAM to run anything while storing such a big framebuffer. The other issue is that it's slow to push a framebuffer of that size over SPI at 24Mhz, in real life I'm only seeing 5fps or so on ESP32 due to the delays of reading from PSRAM. With more optimizations, it could maybe reach 12fps or more (the actual TFT can do 25fps at 40Mhz and maybe 40fps if wiring allows for 80Mhz):

    ILI9341 is slightly compatible with the ST7735 screens, shown for scale here
    ILI9341 is slightly compatible with the ST7735 screens, shown for scale here

    ESP32 Pro with PSRAM needed to store the ILI9341 framebuffer. Display not too compatible with ST7735
    ESP32 Pro with PSRAM needed to store the ILI9341 framebuffer. Display not too compatible with ST7735

    zoomed in ILI9341 is very nice resolution
    zoomed in ILI9341 is very nice resolution

    Hopefully this is useful to you and by using the FastLED_SPITFT::GFX API, you can re-use your code on TFTs, FastLED::NeoMatrix and SmartMatrix::GFX.

    2019/05/21 Brian Cox at SF's SHN Orpheum Theatre
    π 2019-05-21 01:01 in Outings, Public
    I've also been a fan of Brian Cox since watching his many BBC shows on the universe and kind of chuckled at his last one where he got the BBC to pay for nice vacations around the world and tie it back in a universe show anyway :)

    When I heard he was coming to San Francisco, I figured it would be fun to go see him. Contrary to Neil deGrasse Tyson at San Jose Center for Performing Arts, his talk was a bit more technical, and explained the concept of spacetime in a way that most people could grasp.

    However, about half the talk was also more metaphysical, mostly with his sidekick (whom I didn't know), Robin Ince, who I just found out, is actually a comedian. I wasn't as much of a fan of his part which I thought detracted of other things Brian could have shared with us. That being said, it was still a very enjoyable presentation, very happy to have been.












    2019/05/17 My 5th EDC - Electric Daisy Carnival in Vegas
    π 2019-05-17 01:01 in Clubbing, Edc, Festivals
    Can't believe it's been 5 years since my first EDC already, time flies.
    Having learned from previous years (both EDC with the bus system, and me), I left vegas earlier (17:30 to 17:45 all 3 days), which meant not bus line, and that was great.




    The shortcut through the air force base was not always faster depending on traffic to get there, but was a mostly reliable 1-1.5H trip:

    empty bus line yipee!
    empty bus line yipee!


    nice awacs planes
    nice awacs planes

    Welcome to EDC, 3 more days of fun:









    Basspod
    Basspod

    Quantum Valley, much much nicer this year with pixel forest in the foreground
    Quantum Valley, much much nicer this year with pixel forest in the foreground

    Daisy Lane
    Daisy Lane



    Rainbow Road to Kinetic Field
    Rainbow Road to Kinetic Field




    the calm before the storm
    the calm before the storm






    One fun thing at EDC are the people and costumes:



    fantastic paint job, well done
    fantastic paint job, well done





    The dancers were nice and took pictures with us:







    LED/Neopixel/RGBPanel work:




    low res version of my previous shirt better coverage. Nice job
    low res version of my previous shirt better coverage. Nice job








    I obviously didn't resist the urge to take pictures with others:









    Including friends and people I know from other events:


    Afik and his new sign
    Afik and his new sign


    in his natural habitat
    in his natural habitat

    Hi Nathalie
    Hi Nathalie


    and then, there is this guy, it was his first EDC and he did more than great :)
    and then, there is this guy, it was his first EDC and he did more than great :)

    not causing trouble :)
    not causing trouble :)

    Random burning man-like displays and projects, as well as art:










    Art cars:



    burning man's mayan warrior
    burning man's mayan warrior

    it's a beautiful art car, just not my kind of music
    it's a beautiful art car, just not my kind of music


    VIP Areas (there were many kinds):



















    Then, there was Pixel Forest, really really cool job, especially the music/neopixel tunnel:








    Another great display were the Tesla Coil Dancers (Lords of Lightening?):





    Lots of rides:










    Misc:




    Every day had a parade:






    And yes, EDC was about music of course, let's start with Day #1:


    Quantum Valley (trance) was much improved
    Quantum Valley (trance) was much improved

    Niko Zographos helped open the new stage with a great set
    Niko Zographos helped open the new stage with a great set






    Ali and Fila
    Ali and Fila



    above and beyond was next at circuit grounds
    above and beyond was next at circuit grounds





    only at EDC
    only at EDC



    Gareth Emery was next, for an interesting set that travelled all over
    Gareth Emery was next, for an interesting set that travelled all over




    And there isn't an EDC without fireworks, right after Above and Beyond's set:




    Also, a lot of tech to make this all work:






    Here is a summary of Day #1:

    And brings up to Day #2



    after Craig, I went to check out the competition a bit
    after Craig, I went to check out the competition a bit





    cosmic maedows
    cosmic maedows

    basspod
    basspod



    then back to Quantum Valley for Bryan Kearney
    then back to Quantum Valley for Bryan Kearney


    then Paul Oakenfold took over
    then Paul Oakenfold took over

    Nice suit :)
    Nice suit :)


    Ferry Corsten was next
    Ferry Corsten was next


    Paul van Dyk sadly only got to play a little bit before the stage was shut down for wind
    Paul van Dyk sadly only got to play a little bit before the stage was shut down for wind

    Sadly, there was a lot of wind on day 2 and day3. It caused a shutdown of some stages on the 2nd day:



    Here is a summary of Day #2:

    Then, the last day, the hardest one on your energy bank :)






    Ruben was nice enough to take a picture with me
    Ruben was nice enough to take a picture with me

    I then tried to check out other stages again, got to see a good portion of Say My Name, which was an interesting mix of genres:








    Then, it was time for Armin's set at Kinetic Field:








    Armin was also nice enough to take a few pictures
    Armin was also nice enough to take a few pictures

    After Armin, back to Quantum Valley for Cosmic Gate:



    Marlo:



    And Mark Sixma:


    Here is a summary of Day #3:

    And it was time to get out and catch a shuttle to make my flight (which ended up being cancelled, thank you Southwest):


    eventually, all good things come to an end
    eventually, all good things come to an end


    time to get home and race back to the airport for my flight that I found out got cancelled when my phone started getting signal again
    time to get home and race back to the airport for my flight that I found out got cancelled when my phone started getting signal again

    2019/05/17 A little time in Vegas during EDC
    π 2019-05-17 01:01 in Ntrips, Trips, Vegas
    This was my 5th year going to EDC, which includes time in Vegas of course. This year, I really didn't spend that much time in Vegas given the crazy lineup EDC had. I left around 17:30 each day and came back in the wee hours of the morning and sleep until early afternoon.

    Still, I made it a point to go see a few things one day I got up a bit earlier than planned.





    had a buffet in Paris the first day
    had a buffet in Paris the first day



    I tried the CSI experience the 2nd day. It was so-so, not sure how much longer they'll be there
    I tried the CSI experience the 2nd day. It was so-so, not sure how much longer they'll be there

    Seared foie gras burger though, was worth repeating
    Seared foie gras burger though, was worth repeating


    Luxor had their rave market again
    Luxor had their rave market again








    The Belagio conservatory is nice every time:











    I then walked to the Ceasars to enjoy a few views before heading back to the EDC bus:









    See more images for A little time in Vegas during EDC
    2019/05/11 Silicon Valley Open Studios
    π 2019-05-11 01:01 in Outings
    Jennifer reminded us of the yearly silicon valley open studio weekend, which is a nice way to see all kinds of art around the area, so we did point to point biking to check them out, which was nice both for going around the neighborhood, and checking places out.

    Some of the locations were schools with art teachers, others were art studios, and others still were private residences:

    those were school student projects (not for sale)
    those were school student projects (not for sale)



    interesting art that uses google maps approximate 3D projections as source for paintings
    interesting art that uses google maps approximate 3D projections as source for paintings

    studio in los gatos
    studio in los gatos



    cool animated jewelry art
    cool animated jewelry art









    See more images for Silicon Valley Open Studios
    2019/05/10 Anjunabeats, Midway SF
    π 2019-05-10 01:01 in Clubbing
    A mere week from EDC, Anjunabeats came to San Francisco for the end of their tour.

    Another day at Midway SF, this time with two rooms:




    I only had enough energy for one day, and the first day was the best, with the following DJs in the main room:

  • Tinlicker
  • Grum
  • ALPHA 9 b2b Jason Ross
  • Andrew Bayer b2b Ilan Bluestone
  • Side room:

  • Qrion
  • Spencer Brown
  • Reasonable crowd:




    I definitely liked the sets from Grum, and ALPHA 9 b2b Jason Ross:









    Video Summary:

    See more images for Anjunabeats, Midway SF
    2019/05/07 BBR Private Track Day at Thunderhill
    π 2019-05-07 01:01 in Cars, Ncars
    A mere 6 days after Droid and Friends at Thunderhill, I was back for more with BBR and a small group.

    The other folks had already chartered a flight from Moffett, and given that I was tired and the weather was marginal VFR, I happily joined them:




    We had a handful of cars, which meant mostly clear track and little passing for me, leaving me to focus on improving my skills. Despite the day not being very warm, the track felt sticky and I didn't get that fast (I think I got as low as 1:51 (with bypass) after installing fresh tires). Still, I got to work on my technique, so it wasn't all for naught :)




    On the flight back, the pilot did a quick pass by TH, which I hadn't done myself in a while:





    Here's a single session until I spun:

    2019/05/05 Mountain View à la Carte Festival
    π 2019-05-05 01:01 in Outings
    Another festival. They're not that different anymore, but still fun enough for a rew hours out:













    2019/05/03 Allen Watts at Midway SF
    π 2019-05-03 01:01 in Clubbing, Tfsf
    I'll admit that I didn't know Allen Watts, which was on me. I should have known him, and now I do :)

    Eugene Luu opened for the first 2 hours with a good set. We enjoyed it:




    Allen Watts took over at 23:00 for a 3H set, which was really good. It was 3 hours of goodness, and I'm very happy I got to learn about a DJ I didn't know yet and plays Trance I quite enjoy. Thank you to the folks who organized the event and got him over:








    I really enjoyed what he played, here's a quick summary:

    See more images for Allen Watts at Midway SF
    2019/05/01 Droid and Friends, Thunderhill 5 miles
    π 2019-05-01 01:01 in Cars, Ncars
    Another year, another set of trackdays, starting with Droid and Friends. I wasn't in the best condition that day sadly, so I tried but overall I was tired and distracted. That said, Chris, my guest for the day, didn't seem to mind, and had a good time anyway when we went for a ride:



    I only got down to a meager 3:16 with fresh tires, which was 3sec slower than my previous best time, but I guess that's all I was capable of that day, so I didn't try to push too hard and just enjoyed the day the best I could. Despite those challenges, it was still fun to be back to thunderhill and see my friends there.

    A few pictures:


    Chris was happy with the flight
    Chris was happy with the flight








    Oooops, someone misbehaved at some previous track day ;)
    Oooops, someone misbehaved at some previous track day ;)


    More pages: December 2024 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