# esp-idf Tools and Installer/Reinstaller installs/reinstalls full esp-idf with my own additions on linux. pulls from master so its the very latest built for debian-like systems only currently tested on zsh some features require user to have passwordless sudo rights Literally the most schizophrenically overengineered thing I have ever made. idk why I did that ## Quick start 1. `git clone https://github.com/PrincessPi3/esp-idf-tools.git ~/esp-idf-tools` 2. `bash ~/esp-idf-tools/esp-idf-tools-cmd.sh` 3. `source ~/.zshrc` 4. `get-esp-tools` ## Usage ``` Some take optional [branch] paramater [branch] is the esp-idf branch you desire, defaults to master if not specified. default: reinstalls non-interactively with no delays, logouts, or reboots `run-esp-cmd` test: tests the script. very fast. minimal actions taken. no reinstall is done `run-esp-cmd test [branch]` `run-esp-cmd t [branch]` retool: reinstalls bins and export.sh, nothing else `run-esp-cmd retool` `run-esp-cmd rt` cron: runs noninteractively with forced user logout and automatic reboot, plus delays `run-esp-cmd cron [branch]` `run-esp-cmd c [branch]` update: updates and installs latest without reboot or user logout `run-esp-cmd update [branch]` `run-esp-cmd u [branch]` interactive: interactively installs/reinstalls esp-idf `run-esp-cmd interactive` `run-esp-cmd i` nuke: full delete and re-download and install `run-esp-cmd nuke [branch]` `run-esp-cmd n [branch]` nukereboot full delete and re-download and install, then reboot `run-esp-cmd nukereboot [branch]` `run-esp-cmd nr [branch]` clearlogs: clear logs `run-esp-cmd clearlogs` `run-esp-cmd clear` `run-esp-cmd cl` help: display this help text `run-esp-cmd help` `run-esp-cmd h` `run-esp-cmd -h` `run-esp-cmd --help` `help-esp-tools` uninstall: uninstall esp-idf `run-esp-cmd uninstall` ``` ## Features * `get-idf-tools` enter esp-idf * `help-esp-tools` show this help * `exit-esp-tools` exit esp-idf and reset terminal * `build` idf.py build * `changebaud` alone prompts to enter baudrate * `changebaud ` sets baudrate manually * ex. `changebaud 115200` * `changeesp` change esp device * `changeesp` alone prompts to enter * `changeesp ` manually changes to * ex. `changeesp esp32p4` * `changeport` change serial port * `changeport` alone prompts to select * `changeport ` manually specifies path * ex. `changeport /dev/ttyUSB0` changes to /dev/ttyUSB0 * `clean` idf.py clean * `fullclean` fully resets a project, 'idf.py fullclean' plus remove the build dir and delete some temp and backup files * `rebuildfull` does a `fullclean` but also an `erase-flash` and also `setup` * `setup` same as running `idf.py set-target $ESPTARGET; idf.py menuconfig; idf.py build` * `flash` idf.py flash * `monitor` idf.py monitor * `erase-flash` idf.py erase-flash * `save-defconfig` idf.py save-defconfig * `step-flash-monitor` attempt clean, build, flash, then monitor, dying on error * `imagesize` get binary size, broken down in various ways including total, by componant, and by file * `chipinfo` get information from the esp chip * `espinfo` get detailed information from the esp chip * `menuconfig` run `idf.py menuconfig` * `create-project` alone prompts for a project name * `create-project ` creates a project with * ex. `create-project hello-world` * `esp-install-monitor` monitors install.log. alias for `tail -n 75 -f $ESPIDFTOOLS_INSTALLDIR/install.log` * `esp-install-logs` displays full text of install.log and version-data.txt * `$examples` is a shortcut for examples directory in esp-idf * ex. cd `$examples` ### Cronjob reinstall from master everyday at 4am, logging out users with warn delays and rebooting after * `crontab -e` add below to bottom of file: * `0 4 * * * bash $HOME/esp/esp-install-custom/esp-idf-tools-cmd.sh cron`