Windows Support

This repo supports Windows, but there are two separate “Windows” stories:

  1. Running the Python scripts on Windows (launchers: .bat)
  2. Actually talking to the Jibo over USB in RCM mode (drivers + build tools)

The USB/RCM part is the trickiest.

Launchers

  • Installer: ../jibo_automod.bat

    • Runs python ../jibo_automod.py %*
    • Warns if not Administrator.
  • Updater: ../jibo_updater.bat

    • Prefers ../.venv/ Python if present.
    • Else prefers py -3.
  • GUI: ../jibo_gui.bat

    • Same Python resolution approach.

Environment setup helper

  • ../windows_setup.bat helps install dependencies via MSYS2 and explains Zadig.

It installs (via MSYS2):

  • MinGW gcc/make
  • libusb
  • ARM toolchain (arm-none-eabi-gcc) for payload builds

USB driver requirement (RCM mode)

When Jibo is in RCM mode it enumerates as NVIDIA APX (0955:7740).

On Windows you typically need to replace its driver with WinUSB:

  • Use Zadig and install WinUSB for the “APX” device.

Without this, ShofEL won’t be able to talk to the device.

Editing mode.json on Windows

Linux can mount the ext filesystem image and edit /var/jibo/mode.json normally.

Windows usually can’t mount the ext image easily, so ../jibo_automod.py tries alternative methods:

  1. debugfs (recommended)

    • If debugfs.exe is available on PATH, the tool can edit the file inside the ext filesystem image safely.
    • Install via MSYS2:
      • pacman -S --needed e2fsprogs
  2. Raw in-place patch (last resort)

    • The tool searches the partition image bytes for JSON patterns and overwrites them without changing length.
    • This can fail if the on-disk JSON format differs or if there’s no safe padding space.

If you’re on Windows and you’re seeing warnings about raw edits or the tool can’t find patterns, installing debugfs is the best fix.

WSL option

Another workable approach is to use WSL2 and follow the Linux path.

Caveat: you still need USB passthrough into WSL (which can be non-trivial depending on your setup).

Common Windows failure modes

  • Device not detected / can’t open USB:

    • Wrong driver (use Zadig WinUSB)
    • Not Administrator
    • Cable is charge-only
  • Build failures:

    • Missing MSYS2 packages
    • ARM toolchain missing (payload .bin files won’t build)
  • mode.json edit failures:

    • Install e2fsprogs and ensure debugfs is on PATH