#417

Поделиться
HTML-код
  • Опубликовано: 28 авг 2024
  • Writing code faster? Managing IOT devices remotely? All things we would like, of course. When a few viewers wrote that they discovered a new kid in the block that promises a new view on these topics, I had to try it. What did I discover? Let’s have a closer look.
    My second channel: / @hb9bla
    I am a proud Patreon of @GreatScott!, @ElectroBOOM , @Electronoobs , @EEVblog , and others.
    Links:
    ESP32 board: s.click.aliexp... or amzn.to/3GFCPDm
    Jaguar installation: github.com/toi...
    Examples: docs.toit.io/
    Libraries: libs.toit.io/
    BME280 example: docs.toit.io/p...
    Benchmarks: github.com/toi...
    IOTAppstory: iotappstory.com/
    The links above usually are affiliate links that support the channel (no additional cost for you).
    Supporting Material and Blog Page: www.sensorsiot.org
    Github: www.github.com...
    My Patreon Page: / andreasspiess
    Discord: / discord
    If you want to support the channel, please use the links below to start your shopping. No additional charges for you, but I get a commission of your purchases to buy new stuff for the channel
    My Amazon.com shop: www.amazon.com...
    For Banggood bit.ly/2jAQEf4
    For AliExpress: bit.ly/2B0yTLL
    For Amazon.de: amzn.to/2r0ZCYI
    For Amazon UK: amzn.to/2mxBaJf
    For ebay.com: ebay.to/2DuYXBp
    www.facebook.c...
    / spiessa
    www.instructab...
    Please do not try to email me. This communication channel is reserved for my primary job
    As an Amazon Associate, I earn from qualifying purchases
    #no#midroll#ads

