ESP32 internal hall sensor issues +

I am having issues with the internal hall sensor of the ESP32.

When I do hallRead() (arduino IDE) I mostly a value around 20, occasionally (every 9ish reads on average) I get a value > 220. Is there a reason for this? Is there any way to electronically fix this? Software wise I take an average of 5 values, which would be fine if the "triggered" sensor would deliver a high enough value. Unfortunately the triggered value is about 60 or -20 (so 40 more or less depending on the magnet side) when I hold the magnet directly against the case. Is this a normal value? What are the possible reasons that this is so low?
I've also noticed when the Inputs 36 and 39 are connected to 3.3, the hall sensor drops far enough that the measured value is not noticeably at a triggered state when close to the magnet, why is this?
On a completely different note, I also had issues with inputs 39 and 36 when in INPUT_PULLUP mode, where pulling them to low would also pull the other pin as well as pin 23, why does this happen?

Any insight to these issues would be greatly appreciated.

Thanks in advance.

Which Hall sensor?

I've also noticed when the Inputs 36 and 39 are connected to 3.3, the hall sensor drops far enough that the measured value is not noticeably at a triggered state when close to the magnet, why is this?
On a completely different note, I also had issues with inputs 39 and 36 when in INPUT_PULLUP mode, where pulling them to low would also pull the other pin as well as pin 23, why does this happen?

From reading the ESP32 API API Reference - ESP32 - — ESP-IDF Programming Guide latest documentation, one would find that there are 2 32 bit I/O ports; portA and portB. From reading the ESp32 API one would find that there are differences between the two post design that would cause you issue. If one would read the ESP32 API one would learn that portB does NOT have pullup or pulldown resistors. If one was the read the ESP32 API one would learn other things about the differences between portA and portB.

JCA34F:
Which Hall sensor?

The ESP32 has built in hall sensors.

Does that mean that even though it does not support pull ups, it still some how tries to use them?
Still now that I have pull down resistors on pin 39 and 36, it does not answer why the hall sensor is affected by that.

You are using 36/39 for? Why? Did you not read about the HAL sensor in the ESP32 API?

ESP32 API, see post #2.

It is also possible to read the internal hall effect sensor via ADC1 by calling dedicated function hall_sensor_read(). Note that even the hall sensor is internal to ESP32, reading from it uses channels 0 and 3 of ADC1 (GPIO 36 and 39). Do not connect anything else to these pins and do not change their configuration. Otherwise it may affect the measurement of low value signal from the sensor.

Unfortunately I could not find any mention of the HAL sensor in the documentation. But that quote would explain the issue that I am having.

I am using 36/39 because those are the only two free pins left that I can use without blocking the Strapping pins, and I wanted to avoid using shift registers, as I have finished writing the code already and only want to use the hal sensor for an additional switch.