104 Commits

Author SHA1 Message Date
Frank
fc66dcc0ce squeezing a few KB out of builds that are close to 100% flash usage 2024-05-04 01:44:14 +02:00
Frank
8905992a89 code spell checking - part4 (MM specific) 2023-12-15 00:14:57 +01:00
Frank
9024872f63 code spell checking - part3 (usermods)
if you can spell Fahrenheit, you can't spell Celsius. And vice versa :-)
2023-12-14 22:22:46 +01:00
Blaz Kristan
a26ff4ccbd Button bugfix. 2023-09-01 10:48:33 +02:00
Ewoud
17147f3b50 Prepare for upstream merge: seperate declarations from definitions
In rotary and 4ld
2023-06-27 22:21:20 +02:00
Frank
692d30048d four-line-display: SSD1309 I2C driver
* SSD1309 I2C driver added (SPI driver was already included)
* minor cleanup to avoid exhaustive "if" for isSPI
2023-05-11 13:34:40 +02:00
Ewoud
4aea3970a3 ARTI-FX support 8266 (experimental!!) add soundpressure
Add ARTI-FX to esp8266_4MB_M (experimental!)

Arti.h
- FREE_SIZE ESP.getFreeHeap() for 8266
- define asChar(x) to print to Serial/File depending on ESP32/8266
- artiPrintf: print to USER_PRINTF (experimental)

Arti_wled.h
- add ARDUINO_ARCH_ESP8266 to ARTI_ARDUINO
- add soundPressure

usermod_v2_artifx.h: use FREE_SIZE
2023-04-07 12:43:38 +02:00
Frank
049d0f901d four-line-display: support for SSD1309 and SSD1327 (SPI only)
* driver for SSD1309 4-Wire SPI (128x64) - untested
* driver for SSD1327 4-Wire SPI (128x128) - tested with waveshare 1.5in grayscale OLED
* driver Info to "clock mode" (WLED_DEBUG only)
* correct some misleading comments
* fix some typos
2023-03-26 14:38:14 +02:00
Frank
361a3b1cb3 four-line-display: make SPI work again 2023-03-26 14:00:16 +02:00
Frank
8c92b76e2e attempt to fix issue #24 (untested)
an attempt to fix problems with SPI OLED displays. It compiles, but not tested yet.
2023-03-23 20:17:17 +01:00
Frank
910ce494b4 usermod bugfixes
* rotary ALT: changing brightness did not   have an effect (stateUpdated missing)
* four-line-display ALT: allow clockmode without NTP (network time)
 - there are other possible time sources, like RTC.
2023-03-13 11:35:48 +01:00
Frank
6ea77954bf four-line-display: semaphores to avoid crashes
* some typos fixed
* Added semaphores around display calls; should fix https://github.com/Aircoookie/WLED/issues/3074
-- changes still need some cleanup to improve readability...
2023-03-10 22:44:25 +01:00
Frank
437284d380 4-line-display: font update, setup bugfix
* Improve clock mode for 128x64 OLED, using 2x3 font
* setup() bugfix: install display handler before activating logo
2023-03-09 21:44:27 +01:00
Frank
3a294d0852 four-line-display ALT: nicer font
use a nicer, less blocky font on 128x64 OLED displays (ESP32 only)
2023-03-08 20:44:30 +01:00
Frank
062eb75d06 usermod bugfixes
fixing some "missed corner cases" in popular usermods.
* acessing unitialized arrays
* trying to draw on a non-initialized display
2023-03-08 20:37:27 +01:00
Frank
9d60425d2e attempt to fix issue #21
set.cpp: introduce "-2" => "no value" in addition to "-1" => disable
4LD_ALT:  do not copy "global" pins into UM specific setting; just use them directly.
2023-03-08 19:39:41 +01:00
Frank
e1f14628b0 4LD + rotary hotfix: corrupted display on esp32
This s a temporary fix for display problems (corrupted display, sometimes crash). These problems exists since 0.14. as display updates are now running in a separate task.
The fix is still incomplete.

If nothing else works, you can use the 0.13.x behavior by compiling with `-D FLD_ESP32_NO_THREADS`

* fixing a few unsafe string operations and non-initialized strings
* fix max length for "two lines" names
* make sure that display methods are exiting early if display is not configured
* rotary_ALT : additional checks to ensure that drawing on the display does not overlap with redraw
* added some safeguards to prevent overlapping display redraw operations
--> Actually this should use semaphore/mutex instead of global booleans -> Still on my toDo list.
2023-02-02 18:37:13 +01:00
Ewoud
6437cc8c7e 4ld and ar um: default pins -1, if set, show in pin dropdown
Audio reactive usermod: add pio.ini build flags defaults (⎌) for mclk, sda and scl (if set)

