Skip to content

Instantly share code, notes, and snippets.

@kzyapkov
Last active March 14, 2016 18:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save kzyapkov/5c0926a45bc30cadd24d to your computer and use it in GitHub Desktop.
Save kzyapkov/5c0926a45bc30cadd24d to your computer and use it in GitHub Desktop.
TARGET=$(notdir $(shell pwd))
ARDUINO_DIR ?= /opt/arduino-1.6.7
ARDUINO_BUILDER ?= $(ARDUINO_DIR)/arduino-builder
ARDUINO_HARDWARE ?= $(ARDUINO_DIR)/hardware
MKSPIFFS ?= $(ARDUINO_DIR)/hardware/esp8266com/esp8266/tools/mkspiffs/mkspiffs
ESPOTA_PY ?= $(ARDUINO_DIR)/hardware/esp8266com/esp8266/tools/espota.py
PYTHON ?= python2
ESPTOOL ?= $(shell which esptool)
ESPTOOL_RESET ?= nodemcu
APP_BAUD ?= 115200
SERIAL_PORT ?= /dev/ttyUSB0
ESP_PORT ?= 8266
# ESPTOOL_BAUD?=57600
ESPTOOL_BAUD?=115200
# ESPTOOL_BAUD?=230400
# ESPTOOL_BAUD?=460800
# 1M flash configuration
# FLASH_SIZE=1M160
# SPIFFS_PAGE=256
# SPIFFS_BLOCK=4096
# SPIFFS_SIZE=
# 2M flash configuration
FLASH_SIZE=2M
SPIFFS_PAGE=256
SPIFFS_BLOCK=8192
SPIFFS_SIZE=1028096
ARDUINO_FQBN="esp8266com:esp8266:generic:UploadTool=esptool,CpuFrequency=80,FlashFreq=40,FlashMode=qio,UploadSpeed=115200,FlashSize=$(FLASH_SIZE)"
.PHONY: clean all upload upload_fs upload_bin upload_py
BUILD_PATH=$(shell realpath build)
SPIFFS_PATH=build/spiffs
OBJDUMP?=xtensa-lx106-elf-objdump
all: build/$(TARGET).ino.bin
build/$(TARGET).ino.bin:
mkdir -p build
$(ARDUINO_BUILDER) -compile -debug-level=1 \
-hardware=$(ARDUINO_HARDWARE) \
-tools=$(ARDUINO_DIR)/tools-builder \
-tools=$(ARDUINO_HARDWARE)/tools/avr \
-built-in-libraries=$(ARDUINO_DIR)/libraries \
-fqbn=$(ARDUINO_FQBN) \
-build-path=$(BUILD_PATH) \
$(TARGET).ino
$(OBJDUMP) -S build/$(TARGET).ino.elf > build/$(TARGET).ino.elf.txt
clean:
-rm -rf build
upload_bin: build/$(TARGET).ino.bin
$(ESPTOOL) -vv -cd $(ESPTOOL_RESET) -cb $(ESPTOOL_BAUD) -cp $(SERIAL_PORT) \
-ca 0x000000 -cf build/$(TARGET).ino.bin
upload: build/$(TARGET).ino.bin
$(ESPTOOL) -vv -cd $(ESPTOOL_RESET) -cb $(ESPTOOL_BAUD) -cp $(SERIAL_PORT) \
-ca 0x000000 -cf build/$(TARGET).ino.bin
ota_bin: build/$(TARGET).ino.bin
$(PYTHON) $(ESPOTA_PY) -i $(ESP_ADDR) -p $(ESP_PORT) -f build/$(TARGET).ino.bin
# try an alternative upload method
upload_py: build/$(TARGET).ino.bin
esptool.py --port $(SERIAL_PORT) --baud $(ESPTOOL_BAUD) write_flash \
0x000000 build/$(TARGET).ino.bin
screen:
screen $(SERIAL_PORT) $(APP_BAUD)
clear
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment