Commit Graph

88 Commits

Author SHA1 Message Date
4b43623c0c add BL0939 support to PowerMetering BK7231N variant (#2142)
* initial

* restore gui

* tidy

* update docs

exclude duplicate voltageset, currentset, powerset entries though - needs work/thought

* DRY?
2026-07-12 20:55:19 +02:00
3c5f4a2d99 add Tuya coeff-key OpenBK7252 build to release (#2152)
* add Tuya BK7252U back

* Update .releaserc.yaml

* rbl

* Probe BK7252 Tuya OTA readback CRC

* Fix BK7252 Tuya OTA partition table

* Restore BK7252 Tuya OTA artefact

* Probe BK7252 OTA flash readback CRC

* patch RT bootloader

* remove releaser

* use standard partitions

* Update Makefile

* Create bk7252_partition_2M.json
2026-07-03 02:58:22 +02:00
da08a1765c Add support for Gaitek Airconditioner Protocol (#2099)
* Add GaitekAC driver header with function declarations

* Add GAITEK AC driver implementation

Implement GAITEK AC driver with UART protocol handling and commands.

* Add GaitekAC driver integration

* Enable GAITEKAC driver in obk_config.h

* Add GAITEK AC custom UART driver support

* Remove ENABLE_DRIVER_GAITEKAC definition

* Re-add GAITEK AC custom UART driver source
2026-06-23 08:58:54 +02:00
c77fd8945a RTL DA/E flasher stub (#2140) 2026-06-20 08:55:14 +02:00
c7125ae914 GD32VW553 support (#2116)
* GD32VW553

* update

* update

* update

* update

* update

* import some changes from inline pr

* extra bl changes

* ota calc md5 from flash
2026-06-05 14:51:37 +02:00
1d174d6dbc Update XRs (#2081)
* Update XRs

* Fixes
2026-04-12 00:20:17 +02:00
0d15c28b4c Use custom GCC for beken sdk (#2069)
* Use custom GCC for beken sdk

* fix

* gcc 15.2

* 15.2 rtlc
2026-04-06 15:30:38 +02:00
9752eb7cc6 RTL8721DA BT Proxy (#2074) 2026-04-06 12:40:05 +02:00
4fa230197b BL616/BL602_ALT (#2066)
* BL616

* BL602_ALT

* Custom RTL8721DA UART pins

* commonize ota & disable builds in workflow

* small cleanup

* commonize wifi

* fixes
2026-04-04 20:18:46 +02:00
96cdd10f47 Driver for DCF77 radio controlled clock (#1911)
* push driver for DCF77 to actual OBK code

* Chnged to new HAL IRQ API
Added missing "CHANGE" interrupt (rising and falling) for LN882H, W600/W800 and ESP (not yet tested)

Moved code from ISR to QuickTick funktion (else LN882H would crash)

Tested to work with

W800 ("CHANGE")
BL602 ("RISING" and "FALLING")
LN882H (both "CHANGE" and "RISING"/"FALLING" tested)

* fixed ESP (wrong formated comment

for testing at least compilation, added "#define ENABLE_DRIVER_DCF77	1" for more platforms ...

* disabled DCF77 driver for RDA5981 - no xticks code found

* Changed logic again, IRS will only save timestamp, all decoding is done in QuickTick function
No need for Rising/falling edge definition, driver ony searches for "bit" gaps (100 or 200 ms) and ignore the "in between" gap to the next bit.
Therefore no need to know, if rising or falling edge starts the bit.

* chagnge driver to get Pin from argument 1

* Disable driver in obk_config.h
2026-03-21 00:55:04 +01:00
7f257f1055 mDNS support for other platforms (#2018)
* mDNS support for other platforms

* add mDNS support for BK7238

* add mDNS support for W600

* add mDNS support for W800

* add mDNS support for BL602

* add mDNS support for ESP8266

* enable mDNS driver by default on ESP8266

* add mDNS support for ESP32 (ESP-IDF)

* add mDNS support for ESP32-C3 (ESP-IDF)

* add mDNS support for ESP32-C6 and gate ESP32-C3 to 4M

* document ESP32-C3 2M mDNS gating rationale

* add mDNS support for ESP32-S3 (ESP-IDF)

* rtl87x0c: add mdns support and ota upload heap guard

* add mDNS support for TR6260

* add mDNS support for BK7231U - untested

* add mDNS support for BK7252 - untested

* add mDNS support for BK7252N - untested

* add mDNS support for LN8825 - untested

* expand mDNS support for ESP-IDF C2/C5/C61/S2 - untested

* add mDNS support for ECR6600 - untested

* add mDNS support for XR806/XR809 - untested

* enable mDNS by default for ESP8266

* RTL cleanup 

Removed RTL-specific code for OTA uploads and client management.

* RTL cleanup 

Removed Realtek-specific OTA guard code and related logging.

* RTL cleanup

---------

Co-authored-by: openshwprojects <85486843+openshwprojects@users.noreply.github.com>
2026-03-19 22:26:27 +01:00
42729cf3a8 BT Proxy & minimal esphome api (#2003)
* Import DeDaMrAzR BT proxy

* rtl8720d bt

* fix

* clean up, disable esp

* rtlc

* bk723x bt

* fix

* fix2

* bk active scan

* ln882h

* fix

* tweak ln882h ps

* cleanup

* cleanup
2026-03-16 13:39:58 +01:00
c49a934eba add mDNS driver for BK7231N/BK7231T as base (#2017)
* feat: add mDNS driver for BK7231N/BK7231T

* chore: update sdk submodules to upstream mdns merges

* fix: include mdns driver source in shared build manifests

* fix: avoid mdns link errors when sdk responder is disabled
2026-03-07 16:22:13 +01:00
91cf1a61ca merge in new shutters driver
* test1

* test

* cal

* enable on beken

* fix

* fix stop so it stops immediatelly

* buttons for up and down

* HA

* test

* Update new_pins.h

* fix warning: implicit declaration of function 'Shutter_MoveByIndex' [-Wimplicit-function-declaration] etc

* Update drv_shutters.c

* double order stop

* Update drv_shutters.c

* Update selftest_shutters.c

* Update win_main.c

* Update obk_config.h
2026-03-01 09:47:36 +01:00
4ab93c6b06 Tiny nec receiver + timer period changes (#1995)
* Tiny nec receiver + timer period changes

* fixes

---------

Co-authored-by: openshwprojects <85486843+openshwprojects@users.noreply.github.com>
2026-03-01 08:20:42 +01:00
9c60b21cbc MQTT Server Driver with Berry Bindings
* t

* t

* t

* dis

* t

* linked

* fixes

* stat

* make

* fx

* Update drv_mqttServer.c

* fixers 1

* cmd fix

* tools

* w

* Update drv_mqttServerBerry.c
2026-02-26 12:19:24 +01:00
ec56008600 build old ir on non-beken (#1979)
* build old ir on non-beken

* fix potential issue

* final fixes
2026-02-09 23:50:51 +01:00
ca2b1d7172 Fix LN8825 release (#1978) 2026-02-06 23:30:37 +01:00
3b485ee997 HW Timer HAL (#1975)
* HW Timer HAL

* fixes

* more fixes

* extra platforms

* extra

* ameba1/z cpp

* w800 ir

* esp timers

* use hal for ir and rc
2026-02-06 22:03:41 +01:00
ac925a6a12 BK use easyflash for flash vars (#1969)
* bk use easyflash for flash vars

* fix?

* Disable EF asserts and log

* test

* w600 fv

* no longer needed
2026-02-06 01:25:13 +01:00
e500ac88b4 LTR-303 driver (#1970)
* LTR-303 driver

* Forgot discovery

---------

Co-authored-by: openshwprojects <85486843+openshwprojects@users.noreply.github.com>
2026-02-03 20:40:59 +01:00
aeafcb0863 LN882H ADC (#1963)
* LN882H ADC

* Unify 882H and 8825 main. 8825 adc

* fix

* disable adc reinit on 8825

* allow log port change, basic uart, disable berry

* Use UART2 instead of UART0, and allow changing UART pins

* fix

* tr6260 pwm duty 0

* import from tuya

---------

Co-authored-by: openshwprojects <85486843+openshwprojects@users.noreply.github.com>
2026-02-03 20:39:26 +01:00
abcf19a498 W600/W800 SPI DMA (#1964) 2026-02-03 20:37:14 +01:00
c962d12c74 add drv_dmx512 to makefile 2026-02-01 12:04:45 +01:00
43e3540518 SSD1306 tiny I2C display driver
* TEST

* t1

* faster

* Update drv_ssd1306.c

* mk

* Update drv_ssd1306.c

* test

* Update drv_ssd1306.c

* Update drv_ssd1306.c

* Update drv_ssd1306.c

* fx

* test

* Update drv_ssd1306.c

* cmds

* fx

* q

* goto

* Update drv_ssd1306.c

* finish

* rev
2026-01-29 01:12:04 +01:00
17dbe1e44b ESP8266 changes + LN882H sdk update (#1955) 2026-01-26 10:03:21 +01:00
eee7ac2f8e LN8825B (#1946)
* LN8825B

* update

* powersave

* pwm fix

* pwm/ir

* release
2026-01-20 01:13:10 +01:00
7fcfe795e4 Extra power save feature (#1943)
* extra power save feature

* update

* fix w800 powersave
2026-01-15 09:55:26 +01:00
54d5ae7e16 Driver for NEO6M GPS module (#1890)
* Driver vor NEO6m GPS receiver
Tested on W800

* Some tweaks:
empty RX buffer betewwn readings
on several unsuccessful reads, try enabling the NMEA RMC messages again

* empty buffer every second
remove commented out old code

* fix broken log if no lat/long NS or EW is present

* Add "savecfg" argument to save config to NEO after configuring - so next time we might use it without sending commands to NEO module
this way, only NEOs Tx is needed (and OpenBekens Rx)

---------

Co-authored-by: openshwprojects <85486843+openshwprojects@users.noreply.github.com>
2025-12-21 12:30:01 +01:00
ee25464c26 RF driver (receiver RF directly with SYN590R or similar)
* test

* T

* T

* W

* Update RCSwitch.cpp

* t

* w

* Update RCSwitch.h

* Update RCSwitch.cpp

* w

* ww

* Update RCSwitch.cpp

* t

* ttt

* test

* dbg

* Update RCSwitch.cpp

* Update RCSwitch.cpp

* ww

* Update drv_rc.cpp

* c

* Update RCSwitch.h

* make

* fix

* Update drv_rc.cpp

* wwww

* wwwwwwwwwww

* Update drv_rc.cpp

* fix

* dsfsdsd

* IOR_RCRecv

* Update RCSwitch.cpp

* test

* ffffffffffffx

* sds

* try

* fx

* tttttttt

* fixes

* fx

* hold

* hide debug vars
2025-12-15 19:56:10 +01:00
c166966e02 OpenRTL8710B CloudCutter UG image + release (#1882)
* Realtek RTL8710B CloudCutter Try #1

* rename tool

* .img

* Update workflow.yaml
2025-12-05 00:08:59 +01:00
a34f90bcbb DS3231 RTC driver embedded in "local clock" (PR#1729) (#1792)
* Try NTP split update to actual source

* fix windows makefiles and timed_events

* fix typo

* Fix sprintf format

* sprintf format - next try to fix for ESP and ESP8266

* sprintf - special case for ESP8266

* Adding GUI button to set clock

* fix

* Add debug output

* fix missing HTTP output
use original obk_config.h - only renaming functions - to see filesizes

* limit functions to NTP ode CLOCK present

* try fix selftests

* Enable simple clock for all platforms, even if NTP is not enabled

* test fixing merge-conflict

* try fixing merge conflicts #1

* try fix merge conflict

* Fix typos
consolidate time display on main page
fix double comments preventing several documentation details ($mday, $month ...) on docs/constants.md
enabling more time stuff for W800 for local testing.

* Fix setDST argument passing

* only test DST if clock is running

* Fix setting epoch time - use atol(<string arg>) instead of Tokenizer_GetArgInteger(0) for epoch
Change user_main.c to use xticks as uptime for g_secondsElapsed

* Fix g_secondsElapesd for Windows - no xTicks there so stick to old way with g_secondsElapesd++ here ...

* Fix simulator build
remove additional defines for W800 used for testing

* Use esp_timer_get_time() instead of xTicks for ESP.
Seems much better, 30 seconds difference in one day
(used to be over 10 minutes off in 12 hours)

* Include DS3231 code

* Include DS3231 RTC driver

* Try simple fix for TXW81X without RTOS

* Second try fix TXW81X

* Fix comments for doc

* fix obk_config (still using "#define ENABLE_NTP_SUNRISE_SUNSET" instead of new "#define ENABLE_CLOCK_SUNRISE_SUNSET")
fix RDA5981
(as already done in branch Split_NTP_new)

* fix deviceclock code for corrected #define

* enable DS3231 driver for all platforms to test compilation and compare sizes

* fix selftest DST and sunrise/sunset (command names are "CLOCK_..." not "NTP...")

* Fix selftest for DST and sunset/sunrise events

* Add debug to try fixing selftest issue

* more debug

* Disable bedug output after fix.

* Disable DS3231 for all platforms. To tes, use previous commit

* Fix comments and handling of year when setting time of DS3231
Switch to internal time functions to reduce flash usage (avoid gmtime and mktime)

* Fix direct acces of NTP-time via g_ntpTime - use function "Clock_GetCurrentTime()"
switch to obktime instead of time.h "gmtime"

* Fix missing include for deviceclock and obktime

* made ds3231 driver dependent on "#define ENABLE_DRIVER_DS3231"
change "deviceclock.c" to set DS3231 RTC on every clock set command if driver is running, so e.g. every NTP update will also adjust RTC time

* fix missing includes for DRV_IsRunning() and DS3231_SetEpoch()

* introducing DS3231_informClockWasSet(bool force) - called by drv_deviceclock whenever clock is set.
so DS3231 driver can ste the clock, if needed - using "force" will force setting (no supprise ;-))

* Fixes to drv_main.c (missing args for onHassDiscovery)
Fixed missing arg "bPreState" in XX_AppendInformationToHTTPIndexPage()
Changed name from CLOCK to TIME
changed some "gmtime" to obktime "calculateComponents()a

* fixes

* fix obk_config.h

* fix missing include

* fix include for drv_txw81x_camera.c

* Directly call TIME "driver" functions, but don't use as real driver - so hiding it's presence in GUI

* fix missing OnEverySecond for TIME

* Prepare for merge: disable DS3231 driver for all platforms

* fix broken obk_config.h

* revert unintended change of src/driver/drv_max72xx_single.c
2025-12-04 14:46:51 +01:00
35fca72376 esp8266 optimize + idle hooks (#1869) 2025-11-23 14:47:39 +01:00
e9e20ed445 esp8266 ADC, EEPROM driver, max7219 simulator
* test

* Update workflow.yaml

* t

* makes

* Update drv_simpleEEPROM.c

* Update drv_simpleEEPROM.c

* ber

* Update workflow.yaml

* tt

* ber

* charts

* owm

* tt

* rem charts

* smaller

* test

* test

* fixes

* test

* charts

* comments

* test

* tt

* test

* add file to proj

* try to add pin 13 as ADC (testing in progress)

* test

* test

* MAX7219 simulator HACK

* final fixes

* Update drv_max72xx_internal.c

* restore

* fx
2025-11-23 14:01:04 +01:00
2086cb84fc Implementation of girier MCU driver for 2ch dimmer (#1846)
* Implementation of girier MCU driver for 2ch dimmer

* Fixed review notices

* makefiles

* dpType = 0; // TODO - uninitialized

* header

* add to vcproj

* header

* #if ENABLE_DRIVER_GIRIERMCU

* clear

---------

Co-authored-by: Tester <85486843+openshwprojects@users.noreply.github.com>
2025-11-18 22:00:19 +01:00
f2c87bf690 merge max72xx clock progress and i2c pinwide scanner and misc fixes
* MAX72XX

* better

* faster buof

* eext

* test

* fx

* fxes

* tr

* fx

* Update drv_max72xx_clock.c

* fxes

* test

* fxes

* tests fxes

* fxes

* scr

* fx

* Update drv_local.h

* show

* Update drv_max72xx_clock.c

* test

* Delete lastEnumTemplate.txt

* TEST

* scan

* Update drv_main.c

* Update obk_main.cmake

* Update drv_multiPinI2CScanner.c

* dbg

* fxes

* Update drv_multiPinI2CScanner.c

* Update drv_multiPinI2CScanner.c

* Update drv_multiPinI2CScanner.c

* owm

* osm test

* restorew platfotms

* Update selftest_openWeatherMap.c

* test

* getter

* Update obk_config.h
2025-11-11 16:27:13 +01:00
73bbc45126 merge partition search driver (disabled by default)
* test

* search

* fx

* fx1

* enavble

* Update obk_main.mk

* 0x200000

* Update drv_bkPartitions.c

* chk

* crc

* finalize

* fxes
2025-11-04 20:29:54 +01:00
f5a3b2642b RTL new fix OTA (#1836)
* RTL new fix OTA
clean-up workflow

* fix esp cache?
2025-10-17 08:44:13 +02:00
4ad9a85a08 Add ChType_Enum and enable SetChannelEnum. (#1830)
* create a ChType_Enum to go with SetChannelEnum

* resolve build errors for ChType_Enum PR

* fixing build errors for simulator and others for cmd_enums.c

* added ChType_ReadOnlyEnum and assocaited enum selftests

* ChType_Enum simulation and memory error corrections

* ChType_Enum documentation updates

---------

Co-authored-by: root <root@stonacek.nz>
2025-10-14 09:21:18 +02:00
4a2ae013ed HLW8112 Driver for energy measurments (#1810)
* initial test driver for hlw8112

Signed-off-by: Nizam <code@maxters.net>

* restrict build to BK7231N
will stub other platforms later

Signed-off-by: Nizam <code@maxters.net>

* fix newer gcc build

Signed-off-by: Nizam <code@maxters.net>

* fix channel b stat restore
after all i still doesnt get pointer arithmetic

Signed-off-by: Nizam <code@maxters.net>

* clean up flashvar bk7231 still use emetering struct to store data

Signed-off-by: Nizam <code@maxters.net>

* fix OpenBK7231N_ALT build fail

Signed-off-by: Nizam <code@maxters.net>

* disable incomplete spi device raw access commands and ui

Signed-off-by: Nizam <code@maxters.net>

* remove mqtt hack for commands. leverage existing tasmota command framework

Signed-off-by: Nizam <code@maxters.net>

* missed flashvar restore

Signed-off-by: Nizam <code@maxters.net>

* disable hlw812 driver for upstream pr

Signed-off-by: Nizam <code@maxters.net>

---------

Signed-off-by: Nizam <code@maxters.net>
2025-09-30 15:04:15 +02:00
6083ddfca5 RDA5981 (#1813) 2025-09-29 08:41:36 +02:00
481cc0ede2 DMX works on ESP32 LilyGO, other platforms requires porting code to change baudrate
* ENABLE DMX on ESP

* test

* s

* Update hal_uart_espidf.c

* Update obk_main.cmake

* w

* test

* Update hal_uart_espidf.c

* Update drv_dmx512.c

* test

* test

* test

* w

* t

* c

* t

* test

* T

* Update drv_dmx512.c

* test

* test

* try flush

* try wait

* ticks w

* t

* fx

* 100 ms

* SIM fx

* Update cmd_newLEDDriver.c

* test 2x

* tests

* fixes

* free

* fix

* misc

* b

* hal

* s

* Update workflow.yaml

* pin

* fin

* test

* Update hal_uart_espidf.c
2025-09-14 21:07:24 +02:00
e85b9a67be small update (#1786) 2025-09-05 08:58:42 +02:00
0d007112b1 TXW817 support (#1779)
* txw81x base no makefile

* txw81x

* gpio fix?

* non-working ota

* mic
2025-09-03 11:46:06 +02:00
948237869f LN882H IR (#1783) 2025-09-03 11:45:24 +02:00
f3d3ff412a BL602 irRemoteESP (#1777) 2025-08-30 21:24:04 +02:00
670798a83a merge LED strip backend separation before DMX support
* stub

* clear

* clear upo

* one more test

* split

* fx

* Update drv_led_shared.c

* step

* split

* Update drv_leds_shared.c

* Update selftest_ws2812b.c

* port

* dmx

* DMX

* s

* with test

* fix

* fx

* ChType_Ph test and RGBW test

* ddp formats unfinished

* Update selftest_ws2812b.c

* Update selftest_hass_discovery_ext.c

* fxes
2025-08-28 21:52:59 +02:00
e6dbea6007 simple TCA9554 driver, enabled by default on 4MB ESP32, for Waveshare barrd
* TCA9554

* fx

* proj

* makeff

* io

* better

* fx

* TCA9554 almoisy

* test

* fx
2025-08-22 09:07:28 +02:00
e5b1b864fa spellings (#1767) 2025-08-19 08:50:37 +02:00
9adcd9950f Realtek/BL602 spi led (#1763)
* realtek spi led

* fix RTL_A and RTL_B

* fix esp version

* Update docs
add missing esp8266 pins

* bl602 spi led

* fix

* deinit

* bl602 miso swap
2025-08-18 20:37:18 +02:00