4ld usermod: 
- if pio.ini build flags not set, make them -1 (undefined is even better but then problems with allocate pins, to be done later)
- pio.ini build flags defaults (⎌) different if spi (clockspi and mosispi instead of scl and sda)
- add pio.ini build flags defaults (⎌) for SPI CS, DC and RESET
2023-01-27 11:09:08 +01:00
Ewoud
15d753aa4a Show analog pins in pin dropdown and show only if analog signal
- shorten oappend MM function names
- add aOpt: analog options only
- add pin 17 for esp8266 (analog pin)
- add a.pins array to show analog pins in pin dropdown
2023-01-23 20:44:12 +01:00
Frank
2d9b3fd284 four line display ALT - fix for compilation on esp32
workaround: getInstance() is only used on esp32.
2023-01-17 18:58:05 +01:00
Frank
7bfd738d80 fix 8266 compilation error (undefined macro)
this still does not allow compilation...
2023-01-17 18:35:04 +01:00
Ewoud
6cd07c2216 esp8266_4MB_min - 160Mhz (instead of 80) ;-)
+ small things
2023-01-17 17:54:14 +01:00
Ewoud
357e3638d4 New esp8266_4MB_max entry to test usermods / i2c
pio.ini: add esp8266_4MB_max with pir, dallas, relay  games (to test IMU) 

addHB: use string literal instead of var

appendConfigData to um multirelay
2023-01-17 13:07:50 +01:00
Ewoud
10f006ef18 Small changes on pin dropdowns / usermod help
platformio.ini: add wemos_shield_esp32_4MB_all_base

usermods:
- rename disableROPins to disableRO
- bme280: add appendConfigData, info and disableRO
- PWM Fan: add appendConfigData

Settings_um.htm
- add 🟢
2023-01-16 15:07:41 +01:00
Ewoud
474243938c Hardware pin defaults in i2c and spi pin dropdowns
bugfix: replace oappend(SET_F(name)); by oappend(_name);

const.h: remove unset of 8266 variables as no behind the scene actions, this is just bad behavior and the pin drop downs will show this bad behavior

xml.cpp: show hardware defaults as ⍼ in dropdowns (better icon needed)
2023-01-15 17:08:39 +01:00
Ewoud
90c0870e74 pinDropDown: make reserved and read only aware and disable if needed
AudioReactive: add disableROPins on WS, SCK, MCLK and SCL
4LD:  add disableROPins  on CLK

settingsum: 
- addfield: max 49 pins, if (global interface) also disabled, rename if to global, show 🔴 if pin claimed
- add disableROPins
- pinDropdownsPost
- rename SDA to if:SDA (etc) so it is part of claimed pins (also in set.cpp and xml.cpp)

xml.cpp:
- appendGPIOinfo(): get rsvd and ro_gpio from pinManager.isPinOk instead of hardcoded
- getSettingsJS: add pinDropdownsPost
2023-01-14 17:30:43 +01:00
Ewoud
bba57d4771 Remove I2CSCL/SDA/SCLK/MOSI/MISOPIN rename *_DATASPI to *_MOSISPI
use HW_PIN_* instead
2023-01-09 17:41:52 +01:00
Frank
39ad4955b7 Adjust some usermods to use global I2C
* usermods only need to to `if (!pinManager.joinWire()) return;`

* joinWire will
* * check if global I2C are defined - return false if not defined
* * aloocate HW_I2C pins - return false on error
* * call Wire.begin() if needed.
2023-01-08 21:11:50 +01:00
Ewoud
544446d35e Further pin improvements
platformio
- create _all entries (wip)
- set FLD_PIN_SCL to -1 (use global)

4ld
- one bug fix and errorMessage improvements

const.h
- comments

wled.h
- do not use the I2CSDAPIN vars but HW_PIN_SDA instead
2023-01-08 13:51:27 +01:00
Ewoud
bfa06df47c Tiny changes
0.14.0-b1.14 - 2301080
2023-01-08 10:52:22 +01:00
Ewoud
b8437c51c5 Do not reset pins if error but show error (wip, bh1750, fld, global)
Usermod bh1750: only save pins if not equal to global
Usermod fld: add errorMessage, do not reset type and enabled but errormessage instead, show global depending in spi or i2c
cfg.cpp and set.cpp: do not reset global i2c or spi if error
2023-01-07 16:49:10 +01:00
Ewoud
2187aa5728 implement addHB (Usermod help button utility function)
See https://github.com/Aircoookie/WLED/pull/2965
2023-01-07 12:22:29 +01:00
Ewoud
642d7d91ea i2c_sda, i2c_scl, spi_mosi, spi_miso, spi_sclk without HW_PIN_*, bh1750
platformio: 
- add bh1750 to _max
- define rotary defaults for wemos

