From 8a6800eab8210f5e6e8e46a15c2ba21a208bc498 Mon Sep 17 00:00:00 2001 From: Michael Ingraham <34340210+meingraham@users.noreply.github.com> Date: Tue, 17 Sep 2019 09:09:01 -0400 Subject: [PATCH] Updated Compiling Tasmota on Gitpod (markdown) --- Compiling-Tasmota-on-Gitpod.md | 82 ++++++++++++++++++---------------- 1 file changed, 43 insertions(+), 39 deletions(-) diff --git a/Compiling-Tasmota-on-Gitpod.md b/Compiling-Tasmota-on-Gitpod.md index 0fa1a41a..a4ce6f1d 100644 --- a/Compiling-Tasmota-on-Gitpod.md +++ b/Compiling-Tasmota-on-Gitpod.md @@ -1,71 +1,75 @@ Even though Tasmota offers several pre-compiled firmware variants, sometimes the ready-to-flash binaries aren't enough. -Do you want to enable or disable some features, or simply change some parameters? Then you need to compile a binary yourself. +If you need to enable or disable some features, or simply change some parameters, then you need to compile a firmware binary yourself. -If you are not experienced enough or don't want to install an IDE (Integrated Development Environment) like PlatformIO or Arduino-IDE on your computer, you can compile your own firmware in a breeze on [Gitpod](https://www.gitpod.io/). +If you are not experienced enough or don't want to install an IDE (Integrated Development Environment) like PlatformIO or Arduino-IDE on your computer, compiling your own firmware is a breeze using [Gitpod](https://www.gitpod.io/). -#### Gitpod: -Gitpod is a web browser based online IDE. All you need to use it is to link your GitHub account (or make a new one [here](https://github.com/join?source=header)). +Gitpod is a web browser based online IDE. All you need to use it is to link your GitHub account (or make a new one [here](https://github.com/join?source=header)). Gitpod will take care of all the necessary software package dependencies for you. ![Gitpod login](https://i.imgur.com/irTdi4A.png) -After you successfully sign in, you can start your personal project. The fastest way to load Tasmota into Gitpod is with one of the following links: - -- [TasmoCompiler](https://github.com/benzino77/tasmocompiler/blob/master/README.md): [`https://gitpod.io/#https://github.com/benzino77/tasmocompiler`](https://gitpod.io/#https://github.com/benzino77/tasmocompiler) -- Master Release: [`https://gitpod.io#https://github.com/arendst/Sonoff-Tasmota/tree/master`](https://gitpod.io#https://github.com/arendst/Sonoff-Tasmota/tree/master) +After you successfully sign in, you can start your personal project. The fastest way to load Tasmota into Gitpod is with one of the following links: - Development Branch: [`https://gitpod.io#https://github.com/arendst/Sonoff-Tasmota/tree/development`](https://gitpod.io#https://github.com/arendst/Sonoff-Tasmota/tree/development) +- Master Release: [`https://gitpod.io#https://github.com/arendst/Sonoff-Tasmota/tree/master`](https://gitpod.io#https://github.com/arendst/Sonoff-Tasmota/tree/master) +- [TasmoCompiler](https://github.com/benzino77/tasmocompiler/blob/master/README.md): [`https://gitpod.io/#https://github.com/benzino77/tasmocompiler`](https://gitpod.io/#https://github.com/benzino77/tasmocompiler) -Gitpod will take care of all the necessary software package dependencies for you. +**Browser Extension** +Gitpod has a browser extension (Chrome and Firefox) which is handy to directly load a GitHub project into your personal Gitpod work-space. +![Gitpod link](https://i.imgur.com/uEHszIn.png) -After loading the project, you will be greeted by the main window, presenting three panels: +[More information on the Gitpod browser extension](https://www.gitpod.io/docs/20_Browser_Extension/). +## Using Gitpod +After Gitpod loads the project, you will be greeted by the main window. Gitpod will then automatically compile `sonoff.bin`. Wait for the compilation to complete. + +The display consists of three panels: 1. Explorer 2. Editor 3. Terminal ![Gitpod main screen](https://i.imgur.com/nfAYnwM.png) -Explorer is the first place you need to look to edit your configuration. - -#### :warning: ATTENTION: -The proper method of customizing firmware compilation options is to use the `user_config_override.h` file. Most customizations should not require changes to the `my_user_config.h` file. To modify the stock configuration: - +### Customize Firmware Features and Settings +:warning: ATTENTION: The proper method of customizing firmware compilation options is to use the `user_config_override.h` file. Most customizations should not require changes to the `my_user_config.h` file. To modify the stock configuration: 1. Select the `/sonoff` folder in the Explorer (1) pane 2. Create a new file called `user_config_override.h` -3. In the Editor (2) pane, change, add, or remove anything you need in your configuration file to define your own settings. Refer to the `user_config_override_sample.h` file as well as `my_user_config.h` for `#define` options. You can find a list of Tasmota features supported listed [here](https://github.com/arendst/Sonoff-Tasmota/wiki/Builds). Define the features you require in your configuration file. -4. Open the `platformio.ini` file located in the `/Sonoff-Tasmota` root directory (scroll to the bottom of the file Explorer pane) -5. In the Editor (2) pane, a leading semicolon `;` comments out (disables) a statement: - - In the `[common]` section, enable `-DUSE_CONFIG_OVERRIDE` if using your own `user_config_overrid.h` +3. In the Editor (2) pane, add, change, or remove anything you need in your configuration file to define your own settings. Refer to the `user_config_override_sample.h` file as well as `my_user_config.h` for `#define` options ([sample](https://pastebin.com/M5KPPWAJ)). You can find a list of Tasmota features and settings listed [here](https://github.com/arendst/Sonoff-Tasmota/wiki/Builds). Define the features you require in your configuration file. +4. Click 'File' on the menu bar and 'Save' your edits. + +### Prepare the IDE for Compilation +1. Open the `platformio.ini` file located in the `/Sonoff-Tasmota` root directory (scroll to the bottom of the file Explorer (1) pane). In this file, removing a leading semicolon `;` enables a statement. +2. In the Editor (2) pane: + - If you are using your own `user_config_overrid.h`, you must tell the compiler to use it. Find the `[common]` section in the file. Enable `-DUSE_CONFIG_OVERRIDE` ![Edit platformio.ini](https://i.imgur.com/AQml2kI.png) - - In the `[core_active]` section, enable the `platform` and `build_flags` lines for the desired core + - By default, the 2.6 Core will be compiled. If you wish to use a different Core, find the `[core_active]` section in the file and enable the `platform` and `build_flags` lines for the desired Core. +3. Click 'File' on the menu bar and 'Save' your edits -When you are done, save all of your edits (user_config_override & platformio.ini). Now you're ready to compile. - -#### COMPILING YOUR BINARY: -This action is done in the Terminal pane (3) with very simple commands. The simplest one is `platformio run -e sonoff` +### Compile Your Firmware +This action is done in the Terminal pane (3) with very simple commands. ![compile command](https://i.imgur.com/wXA4hvd.png) -With this command, Gitpod will compile the Tasmota firmware with the features you selected. If you need a different variant, you can specify this option on the command line: +The simplest one is `platformio run -e sonoff`. With this command, Gitpod will compile the Tasmota firmware with the features you selected. If you need a different variant, you can specify this option on the command line: +`platformio run -e ` -`platformio run -e ` +Examples: +- `platformio run -e sonoff-sensors` +- `platformio run -e sonoff-DE` -For example: -`platformio run -e sonoff-sensors` -or -`platformio run -e sonoff-DE` - -Compilation normally takes only a couple of minutes. The time if takes is directly related to the configurations you selected; the more features selected means more time is needed to compile. When done, you will find you binary (`firmware.bin`) in `/Sonoff-Tasmota/.pioenvs//` +Compilation normally takes only a couple of minutes. The time if takes is directly related to the configurations you selected; the more features selected means more time is needed to compile. When done, you will find a firmware file names `firmware.bin` in the `/Sonoff-Tasmota/.pioenvs//` folder. ![folders](https://i.imgur.com/SEqyGy2.png) -Download the `firmware.bin` file to your computer and you are now ready to flash your device. Use [`esptool`](https://github.com/arendst/Sonoff-Tasmota/wiki/Esptool) or any other firmware upload [method](https://github.com/arendst/Sonoff-Tasmota/wiki/Flashing). +Download `firmware.bin` to your computer by right-clicking on the file and selecting 'Download'. You are now ready to flash your device. Watch a [livestream video by digiblurDIY](https://www.youtube.com/watch?v=vod3Woj_vrs) of compiling Tasmota using Gitpod. -#### Browser Extension: -Gitpod has a browser extension (Chrome and Firefox) useful to directly load a GitHub project into your personal work-space. - -![Gitpod link](https://i.imgur.com/uEHszIn.png) - -More information [here](https://www.gitpod.io/docs/20_Browser_Extension/). +### Flash Your Device +#### OTA Flash +If you already have Tasmota flashed on your device, you can use the `File Upload` OTA method to load the new firmware binary file. +1. Download [`sonoff-minimal.bin`](http://thehackbox.org.tasmota/020300/sonoff-minimal.bin) +2. Make a backup of the device configuration using the web UI `Configuration` menu option. +3. Upload `sonoff-minimal` to your device using the web UI `Firmware Upgrade` selection. Choose `Upgrade by file upload`. +3. After `sonoff-minimal` is successfully loaded, select `Firmware Upgrade` once again and upload the new firmware file that was just compiled using Gitpod. +#### Serial Flash +Follow the same [procedure for flashing](https://github.com/arendst/Sonoff-Tasmota/wiki/Flashing) as you would any new device.