New course: ESP32 Unleashed

We are placing the final touches on a new course, titled “ESP32 Unleashed”.

In this course, I’ll show you how to use the ESP32 dev kit to make a gadget that contains sensors, a touch screen, a custom PCB (no loose wires!), and Cloud services (you can even speak to it!).

The real “kick” is that I also show you how to use PlatformIO and MS Code instead of the Arduino IDE. This project is really a platform (no pun intended) from where you can kickstart your own projects.

This video is the first lecture of the first section of the course and is packed with the details.

We hope to have this course published within June.

Please leave your comments/questions below.

(To turn on the captions, click on the CC button)

Full lecture transcript

[00:00:00] Hi, in this lecture I’m going to talk about what is this course about and how it’s organized.

[00:00:07] And by the end of it, in a few minutes from now, you’ll have a very good understanding of what to expect as you are embarking into this new course.

[00:00:15] So let’s begin by having a look at the two major objectives of this course.

[00:00:21] The first one is to introduce you to PlatformIO.

[00:00:26] And the second one is to give you experience working with the ESP32 on a real life comprehensive project.

[00:00:36] Let’s drill into these two objectives.

[00:00:39] First of all, an introduction to PlatformIO.

[00:00:42] I’m going to talk about PlatformIO and the editor that will be using, Microsoft Visual Studio Code, in another lecture.

[00:00:52] But for now I just want to say that PlatformIO is an integrated development environment not just for the Arduino or the ESP32 but for many many embedded systems.

[00:01:03] And you can use it actually for many other purposes, programming purposes.

[00:01:08] So it’s a very good environment that makers in general would benefit knowing.

[00:01:15] It’s going to help you create and work on a much more complicated projects compared to what you’ve been able to do with the Arduino IDE.

[00:01:25] And I believe in learning by doing, so the best way to become familiar with PlatformIO and build up your skills with it is hands on.

[00:01:37] So we needed a project. And I’ll talk about the project in the next slide.

[00:01:42] What you will achieve by completing this course in relation to PlatformIO:

[00:01:45] Of course, to be able to install it and set it up using MS Code as the editor, you will learn how to create and configure a new project, and then as we’re going through the multiple iterations of the ESP32 IoT project, you will learn all the most important and most frequently used features and capabilities of PlatformIO.

[00:02:07] And by the end of it you will be a very capable user of PlatformIO.

[00:02:13] You’ll be able to just use these skills in your own projects.

[00:02:18] I believe that by learning these PlatformIO skills, learning how to use PlatformIO is really going to help you as a maker.

[00:02:28] It will give you the tools that you need in order to create amazing projects around the ESP32 and other microcontrollers of course.

[00:02:38] Now the second objective is to learn how to create full projects around the ESP32. If you have completed my previous course “ESP32 For Busy People“, or you have some basic working knowledge of the ESP32, you properly have already completed small projects with one or two components perhaps.

[00:03:02] What I want to do with this objective in this course is to take those skills and extend them so that you can end up at the end of the course with a gadget that has a comprehensive array of features.

[00:03:19] As you’ll see, it’s going to be multiple components, there’s a PCB there, the software is written in a much more systematic and appropriate way for larger projects using PlatformIO and proper C++ methodologies.

[00:03:35] Even using source control which we haven’t really done much in previous courses.

[00:03:41] So by the end of this course, in relation to the comprehensive project around the ESP32, you will have applied and you will have extended your knowledge to create a gadget that combines what I believe a fascinating Cloud technologies.

[00:03:59] And of course you’ll be able to use several new hardware modules that we haven’t covered in the “ESP32 For Busy People” course.

[00:04:06] In particular, for example, the TFT display.

[00:04:12] Now let’s have a look at the organization of this course.

[00:04:14] You can see a summary here in a flow diagram.

[00:04:18] In the first section, which is what you’re going through right now, we’re going to talk about the course in general with the components organization and so on.

[00:04:29] So you’re going through it right now.

[00:04:32] After that I’m going to walk you through the working project.

[00:04:36] I’m going to show you what the end project looks like.

[00:04:39] But I’m going to show you that in the Arduino IDE since we haven’t really spoken at that point still a PlatformIO.

[00:04:47] I should say here that I developed the first iteration of the first prototype of the firmware for the ESP32 IoT gadget on the Arduino IDE.

[00:05:00] And I did that because I wanted to see how I can convert a comprehensive and large Arduino IDE-based project into PlatformIO because I believe that that would give me the ability and the opportunity to actually compare the two side by side so that I can achieve the same end result, the same functional result.

[00:05:23] So that’s why in the next section where I’m going to walk you through the project I’m going to use the Arduino IDE to show you the firmware, and then of course I’m going to talk about the hardware as well.

[00:05:37] Next up we’re going to get into PlatformIO and MS Code.

[00:05:41] So, I’ve got a section dedicated to show you how to install these tools and your computer and set them up and get them ready for action.

[00:05:51] Now a very important section in this course is the one where I’m going to present you and explain three very important features of C++ that when we use the Arduino IDE we don’t really need to worry too much about.

[00:06:10] You can actually do a lot without having to worry about them at all.

[00:06:14] But when we move into a PlatformIO and MS Code, I believe that because we are going to be working with more complicated comprehensive projects, that is a very good opportunity to understand those concepts.

