Flash ESP projects with your browser! (ESP Web Tools)

Поділитися
Вставка
  • Опубліковано 2 кві 2022
  • Did you know it was possible to flash a project to your ESP directly from your web browser? In this video I’m going to talk about why I think this is incredibly useful, what projects it suits for and show you how to set it up.
    ---------------------------------
    Links:
    ---------------------------------
    My Web Flash Tools Example Repo: github.com/witnessmenow/ESP-W...
    ESP Web Tools: esphome.github.io/esp-web-tools/
    Kevin Darrah's video on cloning ESP32: • How To Read from ESP32...
    ---------------------------------
    My Discord:
    ---------------------------------
    Come hang out and talk about this video or any project you are working on!
    / discord
    ---------------------------------
    Github Sponsorship:
    ---------------------------------
    I have set up a Github Sponsorship page, it's similar style thing to patreon. Github sponsorships help support videos like these plus the open source projects I create.
    github.com/sponsors/witnessme...
    Some people have said they would prefer a once off way of supporting the channel, here is a Paypal link if you would prefer that!
    www.paypal.me/bloughyt
    ---------------------------------
    Other Platforms:
    ---------------------------------
    Twitter: @witnessmenow - / witnessmenow
    Instagram - / brian_lough
    Instructables: witnessmenow - www.instructables.com/member/...
    ---------------------------------
    My Tools & Kit*:
    ---------------------------------
    Ender 3 Pro 3d Printer - I got one of these recently and I love it!
    - UK : amzn.to/31bebXT
    - US : amzn.to/2IlSLid
    Ts-100 Soldering Iron - I have this a couple of years and I love it, I thinking about getting a second!
    - UK : amzn.to/2nlOF23
    - US : amzn.to/2jDcyxl
    Logitech C920 HD 1080p Pro webcam - I use one of these for my videos
    - UK: amzn.to/2pnxk9Z
    - US: amzn.to/2BsLMiF
    *= Affiliate Links
  • Наука та технологія

