Supported Devices? #591
Replies: 11 comments 5 replies
-
Post information on the three you have and perhaps we can help. (It's also
possible that you just got unlucky...)
What are you hoping to do with the devices? That would change my
recommendation.
TL:DR: https://www.adafruit.com/product/5400 pretty much bowls up the
middle of performance and features at a not-unreasonable price.
In broad strokes, right now, we want dual-core (likely a requirement for
the near future), Xtensa (only because the current RISC-V parts are all
single-core), and we do better with chips with external RAM, called PSRAM.
More is better than less, so I'd choose 8MB over 2, but 16 or 32 is a bit
silly.
Let's cross some right off the list, at least with our current state of
support. Anything with a single core: so ESP32-S2 family (Solo, Mini,
WROVER, WROOM etc.) is out, as well as all current RISC-V parts. So
excluded anything starting with a C2, C3, C6, H2. Since it hasn't shipped
yet, but just to get ahead of it, let's speculatively cross ESP32-P4 off
the list, too. It's double core (yay) and RISC-V, so it's promising, but
it's also sure to need some debugging/development that you might not want
to sign up for. Well, as of this writing, it also needs a time machine into
the near future... I'm just writing a document that'll last for a while.
ESP8266 isn't an ESP32 at all, but let's cross if off the list vigorously
because of that fact, plus it's single core and generally too wimpy -
that's why it was replaced with ESp32 to start with.
That really leaves two main families: the 'classic' ESP32 and the ESP32-S3.
Once we upgrade from chips <https://www.espressif.com/en/products/socs> to
modules <https://www.espressif.com/en/products/modules> Within that line,
cross off the ESP32-SOLO family (single core) and generally the WROOM
modules as they tend to not include extra RAM.
I'm a fan of the ESP32-S3,
<https://www.espressif.com/en/products/modules#ESP32-S3> but it has some
excuses. Firstly, cross it off the line if you're building a visualization
product like a Mesmerizer because our lower layer doesn't support that. It
can also have complicated memory configurations that can be hard to
correctly work out from the tiny print in an ad. It also has 2 4-channel
I2S channels, so if you're supporting more than four individuall strands,
channels 3 and 4 can sometimes be off by a fraction of a frame. I like them
because they have on-board USB controllers so if you're designing with
them, you don't need external peripherals for serial bridge to connect to a
host and you can use that for keyboards, mice, external sound, or mass
storage.
So what's left in teh original ESP32
<https://www.espressif.com/en/products/modules#ESP32> "classic" line that's
a good fit? Scanning down the column, we're skipping anything with blanks
for extra RAM.
ESP32-WROVER-E and ESP32-WROVER-IE are favorites. The difference is in
whether they rely on internal or can also use an external RF antenna. Good
pin counts. If you needed external wired ethernet or MIDI channels or
something, I'd pick further down the list in th 'development board' list,
but ESP32-DevKitC
<https://www.espressif.com/en/products/devkits/esp32-devkitc/overview> and
ESP-WROVER-KIT
<https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/get-started-wrover-kit-v3.html>
(and
their immediate work-alikes (clones)) are absolutely solid bets for
hobbyists. They're super parts; they're just showing their age a bit in an
industry with a merciless burn rate. ESP32-WROOM32, ESP32-WROVER(NO
SUFFIX), WROVER-1, and WROVER-B are no longer made though plenty are
currently floating around the industry. (The Espressif lines were well
stocked during "Chipageddon", while some competing lines were stopped.) So
if you're looking to buy a few thousand or design a product around them,
they're problematic.
If you handed me a $10 bill and said "Get me a development board for
NightDriverStrip development" and absolutely no additional information, I'd
come back with an aftermarket ESP32-DevKitC
<https://www.espressif.com/en/products/devkits/esp32-devkitc/overview>. Why
aftermarket? This is an old and conservative product. USB-C has been the
norm for almost ten years now and there's just no reason to torture
yourself with Mini-B (Micro-B?) in modern times. So "basically a USB-C
DevKitC with 2 or 8MB of RAM." - that basic formula can be served from
many, many vendors on Mouser, DigiKey, Ali, Temu, Banggood, Amazon, or
whomever.
For a name brand (in this market) board, the AdaFruit Feather
<https://www.adafruit.com/product/5400>is well known, but I wish they'd use
the Mini module with more RAM.
For a fancier board from Ada, S3 Feather TFT
<https://www.adafruit.com/product/5483> has the newer, fancier CPU core so
it does the USB tricks, like debugging over the same USB cable you're using
to connect to the host anyway (no external JTAG needed!), and a tiny screen
to preview your effects and give some menu control
Ada also has TinyPico <https://www.adafruit.com/product/5028>, if you
really don't need many pins. 4MB PSRAM and USB-C makes it viable to use,
though. If you're building one with digital audio in, IR, and the 13 pins
(or whatever it is) for a LCD matrix panel, you're clearly in the hole on
this one. (I carry similar boarsd in my laptop bag for development...)
Adafruit is awesome and does a lot to support the nerd market. It's hard to
feel bad about paying a little extra in single quantities for products the
vendor actually can describe and will stand behind them.
M5Stack M5 Core 2
<https://shop.m5stack.com/products/m5stack-core2-esp32-iot-development-kit?variant=35960244109476>looks
like a clone of ESP32Box. USB-C. 8MB PSRAM. But it's $50USD, so if you're
tucking it in a corner or are prone to blow things up (hey, no shame
here...) that can be an expensive habit.
In the "bargain bin: don't buy" category, we have at least Heltec WiFi Kit
V3 (emphasis on V3) has a tiny B&W screen and no PSRAM. Wemo D32 Pro still
has USB-B. M5StickC PLUS ESP32-PICO Mini has no PSRAM. This list is far
from exhaustive; theyr'e just ones that appear in our doc in a few places,
but that are problematic in some way. (We tend to hear about things that
DON'T work more often than someone tells us that things worked great.)
What do *I* personally buy by the handfuls - to the point that nearby
friends even hit me up to float them loaners while their orders arrive? My
last order used ESP32-S3 N16R8'
<https://www.aliexpress.us/item/3256805984533705.html>s as filler, when
they were $3.20 each. They're ESP32-S3-DevKitC-1
<https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/hw-reference/esp32s3/user-guide-devkitc-1.html>
clones.
They have comfortable RAM and Flash. They require some futzing with the SDK
that I have in hand, but just haven't submitted. As a fun fact to remember,
when using the Espsressif modules, 2MB RAM ESP32S3's (the N8R2s) us dual
SPI, so it uses fewer pins than the octal SPI in the N16R8's, but is
literally half the speed.) Tip: right now, a few places are offering
welcome deals, limit 1, for $0.99... $5.20 is typical, but sales are
frequent.
When shopping the clone boards, I stay with the ones that use the
Epsressif modules. All the "hard part" is inside that can. The LVDO,
buttons, decouplers, etc. are all just minutes of work for any EE to
reproduce from scratch. There's no RF certification, high speed bus issues,
trace length matching, or other actually complicated development. I've
learned to avoid boards that look approximately like this
<https://www.aliexpress.us/item/3256805406415437.html> or the ones sold by
LuaTOS that take the Espressif part and lay their own external flash and
ram on the fiberglass and do their own antenna design and therefore, RF
certification in your country (calm down with the laughter....) In theory
all of those things CAN be done by someone that's not Espressif. I have a
coffee mug full of boards that say it's often not done well.
Oh. While I'm rambling, if you're just really not great at soldering and
don't want to become great soldering on your shiny new board, consider
something approximately like
https://www.aliexpress.us/item/3256806034331900.html? (I've not used that
specific one - shop it on your own) as that can let you attach the data and
signal pins of your JST connectors
<https://www.aliexpress.us/item/2251832512804128.html?> straight to the
board, leaving it to you to find common ground and power for your strips,
In summary, my own personal recommendations:
USB-C
At least 2MB of PSRAM.
ESP32 (rules above applied) with
ESP32-S3 is higher performance, but somewhat higher grief as the PSRAM
configuration can be fiddly. For a HUB75 configuration (e.g. MESMERIZER
<https://github.com/PlummersSoftwareLLC/NightDriverStrip/blob/ee26c34429cd132b6a11cedaa9a227b88b51cd2a/include/globals.h#L514>)
the S3 is right out.
And in conclusion (coz you thought I'd never stop typing) remember that
this is fundamentally a development product. While we try reasonably hard
to help everyone that gets stuck, not one of us has experience with every
board in the market and all the zany, crazy things that board makers do.
("You attached the WHAT pin to WHERE?!?!") It falls upon you, as a
developer, to spend some time in our doc
<https://github.com/PlummersSoftwareLLC/NightDriverStrip/blob/main/README.md>
(which isn't perfect - we're workign on that, but it will never BE perfect.
PRs accepted.) to pick through our build
<https://github.com/PlummersSoftwareLLC/NightDriverStrip/blob/main/platformio.ini>
files (learning about the "env:" can give you hints what mixtures of
boards + effects have been traveled before) and inside include/globals.h to
learn our project configurations
<https://github.com/PlummersSoftwareLLC/NightDriverStrip/blob/ee26c34429cd132b6a11cedaa9a227b88b51cd2a/include/globals.h#L231>
so you can suss out new combinations like what if you wanted to build an
ATOMLIGHT
<https://github.com/PlummersSoftwareLLC/NightDriverStrip/blob/ee26c34429cd132b6a11cedaa9a227b88b51cd2a/include/globals.h#L640>,
but using a TinyPico? These stanza should provide you the inspiration
needed to hack one up for whatever you're creating or to create a totally
new configuration in custom_globals.h. Sometimes just teasing out where
LED_PIN0 is actually plumbed in the software can be really handy before you
start chasing it with your oscilloscope.
Good luck, welcome, and have fun!
RJL
…On Sun, Jan 14, 2024 at 7:56 PM Brad Dofner ***@***.***> wrote:
How can I tell which ESP32 to purchase? There are several flavors and all
3 I have won't work. I would like to buy an ESP32 devkit somewhere and I
would like to buy one that works first try. I have bad luck with these
things and compatibility. Plus I'm a bit new to this.
—
Reply to this email directly, view it on GitHub
<#591>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACCSD355XSWI4WLTAV6L4FDYOSEGFAVCNFSM6AAAAABB2RPPJOVHI2DSMVQWIX3LMV43ERDJONRXK43TNFXW4OZWGA3TKNZXGE>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
On Wed, Jan 17, 2024 at 9:46 PM Brad Dofner ***@***.***> wrote:
I thought I would just buy one that was on your list. Now I have another
that doesn't boot. This new one I was really hopeful for as it was
specifically on the list above as a "solid bet". It is a DevKitC from
Amazon, probably knock off... It says it is a ESP-WROOM-32. No suffix.
However when I install Umbrella it gets stuck in a boot loop. I will keep
trying different devices? Any other ideas? You gave me a bunch to look for..
Including links to what you actually bought can only help your case. There
are a bunch of kits named "something something DEVKITC" even in
Espressif's own lineup <https://www.espressif.com/en/products/devkits>. Of
the eight that are listed, I'd expect only one
<https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/get-started-devkitc.html>
to work relatively fiddle-free as described above....and I'd expect several
of those to not work *at all, *as I described.
ESP-WROOM-32E doesn't have PSRAM per
https://www.espressif.com/en/products/modules/esp32 Looking in globals.h,
and knowing that we're rebounding from low memory problems for which a fix
was just committed a few days ago, I'd try disabling things like OTA and
WIFI in general, but let's do this in steps in a moment.
This is one reason we recommend first building and debugging DEMO. That's
the simplest build that depends on the least extra peripherals. It lets you
debug one thing at a time.
I don't know why UMBRELLA has a funny COLOR_ORDER. Normal 2812's are GRB.
But let's debug "my colors are whacky" later.
Prescription:
A) Sync to latest tree, sometime after #590 landed
<https://github.com/PlummersSoftwareLLC/NightDriverStrip/commits/main/>.
B) Build and run DEMO. $ run --target upload -e demo
Does it still bootloop?
Y: Show us the filtered (throught he monitor) serial console output. It'll
give a stack trace with a reason for a crash OR it'll say something like
"brownout detected". If the latter, you have power supply issues.
N: Proceed to UMBRELLA.
UMBRELLA:
The hardware configuration looks almost the same[1] so $ run --target
upload -e demo should do. Does that work?
Y, but olors are weird like red and green swapped? Change the COLOR_ORDER
in the umbrella stanza in include/globals.h, rebuild, and reflash.
N: Crashes, but differently. Change ENABLE_WIFI, INCOMING_WIFI_ENABLED,
ENABLE_OTA all to zero. Change MAX_BUFFers to 5. Reflash.
Crash now?
Y: Report back with stack trace of crash from debug build. It may be a
stack trace and/or key debugE prints or failed assertions or such. We need
to see the devices's dying gasps.
N: Enable above one by one until you find the breaking point. Report back
when found.
In case you don't recognize a valid, usable stack trace from a dump, it'll
look something like:
#550 (comment)
If it's hex numbers, build with debug, use a JTAG probe with a debugger
likg GDB, and/or be sure you're using esp32_exception_decoder.
[1] It uses doubles for floating point which are emulated in software
instead of floats, which are done in real hardware. This can't be great for
performance, but let's not go there. I'm just sticking a post-it on an
oddity while I'm staring at this stuff.
|
Beta Was this translation helpful? Give feedback.
-
Hey,
I really appreciate the help!
You give me too much credit on my knowledge! I am a electrical engineer.
The programming side is a bit new to me. Any patience you can afford me is
greatly appreciated. I am not used to doing forums and they way they work,
and I currently don't even have a setup for building firmwares. I, however,
am a quick learner and will figure this out. If you are willing to help me
by answering some random questions, you have my word I will try to be as
least annoying as possible. I certainly appreciate any help your willing
to give me.
Here are just a few absolute beginner questions just to get me started in
the right direction. I'd like to start with the right foot forward.
I have been wanting to learn how to use a build environment to program
MCUs. The ESPHome system is good, but limited.
Now, I know that the best environment for development is Linux and I would
like to dual boot my machine. I'm going to install Linux this week.
Could you recommend a flavor of Linux?
Do I use the provided ESP-IDF from Esprissif for building firmware? Or is
there a better piece of software?
If I need questions answered on getting everything up and running, could
you recommend a patient place for me to post said questions? Or maybe you
like teaching newbies?
Finally, I am devoted at this point to figuring this out. It will provide
me with an opportunity to get a foundation of Linux working and a build
environment up and running. I have a few other projects that would require
this setup as well. I'm not diluted in thinking it will be easy, but I'm
sure it will be fun and satisfying!
Again,
Thank you so much for the help, and though a lot of that went over my head,
a lot of that also made sense. I *will* figure this out.
Brad
**This Email was sent using 37% recycled electrons, and the rest have been
harvested from sustainable sources.
…On Thu, Jan 18, 2024, 5:24 AM Robert Lipe ***@***.***> wrote:
On Wed, Jan 17, 2024 at 9:46 PM Brad Dofner ***@***.***>
wrote:
> I thought I would just buy one that was on your list. Now I have another
> that doesn't boot. This new one I was really hopeful for as it was
> specifically on the list above as a "solid bet". It is a DevKitC from
> Amazon, probably knock off... It says it is a ESP-WROOM-32. No suffix.
> However when I install Umbrella it gets stuck in a boot loop. I will
keep
> trying different devices? Any other ideas? You gave me a bunch to look
for..
>
Including links to what you actually bought can only help your case. There
are a bunch of kits named "something something DEVKITC" even in
Espressif's own lineup <https://www.espressif.com/en/products/devkits>.
Of
the eight that are listed, I'd expect only one
<
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/get-started-devkitc.html>
to work relatively fiddle-free as described above....and I'd expect
several
of those to not work *at all, *as I described.
ESP-WROOM-32E doesn't have PSRAM per
https://www.espressif.com/en/products/modules/esp32 Looking in globals.h,
and knowing that we're rebounding from low memory problems for which a fix
was just committed a few days ago, I'd try disabling things like OTA and
WIFI in general, but let's do this in steps in a moment.
This is one reason we recommend first building and debugging DEMO. That's
the simplest build that depends on the least extra peripherals. It lets
you
debug one thing at a time.
I don't know why UMBRELLA has a funny COLOR_ORDER. Normal 2812's are GRB.
But let's debug "my colors are whacky" later.
Prescription:
A) Sync to latest tree, sometime after #590 landed
<https://github.com/PlummersSoftwareLLC/NightDriverStrip/commits/main/>.
B) Build and run DEMO. $ run --target upload -e demo
Does it still bootloop?
Y: Show us the filtered (throught he monitor) serial console output. It'll
give a stack trace with a reason for a crash OR it'll say something like
"brownout detected". If the latter, you have power supply issues.
N: Proceed to UMBRELLA.
UMBRELLA:
The hardware configuration looks almost the same[1] so $ run --target
upload -e demo should do. Does that work?
Y, but olors are weird like red and green swapped? Change the COLOR_ORDER
in the umbrella stanza in include/globals.h, rebuild, and reflash.
N: Crashes, but differently. Change ENABLE_WIFI, INCOMING_WIFI_ENABLED,
ENABLE_OTA all to zero. Change MAX_BUFFers to 5. Reflash.
Crash now?
Y: Report back with stack trace of crash from debug build. It may be a
stack trace and/or key debugE prints or failed assertions or such. We need
to see the devices's dying gasps.
N: Enable above one by one until you find the breaking point. Report back
when found.
In case you don't recognize a valid, usable stack trace from a dump, it'll
look something like:
#550 (comment)
If it's hex numbers, build with debug, use a JTAG probe with a debugger
likg GDB, and/or be sure you're using esp32_exception_decoder.
[1] It uses doubles for floating point which are emulated in software
instead of floats, which are done in real hardware. This can't be great
for
performance, but let's not go there. I'm just sticking a post-it on an
oddity while I'm staring at this stuff.
—
Reply to this email directly, view it on GitHub
<#591 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AZP5RXJQGNT54BZJTENHAGDYPDZ6LAVCNFSM6AAAAABB2RPPJOVHI2DSMVQWIX3LMV43SRDJONRXK43TNFXW4Q3PNVWWK3TUHM4DCNRXGUYTI>
.
You are receiving this because you authored the thread.Message ID:
<PlummersSoftwareLLC/NightDriverStrip/repo-discussions/591/comments/8167514
@github.com>
|
Beta Was this translation helpful? Give feedback.
-
Could you recommend a flavor of Linux?
Probably not the best place for general computing discussion, but with
Ubuntu being the most popular, you're going to find the most help available
for it.
Do I use the provided ESP-IDF from Esprissif for building firmware? Or is
there a better piece of software?
See
https://github.com/PlummersSoftwareLLC/NightDriverStrip?tab=readme-ov-file#build-pointers
Platformio will install ESP-IDF for you. (I think...I used ESP-IDF before I
used PIO.)
If I need questions answered on getting everything up and running, could
you recommend a patient place for me to post said questions? Or maybe you
Questions installing platformio should probably go to
https://community.platformio.org/
We can help with NightDriver-specific stuff.
Finally, I am devoted at this point to figuring this out. It will provide
me with an opportunity to get a foundation of Linux working and a build
environment up and running. I have a few other projects that would require
this setup as well. I'm not diluted in thinking it will be easy, but I'm
sure it will be fun and satisfying!
It can be fun. Blinky light tutorials are plentiful on the web. At some
level, NightDriverLed is just a LOT of blinky lights. Blinky projects are
good starting places for getting your legs beneath you as it requires you
to focus on getting your toolchain setup. Your gratification is a blinky
light which might not seem like much, but as an EE you know that one LED
plus one resistor is easy and cheap while setting up something like an LCD
panel involves a lot more wiring plus you have to grok datasheets for chip
setup and figuring out setup and hold times and you may need a scope or a
logic analyzer to debug things if they go wrong and then you have to figure
out in software how to render pixels from fonts and a thousand other
things. Blinky lights may feel beneath you as an EE, but fumbling around
with a dozen <https://hutscape.com/tutorials/blinky-platformio-esp32s3>
lines of Arduino code to make a light blink really is the place to start.
https://github.com/platformio/platform-espressif32/blob/develop/examples/arduino-blink/src/Blink.cpp
There are a trainload of video tutorials around, too. It would be
disrespectful here to not call out
https://www.youtube.com/watch?v=sm6QxJkWcSc
.. I know there was a whole series of similar videos, though I can't
testify how helpful they'll be if you're starting from scratch since I had
something like a 40 year head start.
In the name of fairness, I'll also give a hat-tip to the videos from
https://www.youtube.com/channel/UCu7_D0o48KbfhpEohoP7YSQ (for embeded in
general and ESP32 in particular) and the writing on
https://randomnerdtutorials.com/projects-esp32/ . They have paid classes
(about the same price as a decent book) which I can't vouch for, but given
the quality of their free material, I'm sure you could do worse. There's a
reddit group for esp32 where people are routinely mean and will downvote
everything to oblivion, but if you skim subject lines and look for
questions that are well researched, you'll likely find educational answers
nearby. (Lazy questions are just mercilessly slaughtered. It's brutal.)
Once you find your feet a bit, esp32.com is Espressif's own forum and the
land of your own people, there's a good group of introductions to
microcontrollers. This article on that forum was the first hit:
https://www.eevblog.com/forum/other-blog-specific/all-about-esp32-series-part1-part2/
which, at a glance, looks reasonable though a bit dated.
a lot of that also made sense. I *will* figure this out.
For the task at hand, if you can't build code, use the prebuilt versions. I
think the ESP32 DEMO build at
https://plummerssoftwarellc.github.io/NightDriverStrip/ should *just work*
on the board you described.
ESP32-S3-DevKitC is a different board than the one you told us you have.
Code for that one will not work on the board you said you have. This is a
bit of a trap because I swear Espressif names all their chips and boards
"ESP32" even when they're totally unrelated. The upcoming ESP32-P4 isn't
even a 32-bit processor, but they're keeping the 'ESP32' branding for it.
🤷🏻
Good luck on your journey.
RJL
…
Brad
**This Email was sent using 37% recycled electrons, and the rest have been
harvested from sustainable sources.
On Thu, Jan 18, 2024, 5:24 AM Robert Lipe ***@***.***> wrote:
> On Wed, Jan 17, 2024 at 9:46 PM Brad Dofner ***@***.***>
> wrote:
>
> > I thought I would just buy one that was on your list. Now I have
another
> > that doesn't boot. This new one I was really hopeful for as it was
> > specifically on the list above as a "solid bet". It is a DevKitC from
> > Amazon, probably knock off... It says it is a ESP-WROOM-32. No suffix.
> > However when I install Umbrella it gets stuck in a boot loop. I will
> keep
> > trying different devices? Any other ideas? You gave me a bunch to look
> for..
> >
>
> Including links to what you actually bought can only help your case.
There
> are a bunch of kits named "something something DEVKITC" even in
> Espressif's own lineup <https://www.espressif.com/en/products/devkits>.
> Of
> the eight that are listed, I'd expect only one
> <
>
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/get-started-devkitc.html>
>
> to work relatively fiddle-free as described above....and I'd expect
> several
> of those to not work *at all, *as I described.
>
> ESP-WROOM-32E doesn't have PSRAM per
> https://www.espressif.com/en/products/modules/esp32 Looking in
globals.h,
> and knowing that we're rebounding from low memory problems for which a
fix
> was just committed a few days ago, I'd try disabling things like OTA and
> WIFI in general, but let's do this in steps in a moment.
>
> This is one reason we recommend first building and debugging DEMO.
That's
> the simplest build that depends on the least extra peripherals. It lets
> you
> debug one thing at a time.
>
> I don't know why UMBRELLA has a funny COLOR_ORDER. Normal 2812's are
GRB.
> But let's debug "my colors are whacky" later.
>
> Prescription:
> A) Sync to latest tree, sometime after #590 landed
> <https://github.com/PlummersSoftwareLLC/NightDriverStrip/commits/main/>.
> B) Build and run DEMO. $ run --target upload -e demo
>
> Does it still bootloop?
> Y: Show us the filtered (throught he monitor) serial console output.
It'll
> give a stack trace with a reason for a crash OR it'll say something like
> "brownout detected". If the latter, you have power supply issues.
> N: Proceed to UMBRELLA.
>
> UMBRELLA:
> The hardware configuration looks almost the same[1] so $ run --target
> upload -e demo should do. Does that work?
> Y, but olors are weird like red and green swapped? Change the
COLOR_ORDER
> in the umbrella stanza in include/globals.h, rebuild, and reflash.
> N: Crashes, but differently. Change ENABLE_WIFI, INCOMING_WIFI_ENABLED,
> ENABLE_OTA all to zero. Change MAX_BUFFers to 5. Reflash.
> Crash now?
> Y: Report back with stack trace of crash from debug build. It may be a
> stack trace and/or key debugE prints or failed assertions or such. We
need
> to see the devices's dying gasps.
> N: Enable above one by one until you find the breaking point. Report
back
> when found.
>
> In case you don't recognize a valid, usable stack trace from a dump,
it'll
> look something like:
>
>
#550 (comment)
> If it's hex numbers, build with debug, use a JTAG probe with a debugger
> likg GDB, and/or be sure you're using esp32_exception_decoder.
>
> [1] It uses doubles for floating point which are emulated in software
> instead of floats, which are done in real hardware. This can't be great
> for
> performance, but let's not go there. I'm just sticking a post-it on an
> oddity while I'm staring at this stuff.
>
> —
> Reply to this email directly, view it on GitHub
> <
#591 (comment)>,
> or unsubscribe
> <
https://github.com/notifications/unsubscribe-auth/AZP5RXJQGNT54BZJTENHAGDYPDZ6LAVCNFSM6AAAAABB2RPPJOVHI2DSMVQWIX3LMV43SRDJONRXK43TNFXW4Q3PNVWWK3TUHM4DCNRXGUYTI>
> .
> You are receiving this because you authored the thread.Message ID:
>
<PlummersSoftwareLLC/NightDriverStrip/repo-discussions/591/comments/8167514
> @github.com>
>
—
Reply to this email directly, view it on GitHub
<#591 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACCSD3ZBTV6VIXVKIPH3CM3YPEYQDAVCNFSM6AAAAABB2RPPJOVHI2DSMVQWIX3LMV43SRDJONRXK43TNFXW4Q3PNVWWK3TUHM4DCNZQGIZDG>
.
You are receiving this because you commented.Message ID:
<PlummersSoftwareLLC/NightDriverStrip/repo-discussions/591/comments/8170223
@github.com>
|
Beta Was this translation helpful? Give feedback.
-
Thank you again for going above and beyond. Once I get started, I tend to
move quick. You will be seeing me on the forum again soon enough I am
certain. You have given me more than enough direction to get to the point
where I can start getting NightDriver to build and hopefully run. I'm
getting one of the boards you linked to me directly from Espressif so I
have something to play with that I know works. That way I'll know when it's
my fault something doesn't work! You are absolutely right about start small
and build your understanding with baby steps. That way once you get to the
complicated "adult" stuff it's a piece of cake.
Your a kind and generous human and I appreciate you. Your words were
invaluable and I really do appreciate that as well.
Take care and be well!
Brad
**This Email was sent using 37% recycled electrons, and the rest have been
harvested from sustainable sources.
…On Thu, Jan 18, 2024, 5:27 PM Robert Lipe ***@***.***> wrote:
>
>
> Could you recommend a flavor of Linux?
Probably not the best place for general computing discussion, but with
Ubuntu being the most popular, you're going to find the most help
available
for it.
Do I use the provided ESP-IDF from Esprissif for building firmware? Or is
> there a better piece of software?
See
https://github.com/PlummersSoftwareLLC/NightDriverStrip?tab=readme-ov-file#build-pointers
Platformio will install ESP-IDF for you. (I think...I used ESP-IDF before
I
used PIO.)
If I need questions answered on getting everything up and running, could
> you recommend a patient place for me to post said questions? Or maybe
you
>
Questions installing platformio should probably go to
https://community.platformio.org/
We can help with NightDriver-specific stuff.
Finally, I am devoted at this point to figuring this out. It will provide
> me with an opportunity to get a foundation of Linux working and a build
> environment up and running. I have a few other projects that would
require
> this setup as well. I'm not diluted in thinking it will be easy, but I'm
> sure it will be fun and satisfying!
It can be fun. Blinky light tutorials are plentiful on the web. At some
level, NightDriverLed is just a LOT of blinky lights. Blinky projects are
good starting places for getting your legs beneath you as it requires you
to focus on getting your toolchain setup. Your gratification is a blinky
light which might not seem like much, but as an EE you know that one LED
plus one resistor is easy and cheap while setting up something like an LCD
panel involves a lot more wiring plus you have to grok datasheets for chip
setup and figuring out setup and hold times and you may need a scope or a
logic analyzer to debug things if they go wrong and then you have to
figure
out in software how to render pixels from fonts and a thousand other
things. Blinky lights may feel beneath you as an EE, but fumbling around
with a dozen <https://hutscape.com/tutorials/blinky-platformio-esp32s3>
lines of Arduino code to make a light blink really is the place to start.
https://github.com/platformio/platform-espressif32/blob/develop/examples/arduino-blink/src/Blink.cpp
There are a trainload of video tutorials around, too. It would be
disrespectful here to not call out
https://www.youtube.com/watch?v=sm6QxJkWcSc
.. I know there was a whole series of similar videos, though I can't
testify how helpful they'll be if you're starting from scratch since I had
something like a 40 year head start.
In the name of fairness, I'll also give a hat-tip to the videos from
https://www.youtube.com/channel/UCu7_D0o48KbfhpEohoP7YSQ (for embeded in
general and ESP32 in particular) and the writing on
https://randomnerdtutorials.com/projects-esp32/ . They have paid classes
(about the same price as a decent book) which I can't vouch for, but given
the quality of their free material, I'm sure you could do worse. There's a
reddit group for esp32 where people are routinely mean and will downvote
everything to oblivion, but if you skim subject lines and look for
questions that are well researched, you'll likely find educational answers
nearby. (Lazy questions are just mercilessly slaughtered. It's brutal.)
Once you find your feet a bit, esp32.com is Espressif's own forum and the
land of your own people, there's a good group of introductions to
microcontrollers. This article on that forum was the first hit:
https://www.eevblog.com/forum/other-blog-specific/all-about-esp32-series-part1-part2/
which, at a glance, looks reasonable though a bit dated.
a lot of that also made sense. I *will* figure this out.
For the task at hand, if you can't build code, use the prebuilt versions.
I
think the ESP32 DEMO build at
https://plummerssoftwarellc.github.io/NightDriverStrip/ should *just
work*
on the board you described.
ESP32-S3-DevKitC is a different board than the one you told us you have.
Code for that one will not work on the board you said you have. This is a
bit of a trap because I swear Espressif names all their chips and boards
"ESP32" even when they're totally unrelated. The upcoming ESP32-P4 isn't
even a 32-bit processor, but they're keeping the 'ESP32' branding for it.
🤷🏻
Good luck on your journey.
RJL
>
>
> Brad
>
> **This Email was sent using 37% recycled electrons, and the rest have
been
> harvested from sustainable sources.
>
> On Thu, Jan 18, 2024, 5:24 AM Robert Lipe ***@***.***> wrote:
>
> > On Wed, Jan 17, 2024 at 9:46 PM Brad Dofner ***@***.***>
> > wrote:
> >
> > > I thought I would just buy one that was on your list. Now I have
> another
> > > that doesn't boot. This new one I was really hopeful for as it was
> > > specifically on the list above as a "solid bet". It is a DevKitC
from
> > > Amazon, probably knock off... It says it is a ESP-WROOM-32. No
suffix.
> > > However when I install Umbrella it gets stuck in a boot loop. I will
> > keep
> > > trying different devices? Any other ideas? You gave me a bunch to
look
> > for..
> > >
> >
> > Including links to what you actually bought can only help your case.
> There
> > are a bunch of kits named "something something DEVKITC" even in
> > Espressif's own lineup <https://www.espressif.com/en/products/devkits>.
> > Of
> > the eight that are listed, I'd expect only one
> > <
> >
>
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/get-started-devkitc.html>
>
> >
> > to work relatively fiddle-free as described above....and I'd expect
> > several
> > of those to not work *at all, *as I described.
> >
> > ESP-WROOM-32E doesn't have PSRAM per
> > https://www.espressif.com/en/products/modules/esp32 Looking in
> globals.h,
> > and knowing that we're rebounding from low memory problems for which a
> fix
> > was just committed a few days ago, I'd try disabling things like OTA
and
> > WIFI in general, but let's do this in steps in a moment.
> >
> > This is one reason we recommend first building and debugging DEMO.
> That's
> > the simplest build that depends on the least extra peripherals. It
lets
> > you
> > debug one thing at a time.
> >
> > I don't know why UMBRELLA has a funny COLOR_ORDER. Normal 2812's are
> GRB.
> > But let's debug "my colors are whacky" later.
> >
> > Prescription:
> > A) Sync to latest tree, sometime after #590 landed
> > <https://github.com/PlummersSoftwareLLC/NightDriverStrip/commits/main/>.
>
> > B) Build and run DEMO. $ run --target upload -e demo
> >
> > Does it still bootloop?
> > Y: Show us the filtered (throught he monitor) serial console output.
> It'll
> > give a stack trace with a reason for a crash OR it'll say something
like
> > "brownout detected". If the latter, you have power supply issues.
> > N: Proceed to UMBRELLA.
> >
> > UMBRELLA:
> > The hardware configuration looks almost the same[1] so $ run --target
> > upload -e demo should do. Does that work?
> > Y, but olors are weird like red and green swapped? Change the
> COLOR_ORDER
> > in the umbrella stanza in include/globals.h, rebuild, and reflash.
> > N: Crashes, but differently. Change ENABLE_WIFI,
INCOMING_WIFI_ENABLED,
> > ENABLE_OTA all to zero. Change MAX_BUFFers to 5. Reflash.
> > Crash now?
> > Y: Report back with stack trace of crash from debug build. It may be a
> > stack trace and/or key debugE prints or failed assertions or such. We
> need
> > to see the devices's dying gasps.
> > N: Enable above one by one until you find the breaking point. Report
> back
> > when found.
> >
> > In case you don't recognize a valid, usable stack trace from a dump,
> it'll
> > look something like:
> >
> >
>
#550 (comment)
> > If it's hex numbers, build with debug, use a JTAG probe with a
debugger
> > likg GDB, and/or be sure you're using esp32_exception_decoder.
> >
> > [1] It uses doubles for floating point which are emulated in software
> > instead of floats, which are done in real hardware. This can't be
great
> > for
> > performance, but let's not go there. I'm just sticking a post-it on an
> > oddity while I'm staring at this stuff.
> >
> > —
> > Reply to this email directly, view it on GitHub
> > <
>
#591 (comment)>,
>
> > or unsubscribe
> > <
>
https://github.com/notifications/unsubscribe-auth/AZP5RXJQGNT54BZJTENHAGDYPDZ6LAVCNFSM6AAAAABB2RPPJOVHI2DSMVQWIX3LMV43SRDJONRXK43TNFXW4Q3PNVWWK3TUHM4DCNRXGUYTI>
>
> > .
> > You are receiving this because you authored the thread.Message ID:
> >
>
<PlummersSoftwareLLC/NightDriverStrip/repo-discussions/591/comments/8167514
> > @github.com>
> >
>
> —
> Reply to this email directly, view it on GitHub
> <
#591 (comment)>,
> or unsubscribe
> <
https://github.com/notifications/unsubscribe-auth/ACCSD3ZBTV6VIXVKIPH3CM3YPEYQDAVCNFSM6AAAAABB2RPPJOVHI2DSMVQWIX3LMV43SRDJONRXK43TNFXW4Q3PNVWWK3TUHM4DCNZQGIZDG>
> .
> You are receiving this because you commented.Message ID:
>
<PlummersSoftwareLLC/NightDriverStrip/repo-discussions/591/comments/8170223
> @github.com>
>
—
Reply to this email directly, view it on GitHub
<#591 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AZP5RXJHEJE5S4B4CQDYZCDYPGOUZAVCNFSM6AAAAABB2RPPJOVHI2DSMVQWIX3LMV43SRDJONRXK43TNFXW4Q3PNVWWK3TUHM4DCNZUG4YTM>
.
You are receiving this because you authored the thread.Message ID:
<PlummersSoftwareLLC/NightDriverStrip/repo-discussions/591/comments/8174716
@github.com>
|
Beta Was this translation helpful? Give feedback.
-
It's worth reiterating a few things I've meant to say if I didn't. A) If you're comfortable on MacOS or Windows, there's really no harm in staying there. These days, especially since Windows can run Linux as a process, Windows is really no longer the land of embedded tool poverty. All of these fancy cross development environments work equally well on all three OSes. Fifteen years ago, before there there POSIX-y build environments - before OS/X and before Windows 7 (or something - no need to correct me) it was true that most embedded dev was the domain of UNIX/Linux, but that's less of a given these days. Cross compilers hosted anywhere are pretty much the norm, so don't feel like you need to torture yourself and learn vi or emacs as a right of passage. (I'm Team MacOS, but a UNIX guy of many years...) B) Now that you call it out, Espressif's own board collection is a bit sad. They really are targeting evaluation boards to let people start development while their own hardware is being formalized. If you're wire-wrapping a board until your PCBs come back, using an old mini-B cable might not be terrible. Thus, with the guidelines that I typed earlier this week - for you or someone else - were "1) A board with PSRAM and 2) A board with USB-C". If I look at their "ESP32-nothing" line of value boards, it looks like the null set. :-( That Adafruit Feather with PSRM and USB-C doesn't look bad at all if you don't want to gamble on clones. But this made me think more about PSRAM "requirement" - probably mostly because I'm the one that ends up debugging PSRAM issues - so I ran through our effecs lists and marked the ones that seem to REQUIRE PSRAM. Of the included effects collections, I scanned p*ini and looked for dependencies on PSRAM: This is probably a bit of an open wound right now as we're rebounding from some memory issues where our memory usage - which is known to be close to the edge - was pushed over the edge and rendered a lot of our combination unstable. That seems to be behind us as of the most recent commit to the tree. So I may have oversold psram as a requirement. This is my own preferences when buying a generic board (and see other thread about "S3") and see prices of $0.34 for 2 vs. 8MB of PSRAM I just don't see a reason to go down much. HOWEVER: if you've bought four boards and can't get anything working and can't describe the problems well enough to get them working, I understand you wanting to play conservative. The board I mentioned does have some fiddle factory. Buy the Espressif board. You cank blink a LOT of lights without PSRAM. Or buy the Feather 5400. I should quit typing long answers and go fix that... |
Beta Was this translation helpful? Give feedback.
-
That *almost* looks like a road well traveled, Matthew. If you look in
config.ini it looks like that's a cousin the board that David uses for that
very combination:
[env:spectrum]
extends = dev_m5stick-c-plus
There are comments around like "; Requires the M5 Stick C Plus (note the
Plus)".
The web site
https://shop.m5stack.com/products/m5stickc-plus2-esp32-mini-iot-development-kit
says that "Plus 2 is an iterative version...." but doesn't really readily
display WHAT's different. A reddit question asking the different got no
answer.
So without pulling schematics, I'd expect that board to probably work with
most of the (many) "m5" recipes in platformio.ini, but I wouldn't die of
shock if there is, say, a difference in internal pinouts somewhere, for
example.
If you're determined enough, we can surely get through it toghether. and
hopefully we can start to build up some doc of what works well and what
needs changed...
Being based on Pico, you won't have a lot of pins to extend your own
attachments, but perhaps that's not a goal.
…On Fri, Jan 26, 2024 at 7:33 PM Matthew Shirey ***@***.***> wrote:
What about the M5StickC Plus2? The specs say 8MB SPI flash, 2MB PSRAM. I’m
try to build the 16x48 spectrum visualizer that David demonstrated.
thanks,
M.
—
Reply to this email directly, view it on GitHub
<#591 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACCSD37S42RNNMCVSZGJDI3YQRKN5AVCNFSM6AAAAABB2RPPJOVHI2DSMVQWIX3LMV43SRDJONRXK43TNFXW4Q3PNVWWK3TUHM4DENRSHA4DQ>
.
You are receiving this because you commented.Message ID:
<PlummersSoftwareLLC/NightDriverStrip/repo-discussions/591/comments/8262888
@github.com>
|
Beta Was this translation helpful? Give feedback.
-
I think the M5StickC Plus2 is actually an interesting development. There's a comparison between the non-2 and 2 on the latter's product page at m5stack.com. Two differences stand out to me: the 2 has 2MB PSRAM compared to 520KB of SRAM on the non-2, and the 2 has 8MB of flash space instead of the 4MB of the non-2. For us the former is probably the most relevant, as we've been hitting the RAM ceiling on the M5StickC Plus in very recent times. |
Beta Was this translation helpful? Give feedback.
-
If you want to tinker with that board, look inside plat*ini and
inc*/globals.h. There's support for a lilygo-t-display-s3. I have no idea
if the "long" is different in any way beyond having a different LCD.
Treat this as the hardware definition. It's PROBABLY close enough. Even if
the screen and buttons are wrong, it'll probably be close enough to get
blinky lights.
Focus first on making the tdisplay-s3-demo work:
; LILYGO T-Display-S3
[env:lilygo-tdisplay-s3-demo]
extends = dev_lilygo-tdisplay-s3
build_flags = -DDEMO=1
-DENABLE_WIFI=1
-DUSE_SCREEN=0
; ${psram_flags.build_flags} ; HACK!
${dev_lilygo-tdisplay-s3.build_flags}
Readgign globals.h, DEMO specialcases LILYGOTDISPLAYS3 and puts the LED pin
on GPIO 21. So if you see references to using pin GPIO5, it's probably
actually on 21 on that board.
You might get lucky and see a rainbow on your strip. Celebrate!
Making a Spectrum configuration should be just copying the above and
changing the name and the effects line:
; LILYGO T-Display-S3
[env:lilygo-tdisplay-s3-spectrum]
extends = dev_lilygo-tdisplay-s3
build_flags = -DSPECTRUM=1
-DENABLE_WIFI=1
-DUSE_SCREEN=0
; ${psram_flags.build_flags} ; HACK!
${dev_lilygo-tdisplay-s3.build_flags}
Figuring out SCREEN and BUTTONS is up to you. :-) Removing the
"USE_SCREEN=0" is certainly a start.
If it's like the TTGO product, you may have to add
${ttgo_deps.lib_deps} I'm kind of baffled how [dev_lilygo-tdisplay-s3]
works without TFT_eSPI in lib_deps, but let's cross that when we get to it.
Lets get you to rainbow (DEMO) and 3 panels of spectrum (SPECTRUM) first.
That board looks like uses half-pitch connectors, but if you're serious
about trying to avoid soldering a good search terms to know is "dupont
cables" and "solderless breadboard". Get an assortment of M-M, F-F, F-M
and you can slip them OVER wires and into sockets or the plug on that stick
and such. You might not be able to totally avoid soldering (esp. with
those two products), but you can probably do less.
Enjoy!
… Message ID:
<PlummersSoftwareLLC/NightDriverStrip/repo-discussions/591/comments/8297111
@github.com>
|
Beta Was this translation helpful? Give feedback.
-
Thanks so much! I'm looking at the code a bit tonight, but I won't be able
to spend any serious time on it until the weekend. With all of this
information, I'm confident I can get *something* working.
I'm trying to avoid too much soldering at this point, but I do want to
approve the skill. Thank you for the search terms. I do have some of
those cables and a few of those breadboards. I've been tinkering with
electronics for a few years now but have never gone too deep. Wago
connectors have been a recent blessing for me.
Anyway, thanks again. I'll let you know how things go this weekend.
M.
…On Mon, Jan 29, 2024 at 9:57 PM Robert Lipe ***@***.***> wrote:
If you want to tinker with that board, look inside plat*ini and
inc*/globals.h. There's support for a lilygo-t-display-s3. I have no idea
if the "long" is different in any way beyond having a different LCD.
Treat this as the hardware definition. It's PROBABLY close enough. Even if
the screen and buttons are wrong, it'll probably be close enough to get
blinky lights.
Focus first on making the tdisplay-s3-demo work:
; LILYGO T-Display-S3
[env:lilygo-tdisplay-s3-demo]
extends = dev_lilygo-tdisplay-s3
build_flags = -DDEMO=1
-DENABLE_WIFI=1
-DUSE_SCREEN=0
; ${psram_flags.build_flags} ; HACK!
${dev_lilygo-tdisplay-s3.build_flags}
Readgign globals.h, DEMO specialcases LILYGOTDISPLAYS3 and puts the LED pin
on GPIO 21. So if you see references to using pin GPIO5, it's probably
actually on 21 on that board.
You might get lucky and see a rainbow on your strip. Celebrate!
Making a Spectrum configuration should be just copying the above and
changing the name and the effects line:
; LILYGO T-Display-S3
[env:lilygo-tdisplay-s3-spectrum]
extends = dev_lilygo-tdisplay-s3
build_flags = -DSPECTRUM=1
-DENABLE_WIFI=1
-DUSE_SCREEN=0
; ${psram_flags.build_flags} ; HACK!
${dev_lilygo-tdisplay-s3.build_flags}
Figuring out SCREEN and BUTTONS is up to you. :-) Removing the
"USE_SCREEN=0" is certainly a start.
If it's like the TTGO product, you may have to add
${ttgo_deps.lib_deps} I'm kind of baffled how [dev_lilygo-tdisplay-s3]
works without TFT_eSPI in lib_deps, but let's cross that when we get to it.
Lets get you to rainbow (DEMO) and 3 panels of spectrum (SPECTRUM) first.
That board looks like uses half-pitch connectors, but if you're serious
about trying to avoid soldering a good search terms to know is "dupont
cables" and "solderless breadboard". Get an assortment of M-M, F-F, F-M
and you can slip them OVER wires and into sockets or the plug on that stick
and such. You might not be able to totally avoid soldering (esp. with
those two products), but you can probably do less.
Enjoy!
> Message ID:
>
<PlummersSoftwareLLC/NightDriverStrip/repo-discussions/591/comments/8297111
> @github.com>
>
—
Reply to this email directly, view it on GitHub
<#591 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAAGN2GAM7N52WZT7HXIAQ3YRCDVVAVCNFSM6AAAAABB2RPPJOVHI2DSMVQWIX3LMV43SRDJONRXK43TNFXW4Q3PNVWWK3TUHM4DEOJXGYZTQ>
.
You are receiving this because you commented.Message ID:
<PlummersSoftwareLLC/NightDriverStrip/repo-discussions/591/comments/8297638
@github.com>
|
Beta Was this translation helpful? Give feedback.
-
Thanks so much! I'm looking at the code a bit tonight, but I won't be able
Good. Those two files really are the key ones for device/effect pairings.
I'm not always thrilled with how things are split up (why is LED_PIN0 a
trait of the EFFECT in config.h and not a trait of the BOARD definition in
platformio.h?) but I think I finally have my head around it enough to help
people through it. I know I've written explanations of it in depth if you
need more info. It's in the archives.
As a final tip, if you can't figure out where something is getting defined,
find the last place it's conditionally defined and add something crazy to
the top of it.
#define LED_PIN0 CHICKENSOUP
#ifndef LED_PIN0 // Which pin the LEDs are connected to
#define LED_PIN0 5
#endif
Now you'll get an error telling you the line number which of ONE the 33
possible previous definitions of LED_PIN0 was REALLY being used.
grep "define.*LED_PIN0" include/globals.h | wc -l
34
information, I'm confident I can get *something* working.
Me, too. Blinking LEDs shouldn't be far out of reach. The screen and
buttons may take some fiddling. But you're here for the blinkies.
approve the skill. Thank you for the search terms. I do have some of
When I restarted the hobby, I'd watch the Youtubers jamming those little
wires in the board and wanted to scream at them because nobody ever named
them. The stiff pre-bent ones were easy to find, but until you know what
they're called, they're REALLY hard to search for. :-)
Good luck.
… Message ID:
<PlummersSoftwareLLC/NightDriverStrip/repo-discussions/591/comments/8297929
@github.com>
|
Beta Was this translation helpful? Give feedback.
-
How can I tell which ESP32 to purchase? There are several flavors and all 3 I have won't work. I would like to buy an ESP32 devkit somewhere and I would like to buy one that works first try. I have bad luck with these things and compatibility. Plus I'm a bit new to this.
Beta Was this translation helpful? Give feedback.
All reactions