usermod_bh1750
- Remove HW_PIN_* and replace by i2c_sda etc
- add appendConfigData

usermods mpu6050_imu, rtc, 4ld, pinmanager
- Remove HW_PIN_* 

change SDA2:pin (etc) to SDA:pin
2023-01-05 16:35:49 +01:00
Ewoud
23663a46f9 Refactor global pins settings using dropdowns and add to rotary_encoder
- replace rOption by  xOption (extend option) to show default value (⎌)
- Usermod rotary_encoder: add appendConfigData function and show help and default functions
- Settings.htm: Move Usermods(pins) below the usermods

Settings_um.htm
- remove SDAPin etc
- comment check(0,k) as not used anymore
- add xOption
- add generated global pin fields (using addField) in ldS
- remove hard coded global pin fields

set.cpp: set i2c_sda etc using new generated fields
xml.cpp: set generated fields values using i2c_sda etc and show defaults
2023-01-04 12:17:14 +01:00
Ewoud
9bc6451145 appendConfigData only for usermod + optimizations
- rename replaceOption to rOption
- rename removeOptions to dOptions
- set oAppend buffer size back to 3096
- WLEDMM warning on settings2D Populate
- add AppendConfig per usermod
- add request parameter to getSettinsJS
- add lookupName
2023-01-03 13:08:14 +01:00
Ewoud
5c161db062 Add dropdowns for pins (part 1 of 2)
Set for Audioreactive and 4linedisplay usermods

Prepare for globals (part2):
Rename SDA to SDApin etc
2022-12-23 17:21:35 +01:00
Ewoud
05971a2ffe fix Custom Effect button missing in action 2022-12-21 13:39:42 +01:00
Ewoud
fb5c057f94 More usermod help 2022-12-21 13:16:55 +01:00
Ewoud
2af9fc3755 Add mm.kno.wled.ge
Change https://kno.wled.ge to https://mm.kno.wled.ge
Change help to ?  button in usermods
Change WeatherUserMod to Weather
2022-12-21 12:30:40 +01:00
Ewoud
949373df91 Add usermod help links for AR, 4LD and weather
Other usermods: 

void appendConfigData()
{
... 
 oappend(SET_F("addInfo('<modname>:help',0,'<a href=\"https:// \">Help</a>');"));
   ...
}
2022-12-19 16:42:07 +01:00
Frank
ae39fe8a0c usermod 4ld: start disabled on -S3
workaround for a nasty bug in idf v4 - device hangs for several minutes if you start with display not attached.
2022-12-18 18:35:28 +01:00
Frank
dae6de76f1 Improve co-existence of usermods sharing I2C
Improve co-existence of several popular usermods with respect to shared I2C bus.
- ensure that i2c_sda and i2c_scl are used when defined
- ensure that HW_PIN_SDA / HW_PIN_SCL are not overwritten
- ensure that Wire.begin()nis always called with user-defined pins (remove rogue Wire.begin() without parameters)
- ensure that set.cpp / cfg.cpp use esp32-specific global Wire objects.
2022-12-17 19:45:45 +01:00
Ewoud
ffe52fcbf5 Merge remote-tracking branch 'origin/ac_main' into mdev 2022-12-16 11:43:27 +01:00
srg74
8caeddde15 Spelling check by @wthomson (#2940)
A lot of spelling corrections. Now repo will sound like educated person :)

Co-authored-by: Bill Thomson <bt@kattt.org>
2022-12-10 16:12:55 +01:00
Ewoud
44b4ced6a3 Platformio defaults in settings: change default by ⎌ 2022-12-08 09:40:52 +01:00
Ewoud
5a97a6a448 Bugfix 2022-12-07 16:09:29 +01:00
Ewoud
84de8dd0a2 Add platformio defaults to 4ld and SR, add moon, add MM in about
const.h: increase SETTINGS_STACK_BUF_SIZE

audio_reactive, 4ld and usermod (xml.cpp)
- add defaults in settings

index.htm: add moon

settings_sec: add WLEDMM about

settings_um: add <br> so comment can be shown decently
2022-12-07 15:42:48 +01:00
Frank
5fbbee2efc usermod bugfixes
4LD: fixing wrong type for PINs

mpu6050:
- fix "hidden" use of GPIO 15
- restore DEBUG macros (overwritten by I2CDev lib)
- fix not initialized memory problem
- added a few USER_PRINT messages
2022-12-06 16:54:00 +01:00
Ewoud
3160a0b090 Merge remote-tracking branch 'origin/ac_main' into mdev 2022-12-06 14:38:49 +01:00
Frank
676cc26171 use Serial.print for important info like wifi stuff
.. and for other important info.
Will be muted automatically in case that serial is in used for other purposes.
2022-12-04 17:52:10 +01:00