ENOENT leads me to think either it can’t get to 7z.exe or can’t find the zip file for some reason

    jaredwolff

    FlareHalo Started clean by deleting everything in the C:\Users\flarehalo.zephyrtools\ folder

    definitely did that - I thought the same

    jaredwolff what is the command is it trying to run? I could do it manually to verify.

    @jaredwolff

    Its pointing to the wrong path for 7za.exe.

    LOG - c:\Users\flarehalo.vscode\extensions\circuitdojo.zephyr-tools-0.3.5\dist\win\x64\7za.exe ENOENT

    Manually tried: C:\flarehalo>c:\Users\flarehalo\.vscode\extensions\circuitdojo.zephyr-tools-0.3.5\dist\win\x64\7za.exe
    The system cannot find the path specified.

    Actual file structure:

    C:\flarehalo>tree /f c:\Users\clint\.vscode\extensions\circuitdojo.zephyr-tools-0.3.5\
    Folder PATH listing for volume OS
    Volume serial number is A23A-D076
    C:\USERS\CLINT\.VSCODE\EXTENSIONS\CIRCUITDOJO.ZEPHYR-TOOLS-0.3.5
    │ .gitignore
    │ .nvmrc
    │ .vsixmanifest
    │ changelog.md
    │ extension.js
    │ LICENSE.md
    │ package.json
    │ readme.md

    ├───dist
    │ extension.js

    ├───img
    │ bulb.png

    ├───manifest
    │ manifest.json

    ├───node_modules
    │ └───7zip-bin
    │ │ 7x.sh
    │ │ index.d.ts
    │ │ index.js
    │ │ LICENSE.txt
    │ │ package.json
    │ │ README.md
    │ │
    │ ├───linux
    │ │ ├───arm
    │ │ │ 7za
    │ │ │
    │ │ ├───arm64
    │ │ │ 7za
    │ │ │
    │ │ ├───ia32
    │ │ │ 7za
    │ │ │
    │ │ └───x64
    │ │ 7za
    │ │ build.sh
    │ │ do-build.sh
    │ │
    │ ├───mac
    │ │ ├───arm64
    │ │ │ 7za
    │ │ │
    │ │ └───x64
    │ │ 7za
    │ │
    │ └───win
    │ ├───arm64
    │ │ 7za.exe
    │ │
    │ ├───ia32
    │ │ 7za.exe
    │ │
    │ └───x64
    │ 7za.exe

    TLDR: c:\Users\flarehalo.vscode\extensions\circuitdojo.zephyr-tools-0.3.5\dist\win\x64\7za.exe is the wrong location. It should be using: c:\Users\flarehalo.vscode\extensions\circuitdojo.zephyr-tools-0.3.5\node_modules\7zip-bin\win\x64\7za.exe

    It was working on my Windows setup. Have you tried removing and reinstalling the extension? (I don’t think it will fix it but worth a shot)

    I’m using the API that dynamically calls the executable so possibly something going on specifically with your machine that is messing with the path.

    My guess is that this could be because a difference in node version. Your VSCode is slightly behind latest but not crazy. Let me see what my setup has

      jaredwolff

      I am using Cursor and VS Code

      Cursor is behind on VSCode Version: 1.99.3 and I cant install the new extension easily

      Consequently, I jumped back into VS code.
      Version: 1.101.2 (user setup)
      Commit: 2901c5ac6db8a986a5666c3af51ff804d05af0d4
      Date: 2025-06-24T20:27:15.391Z
      Electron: 35.5.1
      ElectronBuildId: 11727614
      Chromium: 134.0.6998.205
      Node.js: 22.15.1
      V8: 13.4.114.21-electron.0
      OS: Windows_NT x64 10.0.26100

      Fresh extension install had no problems, but still cannot progress past the 7z problem

      Version: 1.101.2 (user setup)
      Commit: 2901c5ac6db8a986a5666c3af51ff804d05af0d4
      Date: 2025-06-24T20:27:15.391Z
      Electron: 35.5.1
      ElectronBuildId: 11727614
      Chromium: 134.0.6998.205
      Node.js: 22.15.1
      V8: 13.4.114.21-electron.0
      OS: Windows_NT x64 10.0.19045

      Seems like the same setup.

      Originally you wrote:

      Fresh extension install (no problems)

      What changed?

      Unfortunately I cannot support all the edge cases like Cursor. Only vanilla VSCode.

        jaredwolff What changed?

        Nothing. I realized I wasn’t clear in my original message and that it would appear that the build process is working. What I did mean was: the extension installed with no problem. Not that the Zephyr Build ran with no problem.

        Apologies for the confusion - I tried to fix before anyone noticed 😉

        Understood that you wouldn’t support Cursor and I don’t expect you to. I will work with VS Code only to avoid any chance that might be the issue.

        Still unsure why the log in VSCode says its looking in the dist folder

        SUCCESS (with workaround)

        I manually copied the win\x64\7za.exe folders and file from C:\Users\flarehalo.vscode\extensions\circuitdojo.zephyr-tools-0.3.5\node_modules\7zip-bin\win\x64\7za.exe and have now passed the setup process without error.

        [SETUP] URL: https://github.com/circuitdojo/zephyr-tools-cli/releases/download/0.1.7/zephyr-tools-0.1.7-x86_64-pc-windows-msvc.zip
        [SETUP] Expected MD5: ab0154c2923f7f89ec025edd020785e4
        [SETUP] Initial copytopath: C:\Users\flarehalo\.zephyrtools\zephyr-tools
        [SETUP] Cleared and recreated target directory: C:\Users\flarehalo\.zephyrtools\zephyr-tools
        [SETUP] unzip C:\Users\flarehalo\.zephyrtools\downloads\zephyr-tools-0.1.7-x86_64-pc-windows-msvc.zip to C:\Users\flarehalo\.zephyrtools\zephyr-tools
        [SETUP] ZIP extraction validated: 1 items extracted
        [SETUP] Successfully completed: zephyr-tools
        [SETUP] Starting processing: newtmgr
        [SETUP] URL: https://docs.jaredwolff.com/files/newtmgr/windows/newtmgr.zip
        [SETUP] Expected MD5: 3ed9e43ff509a54fd5010c144e45697b
        [SETUP] Initial copytopath: C:\Users\flarehalo\.zephyrtools\newtmgr
        [SETUP] Cleared and recreated target directory: C:\Users\flarehalo\.zephyrtools\newtmgr
        [SETUP] unzip C:\Users\flarehalo\.zephyrtools\downloads\newtmgr.zip to C:\Users\flarehalo\.zephyrtools\newtmgr
        [SETUP] ZIP extraction validated: 1 items extracted
        [SETUP] Successfully completed: newtmgr
        [SETUP] Starting processing: ninja
        [SETUP] URL: https://github.com/ninja-build/ninja/releases/download/v1.10.2/ninja-win.zip
        [SETUP] Expected MD5: 8dad6a63141d57aae277e68ef7658ca1
        [SETUP] Initial copytopath: C:\Users\flarehalo\.zephyrtools\ninja
        [SETUP] Cleared and recreated target directory: C:\Users\flarehalo\.zephyrtools\ninja
        [SETUP] unzip C:\Users\flarehalo\.zephyrtools\downloads\ninja-win.zip to C:\Users\flarehalo\.zephyrtools\ninja
        [SETUP] ZIP extraction validated: 1 items extracted
        [SETUP] Successfully completed: ninja
        [SETUP] Starting processing: cmake
        [SETUP] URL: https://github.com/Kitware/CMake/releases/download/v3.22.0/cmake-3.22.0-windows-x86_64.zip
        [SETUP] Expected MD5: 1a273903dcb295455b69af7c9c10efa2
        [SETUP] Initial copytopath: C:\Users\flarehalo\.zephyrtools\cmake
        [SETUP] Cleared and recreated target directory: C:\Users\flarehalo\.zephyrtools\cmake
        [SETUP] unzip C:\Users\flarehalo\.zephyrtools\downloads\cmake-3.22.0-windows-x86_64.zip to C:\Users\flarehalo\.zephyrtools\cmake
        [SETUP] ZIP extraction validated: 1 items extracted
        [SETUP] Successfully completed: cmake
        [SETUP] Installing zephyr-sdk-0.16.4 toolchain...
        [SETUP] Starting processing: toolchain
        [SETUP] URL: https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.16.4/zephyr-sdk-0.16.4_windows-x86_64_minimal.7z
        [SETUP] Expected MD5: fbf2ffa00c77227537514fa43075607f
        [SETUP] Initial copytopath: C:\Users\flarehalo\.zephyrtools\toolchain
        [SETUP] Cleared and recreated target directory: C:\Users\flarehalo\.zephyrtools\toolchain
        [SETUP] Starting 7z extraction: C:\Users\flarehalo\.zephyrtools\downloads\zephyr-sdk-0.16.4_windows-x86_64_minimal.7z to C:\Users\flarehalo\.zephyrtools\toolchain
        [SETUP] Using 7z binary from 7zip-bin: c:\Users\flarehalo\.vscode\extensions\circuitdojo.zephyr-tools-0.3.5\dist\win\x64\7za.exe
        [SETUP] 7z source: C:\Users\flarehalo\.zephyrtools\downloads\zephyr-sdk-0.16.4_windows-x86_64_minimal.7z
        [SETUP] 7z destination: C:\Users\flarehalo\.zephyrtools\toolchain
        [SETUP] 7z extraction completed successfully
        [SETUP] 7z extraction validated: 1 items extracted
        [SETUP] Successfully completed: toolchain
        [SETUP] Starting processing: toolchain
        [SETUP] URL: https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.16.4/toolchain_windows-x86_64_arm-zephyr-eabi.7z
        [SETUP] Expected MD5: 37e3d358aae2ee055f34b97fd24aadd5
        [SETUP] downloading https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.16.4/toolchain_windows-x86_64_arm-zephyr-eabi.7z
        [SETUP] Initial copytopath: C:\Users\flarehalo\.zephyrtools\toolchain
        [SETUP] Updated copytopath with subfolder: C:\Users\flarehalo\.zephyrtools\toolchain\zephyr-sdk-0.16.4
        [SETUP] Preserving existing target directory: C:\Users\flarehalo\.zephyrtools\toolchain\zephyr-sdk-0.16.4
        [SETUP] Starting 7z extraction: C:\Users\flarehalo\.zephyrtools\downloads\toolchain_windows-x86_64_arm-zephyr-eabi.7z to C:\Users\flarehalo\.zephyrtools\toolchain\zephyr-sdk-0.16.4
        [SETUP] Using 7z binary from 7zip-bin: c:\Users\flarehalo\.vscode\extensions\circuitdojo.zephyr-tools-0.3.5\dist\win\x64\7za.exe
        [SETUP] 7z source: C:\Users\flarehalo\.zephyrtools\downloads\toolchain_windows-x86_64_arm-zephyr-eabi.7z
        [SETUP] 7z destination: C:\Users\flarehalo\.zephyrtools\toolchain\zephyr-sdk-0.16.4
        [SETUP] 7z extraction completed successfully
        [SETUP] 7z extraction validated: 5 items extracted
        [SETUP] Successfully completed: toolchain
        git version 2.47.0.windows.2
        [SETUP] git installed
        [SETUP] Checking python...
        [SETUP] Found python: Python 3.12
        [SETUP] Python 3.12 meets requirements (>= 3.10)
        [SETUP] Using Python: python
        python --version
        [SETUP] python3 found
        python -m pip --version
        pip 25.1 from C:\Users\flarehalo\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip (python 3.12)
        
        [SETUP] pip installed
        python -m venv --help
        [SETUP] python3 venv OK
        python -m venv "C:\Users\flarehalo\.zephyrtools\env"
        [SETUP] virtual python environment created
        Collecting west
          Using cached west-1.4.0-py3-none-any.whl.metadata (18 kB)
        Collecting colorama (from west)
          Using cached colorama-0.4.6-py2.py3-none-any.whl.metadata (17 kB)
        Collecting PyYAML>=5.1 (from west)
          Using cached PyYAML-6.0.2-cp312-cp312-win_amd64.whl.metadata (2.1 kB)
        Collecting pykwalify (from west)
          Using cached pykwalify-1.8.0-py2.py3-none-any.whl.metadata (5.3 kB)
        Collecting packaging (from west)
          Using cached packaging-25.0-py3-none-any.whl.metadata (3.3 kB)
        Collecting docopt>=0.6.2 (from pykwalify->west)
          Using cached docopt-0.6.2-py2.py3-none-any.whl
        Collecting python-dateutil>=2.8.0 (from pykwalify->west)
          Using cached python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB)
        Collecting ruamel.yaml>=0.16.0 (from pykwalify->west)
          Using cached ruamel.yaml-0.18.14-py3-none-any.whl.metadata (24 kB)
        Collecting six>=1.5 (from python-dateutil>=2.8.0->pykwalify->west)
          Using cached six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB)
        Collecting ruamel.yaml.clib>=0.2.7 (from ruamel.yaml>=0.16.0->pykwalify->west)
          Using cached ruamel.yaml.clib-0.2.12-cp312-cp312-win_amd64.whl.metadata (2.8 kB)
        Using cached west-1.4.0-py3-none-any.whl (104 kB)
        Using cached PyYAML-6.0.2-cp312-cp312-win_amd64.whl (156 kB)
        Using cached colorama-0.4.6-py2.py3-none-any.whl (25 kB)
        Using cached packaging-25.0-py3-none-any.whl (66 kB)
        Using cached pykwalify-1.8.0-py2.py3-none-any.whl (24 kB)
        Using cached python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB)
        Using cached ruamel.yaml-0.18.14-py3-none-any.whl (118 kB)
        Using cached ruamel.yaml.clib-0.2.12-cp312-cp312-win_amd64.whl (115 kB)
        Using cached six-1.17.0-py2.py3-none-any.whl (11 kB)
        Installing collected packages: docopt, six, ruamel.yaml.clib, PyYAML, packaging, colorama, ruamel.yaml, python-dateutil, pykwalify, west
        Successfully installed PyYAML-6.0.2 colorama-0.4.6 docopt-0.6.2 packaging-25.0 pykwalify-1.8.0 python-dateutil-2.9.0.post0 ruamel.yaml-0.18.14 ruamel.yaml.clib-0.2.12 six-1.17.0 west-1.4.0
        
        [notice] A new release of pip is available: 24.3.1 -> 25.1.1
        [notice] To update, run: python.exe -m pip install --upgrade pip
        [SETUP] west installed
        [SETUP] Zephyr setup complete!

        Ran > Zephyr Tools Init Repo
        Ran > Zephyr Tools Clean
        Ran > Zephyr Tools Build

        The blinky sample builds successfully (the external flash sample doesn’t, but that’s a sample code issue)

        Now the environment is setup, I can build a sample (blinky) successfully.

        west build -b circuitdojo_feather_nrf9160/nrf9160/ns -p -d build\circuitdojo_feather_nrf9160
        ...snip...
        -- Configuring done
        -- Generating done
        -- Build files have been written to: C:/flarehalo/nfed/samples/blinky/build/circuitdojo_feather_nrf9160/blinky/tfm
        [10/233] Performing build step for 'tfm'
        [136/140] Linking C executable bin\tfm_s.axf
        Memory region         Used Size  Region Size  %age Used
                   FLASH:       31580 B      32256 B     97.90%
                     RAM:       10404 B        32 KB     31.75%
        [140/140] Linking C static library secure_fw\libtfm_s_veneers.a
        [12/233] Performing install step for 'tfm'
        -- Install configuration: "MinSizeRel"
        ----- Installing platform NS -----
        [233/233] Linking C executable zephyr\zephyr.elf
        Memory region         Used Size  Region Size  %age Used
                   FLASH:       19708 B       448 KB      4.30%
                     RAM:        4968 B     211608 B      2.35%
                IDT_LIST:          0 GB        32 KB      0.00%
        Generating files from C:/flarehalo/nfed/samples/blinky/build/circuitdojo_feather_nrf9160/blinky/zephyr/zephyr.elf for board: circuitdojo_feather_nrf9160
        image.py: sign the payload
        image.py: sign the payload
        [11/20] Performing build step for 'mcuboot'
        [6/223] Generating include/generated/zephyr/version.h
        -- Zephyr version: 4.0.99 (C:/flarehalo/zephyr), build: v4.0.99-ncs1-1
        [223/223] Linking C executable zephyr\zephyr.elf
        Memory region         Used Size  Region Size  %age Used
                   FLASH:       48756 B        48 KB     99.19%
                     RAM:       24776 B        32 KB     75.61%
                IDT_LIST:          0 GB        32 KB      0.00%
        Generating files from C:/flarehalo/nfed/samples/blinky/build/circuitdojo_feather_nrf9160/mcuboot/zephyr/zephyr.elf for board: circuitdojo_feather_nrf9160
        [20/20] Generating ../merged.hex

        Run $ Zephyr Tools: Setup Newtmgr to set the port (COM7) and baud (1000000)

        Now I can’t flash it to the device: (its in DFU mode with constant blue led)

        $ Zephyr Tools: Load via Bootloader

        newtmgr -c vscode-zephyr-tools image upload c:\flarehalo\nfed\samples\blinky\build\circuitdojo_feather_nrf9160\blinky.bin -r 3 -t 0.25 
        
        Error: open c:\flarehalo\nfed\samples\blinky\build\circuitdojo_feather_nrf9160\blinky.bin: The system cannot find the file specified.
        
        upload - Upload image to a device
        
        Usage:
          newtmgr image upload <image-file> -c <conn_profile> [flags]
        
        Examples:
          newtmgr -c olimex image upload bin/slinky_zero/apps/slinky.img
        
        
        Flags:
          -h, --help        help for upload
          -n, --image int   In a multi-image system, which image should be uploaded
          -e, --noerase     Don't send specific image erase command to start with
          -u, --upgrade     Only allow the upload if the new image's version is greater than that of the currently running image
        
        Global Flags:
          -c, --conn string         connection profile to use
              --connextra string    Additional key-value pair to append to the connstring
              --connstring string   Connection key-value pairs to use instead of using the profile's connstring
              --conntype string     Connection type to use instead of using the profile's type
          -i, --hci int             HCI index for the controller on Linux machine
          -l, --loglevel string     log level to use (default "info")
              --name string         name of target BLE device; overrides profile setting
              --ompres string       Use this CoAP resource instead of /omgr (default "/omgr")
          -t, --timeout float       timeout in seconds (partial seconds allowed) (default 10)
          -r, --tries int           total number of tries in case of timeout (default 1)
              --write-rsp           Send BLE acked write requests instead of unacked write commands

        Should the blinky sample work out of the box with the zephyr tools? I don’t think blinky.bin that correct file to flash? (it doesnt exist anyway)

        I can manually flash the blinky.signed.bin file, but isnt that what the tool should do?

        newtmgr.exe -c vscode-zephyr-tools image upload blinky.signed.bin -r 3 -t 0.25                                                            
         51.39 KiB / 51.39 KiB [=================================================================================================================] 100.00% 16.53 KiB/s 3s
        Done
        
        newtmgr.exe -c vscode-zephyr-tools reset   
        Done

        Am I missing something?

        Nah they change the name of the .bin file. I’ve pushed 0.3.6 to VS Marketplace to fix that. I have a theory that esbuild was mucking up the paths for 7z so that should be fixed now as well.

        6 days later

        @FlareHalo I’m assuming that last push fixed the remaining issues? Let me know if you need anything else.

        Terms and Conditions | Privacy Policy