@Aaron44126
I believe I figured Fan Curve out,
the key here is to first understand/reverse engineer current logic,
this is how i perceive their fan curve works, imagine a virtual Fan gearbox with 3 gears,
each gear is activated at certain predefined temp, once a gear is activated the predefined Fan Speed will be applied,
Default Curve Configuration
1st Fan Gear 55c - 70c
2nd Fan Gear 71c - 94c
3rd Fan Gear 95c - 118c (full blast)
the above deciphered from this
setup_var Setup 0x69C # Critical Trip Point (Default value 0x77 > 119 C)
setup_var Setup 0x698 # Active Trip Point 0 (Default value 0x47 > 71 C)
setup_var Setup 0x69A # Active Trip Point 0 Fan Speed (Default value 0x64)
setup_var Setup 0x697 # Active Trip Point 1 (Default value 0x37 > 55 C)
setup_var Setup 0x699 # Active Trip Point 1 Fan Speed (Default value 0x4b)
setup_var Setup 0x69B # Passive Trip Point (Default value 0x5f > 95 C)
to change the threshold for trip point 1 run this command
setup_var Setup 0x697 0xF # change trip point 1 from 55c to 15c
the above should result in the fan running much earlier in the temp range keeping the system and surfaces much cooler, this is also the reason we all see temps around the 55c which I believe Dell opted with in order to achieve longer battery life at the expenses of few temps,
here are the original trip tables in bios to further tailor and configure this as one pleases,
0xB204B One Of: Critical Trip Point, VarStoreInfo (VarOffset/VarName): 0x69C, VarStore: 0x1, QuestionId: 0xE83, Size: 1, Min: 0xF, Max 0x82, Step: 0x0 {05 91 4F 12 50 12 83 0E 01 00 9C 06 10 10 0F 82 00}
0xB205C Default: DefaultId: 0x0, Value (8 bit): 0x77 {5B 06 00 00 00 77}
0xB2062 One Of Option: 15 C, Value (8 bit): 0xF {09 07 51 12 00 00 0F}
0xB2069 One Of Option: 23 C, Value (8 bit): 0x17 {09 07 52 12 00 00 17}
0xB2070 One Of Option: 31 C, Value (8 bit): 0x1F {09 07 53 12 00 00 1F}
0xB2077 One Of Option: 39 C, Value (8 bit): 0x27 {09 07 54 12 00 00 27}
0xB207E One Of Option: 47 C, Value (8 bit): 0x2F {09 07 55 12 00 00 2F}
0xB2085 One Of Option: 55 C, Value (8 bit): 0x37 {09 07 56 12 00 00 37}
0xB208C One Of Option: 63 C, Value (8 bit): 0x3F {09 07 57 12 00 00 3F}
0xB2093 One Of Option: 71 C, Value (8 bit): 0x47 {09 07 58 12 00 00 47}
0xB209A One Of Option: 79 C, Value (8 bit): 0x4F {09 07 59 12 00 00 4F}
0xB20A1 One Of Option: 87 C, Value (8 bit): 0x57 {09 07 5A 12 00 00 57}
0xB20A8 One Of Option: 95 C, Value (8 bit): 0x5F {09 07 5B 12 00 00 5F}
0xB20AF One Of Option: 100 C, Value (8 bit): 0x64 {09 07 5C 12 00 00 64}
0xB20B6 One Of Option: 103 C, Value (8 bit): 0x67 {09 07 5D 12 00 00 67}
0xB20BD One Of Option: 111 C, Value (8 bit): 0x6F {09 07 5E 12 00 00 6F}
0xB20C4 One Of Option: 119 C (POR), Value (8 bit): 0x77 {09 07 5F 12 00 00 77}
0xB20CB One Of Option: 127 C, Value (8 bit): 0x7F {09 07 60 12 00 00 7F}
0xB20D2 One Of Option: 130 C, Value (8 bit): 0x82 {09 07 61 12 00 00 82}
0xB20D9 End One Of {29 02}
0xB20DD One Of: Active Trip Point 0, VarStoreInfo (VarOffset/VarName): 0x698, VarStore: 0x1, QuestionId: 0xE84, Size: 1, Min: 0xF, Max 0x7F, Step: 0x0 {05 91 4B 12 4C 12 84 0E 01 00 98 06 10 10 0F 7F 00}
0xB20EE One Of Option: Disabled, Value (8 bit): 0x7F {09 07 04 00 00 00 7F}
0xB20F5 One Of Option: 15 C, Value (8 bit): 0xF {09 07 51 12 00 00 0F}
0xB20FC One Of Option: 23 C, Value (8 bit): 0x17 {09 07 52 12 00 00 17}
0xB2103 One Of Option: 31 C, Value (8 bit): 0x1F {09 07 53 12 00 00 1F}
0xB210A One Of Option: 39 C, Value (8 bit): 0x27 {09 07 54 12 00 00 27}
0xB2111 One Of Option: 47 C, Value (8 bit): 0x2F {09 07 55 12 00 00 2F}
0xB2118 One Of Option: 55 C, Value (8 bit): 0x37 {09 07 56 12 00 00 37}
0xB211F One Of Option: 63 C, Value (8 bit): 0x3F {09 07 57 12 00 00 3F}
0xB2126 One Of Option: 71 C, Value (8 bit): 0x47 (default) {09 07 58 12 30 00 47}
0xB212D One Of Option: 79 C, Value (8 bit): 0x4F {09 07 59 12 00 00 4F}
0xB2134 One Of Option: 87 C, Value (8 bit): 0x57 {09 07 5A 12 00 00 57}
0xB213B One Of Option: 95 C, Value (8 bit): 0x5F {09 07 5B 12 00 00 5F}
0xB2142 One Of Option: 103 C, Value (8 bit): 0x67 {09 07 5D 12 00 00 67}
0xB2149 One Of Option: 111 C, Value (8 bit): 0x6F {09 07 5E 12 00 00 6F}
0xB2150 One Of Option: 119 C (POR), Value (8 bit): 0x77 {09 07 5F 12 00 00 77}
0xB2157 End One Of {29 02}
0xB2159 Numeric: Active Trip Point 0 Fan Speed, VarStoreInfo (VarOffset/VarName): 0x69A, VarStore: 0x1, QuestionId: 0xE85, Size: 1, Min: 0x0, Max 0x64, Step: 0x1 {07 91 68 12 69 12 85 0E 01 00 9A 06 00 10 00 64 01}
0xB216A Default: DefaultId: 0x0, Value (8 bit): 0x64 {5B 06 00 00 00 64}
0xB2170 End {29 02}
0xB2172 One Of: Active Trip Point 1, VarStoreInfo (VarOffset/VarName): 0x697, VarStore: 0x1, QuestionId: 0xE86, Size: 1, Min: 0xF, Max 0x7F, Step: 0x0 {05 91 49 12 4A 12 86 0E 01 00 97 06 10 10 0F 7F 00}
0xB2183 One Of Option: Disabled, Value (8 bit): 0x7F {09 07 04 00 00 00 7F}
0xB218A One Of Option: 15 C, Value (8 bit): 0xF {09 07 51 12 00 00 0F}
0xB2191 One Of Option: 23 C, Value (8 bit): 0x17 {09 07 52 12 00 00 17}
0xB2198 One Of Option: 31 C, Value (8 bit): 0x1F {09 07 53 12 00 00 1F}
0xB219F One Of Option: 39 C, Value (8 bit): 0x27 {09 07 54 12 00 00 27}
0xB21A6 One Of Option: 47 C, Value (8 bit): 0x2F {09 07 55 12 00 00 2F}
0xB21AD One Of Option: 55 C, Value (8 bit): 0x37 (default) {09 07 56 12 30 00 37}
0xB21B4 One Of Option: 63 C, Value (8 bit): 0x3F {09 07 57 12 00 00 3F}
0xB21BB One Of Option: 71 C, Value (8 bit): 0x47 {09 07 58 12 00 00 47}
0xB21C2 One Of Option: 79 C, Value (8 bit): 0x4F {09 07 59 12 00 00 4F}
0xB21C9 One Of Option: 87 C, Value (8 bit): 0x57 {09 07 5A 12 00 00 57}
0xB21D0 One Of Option: 95 C, Value (8 bit): 0x5F {09 07 5B 12 00 00 5F}
0xB21D7 One Of Option: 103 C, Value (8 bit): 0x67 {09 07 5D 12 00 00 67}
0xB21DE One Of Option: 111 C, Value (8 bit): 0x6F {09 07 5E 12 00 00 6F}
0xB21E5 One Of Option: 119 C (POR), Value (8 bit): 0x77 {09 07 5F 12 00 00 77}
0xB21EC End One Of {29 02}
0xB21EE Numeric: Active Trip Point 1 Fan Speed, VarStoreInfo (VarOffset/VarName): 0x699, VarStore: 0x1, QuestionId: 0xE87, Size: 1, Min: 0x0, Max 0x64, Step: 0x1 {07 91 6A 12 6B 12 87 0E 01 00 99 06 00 10 00 64 01}
0xB21FF Default: DefaultId: 0x0, Value (8 bit): 0x4B {5B 06 00 00 00 4B}
0xB2205 End {29 02}
0xB2207 One Of: Passive Trip Point, VarStoreInfo (VarOffset/VarName): 0x69B, VarStore: 0x1, QuestionId: 0xE88, Size: 1, Min: 0xF, Max 0x7F, Step: 0x0 {05 91 4D 12 4E 12 88 0E 01 00 9B 06 10 10 0F 7F 00}
0xB2218 Default: DefaultId: 0x0, Value (8 bit): 0x5F {5B 06 00 00 00 5F}
0xB221E One Of Option: Disabled, Value (8 bit): 0x7F {09 07 04 00 00 00 7F}
0xB2225 One Of Option: 15 C, Value (8 bit): 0xF {09 07 51 12 00 00 0F}
0xB222C One Of Option: 23 C, Value (8 bit): 0x17 {09 07 52 12 00 00 17}
0xB2233 One Of Option: 31 C, Value (8 bit): 0x1F {09 07 53 12 00 00 1F}
0xB223A One Of Option: 39 C, Value (8 bit): 0x27 {09 07 54 12 00 00 27}
0xB2241 One Of Option: 47 C, Value (8 bit): 0x2F {09 07 55 12 00 00 2F}
0xB2248 One Of Option: 55 C, Value (8 bit): 0x37 {09 07 56 12 00 00 37}
0xB224F One Of Option: 63 C, Value (8 bit): 0x3F {09 07 57 12 00 00 3F}
0xB2256 One Of Option: 71 C, Value (8 bit): 0x47 {09 07 58 12 00 00 47}
0xB225D One Of Option: 79 C, Value (8 bit): 0x4F {09 07 59 12 00 00 4F}
0xB2264 One Of Option: 87 C, Value (8 bit): 0x57 {09 07 5A 12 00 00 57}
0xB226B One Of Option: 95 C, Value (8 bit): 0x5F {09 07 5B 12 00 00 5F}
0xB2272 One Of Option: 103 C, Value (8 bit): 0x67 {09 07 5D 12 00 00 67}
0xB2279 One Of Option: 111 C, Value (8 bit): 0x6F {09 07 5E 12 00 00 6F}
0xB2280 One Of Option: 119 C (POR), Value (8 bit): 0x77 {09 07 5F 12 00 00 77}
0xB2287 End One Of {29 02}