Code doesn't run (nrf52820, custom hardware, Zephyr)

Hello,

I have a custom hardware around the nrf52820, and I simply can't make it to run the basic hello_world and blinky samples.

I'm compiling the samples using nrf52833dk_nrf52820 board, as the Zephyr documentation lists it to be possible to use this board to develop for the nrf52820. The only thing I really changed from the original files are the UART pins. The code compiles just fine, and for the hello_world sample (which I'm most interested in) I've included the necessary configurations for the outputs to go through UART:

CONFIG_SERIAL=y
CONFIG_SHELL=y
CONFIG_CONSOLE=y
I'm flashing the code using pyocd, directly through west: west flash -r pyocd
Everything seems correct, but the code simply doesn't run, nothing happens at all. It's strange because, it seems that the code was written as the UART pins go high, as expected. It feels like the MCU goes to sleep somehow.
With the blinky sample the result is similar, the GPIO I assigned for the LED never changes state (it actually stays all the time at around 1.5 V, so neither ON or OFF, kind of floating).
HOWEVER, to make sure hardware is working correctly I decided to try and flash any other firmware I could find. I decided to flash the DAPLink firmware, and it worked first try, flashing using the same procedures. So hardware is working fine. I'm suspecting that the device tree provided in nrf52833dk_nrf52820 board have a wrong memory map (or not for the nrf52820) then the code never starts running. I've tried multiple combinations of start and end addresses for slot 0, but nothing seems to make any effect.
&flash0 {

    partitions {
        compatible = "fixed-partitions";
        #address-cells = <1>;
        #size-cells = <1>;

        boot_partition: partition@0 {
            label = "mcuboot";
            reg = <0x00000000 0xC000>;
        };
        slot0_partition: partition@C000 {
            label = "image-0";
            reg = <0x0000C000 0x17000>;
        };
        slot1_partition: partition@23000 {
            label = "image-1";
            reg = <0x00023000 0x17000>;
        };
        storage_partition: partition@3a000 {
            label = "storage";
            reg = <0x0003a000 0x00006000>;
        };
    };
};
 
I don't have any development kit nor a JLink, so any solutions that would involve such tools I can already discard. I must have read over 100 devzone posts and went through multiple documents from Nordic and Zephyr, but I don't find any hint of what can be the issue. I found a great variety of ways to set up custom hardware and start development, which is very confusing.
It would be great to have a definitive guide from scratch with step-by-step examples on how to compile and flash a simple firmware for custom hardwares.
Any help would be appreciated, thanks.
BR,
AR
Related