Added after 14 [minutes]:
lmk if you want me to try sensor on other platforms
Czy wolisz polską wersję strony elektroda?
Nie, dziękuję Przekieruj mnie tammax4elektroda wrote:And you are using PWM pin.
Stupid idea, but maybe timing differs if using different pins?
max4elektroda wrote:I don't think a 5.1k pull up should be a problem...
divadiow wrote:is there a risk that the timings will differ between clones/genuines/fakes etc
divadiow wrote:second probe with 4.7k now anyway
OWTimeH (should be 480us) 248us --> reset will usually work, but not inside specs !!!
OWTimeA (should be 6us) 9us
OWTimeE (should be 9us) 12us --> reading a bit is 6 us late (3 from A and 3 from E) might work, but not guaranteedError:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - usleepds(5000) took 4 ms
Error:CFG:DS1820 - usleepds(100000) took 52 ms
Error:CFG:usleepds duration divergates - proposed factor to adjust usleepds 1.923076
Info:CFG:DS1820 - asked for conversion - Pin 8
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=1)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=2)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=3)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=4)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=5)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=6)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Info:CFG:DS1820 - asked for conversion - Pin 8
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=1)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=2)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=3)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=4)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=5)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=6)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - usleepds(5000) took 2 ms
Error:CFG:DS1820 - usleepds(100000) took 62 ms
Error:CFG:usleepds duration divergates - proposed factor to adjust usleepds 1.612903
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - usleepds(5000) took 2 ms
Error:CFG:DS1820 - usleepds(100000) took 58 ms
Error:CFG:usleepds duration divergates - proposed factor to adjust usleepds 1.724137
Info:CFG:DS1820 - asked for conversion - Pin 8
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=1)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=2)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=3)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=4)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=5)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=6)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - usleepds(5000) took 4 ms
Error:CFG:DS1820 - usleepds(100000) took 56 ms
Error:CFG:usleepds duration divergates - proposed factor to adjust usleepds 1.785714
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - usleepds(5000) took 2 ms
Error:CFG:DS1820 - usleepds(100000) took 56 ms
Error:CFG:usleepds duration divergates - proposed factor to adjust usleepds 1.785714
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - usleepds(5000) took 2 ms
Error:CFG:DS1820 - usleepds(100000) took 56 ms
Error:CFG:usleepds duration divergates - proposed factor to adjust usleepds 1.785714
Info:CFG:DS1820 - asked for conversion - Pin 8
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=1)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=2)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Info:CFG:DS1820 - Pin=8 temp=+27.50
Info:CFG:DS1820 - High=1 Low=184 Val=440 Tc=2750 -- Read CRC=b2 - calculated:b2
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - usleepds(5000) took 2 ms
Error:CFG:DS1820 - usleepds(100000) took 58 ms
Error:CFG:usleepds duration divergates - proposed factor to adjust usleepds 1.724137
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - usleepds(5000) took 2 ms
Error:CFG:DS1820 - usleepds(100000) took 50 ms
Error:CFG:usleepds duration divergates - proposed factor to adjust usleepds 2.000000
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - usleepds(5000) took 2 ms
Error:CFG:DS1820 - usleepds(100000) took 48 ms
Error:CFG:usleepds duration divergates - proposed factor to adjust usleepds 2.083333
Info:CFG:DS1820 - asked for conversion - Pin 8
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=1)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=2)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=3)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=4)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=5)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=6)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Info:CFG:DS1820 - asked for conversion - Pin 8
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=1)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=2)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=3)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=4)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=5)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=6)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Info:CFG:DS1820 - asked for conversion - Pin 8
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=1)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Info:CFG:DS1820 - Pin=8 temp=+27.50
Info:CFG:DS1820 - High=1 Low=184 Val=440 Tc=2750 -- Read CRC=b2 - calculated:b2
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - usleepds(5000) took 6 ms
Error:CFG:DS1820 - usleepds(100000) took 50 ms
Error:CFG:usleepds duration divergates - proposed factor to adjust usleepds 2.000000
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - usleepds(5000) took 12 ms
Error:CFG:DS1820 - usleepds(100000) took 50 ms
Error:CFG:usleepds duration divergates - proposed factor to adjust usleepds 2.000000
Info:CFG:DS1820 - asked for conversion - Pin 8
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=1)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=2)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=3)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=4)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=5)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=6)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Info:CFG:DS1820 - asked for conversion - Pin 8
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=1)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=2)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=3)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Info:CFG:DS1820 - Pin=8 temp=+27.50
Info:CFG:DS1820 - High=1 Low=184 Val=440 Tc=2750 -- Read CRC=b2 - calculated:b2
Info:CFG:DS1820 - asked for conversion - Pin 8
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=1)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=2)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=3)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=4)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=5)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Info:CFG:DS1820 - Pin=8 temp=+27.56
Info:CFG:DS1820 - High=1 Low=185 Val=441 Tc=2756 -- Read CRC=f1 - calculated:f1
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - usleepds(5000) took 2 ms
Error:CFG:DS1820 - usleepds(100000) took 52 ms
Error:CFG:usleepds duration divergates - proposed factor to adjust usleepds 1.923076
Info:CFG:DS1820 - asked for conversion - Pin 8
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=1)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=2)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=3)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Read CRC=b2 != calculated:34 (errcount=4)
Error:CFG:DS1820 - Scratchpad Data Read: ba 1 ff ff 7f ff ff ff b2
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=5)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff
Error:CFG:DS1820 - Pin=8 -- Reset failed
Error:CFG:DS1820 - Read CRC=ff != calculated:c9 (errcount=6)
Error:CFG:DS1820 - Scratchpad Data Read: ff ff ff ff ff ff ff ff ff DeDaMrAz wrote:Can you please elaborate a bit on the usage of this driver?
include ../sharedAppContainer/sharedApp/platforms/W800/Makefile p.kaczmarek2 wrote:Why work around OBK_DISABLE_ALL_DRIVERS instead of just disabling it? Does it bring any advantages?
./bin/build/w800/lib/libuser.a(cmd_channels.o): In function `CMD_GetReadings':
(.text.CMD_GetReadings+0x8): undefined reference to `DRV_GetReading'
./bin/build/w800/lib/libuser.a(cmd_channels.o): In function `CMD_GetReadings':
(.text.CMD_GetReadings+0x8): relocation truncated to fit: R_CKCORE_PCREL_IMM26BY2 against undefined symbol `DRV_GetReading'
./bin/build/w800/lib/libuser.a(cmd_channels.o): In function `CMD_GetReadings':
(.text.CMD_GetReadings+0x12): undefined reference to `DRV_GetReading'
./bin/build/w800/lib/libuser.a(cmd_channels.o): In function `CMD_GetReadings':
(.text.CMD_GetReadings+0x12): relocation truncated to fit: R_CKCORE_PCREL_IMM26BY2 against undefined symbol `DRV_GetReading'
./bin/build/w800/lib/libuser.a(cmd_channels.o): In function `CMD_GetReadings':
(.text.CMD_GetReadings+0x1c): undefined reference to `DRV_GetReading'
./bin/build/w800/lib/libuser.a(cmd_channels.o): In function `CMD_GetReadings':
(.text.CMD_GetReadings+0x1c): relocation truncated to fit: R_CKCORE_PCREL_IMM26BY2 against undefined symbol `DRV_GetReading'
./bin/build/w800/lib/libuser.a(cmd_channels.o): In function `CMD_GetReadings':
(.text.CMD_GetReadings+0x26): undefined reference to `DRV_GetReading'
./bin/build/w800/lib/libuser.a(cmd_channels.o): In function `CMD_GetReadings':
(.text.CMD_GetReadings+0x26): relocation truncated to fit: R_CKCORE_PCREL_IMM26BY2 against undefined symbol `DRV_GetReading'
./bin/build/w800/lib/libuser.a(cmd_channels.o): In function `CMD_GetReadings':
(.text.CMD_GetReadings+0x30): undefined reference to `DRV_GetReading'
./bin/build/w800/lib/libuser.a(cmd_channels.o): In function `CMD_GetReadings':
(.text.CMD_GetReadings+0x30): relocation truncated to fit: R_CKCORE_PCREL_IMM26BY2 against undefined symbol `DRV_GetReading'
collect2: error: ld returned 1 exit status
make[1]: *** [tools/w800/rules.mk:169: bin/build/w800/image/w800.elf] Error 1
TL;DR: With 3 core code edits and "builds can be done online", OpenBeken users can create, compile, flash, and test a custom driver without installing a local toolchain. This FAQ helps developers add drivers, debug them in Windows, and avoid common DS18B20 and CI build pitfalls in OpenBeken workflows. [#21095505]
Why it matters: This thread turns scattered forum troubleshooting into a repeatable path for writing, building, debugging, and maintaining custom OpenBeken drivers across multiple platforms.
| Topic | Recommended path | Main limitation |
|---|---|---|
| New custom driver | Fork repo, open PR, use online builds | Must register driver in config and tables |
| Windows debugging | Use Visual Studio 2022 + obkSimulator | Missing VS components and simulator libs break builds |
| DS18B20 on Beken | Use updated timing code, CRC checks, correct pin and pull-up | PowerSave and bad timing can corrupt reads |
| SDK customization | Use platforms/<platform>/pre_build.sh |
Still needs careful file overrides |
Key insight: Online builds solve compilation, not integration. In OpenBeken, the hard part is usually correct registration, platform-specific timing, or SDK/build-system behavior, not writing the first C file. [#21252988]
obk_config.h, drv_main.c, and driver declarations in drv_local.h. Without all three, the driver will not register cleanly. [#21095505]powersave 0, one user counted 54 CRC matches vs 29 mismatches; with powersave 1, the same setup had 0 matches vs 95 mismatches. [#21165621]OpenBK7231T_App on GitHub. 2. Add your driver code and registration changes. 3. Open a PR so GitHub Actions builds firmware online. The guide states, "builds can be done online," so no local toolchain is required for that path. After merge, binaries for supported platforms become available through the online build system. [#21095505]obk_config.h, add a new #define in the target platform section, such as WINDOWS, so the driver can be enabled per platform. In drv_main.c, add the driver to the main drivers array inside a matching preprocessor block, including its name and callbacks. In drv_local.h, declare the init, second-tick, quick-tick, HTTP, and optional stop functions. The sample driver exposed Init, OnEverySecond, QuickTick, AppendInformationToHTTPIndexPage, and StopDriver. [#21095505]Microsoft.Cpp.Default.props because required VS components were not installed. Another hit missing graphics libraries and was told to copy the simulator support files from the separate obkSimulator repository, specifically the libs_for_simulator directory. The maintainer also clarified that the project should use freeglut.lib, not glut32.lib, so a stale local setting can cause the wrong dependency error. [#21265130]OBK_DISABLE_ALL_DRIVERS is a build-time switch that disables driver support on some platforms, and it can block custom drivers or charts even when code compiles. On W800, it prevented charts and DS1820 from being usable until related code paths were fixed and the define was reconsidered. A contributor eventually reported W800 running both DS1820 and charts after removing that limitation and correcting checks that wrongly keyed off OBK_DISABLE_ALL_DRIVERS instead of energy-driver defines like BL0937. LN882H also benefited from the same cleanup. [#21244589]pre_build.sh script runs before the platform build and lets you patch or replace SDK files from the app repository. The new mechanism executes platforms/<platform>/pre_build.sh if present, so you can copy override files, patch SDK sources, or prepare special builds without editing SDK submodules directly. This is best when you need a quick browser-based PR or per-platform override, such as custom partition addresses or encryption-key handling. It keeps the change in OpenBK7231T_App and avoids repeated SDK-submodule edits. [#21252988]DS1820 was developed and tested mostly with DS18B20 sensors; several participants explicitly said they only had DS18B20 hardware. Later discussion also treated the missing “B” as naming shorthand, not a strict exclusion. So the current driver name is historical, but real-world testing focused on DS18B20. [#21154798]Reset failed and all-ff scratchpad reads. The main diagnosis was that delay timing on BK7231-class devices was inaccurate, so reads happened too late or reset pulses were out of spec. One maintainer summarized it plainly: "The less loops you use, the more precision you get." CRC checks later stopped many bad values from appearing, but they did not fix the underlying timing problem. [#21158429]startDriver DS1820 18 produced 54 CRC matches and 29 mismatches at powersave 0, but 0 matches and 95 mismatches at powersave 1. Later timing changes improved this substantially, and a newer test with revised code showed valid DS18B20 readings even under PowerSave 1. The lesson is simple: if DS18B20 is unreliable, test with powersave 0 first, then verify whether newer timing code fixes low-power mode. [#21165621]BKfact tuning and auto-scaling, but logic-analyzer tests showed that approach could not satisfy both short and long 1-Wire timings. One contributor measured a reset pulse at 248 µs when it should have been 480 µs, proving the loop design was fundamentally wrong. The later redesign split delays by time range and borrowed critical-section ideas, which made PowerSave and multiple platforms behave much better. [#21189891]setChannel 7 DS1820 and publish sensor_temper $CH7 but got 0, which triggered follow-up work so the driver could expose temperature as a channel value. Later discussion shows the fix direction was to set the channel only when a fresh valid reading exists, not on failure. That prevents stale or zero data from being republished forever and makes scripting and MQTT reflect actual sensor state. [#21305277]-127°C unless you want an explicit error marker. The thread rejected endless reuse of the last good temperature because it hides faults. It also questioned publishing -127°C, since that can pollute Home Assistant graphs. The preferred proposal was to skip SetChannel when no new value exists and eventually add a shared error topic for states like sensor missing. That gives HA and MQTT clients a real failure signal without falsifying temperature history. [#21305277].releaserc tried to publish them. The telltale log line was that obkSimulator* "cannot be read, and will be ignored." A fix made semantic release depend on both build jobs, and release 1.17.759 returned to 22 assets. Missing XR809 assets in some releases were separate cases where that platform simply failed to build. [#21280908]platforms/<platform>/Makefile and making SDK Makefiles include them. That lets developers adjust app-side build behavior for W600, W800, LN882H, and XR809 through normal PRs in OpenBK7231T_App. The immediate benefit was simpler online-build maintenance and easier future feature enablement, such as charts, without constantly modifying each SDK submodule first. [#21242608]