-
Very new here, I just used the web installer through chrome to flash the Ledstrip v040 to my ESP-WROOM-32 device, that seems to be successful, despite some funkiness with the wifi connection setup, it ultimately is connected to my wifi and the device log is showing the correct ip address in the scroll. When I click the "visit device" link to go to the device ip address in the browser, I get a connection refused message. After waiting more than 30 minutes, it still refuses to connect. Am I missing something or does this not work with this device for some reason? Any insight or assistance would be appreciated. |
Beta Was this translation helpful? Give feedback.
Replies: 11 comments 16 replies
-
The on-board web server is fairly heavy-weight. Not all of the ESP-WROOM-32
configurations (that's more of a package description than an actual
silicon + peripherals description) have the needed memory, so it's recently
been turned off in the default builds for many projects. You didn't say
what project you actually built or installed, so it's hard for us to say.
Our boot + server start is on the order of seconds to maybe tens of
seconds if it's slow to get a DHCP lease. Nothing takes as much as a minute
to get going.
If you're watching the serial console, you'll see something approximately
like (I'm hand-editing one of mine that's handy, but too chatty to just
coyp-paste....)
(W) (DrawLoopTaskEntry)(C1) Entering main draw loop!
(I) (setup)(C1) Making initial attempt to connect to WiFi.
(I) (ConnectToWiFi)(C1) WiFi credentials passed for SSID
"ElderOfTheInternet"
(I) (ConnectToWiFi)(C1) Setting host name to NightDriverStrip...
(W) (ConnectToWiFi)(C1) Connecting to Wifi SSID: "ElderOfTheInternet" -
ESP32 Free Memory: 219932, PSRAM:8337927, PSRAM Free: 8187815
(W) (ConnectToWiFi)(C1) Not yet connected to WiFi, waiting...
> Launching Network Thread. Mem: 219884, LargestBlk: 208884, PSRAM Free:
8187779/8337911, >> Launching ColorData Thread. Mem: 210040, LargestBlk:
200692, PSRAM Free: 8187503/8337831, (W) (NotifyJSONWriterThread)(C1) >>
Notifying JSON Writer Thread
(W) (ColorDataTaskEntry)(C1) Started color data server!
l(W) (ConnectToWiFi)(C1) Connected to AP with BSSID: "74:AC:B9:4E:6A:40",
received IP: 192.168.2.13
*(I) (ConnectToWiFi)(C1) Starting Web Server...(I) (begin)(C1) Embedded
html file size: 451(I) (begin)(C1) Embedded jsx file size: 9645(I)
(begin)(C1) Embedded ico file size: 6434(I) (begin)(C1) Embedded timezones
file size: 17834(I) (begin)(C1) Connecting Web Endpoints(I) (begin)(C1)
HTTP server started(I) (ConnectToWiFi)(C1) Web Server begin called!*...and
a 5 second heartbeat looking approximately like
(I) (loop)(C1) WiFi: WL_CONNECTED, IP: 192.168.2.13, Mem: 177052,
LargestBlk: 167924, PSRAM Free: 8186851/8337767, LED FPS: 30 LED Bright:
100%, LED Watts: 1, CPU: 011%, 001%, FreeDraw: 0.021
The "Starting Web Server" bit is the hint that it's, well, starting the web
server.
The ENABLE_WEBSERVER flag in globals.h that goes with your build determines
if it's off or on.
The default 'DEMO' project, aiming to be super simple and start on
ANYTHING, does not turn it on, for example. (Look in that file in the #if
DEMO block for validation of that.) Targets that we KNOW have more memory,
we're more likely to have that turned on.
Hopefully that'll help align your expectations with reality. (It's probably
not clear in our doc and we've just recently changed the default behaviour
in builds like Spectrum where if we're installing to a board without a lot
of memory, just managing 48*16 pixels + other features waspushing memory
beyond limits.) It's an area we're working on.
If there's something we can answer about a specific configuration, let us
know and we'll try to help.
P.S. Example of the guessing game of how much memory a "ESP32-WROOM" chip
has. This is ONE of the several ESP32 devices. :-/ I have a change in
progress that tries to better identify what one really really has so we can
better help. I literally have a microscope and have trouble sussing it out
at times.
[image: image.png]
…On Tue, Nov 14, 2023 at 12:01 PM DapOrp ***@***.***> wrote:
Very new here, I just used the web installer through chrome to flash the
Ledstrip v040 to my ESP-WROOM-32 device, that seems to be successful,
despite some funkiness with the wifi connection setup, it ultimately is
connected to my wifi and the device log is showing the correct ip address
in the scroll. When I click the "visit device" link to go to the device ip
address in the browser, I get a connection refused message. After waiting
more than 30 minutes, it still refuses to connect. Am I missing something
or does this not work with this device for some reason? Any insight or
assistance would be appreciated.
—
Reply to this email directly, view it on GitHub
<#513>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACCSD36LFUEASF36A62ABXTYEOWWZAVCNFSM6AAAAAA7LG7N5KVHI2DSMVQWIX3LMV43ERDJONRXK43TNFXW4OZVHA2TCNJXHA>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
I've been giving this some thought, and I may add some sort of rudimentary indicators to the project labels in the Web Installer project drop-down. "Spectrum" for the M5StickC Plus would then become something like "Spectrum (N,W)", where a small legend on the web page explains that "N" means "has WiFi enabled" and "W" means "has webserver enabled". Still thinking about what features to include in the labels, though. |
Beta Was this translation helpful? Give feedback.
-
DapOrp, I was trying to say that some of the prebuilt configurations have
the builtin webserver and some don't. I didn't know what you originally
had, so I couldn't authoritatively say. I wasn't even totally sure that you
were running from precooked binaries or building yourself. Now I think we
have enough information to say for sure that you're running the 'ledstrip'
project and when we look in the configuration, we see that configuration
has been deemed too small to support the Webserver by default. If you had a
board with additional memory, we could prescribe a recipe for turning it
on, but it's probably off for a reason. The specific decision is made at:
https://github.com/PlummersSoftwareLLC/NightDriverStrip/blob/cc99495f9df46c8b1b185d9477825ba26d1cee85/include/globals.h#L714
If you're experienced with git and vscode, installing and building is maybe
a ten minute project.
You could try the WROVERKIT configuration. It also lights up a single strip
on pin 5. It expects more memory to be available and thus turns on lots of
things. That may be pouring 6 liters of code into your 5 liter bucket,
though, and it may fail in glorious - or worse, subtle - ways. Still, if
you want to try that before you start downloading compilers and things,
it's a low risc thing to try.
Rutger, I'm also planning to refine our startup banner (and add it to the
debugger command list) to be a little more clinical on what is and is not
baked into the currently running code. You've seen this week alone that a
disproportionate amount of our support time goes into simply figuring out
what the person physically has and what configuration they're actually
running.
…On Tue, Nov 14, 2023 at 1:05 PM DapOrp ***@***.***> wrote:
Thanks, it sounds like you're saying that you cannot use the
"NightDriverLED ESP32 Installation Wizard" to install through the web
browser (chrome/edge) and I will instead have to go through the more low
level "compile it yourself" approach?
What I was trying to install was Device: ESP32 Project: ledstrip
From this URL: https://plummerssoftwarellc.github.io/NightDriverStrip/
—
Reply to this email directly, view it on GitHub
<#513 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACCSD35ARKYYPNSKFGEGA43YEO6IBAVCNFSM6AAAAAA7LG7N5KVHI2DSMVQWIX3LMV43SRDJONRXK43TNFXW4Q3PNVWWK3TUHM3TKNRYHEZDG>
.
You are receiving this because you commented.Message ID:
<PlummersSoftwareLLC/NightDriverStrip/repo-discussions/513/comments/7568923
@github.com>
|
Beta Was this translation helpful? Give feedback.
-
Now that we know what you're running, it's not speculation; it's a fact.
The precompiled LEDSTRIP binaries does not have the web server built in.
I offered a similar configuration that MIGHT work.
I pointed you to the line of code to change so that if you're interested in
tackling your own build, that's where you can turn it on. The potential
gotcha is that it may be off for a reason. Webserver is big and the
low-spec boards are really tight on memory. Enabling the web server MAY
overextend your memory requirement, but if you're running an otherwise
humble configuration (e.g. not 4,000 LEDs and with the other various
servers turned off) it's possible that it'll work well enough to get on.
At the very least, building it yourself will allow you to manually change
(in a MacGuyver kind of way sometimes) the flags that you would have
otherwise set in the web server.
It's a choose your own adventure game!
…On Tue, Nov 14, 2023 at 1:21 PM DapOrp ***@***.***> wrote:
Perhaps that's the problem I'm having if the package on the web installer
does not have the webserver enabled, I presume there's no other way to
enable it post-flashing other than to compile it myself and re-install?
—
Reply to this email directly, view it on GitHub
<#513 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACCSD35SOI2EA6MMVXF35W3YEPABZAVCNFSM6AAAAAA7LG7N5KVHI2DSMVQWIX3LMV43SRDJONRXK43TNFXW4Q3PNVWWK3TUHM3TKNRZGA2DI>
.
You are receiving this because you commented.Message ID:
<PlummersSoftwareLLC/NightDriverStrip/repo-discussions/513/comments/7569044
@github.com>
|
Beta Was this translation helpful? Give feedback.
-
Now I'm confused.... Isn't the LEDSTRIP env for receiving colour data over wifi? Doesn't it just have the basic status effect by default? Why would it ever need the web server to be built in? Is this a case where we are trying to please all of the people all of the time? Just my 2 cents.... |
Beta Was this translation helpful? Give feedback.
-
For once, we're agreeing. That's the fundamental root of the OP's problem.
The details of LEDSTRIP are a byproduct. I recommended he look at LEDSTRIP
just so he can satisfy his curiosity of what the webserver looked like
BEFORE he began the journey of download platformio and fetching compilers
and git and so on. It was the smallest configuration that I *think* will
work on his hardware that'll get him a webserver.
It's hard for a developer to figure out what's included or not in any given
build. The deck is just stacked again that person grabbing prebuilt
binaries from the webserver. OP spent time trying to debug the web server
in the build he downloaded, not realizing there wasn't one.
Expressing that to our partners - via doc, via the downloader thing, via
messages displayed on bootup, via commands you can type into the secret
lair (which also may or may not be present...), via smoke signals or
whatever, is something we can improve and something we CAN improve. We've
helped the doc a lot, but the onboarding process to our project is still
pretty rough.
Oh, and to my "kitchen sink", add "requires PSRAM" as that's another real
world case where honestly we're not doing a good job expressing the rules
because we often don't KNOW the rules ourselves. Maybe -DBOARD_HAS_PSRAM is
a flag we set, but maybe we're getting it from the base board definition
we're inheriting from. Does any given configuration *require* PSRAM? It's
hard to say. Does LEDSTRIP run on OP's "ESP-WROOM-32 device"? Well, it's
complicated.
So, yes, reducing that onboarding confusion should be a priority for the
project. I have some changes in flight that'll help, but I know there's
more to do.
Rutger, can you check with PlummerLLC HR and check the status of our
seasonal interns? I meant to pick up a couple of spare ones.... :-)
…On Wed, Nov 15, 2023 at 5:09 AM Rutger van Bergen ***@***.***> wrote:
I don't think anybody is saying LEDSTRIP necessarily should include the
web server - at least not in the default set of configurations as included
in the project's "main" platformio.ini. What *is* true is that for
someone using the web installer it's currently not clear which
environments/projects that the web installer can flash include which
features, unless one also digests platformio.ini (and actually,
web_projects.json as well). That's something I think we could aim to add,
to reduce confusion on that point.
—
Reply to this email directly, view it on GitHub
<#513 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACCSD36M25AEVK3REHUYJ7LYESPHPAVCNFSM6AAAAAA7LG7N5KVHI2DSMVQWIX3LMV43SRDJONRXK43TNFXW4Q3PNVWWK3TUHM3TKNZVG44TK>
.
You are receiving this because you commented.Message ID:
<PlummersSoftwareLLC/NightDriverStrip/repo-discussions/513/comments/7575795
@github.com>
|
Beta Was this translation helpful? Give feedback.
-
I agree with you. That's be helpful. Is there a wiki-like thing we can
collaborate on? Even single-sentence descriptions would help a lot, I
think. We can loop back for requirements .
Here is the list of targets we currently "support":
https://gist.github.com/robertlipe/5c261cb8e4a3ae80cf96af6a8dd94b76
I think most of us in this project - heck, in open source in general - are
here to be at something somewhat different form our day routines, whatever
that is.
…On Wed, Nov 15, 2023 at 6:06 AM mikejohnau ***@***.***> wrote:
Maybe the [Device web UI and API] component of the readme.md just needs
some clarification. Instead of "On devices with WiFi, NightDriverStrip can
start a webserver" we could say "On devices with WiFi where environments
have multiple effects and the hardware supports it, NightDriverStrip can
start a webserver. If the webserver is not available on your device then it
was not preconfigured for your hardware in the web installer."
I also agree that if the web server is not available in the build that the
"visit device" link should probably not be included on the web installer.
Is it worthwhile including a description of the different environments in
the What is NightDriverStrip section:
; demo Simple WS2812B strip controller, runs a rainbow on PIN 5
; ledstrip Waits for color data over wifi, so used for home displays, etc.
Outputs a status effect to PIN 5. Requires NightDriverServer for additional
effects.
; spectrum M5StickCPlus project, a spectrum analyzer, on 48x16 WS2812B
matrix - can be built on other ESP32 hardware but requires the WS2812B
matrix.
; mesmerizer HUB75 info panel with audio effects, weather, info, etc. To
date only supports 64x32 Hub75 panels.
or words similar to that....? Just to set expectations.
Rutger, I apologise for all my requests, commentary and lack of I'll fix
this and submit it.. I work in Product Marketing for a very large
electronics company and am lucky enough to get ask our dev teams to do this
kind of stuff and make these changes every day (I just have to submit
several test user cases, financial business cases and market appraisals as
well) . One reason that I love this project is that given time I can
probably, with a little help and guidance, add some value and contribute
some (very basic) code which is something that I can't do in my worklife.
—
Reply to this email directly, view it on GitHub
<#513 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACCSD3YBXN6ZVVOMGHOYYW3YESV55AVCNFSM6AAAAAA7LG7N5KVHI2DSMVQWIX3LMV43SRDJONRXK43TNFXW4Q3PNVWWK3TUHM3TKNZWGI3DM>
.
You are receiving this because you commented.Message ID:
<PlummersSoftwareLLC/NightDriverStrip/repo-discussions/513/comments/7576266
@github.com>
|
Beta Was this translation helpful? Give feedback.
-
@mikejohnau <https://github.com/mikejohnau> You don't have to apologize
for making requests. The flipside of that is that I won't apologize for
looking at them and then deciding for myself how I prioritize working on
them - which may actually translate to "never". :)
That's the thing about working for free. It's easier to play the two faces
of the "I'm crazy busy, but that's not in the top hundred things that I
care about for the project that I think I can positively effect" and
"That's the dumbest thing I've ever heard and I just don't wanna" - the
trick is that they're actually two faces of the same card.
I'll be transparent about the fact that I prefer automation over manual
work - it's part of me being the lazy programmer I just mentioned in
another comment - even though I have manually written quite a bit of the
documentation that's here now.
I think that major doc you wrote (which I linked to just last night!) just
had to be done by a human and you were the right human for that. As a
Tribe Elder (refers to breadth of experience, not age), it's just a
necessary part of making new Rutgers in the project.
...but maybe we can split the difference like adding decorators into
platformio.ini (where they're more likely to stay in sync) that get
extracted by some Python or something into a table.
Thanx for the Wiki flip. I'll try to add some wordy words to get the ball
rolling. Mike, can you take that list of builds and toss in the
descriptions you know? We can let the organization/presentation speak to us
once we feel we've collected the interesting traits of some representative
subset of projects/
OTOH, we - like most other projects - have a steady stream of people that
say "I wish I could help, but I'm not a programmer". Perhaps we should try
to more actively recruit/wrangle them (capture them into the seasonal
intern program :-) ) to help with the doc. It's a bit unfortunate that
those people that have most of it in in their heads are the ones more
likely to be working on more "valuable" things but we can encourage people
to check links, help with grammar, consistency, formatting or even just
capturing the details of whatever they DID just work on ("Hey, I built one
of those and the output is on Pin 25, not pin 5...") or the things that
took them an hour to find that they wish they'd known before ("Theres a
teesny switch that doesn't look like a switch that needs to point toward
the USB port for serial comms on the left port to work.") to hopefully help
the next person.
For example, building one or two sentence descriptions of our effects is an
area where a volunteer could move the ball pretty far in an evening.
Perhaps we should try to more actively capture help in this area.
This is another reason I was asking about a way to capture the visual data
- it would be great to include screen shots or video captures of our
effects effecting. Oooh, the board itself has access to a filesystem and
the leds[] array. What if it captured frames 60-180 each into standalone
files that were just each successful frame of the RGB pixbuf array? (I
think that's calla a BMP file?) that we could then fetch to Real Computers
and make animated GIFS that resized, compressed, and animated them. Let the
builds document their own effects... They could even write the shell script
to do the fetch "curl
http://192.168.2.13/effects/Infinity/frame_60.bmp\ncurl 192 ...
frame_179.tmp\n...".
That's an interesting idea. I wonder if it's going to make my top one
hundred list. It does fit that overall goal of doing a little work to let
automation do the grunt work.
We have no shortage of ideas in this project, for sure...but we're gettin
increasingly far off topic from DapOrp's original help request. We should
admonish ourselves. ;-)
… Message ID:
<PlummersSoftwareLLC/NightDriverStrip/repo-discussions/513/comments/7578588
@github.com>
|
Beta Was this translation helpful? Give feedback.
-
I think I've found a way to let PlatformIO and GCC compute the defines for an environment for us, allowing us to autogenerate the indicators in the project drop-down in the web installer for what key features are enabled in each of the web installer builds. It is somewhat hacky but only uses documented and stable features of both PlatformIO and GCC. I'll put a PR together to propose its implementation - this may take a few days. |
Beta Was this translation helpful? Give feedback.
-
I promise to double the profit sharing on this completely free, open-source codebase… and then include my eternal thanks. ;-)
Its really rewarding seeing people tinker with and enjoy this project!
- Dave
… On Nov 18, 2023, at 6:09 AM, mikejohnau ***@***.***> wrote:
Davepl should give you guys a raise...lol
—
Reply to this email directly, view it on GitHub <#513 (reply in thread)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AA4HCF4QP26YEW3IJVUGXMLYFC6QTAVCNFSM6AAAAAA7LG7N5KVHI2DSMVQWIX3LMV43SRDJONRXK43TNFXW4Q3PNVWWK3TUHM3TMMBWGY2DG>.
You are receiving this because you are subscribed to this thread.
|
Beta Was this translation helpful? Give feedback.
-
I've opened #527 to make the web installer indicate which key features are enabled for each web installer build. I've set up the core of the PR to be reusable for other purposes - like the generation of documentation. I'll leave the actual implementation of those to others, at least for now. :) |
Beta Was this translation helpful? Give feedback.
That's correct.