* Improved heap and PSRAM handling - Segment `allocateData()` uses more elaborate DRAM checking to reduce fragmentation and allow for larger setups to run on low heap - Segment data allocation fails if minimum contiguous block size runs low to keep the UI working - Increased `MAX_SEGMENT_DATA` to account for better segment data handling - Memory allocation functions try to keep enough DRAM for segment data - Added constant `PSRAM_THRESHOLD` to improve PSARM usage - Increase MIN_HEAP_SIZE to reduce risk of breaking UI due to low memory for JSON response - ESP32 makes use of IRAM (no 8bit access) for pixeluffers, freeing up to 50kB of RAM - Fix to properly get available heap on all platforms: added function `getFreeHeapSize()` - Bugfix for effects that divide by SEGLEN: don't run FX in service() if segment is not active -Syntax fix in AR: calloc() uses (numelements, size) as arguments * Added new functions for allocation and heap checking - added `allocate_buffer()` function that can be used to allocate large buffers: takes parameters to set preferred ram location, including 32bit accessible RAM on ESP32. Returns null if heap runs low or switches to PSRAM - getFreeHeapSize() and getContiguousFreeHeap() helper functions for all platforms to correctly report free useable heap - updated some constants - updated segment data allocation to free the data if it is large - replaced "psramsafe" variable with it's #ifdef: BOARD_HAS_PSRAM and made accomodating changes - added some compile-time checks to handle invalid env. definitions - updated all allocation functions and some of the logic behind them - added use of fast RTC-Memory where available - increased MIN_HEAP_SIZE for all systems (improved stability in tests) - updated memory calculation in web-UI to account for required segment buffer - added UI alerts if buffer allocation fails - made getUsedSegmentData() non-private (used in buffer alloc function) - changed MAX_SEGMENT_DATA - added more detailed memory log to DEBUG output - added debug output to buffer alloc function |
||
|---|---|---|
| .. | ||
| ADS1115_v2 | ||
| AHT10_v2 | ||
| Analog_Clock | ||
| Animated_Staircase | ||
| Artemis_reciever | ||
| audioreactive | ||
| Battery | ||
| battery_keypad_controller | ||
| BH1750_v2 | ||
| BME68X_v2 | ||
| BME280_v2 | ||
| boblight | ||
| buzzer | ||
| Cronixie | ||
| deep_sleep | ||
| DHT | ||
| EleksTube_IPS | ||
| Enclosure_with_OLED_temp_ESP07 | ||
| EXAMPLE | ||
| Fix_unreachable_netservices_v2 | ||
| INA226_v2 | ||
| Internal_Temperature_v2 | ||
| JSON_IR_remote | ||
| LD2410_v2 | ||
| LDR_Dusk_Dawn_v2 | ||
| MAX17048_v2 | ||
| mpu6050_imu | ||
| multi_relay | ||
| MY9291 | ||
| photoresistor_sensor_mqtt_v1 | ||
| PIR_sensor_switch | ||
| pixels_dice_tray | ||
| pov_display | ||
| project_cars_shiftlight | ||
| PWM_fan | ||
| pwm_outputs | ||
| quinled-an-penta | ||
| RelayBlinds | ||
| rgb-rotary-encoder | ||
| rotary_encoder_change_effect | ||
| RTC | ||
| sd_card | ||
| sensors_to_mqtt | ||
| seven_segment_display | ||
| seven_segment_display_reloaded | ||
| sht | ||
| Si7021_MQTT_HA | ||
| smartnest | ||
| SN_Photoresistor | ||
| ST7789_display | ||
| stairway_wipe_basic | ||
| Temperature | ||
| TetrisAI_v2 | ||
| TTGO-T-Display | ||
| udp_name_sync | ||
| user_fx | ||
| usermod_rotary_brightness_color | ||
| usermod_v2_animartrix | ||
| usermod_v2_auto_save | ||
| usermod_v2_brightness_follow_sun | ||
| usermod_v2_four_line_display_ALT | ||
| usermod_v2_HttpPullLightControl | ||
| usermod_v2_klipper_percentage | ||
| usermod_v2_ping_pong_clock | ||
| usermod_v2_RF433 | ||
| usermod_v2_rotary_encoder_ui_ALT | ||
| usermod_v2_word_clock | ||
| VL53L0X_gestures | ||
| Wemos_D1_mini+Wemos32_mini_shield | ||
| wireguard | ||
| wizlights | ||
| word-clock-matrix | ||
| platformio_override.usermods.ini | ||
| readme.md | ||
Usermods
This folder serves as a repository for usermods (custom usermod.cpp files)!
If you have created a usermod you believe is useful (for example to support a particular sensor, display, feature...), feel free to contribute by opening a pull request!
In order for other people to be able to have fun with your usermod, please keep these points in mind:
- Create a folder in this folder with a descriptive name (for example
usermod_ds18b20_temp_sensor_mqtt) - Include your custom files
- If your usermod requires changes to other WLED files, please write a
readme.mdoutlining the steps one needs to take - Create a pull request!
- If your feature is useful for the majority of WLED users, I will consider adding it to the base code!
While I do my best to not break too much, keep in mind that as WLED is updated, usermods might break.
I am not actively maintaining any usermod in this directory, that is your responsibility as the creator of the usermod.
For new usermods, I would recommend trying out the new v2 usermod API, which allows installing multiple usermods at once and new functions!
You can take a look at EXAMPLE_v2 for some documentation and at Temperature for a completed v2 usermod!
Thank you for your help :)