[00:06:27] And I’m talking in particular here about pointers, and how to split programs into smaller files using appropriate C++ methods, and talking about name spaces.

[00:06:43] After that the real action begins.

[00:06:46] So once we have gone through the set up and then down a little bit of C++ then we are getting our hands dirty and we are starting to code in PlatformIO using the MS Code editor.

[00:07:00] We are going to go through 13 prototyping iterations.

[00:07:06] I’m going to talk about what’s inside each of those iterations very very shortly in this lecture, but for now just know that you’re not going to just code this application in one go.

[00:07:17] We’re going to take steps.

[00:07:18] And that’s a total of 13 steps.

[00:07:23] So in each step we’ll be learning something new.

[00:07:25] We’ll be adding a new feature in our application.

[00:07:30] We’ll be exploring a new feature in PlatformIO or MS Code.

[00:07:34] And in that way we can break down the learning load across these 13 iterations.

[00:07:44] So we’ll be progressing programmatically.

[00:07:46] We’ll be using more features on the hardware and even on the Cloud and cloud services.

[00:07:55] By the end of this course, you will have unlocked some seriously awesome new skills.

[00:07:59] But I’ll let you be the judge of that.

[00:08:04] Now let’s have a look at what happens inside each prototyping iteration.

[00:08:10] So I’ve broken into the prototyping iteration box, expanded it into another flowchart as you can see here.

[00:08:19] And these are the steps that typically consist of each iteration.

[00:08:24] So first we’ll be doing a little bit of planning.

[00:08:26] We’ll set the objectives for the iteration.

[00:08:29] Most often we’ll have to do a little bit of additional learning.

[00:08:33] So for example when we introduce touch capability on the TFT screen we’ll have to spend first a little bit of time to learn how to use the touch capability programmatically.

[00:08:46] And once we have that done we’ve got our objectives, we’ve got a plan set, and we understand the new technology or the new feature that we are about to use, we go into execution.

[00:08:55] And execution has to do with the programming component.

[00:09:00] We’re go into MS Code and then enter the code needed to implement a new feature.

[00:09:05] After that we are going to test.

[00:09:08] So we never move on to the next iteration until the current iteration is successfully completed.

[00:09:14] And that’s what the testing is about.

[00:09:17] If testing reveals bugs and problems we’ll go back to execution, fix them and then retest.

[00:09:36] I’m also going to show you how to use git, of course.

[00:09:23] If our test is completed without any error messages, without any bugs then we’ll commit those changes to our revision control system, source control system which is git.

[00:09:39] You’ll see me using git in action in every one of those iterations.

[00:09:46] Okay so I hope that this is exciting and you’re eager to start.

[00:09:50] Let’s move on to the next lecture really quickly we’ll have a look at the software requirements for this course, which is going to be followed by a couple of other introductory lectures that I strongly advise you two and a look and have a listen to before you actually move to the next section.

[00:10:10] Let’s go.

  • It’s a course I’m interested in. If you will, please list the hardware needed for this course ahead of placing the final touches on it, I can order the necessary components and be off and learning at the moment the course is available. Thxs.

  • Sounds awesome, I’m looking forward to learning much more about the ESP32 and connecting hardware and programming more.

  • Wylie Johnson says:

    Sounds interesting… Do you have an idea yet what you will need to charge for this course?

    • Hi Wylie, the regular price, as with the rest of the courses, will be US$50.

      I will make a special offer at launch that will be much lower than that. I haven’t had time to think about this yet though.

  • Belen Hedderich says:

    Hello Peter

    In case we are not able to get a hold of the PCB can you release the schematic so we can make it on a perfboard?
    There will be an offer for current tech explorations users?

  • Clive says:

    Is this course a cut-down version of a course you are selling on your site, like the ESP32 for busy people was?

    • Hi Clive, “ESP32 Unleashed” is a totally new course.

      I’ve designed it as a follow-up project course to “ESP32 For Busy People”.

      We’re close to finishing the editing of the lectures. It’s going to take us a few days to set up the course on the website.

      • Belen Hedderich says:

        Hi Peter so ESP32 for busy people is a requirement to do this one?

        • Hi Belen,

          It is a prerequisite if you don’t have any working experience with the ESP32.

          To be more specific, if you have never done any work with the ESP32, you will not be able to follow ESP32 Unleashed as in ESP32 Unleashed I don’t cover any introductory topics.

          If you are totally new to the ESP32, I recommend enrolling to ESP32 For Busy People first, before attempting ESP32 Unleashed.

  • George Adams says:

    Hello Peter,
    Any idea on a release date for this coarse? I am working thru ESP32 for busy people, currently and am ready to enroll in this one as soon as it is ready.
    Thanks again for the great learnings and easy to understand lectures, and examples!

    • Hello George,

      at this point, it is looking like Friday or Saturday of next week.

      ESP32 Unleashed has hit 90 lectures and editing them required more time than I had anticipated. That many lectures also need more time spent to setup up the course on the website and test it.

      Almost there now, thank you for your patience.

  • Hi Peter,

    Can you provide a link to download the KiCad Files for the pcb used in this project.
    I have an inventory of smd 1210 parts and would like to tweak the board just a bit to be able to use my parts. (And get to use the kicad skills from your coarse).
    Thanks again for the great course(s)!!