mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-30 22:53:59 +00:00 
			
		
		
		
	Support for LibreTiny platform (RTL8710, BK7231 & other modules) (#3509)
Co-authored-by: Kuba Szczodrzyński <kuba@szczodrzynski.pl> Co-authored-by: Sam Neirinck <git@samneirinck.com> Co-authored-by: David Buezas <dbuezas@users.noreply.github.com> Co-authored-by: Stroe Andrei Catalin <catalin2402@gmail.com> Co-authored-by: Sam Neirinck <github@samneirinck.be> Co-authored-by: Péter Sárközi <xmisterhu@gmail.com> Co-authored-by: Hajo Noerenberg <hn@users.noreply.github.com>
This commit is contained in:
		
				
					committed by
					
						 GitHub
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							22c0b0abaa
						
					
				
				
					commit
					a9630ac847
				
			| @@ -41,7 +41,14 @@ CONFIG_SCHEMA = cv.Schema( | ||||
|     { | ||||
|         cv.GenerateID(): cv.declare_id(OTAComponent), | ||||
|         cv.Optional(CONF_SAFE_MODE, default=True): cv.boolean, | ||||
|         cv.SplitDefault(CONF_PORT, esp8266=8266, esp32=3232, rp2040=2040): cv.port, | ||||
|         cv.SplitDefault( | ||||
|             CONF_PORT, | ||||
|             esp8266=8266, | ||||
|             esp32=3232, | ||||
|             rp2040=2040, | ||||
|             bk72xx=8892, | ||||
|             rtl87xx=8892, | ||||
|         ): cv.port, | ||||
|         cv.Optional(CONF_PASSWORD): cv.string, | ||||
|         cv.Optional( | ||||
|             CONF_REBOOT_TIMEOUT, default="5min" | ||||
|   | ||||
							
								
								
									
										46
									
								
								esphome/components/ota/ota_backend_arduino_libretiny.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								esphome/components/ota/ota_backend_arduino_libretiny.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,46 @@ | ||||
| #include "esphome/core/defines.h" | ||||
| #ifdef USE_LIBRETINY | ||||
|  | ||||
| #include "ota_backend_arduino_libretiny.h" | ||||
| #include "ota_component.h" | ||||
| #include "ota_backend.h" | ||||
|  | ||||
| #include <Update.h> | ||||
|  | ||||
| namespace esphome { | ||||
| namespace ota { | ||||
|  | ||||
| OTAResponseTypes ArduinoLibreTinyOTABackend::begin(size_t image_size) { | ||||
|   bool ret = Update.begin(image_size, U_FLASH); | ||||
|   if (ret) { | ||||
|     return OTA_RESPONSE_OK; | ||||
|   } | ||||
|  | ||||
|   uint8_t error = Update.getError(); | ||||
|   if (error == UPDATE_ERROR_SIZE) | ||||
|     return OTA_RESPONSE_ERROR_ESP32_NOT_ENOUGH_SPACE; | ||||
|   return OTA_RESPONSE_ERROR_UNKNOWN; | ||||
| } | ||||
|  | ||||
| void ArduinoLibreTinyOTABackend::set_update_md5(const char *md5) { Update.setMD5(md5); } | ||||
|  | ||||
| OTAResponseTypes ArduinoLibreTinyOTABackend::write(uint8_t *data, size_t len) { | ||||
|   size_t written = Update.write(data, len); | ||||
|   if (written != len) { | ||||
|     return OTA_RESPONSE_ERROR_WRITING_FLASH; | ||||
|   } | ||||
|   return OTA_RESPONSE_OK; | ||||
| } | ||||
|  | ||||
| OTAResponseTypes ArduinoLibreTinyOTABackend::end() { | ||||
|   if (!Update.end()) | ||||
|     return OTA_RESPONSE_ERROR_UPDATE_END; | ||||
|   return OTA_RESPONSE_OK; | ||||
| } | ||||
|  | ||||
| void ArduinoLibreTinyOTABackend::abort() { Update.abort(); } | ||||
|  | ||||
| }  // namespace ota | ||||
| }  // namespace esphome | ||||
|  | ||||
| #endif  // USE_LIBRETINY | ||||
							
								
								
									
										24
									
								
								esphome/components/ota/ota_backend_arduino_libretiny.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								esphome/components/ota/ota_backend_arduino_libretiny.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | ||||
| #pragma once | ||||
| #include "esphome/core/defines.h" | ||||
| #ifdef USE_LIBRETINY | ||||
|  | ||||
| #include "ota_component.h" | ||||
| #include "ota_backend.h" | ||||
|  | ||||
| namespace esphome { | ||||
| namespace ota { | ||||
|  | ||||
| class ArduinoLibreTinyOTABackend : public OTABackend { | ||||
|  public: | ||||
|   OTAResponseTypes begin(size_t image_size) override; | ||||
|   void set_update_md5(const char *md5) override; | ||||
|   OTAResponseTypes write(uint8_t *data, size_t len) override; | ||||
|   OTAResponseTypes end() override; | ||||
|   void abort() override; | ||||
|   bool supports_compression() override { return false; } | ||||
| }; | ||||
|  | ||||
| }  // namespace ota | ||||
| }  // namespace esphome | ||||
|  | ||||
| #endif  // USE_LIBRETINY | ||||
| @@ -3,6 +3,7 @@ | ||||
| #include "ota_backend_arduino_esp32.h" | ||||
| #include "ota_backend_arduino_esp8266.h" | ||||
| #include "ota_backend_arduino_rp2040.h" | ||||
| #include "ota_backend_arduino_libretiny.h" | ||||
| #include "ota_backend_esp_idf.h" | ||||
|  | ||||
| #include "esphome/core/log.h" | ||||
| @@ -39,6 +40,9 @@ std::unique_ptr<OTABackend> make_ota_backend() { | ||||
| #ifdef USE_RP2040 | ||||
|   return make_unique<ArduinoRP2040OTABackend>(); | ||||
| #endif  // USE_RP2040 | ||||
| #ifdef USE_LIBRETINY | ||||
|   return make_unique<ArduinoLibreTinyOTABackend>(); | ||||
| #endif | ||||
| } | ||||
|  | ||||
| OTAComponent::OTAComponent() { global_ota_component = this; } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user