КОМЕНТАРІ • 71

  • @BrianLough
    @BrianLough  2 роки тому

    Not sure I called the button that does the flashing the right name once 😅

    • @insproad
      @insproad 2 роки тому

      Hi Brian, I need yourr help for spotify led matrix code. Im trying your example but not work also give an error.

  • @atomic14
    @atomic14 2 роки тому +1

    Really need to do this for my projects - great work!

  • @maicod
    @maicod 2 роки тому

    superb explanation and buildup of your video Brian

  • @UnexpectedMaker
    @UnexpectedMaker 2 роки тому

    Nicely done! Such a great feature!

  • @makermelissa
    @makermelissa 2 роки тому +1

    Hi thanks for making a video on this. I'm the person who originally wrote the underlying code that programs the ESP devices. ESP Web Tools actually uses esp-web-flasher to write to the device, which is forked from Adafruit WebSerial ESPTool, which is what I wrote.

    • @BrianLough
      @BrianLough  2 роки тому +2

      Thanks for the contribution Melissa! The beauty of open source!

  • @MitzpatrickFitzsimmons
    @MitzpatrickFitzsimmons 2 роки тому

    This is EXCELLENT!
    PROGRESS in motion

  • @michaelestrada2777
    @michaelestrada2777 2 роки тому

    Love your videos Brian !

  • @fredflintstone1
    @fredflintstone1 2 роки тому

    Great video Brian 🙂

  • @tqejoaprh2088
    @tqejoaprh2088 2 роки тому

    Thanks for all that information ❤️

  • @nigel1964
    @nigel1964 2 роки тому

    interesting thanks for the work involved.

  • @AnotherMaker
    @AnotherMaker 2 роки тому

    This is fantastic. I would definitely be down for helping on this in any way I can.

  • @Colin_Ames
    @Colin_Ames 2 роки тому

    Great video, as always.

  • @MariusHeier1
    @MariusHeier1 2 роки тому

    Great work!

  • @ChunkySteveo
    @ChunkySteveo 2 роки тому +1

    Awesome video!

  • @toblum
    @toblum 2 роки тому +1

    I really think this is a big step forward to make it easier for unexperienced makers to get a project up and running. And to make it "accessible" for more people. Even for more experienced makers like me (who clicked "upload" countless times in the past) this is just a big timesaver.
    I asked myself a while ago if it might be possible to get a "universal uploader" running. A webpage where you just enter the URL of a binary that's living somewehere in the internet (maybe in the releases section of a repo) and that generates a dynamic uploader page. Could be working when you generate the manifest dynamically. Maybe I'll give it a try. Could be very useful.

    • @BrianLough
      @BrianLough  2 роки тому

      I was just talking about on my discord about possibly generating a manifest and binaries automatically using something like GitHub actions, something to add to my ever growing to do list!

  • @kissingfrogs
    @kissingfrogs 2 роки тому +1

    awesome

  • @jesserockz
    @jesserockz 2 роки тому +1

    Improv serial defines the protocol for sending the wifi credentials to the device, your project code just needs to be able to receive them and save them how it sees fit.

    • @BrianLough
      @BrianLough  2 роки тому

      Is there any simple examples of being implemented? I didn't see any examples of integrating the code into a project on the GitHub page.
      When I was researching this video it only supported Bluetooth, which I thought was probably too many hoops to jump through, but was happy to see they have the USB option now, I think it makes much more sense.

  • @lefauve
    @lefauve 2 роки тому +3

    Very interesting. If you can host your firmware on a platform with server scripting (PHP, ...) you can burn custom parameters into the binary file at download time. That could be useful for custom text or hardware configuration, but I wouldn't recommend it for wifi settings or anything sensible because those parameters will have to be sent to your server before they can be embedded in the firmware binary (a malicious website could access them).

    • @weargoggles
      @weargoggles 2 роки тому +1

      There’s no need for a server, it’s possible to do this in the user’s browser.

    • @mortenmoulder
      @mortenmoulder 2 роки тому

      One major problem with handling anything like this server-side: Can you trust the author? Sending my WiFi credentials is honestly not a big deal, but if the firmware gets sent back from the backend, there's really nothing stopping the author from tampering with it. Meaning, the author could add code to the binary, that turns the device into an HID device, and once plugged in, it will keylog the user (look at the 'OMG cable' for example).

    • @lefauve
      @lefauve 2 роки тому

      @@weargoggles I didn't thought of that but you're right, with modern browsers it should be possible. I might give it a try next time I do something requiring patching binary files on the fly.

    • @lefauve
      @lefauve 2 роки тому

      @@mortenmoulder you're right, but since the whole idea is to get the binary directly from the website to your device without installing anything except the board driver, the author can already do this, even if you don't send any parameter to be burn into it.

    • @mortenmoulder
      @mortenmoulder 2 роки тому

      @@lefauve If it's public available binaries, they should provide a checksum for them, so people can download and verify. Then they can't mess with it. But yep, completely true otherwise

  • @N0bbyN0bbs
    @N0bbyN0bbs 2 роки тому +1

    Im glad that bitluni mentioned you in some of his Videos. :) Nice Videos!

    • @BrianLough
      @BrianLough  2 роки тому +1

      Thanks! And thanks to bitluni 😅

  • @jameszahary
    @jameszahary 2 роки тому +2

    I used your written procedure a few months ago to setup a One-Click-Installer of my video recorder app. Now people are writing me that they can get the esp32 programmed and running, but cannot figure out the WiFiMan to set up the ssid and password. 😀 So I added some code to read ssid and password from a text file they can put on sd card. Its always something.

  • @keithglynn9237
    @keithglynn9237 2 роки тому

    Thank you, thank you ! I will look into these. I am a newbie with Arduino/ESP32 and I just wanted to set up a scrolling text followed by a stationary "M" for my Daughter's college graduation cap. Sounds simple for many but extremely frustrating for me as far as the coding part. I just began to resort to the Jinx led creator which allows me to set up any led function I want, and transfer it via Artnet wifi to my ESP 32. I had it working great, but it keeps losing the program at power down. The Jinx files are very strange, I read that they were origionally intended for the first Garmin GPS navigation units. Believe me, I'm not being lazy. I've spent hours and days trying to write scripts through Arduino but I just don't understand the coding...some people use things like i - ++ among other weird symbols I dont see in the book, let alone trying to set up the X -Y matrix and shift registers. I thought this would be fun but it's getting downright annoying. Anyway, thanks for your videos and information. Perhaps someday my brain will grasp some of this and I will continue making projects.

  • @PaulusSchoutsen
    @PaulusSchoutsen 2 роки тому

    Besides configuring WiFi, Improv is also used to detect the firmware that's running on the device. If it detects the same firmware, it won't erase flash.
    If a firmware has no Improv, we can't know if it's a new install or an update, so need to prompt the user if they want to erase.

    • @BrianLough
      @BrianLough  2 роки тому

      I don't think the current solution is that bad, it is just one extra option, but I just think there is plenty of scenarios where erasing the flash isn't important for the end user, for example projects where the only configuration is the wifi credentials, there isn't really any major advantage to having a wiped flash.
      I dunno maybe it's just something I've got used to over the years, even when uploading new projects from code it doesn't erase the flash.

  • @TheTinkerDad
    @TheTinkerDad 2 роки тому

    A nice video as usual Brian - but the topic makes me wonder about security especially nowadays. Call me paranoid but I look at browsers as the primary entry for hackers on my PC and the idea of writing firmware from the browser gives me the creeps.

    • @BrianLough
      @BrianLough  2 роки тому

      Its a concern, but unless you are auditing/verifying every piece of code used in a project (be in the project itself and all of the libraries) it's probably not any less secure!

  • @alexmontesjr198
    @alexmontesjr198 4 місяці тому

    HEY BUD !!IS THERE ARE WAY TO DISPLAY STOCK TICKERS ON MY 8 X 32 LED DISPLAY USING WLED OR ANY OTHER SOFTWARE? I'VE BEEN LOOKING EVERYWHERE ON THE WEB AND HAVEN'T BEEN ABLE TO FIND ANYTHING. THNX FOR ANY TIP YOU CAN GIVE ME

  • @kaihatkeinenaccount
    @kaihatkeinenaccount 2 роки тому +1

    If I understand you correctly I can read the flash of nearly any ESP chip and maybe can decompile the code?

    • @BrianLough
      @BrianLough  2 роки тому +2

      Yes, using the method Kevin darrah showed in his video I link to, you get the binary off the esp and from there you can attempt to decompile it. There are some encrypted flash options, but I'm not familiar with them

    • @kaihatkeinenaccount
      @kaihatkeinenaccount 2 роки тому +1

      @@BrianLough Thank you

  • @insproad
    @insproad 2 роки тому

    Hi Brian, I need yourr help for spotify led matrix code. Im trying your example but not work also give an error.

  • @mortenmoulder
    @mortenmoulder 2 роки тому

    Should also note that another prerequisite is the driver. I recently wanted to install WLED on an ESP8266, but I had some issues. After Googling, it turns out I needed the CP210x driver (after installing Windows 11).

    • @BrianLough
      @BrianLough  2 роки тому

      I mention needing the USB driver at 0:55 Useful note to add to the webpage that is created for flashing though

    • @mortenmoulder
      @mortenmoulder 2 роки тому

      @@BrianLough Oh I missed that. Woops

  • @davidthomson2044
    @davidthomson2044 Рік тому

    Hello Brian , i am wondering if you can help a complete novice . Having seen wled lights , i thought they were so cool . i for the life of me don't know how to flash esp modules for that . I am not computer savvy at all , at 63 with arthritis in the hands i really want to do this as a hobby .and i hope you can maybe take some time to help , thanks in advance .

  • @paulbritton187
    @paulbritton187 2 роки тому

    How secure is this? If, say, I was browsing the web, with an ESP32 plugged into a USB socket on my PC, could a malicious website reprogram it in the background without me knowing?

    • @BrianLough
      @BrianLough  2 роки тому

      I haven't audited the code for vulnerabilities or anything but it should be secure. The scenario you described is not possible as the user needs to specify what port to allow the browser to connect to, you can see it around 11:42 in the video

    • @MatsK007
      @MatsK007 Рік тому

      Yes that is kind of the reason that Mozilla (Creator of Firefox) uses for not implementing WebSerial in Firefox.

  • @nateeyoutube9
    @nateeyoutube9 10 місяців тому

    How about ESP-IDF What should I do?

  • @stefanu8551
    @stefanu8551 2 роки тому

    Why don't you export the binaries directly from Arduinio IDE:
    Sketch -> Export Compiled Binary
    or
    Ctrl+Alt+S

    • @BrianLough
      @BrianLough  2 роки тому

      I haven't used that in a while, but would it give you the offsets?

    • @stefanu8551
      @stefanu8551 2 роки тому

      Unfortunately no.

    • @BrianLough
      @BrianLough  2 роки тому

      It seems to me like offsets don't change if your config stays the same so it might be a good option still, so thanks for the reminder!

  • @TracyNorrell
    @TracyNorrell 2 роки тому +1

    I fear the vulnerabilities people will face in a world of abandoned web flash projects.

    • @BrianLough
      @BrianLough  2 роки тому

      Fair enough point, it's not any worse than a project specifying a particular older version of a library though.
      With GitHub pages method, at least you can also go look at the repo to see when the binary was last updated 😅

    • @TracyNorrell
      @TracyNorrell 2 роки тому

      @@BrianLough agree. Just something to keep in mind as our IoT profile increases

  • @Rees3901Gmail
    @Rees3901Gmail 2 роки тому

    surely this is a gamechanger ? this is like OTA update on steroids!!

    • @BrianLough
      @BrianLough  2 роки тому +1

      It's very similar to OTA but has the advantage of not needing anything to be on the esp go begin with!
      I think it will be very useful to some people at least

  • @gerardjacobs8900
    @gerardjacobs8900 2 роки тому

    Prⓞм𝕠𝕤𝐌 🙏

  • @michaelestrada2777
    @michaelestrada2777 2 роки тому +1

    First !

  • @Oh-ou4lp
    @Oh-ou4lp 2 роки тому

    I like it but all this lazyness will lead to death

    • @BrianLough
      @BrianLough  2 роки тому +1

      Can never be too lazy 😅

  • @cernejr
    @cernejr 2 роки тому

    Not impressed - this seems like a solution without a problem. Make debugging easier - that is a true pain point.

    • @BrianLough
      @BrianLough  2 роки тому +1

      I completely disagree that that this is a solution without a problem, as mentioned in the video , being able to install a project without needing to install any software or setup any code is extremely useful.

  • @steveb7600
    @steveb7600 2 роки тому

    Bring back the old image or I'm unsubscribing

    • @BrianLough
      @BrianLough  2 роки тому +1

      How could you do this to me Steve? I thought we were closer than that!

  • @sergeigranin7345
    @sergeigranin7345 4 місяці тому

    bla-bla-bla......