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:
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:
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:
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:
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
Table from Mark Estes Video Demo:
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
ST7735R vs ST7735S chip revisions show a few differences
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
ESP32 Pro with PSRAM needed to store the ILI9341 framebuffer. Display not too compatible with ST7735
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.
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.
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:
Welcome to EDC, 3 more days of fun:
Quantum Valley, much much nicer this year with pixel forest in the foreground
One fun thing at EDC are the people and costumes:
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
I obviously didn't resist the urge to take pictures with others:
Including friends and people I know from other events:
and then, there is this guy, it was his first EDC and he did more than great :)
Random burning man-like displays and projects, as well as art:
Art cars:
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
Niko Zographos helped open the new stage with a great set
above and beyond was next at circuit grounds
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
then back to Quantum Valley for Bryan Kearney
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
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
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
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
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
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
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:
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)
interesting art that uses google maps approximate 3D projections as source for paintings
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:
Side room:
Reasonable crowd:
I definitely liked the sets from Grum, and ALPHA 9 b2b Jason Ross:
Video Summary:
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:
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:
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: