To be frank:
One of the most repeated critical point of the old design was the TC2030-CTX-NL instead of a 10 pin header.
Now it turns into something else, you even canā€™t buy, or? Letā€™s see, which feedback that gets in the future.

    jaredwolff Nice work!
    After using the solder paste on the stencil, did you use a digital microscope and a fine hot air gun to assist with soldering the SMDs?

      AchimKraus One of the most repeated critical point of the old design was the TC2030-CTX-NL instead of a 10 pin header.
      Now it turns into something else, you even canā€™t buy, or? Letā€™s see, which feedback that gets in the future.

      @AchimKraus what canā€™t you buy? Iā€™ll likely open source and make this little jig available for customers to buy as well if thereā€™s interest. Itā€™s definitely handy for programming many boards but not required.

      Overall, the idea is to avoid this since the onboard RP2040 does everything that youā€™d expect (except for RTT). Since thereā€™s a dedicated console UART I figured that final point wasnā€™t a big deal.

      I do appreciate your feedback about the 10 pin. It simply doesnā€™t fit on this design and is 4x the cost of the RP2040 circuit. As you alluded, weā€™ll see how it goes. šŸ˜ƒ

      zpm1066 After using the solder paste on the stencil, did you use a digital microscope and a fine hot air gun to assist with soldering the SMDs?

      I do have a microscope (analog one I bought a looooong time ago) for inspection. But I do use a small reflow oven and appropriate ventilation equipment. Previously I was using one of those plug-in skillets but that got old fast (and donā€™t work for both sides!)

      JeppeMariagerLam Awesome updates Jared! Thank you for all the hard work!! I look forward to testing it when you feel ready! šŸ™‚

      Thanks Jeppe šŸ™‚

        what canā€™t you buy?

        The orange jig.

        Iā€™ll likely open source and make this little jig available for customers to buy as well if thereā€™s interest.

        Nice.

        Itā€™s definitely handy for programming many boards but not required.

        Maybe itā€™s not clear, when it gets required. Is it used to flash the RP2040? Or the nRF9161?

          AchimKraus

          AchimKraus Maybe itā€™s not clear, when it gets required. Is it used to flash the RP2040? Or the nRF9161?

          Flash the nRF91 in rare situations (like disabling the boot delay in the startup code). Othwerwise the built in RP2040 should do it. The Rp2040 has an immutable USB bootloader so if you ever want to upgrade the CMSIS DAP or run your own code you can do that too.

          Progress!

          Right now the active sleep current is much better thanks to some input from Nordic. Turns out two issues affecting the NOR flash were affecting the current usage:

          1. While Idle in DPD was enabled, newer version of NCS/Zephyr it was not putting the flash in DPD. Easily fixed by forcing the flash to sleep using power management.
          2. The timing parameters were a bit off which would explain why over restarts I was getting different current values.

          I do see the active sleep creep up over time and I think thatā€™s due to some leakage from the SWD lines (one stays high at all times) and the RP2040. That will be fixed in the next round of boards.

          Finally, it feels like Iā€™m making progress!

            Qwiic is also šŸ‘ļø

            Connected to /dev/ttyACM0!
            [00:00:00.255,554] <dbg> BME280: bme280_chip_init: ID OK
            [00:00:00.265,991] <dbg> BME280: bme280_chip_init: "BME280" OK
            [00:00:00.267,822] <inf> lis2dh: fs=2, odr=0x4 lp_en=0x0 scale=9576
            *** Booting nRF Connect SDK v2.7.0-5cb85570ca43 ***
            *** Using Zephyr OS v3.6.99-100befc70c74 ***
            *** Vsys Current Limit: 500 mA ***
            Found device "BME280"
            temp: 22.840000; press: 101.012050; humidity: 53.820312
            temp: 23.010000; press: 101.010917; humidity: 53.737304

              jaredwolff I do have a microscope (analog one I bought a looooong time ago) for inspection. But I do use a small reflow oven and appropriate ventilation equipment. Previously I was using one of those plug-in skillets but that got old fast (and donā€™t work for both sides!)

              Currently hand solder the SMDs but may look for an inexpensive small reflow oven down the line.

              btw - Neat 3D printed jig with the pogo pins.

              6 days later

              jaredwolff Are you using a Joulescope JS110 or JS220 analyzer?
              Wouldnā€™t the Nordic Power Profiler Kit II II do similar measurements? Thanks.

              Some first experience:

              Using west flash --runner pyocd sometimes reports

              W nRF9160_xxAA APPROTECT enabled: will try to unlock via mass erase [target_nRF91]

              not sure, whatā€™s causing that. The ā€œmass eraseā€ will erase the ā€œsettingsā€.
              After flashing it seems to require an hw reset by the button, otherwise the modem seems to be inaccessible.

              Beside of that the nRF9161 feather works very nice!
              Using the LEDs isnā€™t to complicated and in addition to the nRF9160 feather itā€™s now possible to read the charger status.
              Iā€™m not sure, why Nordic decided to not implement the zephyr ā€œcharger APIā€, and to use the ā€œnpm1300 sensorā€ API requires some datasheet reading. But all in all, my client was fast ported and we will see, how long that new feather will run on battery ;-).

              Changes required:
              The

              		button0: button_0 {
              			gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
              			label = "Switch 1";
              			zephyr,code = <INPUT_KEY_0>;
              		};

              seems to use the wrong polarity, I changed it to GPIO_ACTIVE_HIGH

                And CONFIG_BOARD is undefined. Not sure, why.

                Iā€™ve added

                if BOARD_CIRCUITDOJO_FEATHER_NRF9161_PMIC_STARTUP
                
                config BOARD
                	default "circuitdojo_feather_nrf9161"
                
                endif 

                as temporary work-around to Kconfig.defconfig.

                  About the power rails:
                  Is VDD connected to the battery or to the NPM1300?
                  Or in other words, does ā€œAT%XVBATā€ report the battery voltage or the output voltage of the NPM1300?

                    About the CONFIG_BOARD:

                    in ā€œzephyr/boards/Kconfigā€

                    choice
                    	prompt "Board Selection"
                    
                    source "$(BOARD_DIR)/Kconfig.board"
                    
                    endchoice

                    That makes a choice out of `zephyr/boards/arm/circuitdojo_feather_nrf9161/Kconfig.boardā€™

                    if SOC_NRF9161_LACA
                    
                    config BOARD_CIRCUITDOJO_FEATHER_NRF9161
                    	bool "Circuit Dojo nRF9161 Feather"
                    
                    config BOARD_CIRCUITDOJO_FEATHER_NRF9161_NS
                    	bool "Circuit Dojo nRF9161 Feather non-secure"
                    
                    config BOARD_CIRCUITDOJO_FEATHER_NRF9161_PMIC_STARTUP
                    	bool "Allows for executing startup code for PMIC."
                    
                    endif # SOC_NRF9161_LACA

                    and so `zephyr/boards/arm/circuitdojo_feather_nrf9161/circuitdojo_feather_nrf9161_ns_defconfigā€™

                    # Startup code
                    CONFIG_BOARD_CIRCUITDOJO_FEATHER_NRF9161_PMIC_STARTUP=y

                    deselects BOARD_CIRCUITDOJO_FEATHER_NRF9161_NS. In consequence,

                    if BOARD_CIRCUITDOJO_FEATHER_NRF9161 || BOARD_CIRCUITDOJO_FEATHER_NRF9161_NS
                    
                    config BOARD
                    	default "circuitdojo_feather_nrf9161"

                    is not longer applied.

                      AchimKraus not sure, whatā€™s causing that. The ā€œmass eraseā€ will erase the ā€œsettingsā€.
                      After flashing it seems to require an hw reset by the button, otherwise the modem seems to be inaccessible.

                      Not quite sure. It may be that pyocd is enabling the write protect. I havenā€™t had enough time to look at it.

                      AchimKraus Using the LEDs isnā€™t to complicated and in addition to the nRF9160 feather itā€™s now possible to read the charger status.
                      Iā€™m not sure, why Nordic decided to not implement the zephyr ā€œcharger APIā€, and to use the ā€œnpm1300 sensorā€ API requires some datasheet reading. But all in all, my client was fast ported and we will see, how long that new feather will run on battery ;-).

                      Glad itā€™s working. šŸ™‚

                      AchimKraus seems to use the wrong polarity, I changed it to GPIO_ACTIVE_HIGH

                      Yup youā€™re correct. Changed.

                      AchimKraus About the power rails:
                      Is VDD connected to the battery or to the NPM1300?
                      Or in other words, does ā€œAT%XVBATā€ report the battery voltage or the output voltage of the NPM1300?

                      VDD is hooked to VSYS which is whatever is providing the power (battery or USB). The VBAT command will measure the battery unless you have USB plugged in (then it will read 5V)

                      Terms and Conditions | Privacy Policy