Комментарии • 468

  • @remy44444
    @remy44444 2 года назад +10

    Nice honourable mention that many want to avoid the cloud.
    Another marvelous solution I ended up using in my projects is EspHome, it's an home assistant integration.
    It's very agile and work very very well, you can even write your own c++ code if needed.
    Great bonus for being integrated into home assistant is that you can have all your graphs or node red integration completely out if the box, as well as you can use the right piece of software for the write project ( such as espcam server + motion for time lapse ) and everything in one place ALL LOCALLY & all your projects in the same place!
    If you haven't already, you should really try it out!

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +4

      I made a video where I compared ESPhome with Tasmota.

    • @zyghom
      @zyghom 2 года назад

      I agree: ESPHome is going into really nice direction - I have around 50 devices on ESPHome. However, I found out that any device, that is a bit more complicated, I end up programming with Arduino - it is probably my fault, that I am not able to find the solution on ESPHome.
      One disadvantage of ESPHome: no support for newer MCU - even ESP32-S2 is not working there yet.

    • @gg-gn3re
      @gg-gn3re 2 года назад

      yea toit is dead on arrival for DIYers.. home assistant + esphome has no competition currently and he does have videos.

  • @peter.stimpel
    @peter.stimpel 2 года назад +11

    Nice one, thanks a lot. Me, sitting down and watching TOIT progress before considering a switch away from C++ (I love curly brackets)

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +9

      Most of us will probably wait because we have a lot invested in the Arduino framework. This is the problem of all new technology, I think...

    • @leopoldomolina1664
      @leopoldomolina1664 2 года назад

      @@AndreasSpiess Hi! I am a beginner in the MCU world with a commercial project in mind, but I haven't decided yet if going deep with C/C++ (because in part I love the low level abstraction of electronic things) or using Micropython because I have started with Python some months ago. It looks that for the prototype development it should be quicker to go with Micropython, but some folks say me that sooner than later I will need to rewrite everything in C/C++ to make a better use of MCU resources (ESP32). My entrepreneurship is on the field of smart homes with frequent firmware updates (OTA), and data on a blockchain infrastructure. What could be better for the blockchain part? to know C++, Python or definitely another language?). BTW, I am thinking to use Ethereum for the blockchain and its Solidity language, but I don't know if some knowledge in Python o C++ will be helpful with it (courses that I have seen for Solidity are very hard linked to JavaScript :_( What a mess!! ).

    • @HannesMrg
      @HannesMrg 2 года назад

      @@AndreasSpiess definitely. Doing things differently is not enough. New technology has to be groundbreakingly better to be successful.

  • @lohikarhu734
    @lohikarhu734 2 года назад +1

    Your 'usual' well-done intro to a new topic... this must take you several days to develop! Danke/merçi/grazie!

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +1

      Yes, this video took more time than others.

  • @howardelton6273
    @howardelton6273 2 года назад +13

    Thank you for this video. There are some interesting trade-offs to consider when choosing between Arduino IDE and Toit (other than learning something new). Arduino have made a huge effort to have one idea that can be used for multiple architectures so it is easier to jump between different types of hardware, so there is some future proofing there. Toit on the other hand is just ESP32 and we don't know if or how fast they will react to new chips in the future. But the architecture in Toit in undeniably superior with containers and wifi updating. I am hoping that in the future this type of architecture will be decoupled from the specific language (i.e. choose which container type/language to use without changing the architectue). That would be game changer if it moved in that direction.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +4

      I think the idea of those interpreters was to abstract the hardware. Which is much easier for standardized devices like a PC where all have more or less the same interface classes.
      In small devices, at least for now, the fight is more in the periphery than in the instruction set. This makes decoupling more difficult. But maybe we will encounter a similar standardization also in those small chips... Then the port of an application should be easier.

    • @startup-company
      @startup-company 2 года назад

      ​@@AndreasSpiess Hi Andreas. I sent you a message on FB. Can you please let me know if it is ok or not? Thank you

    • @xiaorulez
      @xiaorulez Год назад

      Need followup video... "Pricing" now comes into play

  • @myusernameislongerth
    @myusernameislongerth 2 года назад +3

    Ruby and Python had a baby and named it Toit :D

  • @jvgorkum
    @jvgorkum 2 года назад +2

    Thanks for adding a new thing I have to learn :) let us see when the libraries become available

    • @AndreasSpiess
      @AndreasSpiess  2 года назад

      I agree. I hope they will add them fast...

  • @AndersJackson
    @AndersJackson 2 года назад +6

    Thanks for making this video, as I didn't knew about Toit.
    Auto completion should be standard in any software. It has been around Emacs the last 30 years or so. And have been standard in bash and other command lines at least since 1990:th beginning.
    100.repeat construction can be tracked back to SmallTalk from around 1980 and also in several programming languages since then like Objective C and Ruby. Yes, numbers are also considered to be object in those languages. Proper object orientation are cool (where we have messages, not methods etc).
    That is, the object 100 is recieving the repeat message which take the code block as argument.

    • @KasperLund
      @KasperLund 2 года назад +3

      We are definitely inspired by Smalltalk :)

    • @AndersJackson
      @AndersJackson 2 года назад

      @@KasperLund låter strålande! 🙂

  • @SarahKchannel
    @SarahKchannel 2 года назад +8

    it sounds like intended simplification, that complicates things... Plus the biggest hassle of python was the tab spacing, 're-implementing' that flaw into something new, seems like recreating dinosaurs.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +1

      As I said, not everybody likes the tabs. I can live with it because I format my C programs more or less the same way. So I just save some curly braces. Plus the compiler is very fast and discovered mistakes quickly.

    • @gunter1626
      @gunter1626 2 года назад

      Actually the YAML syntax is not exactly a "flaw" - you'll see it more and more often as it has benefits over other notations. Agree that it requires a bit of re-adjustment. It won't disappear.

  • @noweare1
    @noweare1 2 года назад +1

    The amount of libraries out there that work with the arduino framework is the elephant in the room. In physics they call it inertia. I like this Toit though, like a lightweight python with speed.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад

      I agree that the libraries are the biggest advantage of the Arduino framework. And they already saved me a ton of time...

  • @rafaelqsb
    @rafaelqsb 2 года назад +1

    As always you show us new and exciting possibilities. Thanks guy with swiss accent!

  • @avejst
    @avejst 2 года назад +2

    Wow, Great find
    Thanks for sharing this new direction to go wireless programming :-)

    • @AndreasSpiess
      @AndreasSpiess  2 года назад

      Indeed, nearly everything seems to go wireless!

  • @Beatfreak19831
    @Beatfreak19831 2 года назад +14

    Very interesting, however I think I will be sticking to arduino ide for now :)

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +5

      As most of us do, I think. But for a small new project, why not try it...

    • @AndersJackson
      @AndersJackson 2 года назад

      Actually, the Arduino IDE are really, really so much TurboPascal in 1985. Arduino IDE was old even when it was new.
      And no, you really do not need old IDE to run the Arduino framework. You can run it from really good software development editors like Emacs.

  • @PhG1961
    @PhG1961 2 года назад +1

    That new kid looks very promising and of course we all like it when things go faster.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +1

      Indeed. But I am getting older and sometimes it is also ok if it is a little slower ;-)

  • @starlingwatch3921
    @starlingwatch3921 2 года назад +1

    Toit looks great. Back in the 1990's I chose Java. The issues you raise: compiled vs interpreted runtime performance, fast compile/upload/execute, and language constructs like it were all major points of discussion among engineers considering Java. Your consideration of BLE support makes me think Toit will be great for devices wired to the mains and operating on Wifi. I wish an Android-supporting BLE architecture emerges. -Frank

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +1

      I agree with the language discussions. They seem to be the same every time ;-)

  • @nuxboxen
    @nuxboxen 2 года назад +1

    Looks like another project that will be nothing but a footnote in the history of IOT

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +1

      Time will tell. This is what Steve Balmer from Microsoft said when he saw the first iPhone ;-)

  • @TradieTrev
    @TradieTrev 2 года назад +3

    Had a play with this one myself, I like how fast and quick it uploads the code! My experience has just been webpage ide, the bluetooth beacon was a fun example! This would be useful when you have a bunch of devices to maintain, there's a few old devices that I have to physically pull apart and serial flash them.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +1

      I think too, that it is time to play with it and see if and where it could fit...

  • @haffolderhaus
    @haffolderhaus 2 года назад +1

    Wow ! Thanks for sharing this really NEW news! 👍👍👍👀

  • @antoninperbosc1532
    @antoninperbosc1532 2 года назад +1

    now I must take a look to this Toit ... ;) thanks Andreas to share with us !
    In my PV adding support to microcontroler rp2040 is a good idea to increase library with an interesting and cheap µc. The container concept is always interesting to avoide side effects. The cloud is always problematic when you live countryside and internet vanish ...

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +1

      I know that not all users like clouds. That is why I try to avoid it ;-)

  • @mcconkeyb
    @mcconkeyb 2 года назад +30

    I've always found that once you have mastered the low level language (assembler, c, c++) then there is only a very small productivity gain when having to learn a new high level language. So its likely that I'll stick with the basics and pass on this new programming environment. :-)

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +8

      The same would apply for C vs Assembly. Where I definitively would disagree. But I learned that languages are a very personal thing (not only programming languages) ;-)

    • @sail4life
      @sail4life 2 года назад +6

      @@AndreasSpiess Assembly, Bah-Humbug! Machine Language all the way ;-) I think its use case driven but it comes down to the developers and then it always gets personal. A commercial shop has vastly different requirements and costs than a hobbyist. Even so, a commercial shop with experienced c / C++ developers is different from a startup with only fresh graduates (god help them).

    • @Reach41
      @Reach41 2 года назад +3

      Same here. I learned C++ a long time ago, and write software for autonomous robots almost exclusively. I can’t see anything to be gained by switching to Python, JAVA or anything else.

    • @aspuzling
      @aspuzling 2 года назад +2

      How long are you willing to spend mastering C++ though? I spent months on an ESP project in C++ and in the end it was severely limited in capability. When I rewrote it in micropython not only did it take just a day to write but I was able to add much more complex functionality to it because of the freedom afforded by the language. If I was going to recommend someone a language to learn to program an ESP32 I would always recommend micropython.

    • @p_mouse8676
      @p_mouse8676 2 года назад +2

      Than you're clearly not the target consumer for this idea. I actually think it can be very helpful but it all depends how it will evolve. Because of other priorities, I haven't programmed much myself anymore the last couple of years. But sometimes I really miss the possibility to quickly build up a prototype to show certain ideas. Instead I have to dive into the books again to relearn certain things. I just simply don't have the time for it.
      But that's just one personal story. It all depends if there is an audience for something.

  • @santopino2546
    @santopino2546 2 года назад +28

    Excellent, pity they needed to reinvent the syntax, old people like me cannot keep too many languages and syntaxes in the brain, the brain will go on strike.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +2

      AFAIK they choose Python as the base because it is widely used these days.

    • @SDZ-0
      @SDZ-0 2 года назад +8

      Mr. Pino, true programmer doesn't need to keep the syntaxes in the brain, we keep them on google

    • @somename6937
      @somename6937 2 года назад +2

      @@SDZ-0 But still you need to find syntax till you remember it. So every time you learn new language you have this speed breaker.

    • @TheModelmaker123
      @TheModelmaker123 2 года назад +2

      Agree 100%, If you want folks to use your product, allowing them to utilize the syntax they already know, are comfortable with, and will save time completing a project will entice more folks to use it. As someone who tinkers with micro controllers I see no benefits to expending time on this. Thanks Andreas for sorting through this!

    • @santopino2546
      @santopino2546 2 года назад

      @@SDZ-0 If you want faster results and waste more time on your idea than on syntax, you need to rely more on memory than google.
      Anyway, I'm not a "true" programmer.
      When you reach 60 years of age, you might understand what I mean. :P

  • @YandiBanyu
    @YandiBanyu 2 года назад

    I really hope that it is not limited to just ESP32. Also will be monitoring how toit grow from now on. Thank you Andreas!

    • @AndreasSpiess
      @AndreasSpiess  2 года назад

      For the moment it is ESP32 only. I do not know of many other Wi-Fi MPUs...

    • @YandiBanyu
      @YandiBanyu 2 года назад

      @@AndreasSpiess that too. I hope it isn't limited to wifi only. Sometimes wifi is just not the right solution.

  • @calvinbrowne2126
    @calvinbrowne2126 2 года назад +25

    Interesting. I'm not seeing anything to move me from esphome.
    It appears to be more corporate focused and lack of esp8266 support would automatically mean I need two platforms.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +5

      I agree with the ESP8266 (and other ESP32 chips)

    • @emmoemminghaus6455
      @emmoemminghaus6455 2 года назад

      me neither... (just a new fancy wheel reinvention)

    • @KasperLund
      @KasperLund 2 года назад +2

      Hi Calvin! The missing ESP8266 support is definitely an issue if you run on those. I do believe that the open-source Toit language implementation and the lightweight Jaguar development support is great for makers, not just for corporations with thousands of devices. At least we have been trying to prioritize the needs of makers in our work and I'd be happy to learn of areas where we're still lacking. Thanks for the feedback!

    • @calvinbrowne2126
      @calvinbrowne2126 2 года назад

      @@KasperLund yeah, I'm not even sure you can do what you're doing on the esp32 platform on the esp8266.....
      I also prefer my own transport rather than third party cloud services, but that's just me 😉
      All in all, a decent framework and it will probably find a market - all the best!

    • @KasperLund
      @KasperLund 2 года назад +6

      @@calvinbrowne2126 There are no cloud services involved in Jaguar or the open-source Toit language implementation. You're free and encouraged to use your own transport. You don't need to register anywhere and you can just use Toit as a building block for making it easier to implement your firmware :)

  • @tcpipchip
    @tcpipchip 2 года назад +1

    Nice to see that! Sounds look the mongoose! But less expensive!!!! And parallels execution!

    • @AndreasSpiess
      @AndreasSpiess  2 года назад

      I did not look at mongoose OS for a long time... Maybe I should.

  • @eduhabnode6766
    @eduhabnode6766 2 года назад +2

    I test it in cloud version, and it is amazing. 10 devices free. More easy than jaguar.

  • @juergenschimmer960
    @juergenschimmer960 2 года назад +2

    One Reason they might have chosen to use Bytecode and an Interpreter is because of the limited Memory Protection capabilities of the ESP32 Microcontroller. This way it is quite easy to protect the System from crashes by preventing some code to trash other Memory Regions.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +2

      Maybe. I do not know the exact reason. Maybe Kasper can answer the question?

  • @sarahjanegray
    @sarahjanegray 2 года назад +2

    Interesting and thanks for covering it Andreas (always good to know what is out there). However, think I will be sticking to C++. I first used C 30-odd years ago and moved away from it (to higher level languages). Now I have got back to it again (thanks to Arduino, ESP32 et al), I am using it a lot more on all sorts of platforms for different projects (not just electronics and IoT). Given its power, flexibility and speed I am reluctant to move away again. I can live with the compilation (which is always going to execute faster) and upload times for the benefits it gives me. The icing on the cake for this would be something for testing at speed during development and this new platform certainly gives some benefits there.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +1

      I agree with your arguments. But if we were new to the topic, maybe Python (or Toit) would be what C was when I was young... Python was or still is the fastest growing language on higher levels.

    • @sarahjanegray
      @sarahjanegray 2 года назад

      @@AndreasSpiess I agree, Andreas. For me, I always preferred lower-level languages as they provide so much more control, flexibility and direct access to hardware resources. I think using C++ for MCU projects provided the final bit of understanding to me that I needed to convince me that C++ was the way to go with as much as possible. I kind of got in to the higher level languages for commercial reasons (apart from BASIC that was the first language I ever learnt). As a higher level language, certainly Python is what I would be using if I was wanting to continue to work at this level. I am still doing some LAMP-based projects though find myself now continually thinking how I would provide a solution in C++! Happy programming!

    • @yekutielbenheshel354
      @yekutielbenheshel354 2 года назад

      @@AndreasSpiess I agree with you.

  • @AerialWaviator
    @AerialWaviator 2 года назад

    Very fascinating first look at Toit. I was not aware of this project. Hopefully the weakness in library support and code examples is addressed sooner vs later, as Toit shows promise of having a nice balance of features. The RTOS like features are intriguing, but without good basic library support would be an added challenge vs. alternatives. Will have find time to do some exploration with Toit myself. Look forward to seeing a revisit later in the year if progress warrants further exploration.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +1

      I agree with the libraries. They are the biggest time-savers in most of my projects.

  • @embracethesuck1041
    @embracethesuck1041 2 года назад +3

    That's toit like a toiger.

  • @qvisten999
    @qvisten999 2 года назад

    Thanks a lot, Andreas! I am building my own sparetime project using their cloud solution. It works very well :)

  • @jmr
    @jmr 2 года назад +4

    I was extremely skeptical about this but it's very interested now.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +1

      We will see where it Leads and who will replace C (if it will happen).

  • @bm830810
    @bm830810 2 года назад +9

    As a flutter developer (which uses dart language developed by one of the cofounders of this project) I have to say I don't like some design decisions present in dart and also in this new language
    why invent a completely new syntax?

    • @hesspet
      @hesspet 2 года назад +4

      Cause every fancy developer likes to print his name on a language :-)

    • @AndreasSpiess
      @AndreasSpiess  2 года назад

      You have to ask Kasper (maybe he answers it here).

    • @KasperLund
      @KasperLund 2 года назад +6

      It's a great question. The purpose is rarely just to change things, but to try to improve on fundamental things without being too constrained by past design decisions. It's a balancing act and of course it isn't clear that we make the right decisions, but I personally find writing Dart and Toit code very compelling and productive. Which design decisions do you dislike the most?

    • @hesspet
      @hesspet 2 года назад +3

      @@KasperLund Pythonic Style of code. I do Assembler, Cobol, Fortran, C and C++ and Java now more C# Stuff since 40 years. Pythonic Code does not match with my fingers :-) :-) don't laugh, it's not the language itself, we use Python in some of our projects. But I feel myself on the wrong place when I must use those "Non Bracket" languages. And on the other hand, we never feel the need of having updates via Wifi and such a stuff. Our customers will kill us if we start making the wifi party in their protected networks. In fact, if we must change something on our microcontrollers we often have to change also parts of the electronics around. So we have access to the hardware no need for remote access.

    • @AndersJackson
      @AndersJackson 2 года назад +2

      Well, if you want some new and improvements in semantics, you also need to get rid of the C syntax. Because those semantics is really hard to express those semantics in.

  • @highdesert50
    @highdesert50 2 года назад

    Very nicely done comparative spreadsheet.

  • @FulcanelliRosetta
    @FulcanelliRosetta 2 года назад +1

    Wow at that speed. 10x faster is very nice!

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +1

      Indeed. And Kasper was disappointed ;-) So maybe we will even see higher speeds.

  • @graealex
    @graealex 2 года назад +2

    Languages that can only be used in a single domain usually have a short life. Plus there's .NET nanoFramework and MicroEJ as alternatives with widely used languages that approximately provide the same benefits regarding emulation and app containerization.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +1

      I agree that there are a lot of competing ideas in this field. That is for me the proof that the next level of IoT deployment has started. We will see if we will have only two leaders left, as in Smartphones or PCs, or if we will have more. I am a very interested observer...

    • @graealex
      @graealex 2 года назад

      @@AndreasSpiess It's rather that competition in languages is completely unnecessary and detrimental. High-level languages share 95% of their basics. Some are more elegant at expressing certain intentions, but there generally are little differences. So needing to learn a new language for a domain that is already well-covered by dozens of other languages (in this case, C, C++, Python, Ruby, Java, Groovy, Kotlin, Scala, C# and even Visual Basic) that has no application outside of that specific domain borders on plain stupid.

  • @marksterling8286
    @marksterling8286 2 года назад +5

    Very interesting and great video, thinking about what projects I could try this with.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад

      For a simple project deployed far away from your desk, for example. Or for an experiment where you have to change the code frequently while learning.

  • @pjhandle
    @pjhandle 2 года назад +8

    Thanks for sharing. Interesting concept, but the fact they have their own programming language is a definite NO GO for me to spend more time on this...

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +1

      Thank you for sharing your decision!

    • @HannesMrg
      @HannesMrg 2 года назад

      Yeah, I can't believe there wasn't an existing language that could have done the same.

  • @L4b3n
    @L4b3n 2 года назад

    As a embedded developer (C), who does also a lot of hardware simulation in spice/matlab, I slowly switched to python in the last few years as numpy and all the other libraries got better and better. I recently also used upython for a small testing environment and it worked like a charm, because of the python knowledge I already had.
    And this is the main advantage of python compared to - in this case - toit. Python is widely spread and well known.
    The ranking is therefore only valid if you start at scratch.
    Anyway, good content as always!

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +1

      I share your thoughts about Python (and mentioned them in my video about MycroPython). However, Toit and Python seem to be quite close (at least compared with C++)

  • @Opr69
    @Opr69 2 года назад +1

    Thank you for the interesting video. It sounds promising to me. If developers can be mobilized, then Toit can spread widely in the future.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +2

      Fingers crossed! But they have a lot of work in front of them...

  • @johnerrington9371
    @johnerrington9371 2 года назад +4

    Any observations on the efficiency of memory use? Byte code is fine, but how much of it does Toit generate compared to Micropython or C++? Are there limitations on size or where it can be loaded, as (for example) with some ISR code?

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +1

      So far I have not seen that they support ISRs (which is not good and for sure has to work). But because I was not sure I did not mention it in the video. I do not have information on memory usage and particularly not in comparison with MicroPython. I did not read about PSRAM (which is highly recommended for MicroPython).
      Viewers reported that they had some out-of-memory issues. This is why I did not value the stability criteria very high. It seems they worked on it. But time will tell.

  • @christiancarassai9540
    @christiancarassai9540 2 года назад +5

    As usual,all starts with wonderfull speeds , on a version with no all functions implemented. Casually, comm.between containers is not implemented. And there are the most performance hungry functions.(interlocks, waitstates.. etc.) So i will wait to see the full blown framework.

    • @KasperLund
      @KasperLund 2 года назад +6

      Hi Christian! The communication between containers is implemented and you're right that it requires synchronization (locks and waiting, etc.). I'd be happy to share an example with you and it will be based on the simple RPC framework that you find in the Toit language repository on GitHub (in lib/rpc/).

    • @christiancarassai9540
      @christiancarassai9540 2 года назад

      @@KasperLund thanks !!! Youre awesome

  • @WolfgangEgger
    @WolfgangEgger 2 года назад +3

    Maybe in the future, you would like to compare MicroPython with CircuitPython? From my point of view, I do not like CP as much as MP, because CP seems to be made, with the idea in mind, to make it absolute beginners easy, to play around with the products of Adafruit (what is a good idea, from their point of view, i guess). But they have dropped a few language-features, like timers, that are needed, to go a little step further, than only begin with electronics with the products of adafruit.
    I would be very interested in your opinion.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +3

      I am no language specialist; I am an engineer. So I do not see slight differences in languages. Last time I looked at Python I had the impression that Adafruit did an excellent job in implementing lots of libraries on CircuitPython. Which is the most deciding factor for me (as I also mentioned in this video).
      BTW: I never understood why it was not possible to find a common solution with the two Python dialects. Remembers me of Linux where Windows was the big winner...

    • @WolfgangEgger
      @WolfgangEgger 2 года назад +1

      @@AndreasSpiess Because for Adafruit it's a marketing-instrument and it seems they can not live with build-in libraries, that make their marketing-job harder and does not boost their idea, of supporting their beginnng customers to use their products.
      At least, this is, what the guys on their discord channel answered me.

  • @mrmarkom
    @mrmarkom 2 года назад +2

    For anything serious I would always opt to go low level as possible, and for MCUs that is C/C++ or even assembly. That being said, there is an important advantage for easy to use entry framework that can help beginners. As can be seen, listed advantages are basically those attractive to people only entering the MCUs domain and they would be the target market for Toit. As MCUs are getting more and more powerful it can be expected that the successful commercial products in future could be based on an interpreted language. I am not sure if we are there yet..

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +2

      You immediately lose me if you advocate Assembler. I did it because I had in the 1970 an 1980s and never looked back!

    • @mrmarkom
      @mrmarkom 2 года назад +1

      😀 well I have programming background and I guess you are more hardware oriented guy. As they say "your mileage may vary". I don't think Assembler is needed often, only for the extreme optimization of speed or perhaps power consumption in some cases. But whenever you need last bits of speed and/or resource optimization, C is still the king of the jungle.

  • @yekutielbenheshel354
    @yekutielbenheshel354 2 года назад

    Thanks for making a video that includes the ESP32! I would like to see make more MicroPython + ESP32 videos.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад

      If I read all the comments, I think I have to stick to C++ on the channel ;-)

    • @yekutielbenheshel354
      @yekutielbenheshel354 2 года назад

      @@AndreasSpiess “If I had asked people what they wanted, they would have said faster horses.”
      We’ve all been in conversations on the topics of creativity and innovation when Henry Ford’s most famous adage is (excuse the pun) trotted out, usually accompanied by a knowing smirk and air of self-evidence. Battle lines are quickly drawn. One side vehemently argues the merits of innovating vis-à-vis customer feedback; the other argues that true innovation is created by singularly gifted visionaries who ignore customer input and instead manufacture innovation based solely on their prophetic vision for a better future.
      Having grown weary of both sides of the debate, I was curious; did Ford utter those words? And what did they mean for the early days of the Ford Motor Company, and by extension, for entrepreneurs looking to learn about how to innovate?
      Let me dispel with the suspense; it doesn’t appear that Henry Ford ever actually uttered this famous and polarizing phrase. We have no evidence that Ford ever said those words. (My methodology in determining the non-existence of this quote is a footnote to this blog post.)
      hbr.org/2011/08/henry-ford-never-said-the-fast

  • @MrgnUTube
    @MrgnUTube 2 года назад

    Excellent video thank you so much!

  • @recklessroges
    @recklessroges 2 года назад +1

    (In the phrase "on the block", the block refers to a standard rectangle of housing in a USA city. I don't know why "in the block" is considered incorrect, but it is.)

  • @jcdock
    @jcdock 2 года назад +1

    This is so cool. I've just gotten into docker and was thinking it would be nice to have a similar thing for my esp32s

    • @AndreasSpiess
      @AndreasSpiess  2 года назад

      So it is definitively something to try...

    • @jcdock
      @jcdock 2 года назад

      @@AndreasSpiess For sure!

  • @ww07ff
    @ww07ff 2 года назад

    Very interesting and well explained!
    U r great, Andreas!

  • @dd0356
    @dd0356 2 года назад

    As i learned from this channel, i will adopt it if it is popular so that i may cut-copy-paste from others, the main reason computers are beautiful.
    Also as my previous boss kicked me out from that location, i am at a new location with a new but more mature boss, and little to do at home, looks like some time to experiment with these devices again.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад

      I agree: Standing on other's shoulders is a big productivity boost. I do this all the time...

  • @michaelgraff6978
    @michaelgraff6978 2 года назад

    The "100.repeat" feature is also in Ruby: 100.times do { |value| puts value }

  • @kroojohn
    @kroojohn 2 года назад

    Thank you, once again, for a very interesting video, with a lot of new things to consider... This could potentially be a game-changer, if, as you said as well, the libraries and MCU support + examples get a bit of attention ( lots of it actually) .

  • @satchell78
    @satchell78 2 года назад

    I just wrote a micropython program for my Casio fx-CG50 for finding the equivalent circuit of parallel RL or RC circuits. It was actually really easy.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +1

      Interesting that a "pocket calculator" understands Python ;-)

  • @jasongreenwood3260
    @jasongreenwood3260 2 года назад +1

    Toit, like a tiger.

  • @ulwur
    @ulwur 2 года назад +2

    Andreas, No mention of debugging? Are we back to print statements?

  • @andrewbeasley
    @andrewbeasley 2 года назад

    Sounds a great idea and I hope it flies as the current tools are poor but well supported by the community.
    Like you say, without clear documentation, examples and device support this may never get beyond a niche project. Worryingly, documentation is normally the last thing on a developers mind...
    Not keen at all on the requirement for WiFi - congestion is bad and will only get worse esp in more crowded areas (e.g. where my daughter lives you can pick up 40+ networks over 2.4 and 5Ghz) - it needs to rapidly support USB and Ethernet as a bare minimum - not every device has to be interconnected.
    Thanks for finding this and bringing the plus/minus out in such a clear manner.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +1

      I do not think that this project is intended for not-connected use.

    • @andrewbeasley
      @andrewbeasley 2 года назад

      @@AndreasSpiess I did wonder - the advantage of the current tool sets are you can go WiFi with a few extra lines if you need it BUT it's not compulsory. It will be interesting to see if the setup/loop structure gets increased to allow multiprocessing because of this. Interesting times ahead.

  • @elmariachi5133
    @elmariachi5133 2 года назад +1

    I find Docker is way more complicated than doing things without. It only has sense when you can rely on preconfigured container templates and you need to deploy these on multiple systems. But why should I waste resources for Docker's additional overhead to have more work in setting up a little server or whatever?

    • @floitsch
      @floitsch 2 года назад +1

      The Toit framework doesn't use Docker containers.
      in this context "containers" is meant as "fully separated programs that can't crash each other".

    • @AndreasSpiess
      @AndreasSpiess  2 года назад

      I agree with Florian. For me, Docker has many advantages (see my IOTstack project). But it has also disadvantages. So a good decision is important.

  • @McTroyd
    @McTroyd 2 года назад +1

    An interesting concept! As microcontrollers get more sophisticated, I'm sure we'll continue to see benefits from this ecosystem. Until then, I'll stick with Python. 😁👍️

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +1

      You are one of the only people mentioning Python. Most compare it with C++ ...

    • @McTroyd
      @McTroyd 2 года назад

      @@AndreasSpiess Only because I'm still trying to learn it. It seems too easy compared to C++. 😁

  • @Cracked1ce
    @Cracked1ce 2 года назад +1

    The big reason for needing docker containers in the first place is the incompatibility between dynamically linked libraries. not really a problem you have with embedded programs. just a problem with different hardware interfaces.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад

      I think it is more to have a stable "operating system" which cannot crash if deployed and still can be fixed from remote. But maybe there are other ways to do that.

    • @Cracked1ce
      @Cracked1ce 2 года назад +1

      @@AndreasSpiess That is a fair point. but being a new niche programming language is a turnoff for me. I wouldn't want to learn another language and also be worried that it will support everything that i need. if it was python i think it would be more attractive to everyone, but having to learn a new language just for a single microcontroller is asking alot.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад

      I do not know why they decided to use a new language. Maybe Kasper can answer?

  • @TheBauwssss
    @TheBauwssss 2 года назад +13

    Why *again* create yet _another_ new programming language with *yet again* a new set of symbols to learn and _another_ unique syntax to master? But okay, suppose you really do not have another choice, and you just have to develop another new high level programming language just to fit your specific design criteria. Now, and I think this is especially applicable if you want it to be easy for new users to program in your new language, why not choose to create your new compiler, runtime and interpreter/virtual machine but then instead of also creating a new set of grammar and a new syntax system for your language, then why not simply choose to adopt the syntax of another language (assuming it iscompatible with your requirements)? I really think they could have easily adopted the grammar and syntax of similar languages such as Lua, Python, JavaScript, heavens forbid Visual Basic, or any of the many other language I currently cannot remember? I do not understand why they had to create yet another language, syntax and grammar system for their paradigm that, admittedly is clever, but I fail to see how it'd warrant the Creation of a whole new language. I mean, why not do with (Micro)Python what Google did with their new v8 JavaScript engine for Chrome? Then you'd immediately benefit from all of the libraries, tutorials, etc. that already exist in the Python ecosystem being immediately compatible with your new operating system (paradigm) instead of the current situation around the Toit ecosystem where everything has to be rebuilt and reimplemented from scratch! The way they have chosen to setup this new Toit ecosystem of theirs doesn't seem very 'Toit' to me at the moment, if you catch my drift. 🤣👍

    • @sevenacregreen
      @sevenacregreen 2 года назад +1

      If inventing new languages is bad we would still be in the dark ages. As an engineer who started programming in Algol on punched cards then moved to Algol68 via teletype, i am glad of progress. There will always be change and different solutions, that is progress.
      @Andreas Spiess Thanks for another informative video . Using a token language makes it much easier to contain an object. Spent many hours sorting interactions between tasks in embedded applications.

    • @TheBauwssss
      @TheBauwssss 2 года назад +5

      @@sevenacregreen My apologies if this is crass of me, but I get the distinct impression that you only ever read the first sentence of my comment before writing your reply?

    • @sevenacregreen
      @sevenacregreen 2 года назад

      @@TheBauwssss well i had read much more than the first few lines. My point is that there has always been change and that it may not feel right or comfortable to all but it has perceived benefits to those developing it. I could not see the point of c when I could do all i needed with Algol68. Looking back that was short sited of me. There are is a lot of choice now and programmer's can be really productive if they choose the correct tool for the job. There will be many deadends but it will only be possible to know them with 20:20 hindsight. I did not guess which of: Fortran, Algol, Algol68, Pascal, c, Cobol, mathchat, plm or Basic was going to survive. Thank goodness for diversity or we would all have been using Fortran and Cobal.

    • @siberx4
      @siberx4 2 года назад +1

      Agreed. Real "Not Invented Here" vibes from this project; I find it pretty unbelievable that they couldn't find another language with close-enough grammar to their goals that they couldn't just implement a reduced-subset compiler/interpreter for it. Conceptually I really like the overall architecture they have here, but I have zero interest in learning yet another shortlived purpose-specific language just because the creators thought they were smarter than everybody else.

  • @TheOnlyEpsilonAlpha
    @TheOnlyEpsilonAlpha 2 года назад

    Very interesting and impressive on how many devices containers can run :O

  • @flosax
    @flosax 2 года назад +1

    very interesting! most of my esp32/esp8266's are flashed with espruino because i'm used to javascript

    • @AndreasSpiess
      @AndreasSpiess  2 года назад

      Espurino seems to be attractive for Javascript programmers... I never tried it so far...

  • @silvio2402
    @silvio2402 2 года назад +3

    Edit: deep sleep seems to be possible (Read replies!)
    Sadly but understandable, TOIT does not support deep sleep. I’m sure its great for devices that always stay on or devices that have a beefy battery or are powered externally (by wall), but I like to use only one technology for every project and don’t want to switch between Arduino and TOIT whether I need deep sleep or not.
    Could you do some power usage tests comparing different platforms, boards, use cases. Would love to see that.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад

      I had a deep-sleep example but did not have the time to test it (usually, this takes some time). So it seems to support deep-sleep, but I do not know, how :-(

    • @gunter1626
      @gunter1626 2 года назад

      I believe it does send the device into deep sleep. You specify that in the deployment yaml file how often you want your program to run. It offers cron-like statements for job planning. I haven't measured it but I know that the runtime itself goes into deep-sleep if there is no program deployed and wakes up like every 5(?) seconds. This should change with a program deployed that has a restart interval/ cron specified. Why not try it out?

    • @silvio2402
      @silvio2402 2 года назад

      “Running a program on a device does not allow the device to go into deep sleep since it needs to remain online for the program to run”
      Found it here: docs.toit.io/platform/apps/runprogram
      Beware I haven’t done any testing and little research.

    • @floitsch
      @floitsch 2 года назад +3

      The toit.io version automatically goes into deep-sleep when no program is running. Waking up is configured by a YAML file (and the max-offline time).
      The open-source version needs a call to deep_sleep (from the esp32 library).
      Either way, deep sleep should work.

    • @silvio2402
      @silvio2402 2 года назад

      @@floitsch Interesting, thank you for your answer!

  • @TokkanFX
    @TokkanFX 2 года назад

    It has a long way to go to catch up to Arduino or even ESP in visual studio. Also the lack of a simple serial over usb for uploading is a problem when there is no wifi whilst Arduino has OTA already. BLE on Arduino does work and if you really dig down you can make it so you do not have to reboot after every connection whilst waiting for a new one on the ESP32.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад

      The uploading in Toit works over WiFi and therefore is much faster than via the normal Serial. I found this quite convenient. But I agree Arduino has an advantage in many areas. But Arduino has not developed a lot over the last few years. So we will see what the future brings...

  • @Andrew-rc3vh
    @Andrew-rc3vh 2 года назад

    I've written my own micro language which runs on the ESP32, but it is a functional programming language. It's doing similar stuff except you can just write it in plain text. This gets compiled by the compiler i wrote for it and it gets updated over the air. I feel i can see where these people are coming from because they are in the same boat, in that you can't fit every library on the system that easily. I2C seems like the way to go. The interesting thing about the system I created is unlike procedural code it is impossible for it to get into an infinite loop. I can't claim fool proof, but more fool resistant.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад

      Unfortunately, you have to have every library because all sensors behave differently. Even if they use I2C :-( And then we have a lot of SPI sensors and peripherals.

    • @Andrew-rc3vh
      @Andrew-rc3vh 2 года назад

      @@AndreasSpiess Yes and we are memory-limited. I hear there is a way to control the Sonoff range via HTTP. They use ESP8266 controllers so they are nice and compatible and cheap. Another trick people use is if you want free cloud logging services there is a way to hack Google Sheets using Wireshark to record the packets you need to operate it.
      I2c and analogue/digital should suffice to cover most applications because I'm only sampling at low speeds. It's a kind of halfway house between a general purpose programming environment and a configurable application. There's always a trade-off between complexity and universality. Perhaps the I2c interface could be interpreted rather than using individual complied libraries.

  • @TheChemicalWorkshop
    @TheChemicalWorkshop 2 года назад

    looks nice, high level language is muuuch easier than C++
    depends how much performance we are talking, 1/2 im happy to offer, 3/4 ehhh , more not so

    • @AndreasSpiess
      @AndreasSpiess  2 года назад

      Maybe they will provide benchmark data compared with C++...

  • @rinokentie8653
    @rinokentie8653 2 года назад +2

    Thanks Andreas, interesting but I will stick to C++...

  • @FrankGraffagnino
    @FrankGraffagnino 2 года назад +1

    great video, but i am sorry to inform you that the phrase is "New Kid _ON_ the block". :)

  • @originalmianos
    @originalmianos 2 года назад

    Modern C++17 is pretty similar in terms of automatic types and for/while loops on interable objects. Maybe an environment that includes modern C++ is too heavy for an Atmel Arduino but it makes for a much simpler C++ than you see generally.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад

      I am no language specialist and I love standardization. But often it has some cost (performance, memory). I am an observer of what happens in this area over the next years. IoT devices are still in their infancy and a lot of people try to get into an advantageous position. Innovation at work!

  • @MikesTropicalTech
    @MikesTropicalTech 2 года назад

    Very interesting! I wonder about the memory overhead in Flash for the OS and bytecode interpreter. I'm making a simple PM2.5 pollution sensor in PlatformIO and C++ and I'm at nearly 90% flash used. I do like the dynamic Wifi upload, wow! No more cables, FTDI boards, pressing buttons, flaky flash behaviour, etc.

    • @gunter1626
      @gunter1626 2 года назад +2

      Memory usage is the thing. It hit me a couple of times when I had 2 - 3 containers running on one ESP32 simultaneously. I know they still working on further improving that. However, the language is so convenient to write programs on you should give it a try.

    • @MikesTropicalTech
      @MikesTropicalTech 2 года назад +1

      @@gunter1626 Thanks I will!

    • @KasperLund
      @KasperLund 2 года назад +3

      @@gunter1626 Yeah, we've improved it quite a bit with Toit 1.6 and we have more improvements to memory usage in the pipeline.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +1

      Flash on the ESP32 is not as much of an issue as on other platforms. This is probably also why they chose this chip. But your question is valid, and I asked Kasper too if a compiler would be a better solution. The byte code can save memory, too because it only needs a lot of code only once...
      What is interesting is why you need 90% of flash for a simple example. I would understand if you needed BLE, but otherwise not.

    • @MikesTropicalTech
      @MikesTropicalTech 2 года назад

      @@AndreasSpiess My PM2.5 sensor is quite involved with Wifi, time queries, data upload, new version OTA flash and on-board web pages that take a lot of storage. I'm trying to move them into SPIFFS space right now to save main flash space. I look forward to the analysis of flash and RAM footprint.

  • @carlclarke1
    @carlclarke1 2 года назад

    Interesting idea but I can't help remembering Austen Powers - Goldmember and 'toit like a toiger'.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +2

      I think this is the root of the name.

  • @luistirado2007
    @luistirado2007 2 года назад

    i really enjoy working with microcontrolers like esp32 but i commonly work using PLC's , would be nice if in future that type of microcontrolers increase their fiability to work in harder enviroments and get more industrial .

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +1

      There are some Arduino and Raspberry products made for the harsh environment. But there is a strong standard in this field which is probably not easy to overcome...

    • @yekutielbenheshel354
      @yekutielbenheshel354 2 года назад

      @@AndreasSpiess I have no actual experience, but from what I have read you are correct. In reality, small cheap microcontrollers and single-board computers have been probably been capable of being used instead of PLC's in most applications for probably at least a decade.
      People in companies that used mainframe and minicomputers ("real computers") in the late 1970's tended to dismiss the new personal computers (PCs) as toys.

  • @MaxDiscere
    @MaxDiscere 2 года назад

    Looks interesting. I wouldn't mind if it's slower than C++. I'm not doing any high-performance computing anyway on these boards. I don't understand the necessity of a new language here? If they would just provide their underlying OS to quickly upload binaries written in C++ there wouldn't be any library or example issues.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад

      I do not know why they decided on a new language. On the other hand, Python was also a new language, and it seems quite successful in other areas.

    • @hoegge
      @hoegge 2 года назад

      As mentioned before, I think the memory protection features in the ESP chip(set) are not sufficient to protect "processes" from each other and the system from being taken down by a rogue pointer operation in C(++), hence you would not have the guarantee that the system would stay operable.

  • @iot_cdp
    @iot_cdp 2 года назад +2

    Seen that language before but for now, I stick with micropython. I just hope to see more libraries for it soon so I don’t have to write my own 😅. Thanks for sharing.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +2

      AFAIK CircuitPython has an advantage over MicroPython in this respect...

    • @mattytrentini
      @mattytrentini 2 года назад

      @@AndreasSpiess Some, perhaps - but the awesome-micropython list suggests there are more than you might be aware of. Plus, the CircuitPython libraries can usually be ported to MicroPython with little effort.

  • @odinata
    @odinata 2 года назад

    "On."
    You meant, "on the block".
    Like that band..."New Kids on the Block"

  • @bbogdanmircea
    @bbogdanmircea 2 года назад +2

    Why not compare it to ESPHome? Just yesterday I debugged some of my ESP32s from ESPHome, I see no reason to switch to this new platform...

    • @AndreasSpiess
      @AndreasSpiess  2 года назад

      A few other viewers also compare it with ESPhome. Unfortunately, I do not see why to compare it with it. I compared ESPhome with Tasmota in an earlier video.

  • @pascalfleury972
    @pascalfleury972 2 года назад +1

    For code separation on such devices, I recently discovered LuOS, which does in C++. I wonder how this compares, will have to spend some time on that.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +1

      So far I never heard about LoOS. I started to watch their tutorials to understand. I think it shows that a few startups try to get into position for the "new" IOT world...

    • @alcabellog
      @alcabellog 2 года назад

      It seems LUOS is for ARM microcontrollers ... but it sounds good

  • @AdityaMehendale
    @AdityaMehendale 2 года назад +1

    *Noice!* There was a time when the comments-section would have been flooded with "Noice/Toit!" ;) Where are the Brooklyn-99 fans?

    • @AndreasSpiess
      @AndreasSpiess  2 года назад

      The comment section currently is flooded with very sceptical voices ;-)

    • @AdityaMehendale
      @AdityaMehendale 2 года назад

      @@AndreasSpiess Ach.. When Arduino was in its baby-shoes, it had a lot of skepticism too. I've had conversations with sales-folks of some of the bigger MCU manufacturers at trade-shows, and was laughed-at for being "amateuristic" when I asked why certain daughter-boards were proprietary instead of Arduino/Feather-compatible. (~2010). Now everyone scrambles to play nice with makers/hobbyists.

  • @alexengineering3754
    @alexengineering3754 2 года назад

    Happy B-day Andreas :-)

  • @yekutielbenheshel354
    @yekutielbenheshel354 2 года назад

    Excellent video!

    • @AndreasSpiess
      @AndreasSpiess  2 года назад

      Thank you!

    • @yekutielbenheshel354
      @yekutielbenheshel354 2 года назад

      @@AndreasSpiess I think you do a great job on this channel. I criticize you frequently because I am hoping you'll transition from doing simple toy projects in C/C++ to more complex projects in MicroPython (or perhaps TinyGo).
      It matters little that the grey-haired leaders of companies that build embedded systems, er, uh, I mean IoT are still clinging to their beloved C/C++.
      MicroPython (or perhaps TinyGo) are better for myriad projects. Also, Limor Fried and her team at Adafruit have done an excellent job of marketing and popularizing CircuitPython to children and teenagers.
      This channel has the potential to teach many of those children and teenagers how to be real engineers by introducing them to real engineering projects, not merely toy projects.
      Building real projects is usually difficult Micropython (or CircuitPython or TinyGo) simply make it easier to do something that is inherently difficult.
      Put simply, if you try to be all things to all people, you end up being a generalist who doesn't do any one thing well. If you were to pick one language and one platform, you could then focus on actually building real projects.

  • @dmitrysysoletin9967
    @dmitrysysoletin9967 2 года назад

    Interesting moment - how is the container isolation implemented in ESP32? Does it have an MPU/MMU?

    • @floitsch
      @floitsch 2 года назад +1

      It does not.
      The isolation is enforced by the virtual machine that runs the Toit bytecodes. This is one of the reasons there is a new language.

  • @kwazar6725
    @kwazar6725 2 года назад +2

    Less code and readable=maintainable.

  • @l0gic23
    @l0gic23 2 года назад

    Cool video, as always.
    Please consider posting chapters to your vids. It would be helpful for (re)watch ability.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +1

      I considered it and decided to create only chapters for mailbags. The other videos are very dense and not made for a start in the middle. I have enough questions to answer where it is quite obvious that the viewer did not watch the entire video. That is annoying for me, and I do not want to support it :-(

  • @AlanKrantas
    @AlanKrantas 2 года назад +3

    I was excited with Toit at first, then I realized that even when you can run the code locally, you still need the official cloud to verify your device (some of my Chinese-made ESP32 can't even register) and upload script/data. You also need to bring a labtop to the Wifi envirnment where you want to deploy the ESP32, so that it can be verified.
    For simple IoT projects you don't need a very fast program. MicroPython is capable enough and allows you to send HTTP request to anywhere. (Also, ESP32 with the new MicroPython v1.18 is like 4 times faster than v1.17.) The only problems are that it's still harder to send requests to HTTPS services, and the script can be read by anyone who can access the device.
    I'm not saying that Toit is bad, but you'll have to use an exclusive cloud service, and why do you need a langauge 30x faster than MicroPython? (And how's that compared to C++, Rust or TinyGo?) There is no examples yet that require intensive calculations. This can actually be useful if TinyML or cryptography/blockchain are involved.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +3

      With Jaguar I did not need any registration (I have no account with Toit)

    • @AlanKrantas
      @AlanKrantas 2 года назад

      @@AndreasSpiess Thanks, Jaguar wasn't available when I tried it earlier.
      It's just that as a new language marketed for IoT, you still need the cloud so you can monitor the data remotely logged. And the CLI nature of Jaguar is kind of awkward (just ran the BME280 example)...also incompatible with the Toit runtime/tool itself.
      To be fair, the Toit cloud platform interface is pretty friendly to use. For a registered device, everything "printed"by the deployed app would be logged in the cloud dashboard. And you don't even have to write a loop (it can be defined in the .yaml file).

  • @BinderTronics
    @BinderTronics 2 года назад

    The container part of the project is very interesting. The custom language killed it for me. I have never been a fan of the movement of using interpreted languages on MCUs. I seriously doubt it will gain much traction if there is not mass adoption form the professional space. Usually these languages fall flat when trying to process an interrupts, in my experience it is horrifically slow. The granular control that C and C++ offer is way too expensive to give-up. This is at leased better than setting up and using that asinine REPL interface. It is a very cool idea though and I would like to see what becomes of it.
    From looking at the company the only worrying thing is that I do not see someone on the founders that explicitly states hardware engineering experience.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад

      I agree: They have a bumpy road ahead. But this market is huge in the future...

  • @keithr0
    @keithr0 2 года назад

    Interesting but Python makes it a non starter for me, I've spent too many years writing in variants of C (C, C++ and C#) and I'm getting too old to start another language. I'm also not sure of the need for containers in the ESP32 environment. As for speed, I have lingered in the Arduino environment long enough to accept the time taken for compilation, but I recently decided to take a medium sized program (~500 lines of code) written for the ESP32 and port it to the Pico. With the Pico tool chain set up under WSL, it was a revelation compilation was instantaneous, I could compile a new version and have it loaded to the Pico in under 5 seconds.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад

      Interesting that the same task is so fast for the Pico. I always wondered what my Arduino compiler does that it takes so long. Now I know: It produces some hot air ;-)

  • @trhosking
    @trhosking 2 года назад

    Happy Birthday!

  • @PGj141
    @PGj141 2 года назад

    thanks! quite interesting

  • @erikev
    @erikev 2 года назад

    new kid *on* the block😁

  • @JonathanSwiftUK
    @JonathanSwiftUK 2 года назад

    Looks like a game-changer. Quite exciting. What's the memory situation? Looks like you need a beefy one.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +1

      The ESP32 fortunately has a lot of memory. That is for sure one reason they chose it.

  • @mikecando1717
    @mikecando1717 2 года назад

    Thank you. Looks awesome and I had not known about it. No ESP32-S3? Is there plans in the future and when?

    • @AndreasSpiess
      @AndreasSpiess  2 года назад

      I assume they will concentrate on a few chips first. Anyway, investing in libraries would create more value than in the support of a new chip (my guess)

    • @mikecando1717
      @mikecando1717 2 года назад

      @@AndreasSpiess Very true. I am thinking though that any sensor that is I2C should be easy to use since I2C is a standard protocol? Isn't most of the black magic happening within the sensor and I2C is like a serial communication? The microprocessor simply reads from the device and it is reading an already calculated engineering value? I would standardize to I2C for that reason so the manufacturer takes care of their own hardware (plug and play basically). I am new with a background in industrial controls so I might be way off. Please let me know and thank you

  • @timjenkinson26
    @timjenkinson26 2 года назад

    Did you use toit much after making the video and if so did you find it was worth learning?

    • @AndreasSpiess
      @AndreasSpiess  2 года назад

      No. I did not write own software recently.

  • @andreanardi6301
    @andreanardi6301 2 года назад

    I prefer wasm3 as a byte code interpreter as it is better integrated with other programming languages and it is very versatile.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад

      So far I never looked into WASM3 :-(

  • @jameshancock
    @jameshancock 2 года назад

    Have you looked at nanoframework and it’s rtos version too? It’s fully compiled c# and can interop with all c++ libraries.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад

      No, I never heard of nanoframework so far.

    • @jameshancock
      @jameshancock 2 года назад

      @@AndreasSpiess might want to check it out. Real programming language instead of bad scripting language, fully compiled but with almost all of the c# features for language and all libraries available will just work with interop.
      There’s also a full rtos project based upon it too.

  • @Cracked1ce
    @Cracked1ce 2 года назад

    I wouldn't worry too much about speed on the ESP32. the ESP-IDF with its context switching and other interrupts that cannot be prioritized makes it useless for sub ms realtime applications. Its a shame given the decent selection of peripherals and timers. I don't have any uses where i would need something faster than what can be accomplished with micropython/toit until Espressif shows how to use 1 core with ESP-IDF for all the wifi/ble stuff, and one core without all the bloat. Then i have a few applications.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +1

      I agree with your statements about interrupts (I made a video). However there are applications where speed matters (web pages, audio, etc)

  • @shaneintegra
    @shaneintegra 2 года назад

    Toit like a tiger

  • @XanCraft21
    @XanCraft21 2 года назад

    This video is very good, but I prefer to stick to the old school stuff. This new software based off what I understand from the video only supports ESP32 with only wifi upload. To me the old stuff is more flexible and easier to work with. I’ve made something very cool while keeping things extra simplified. I would hope this new software will get updates in the future that allows more than just command prompt windows and very limited resources.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад

      I assume they will update the software over time.

  • @useyourbrain2022
    @useyourbrain2022 2 года назад

    I don't know about Toit , but may be it will be good as you say if we have more libraries and examples, one question: there are some way to upload code to esp32 without use cable? with wifi? (platform.io), tanks

    • @AndreasSpiess
      @AndreasSpiess  2 года назад

      In Toit the code is uploaded via Wi-Fi. You just have to upload the "infrastructure" once over Serial.

  • @Alex000113
    @Alex000113 2 года назад

    I imagine Toit have a business model to sell run time licenses/annual services to keep the deployed IOT devices up to date. I dont see anything compelling as a hobbyist to learn another language and development environment. Nice overview. I wonder about the usage of the ESP32 cores ( 1 for operating system, 1 for app ?) as well as advanced programming (eg FreeRTOS functionalility still available ?). Yes good examples needed. Thx Andreas, very interesting and informative.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад

      FreeRTOS is no more available. The language has its own way of dealing with different tasks. And yes, they try to make money with their cloud solution. This is why I did not focus on that offer.

    • @hoegge
      @hoegge 2 года назад

      @@AndreasSpiess What do you mean by "FreeRTOS is no more available"?

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +1

      They have their own language and operating system. The programs are interpreted and do not interact with RTOS

    • @hoegge
      @hoegge 2 года назад

      @@AndreasSpiess Ah - mistunderstood you. Thought you said RTOS is no longer available "in general", but you meant when running Toit. Got ya

  • @aryelinux9676
    @aryelinux9676 2 года назад

    Thanks for the video, I have already installed the Toit on my windows machine but I used a different method - I have just followed the Toit instructions online and I have installed the addon normally right after I download the installation from their site - I am not sure if it is totally different but the command used is Toit in the CLI and it had play button to upload the code and also have a dedicated icon in vscode like platformIO has. Maybe it is different - I am not sure. have you tried to install it using the Toit site instructions? Looks cool and I am sure that it is worth a try before saying anything about it - and also it needs to have more documentation and libraries as you rightly mentioned. maybe I used a different way of installation - there is a need to be logged it to toit in order to have it the way I installed it. Thanks!

    • @AndreasSpiess
      @AndreasSpiess  2 года назад +1

      Toit is the cloud solution. I only used Jaguar which is independent from the cloud. I have no account with toit

  • @TheOleHermit
    @TheOleHermit 2 года назад

    Looks very attractive, once it matures and is thoroughly ID-10-T tested and approved. But, should it replace the knowledge of C++? Personally, I prefer understanding what's going on under the hood. Could be a hermit thing.
    Remote management system for uPython? Wouldn''t that be WebREPL, MQTT, and the (potential) webpage interfaces?🤔

    • @AndreasSpiess
      @AndreasSpiess  2 года назад

      ID-10-T tested: :-))
      If there is a WebREPL it would be similar to what I showed, you are right. AFAIK the cloud offering has more management capabilities for fleets.

    • @TheOleHermit
      @TheOleHermit 2 года назад

      @@AndreasSpiess Ahh, then you're talking about an 'enterprise' level of remote management. That's very different, like the difference between acorns and mighty oak trees. I'm only working with little acorns.
      "If there is a WebREPL"? I thought that I learned about WebREPL from you, along with most of what I know about ESP MCUs. Thank you for that knowledge, Mr Spiess. It has served me well. 😎

  • @sventhiel5217
    @sventhiel5217 2 года назад

    I think it makes sense to look at the cloud version as well. You can manage 10 devices for free. And you can upload code and watch logs over Wifi. With jag you need a serial connection for log viewing. So if your device is hard to access and/or you are working with higher voltages, toit is very handy. You can do the same with ESPHome, but it takes much longer to deploy a change. Unfortunately there is no „toit watch“ command yet, but you can use a run-after-save plug-in in VS code to achieve more or less the same.

    • @AndreasSpiess
      @AndreasSpiess  2 года назад

      I agree that the cloud can be handy.