Skip to content

Releases: wiroon/TESAIoT_PSE84_Programmer

TESAIoT PSE84 Programmer v1.0.2

Choose a tag to compare

@wiroon wiroon released this 16 Sep 15:01

TESAIoT PSE84 Programmer 1.0.2

แก้อะไร ตัวตรวจบอร์ด (probe) หา firmware identity record ได้ทุกตำแหน่งที่เฟิร์มแวร์วางไว้ — เดิมอ่านที่ 0x60900000 ที่เดียว
บอร์ดที่เฟิร์มแวร์วาง record ไว้ท้าย slot (0x6093ff00 เช่น Eva Kit MicroPython/DualBand, 0x60b7ff00 เช่น AI Game/BLE Mesh)
จึงขึ้นว่า "no valid record" ทั้งที่ record มีอยู่จริง ตอนนี้ probe อ่านทั้งสามตำแหน่งในรอบเดียว และใช้ตำแหน่งที่ถอดรหัสผ่าน (magic + CRC)
ถ้าถอดได้มากกว่าหนึ่งตำแหน่งจะไม่เดา

ทดสอบ unit test 20 กรณี รวม record จริงของ fw-eva-mpy-v1.5.2 ที่ 0x6093ff00 (CRC ตรวจผ่าน)

ไฟล์

  • macOS: TESAIoT.PSE84.Programmer_1.0.2_universal.dmg
  • Windows: ..._x64-setup.exe (NSIS) / ..._x64_en-US.msi
  • Linux: ..._amd64.deb / ..._x86_64.rpm / ..._amd64.AppImage

ต้องมี ModusToolbox Programming Tools ติดตั้งในเครื่องเหมือนรุ่นก่อน

TESAIoT PSE84 Programmer v1.0.1

Choose a tag to compare

@wiroon wiroon released this 14 Sep 08:14

TESAIoT PSE84 Programmer v1.0.1

Adds the HMI Kit (KIT_PSE84_HMI) to the boards the programmer can flash.

What changed

  • HMI Kit flashing — the programmer now carries the HMI Kit's own SMIF flash loader and QSPI configuration and selects them from the kit name KitProg3 reports. Previously an HMI Kit fell through to the AI Kit's loader, which is a different build, and the flash failed. The AI Kit and EVAL EPC2 selections are unchanged and covered by tests.
  • Linux build script — .deb and .rpm are now produced even when the AppImage step cannot run inside a container.

Verified

  • On an HMI Kit (KitProg3 name KIT_PSE84_HMI, part PSE846GPS2DBZC4A): the kit's loader writes and verifies a 6 MB app_combined.hex over SWD. The loader bundled here is byte-identical to that one.
  • Not yet exercised in this release: an end-to-end flash of the HMI Kit through the app's own user interface. If it fails for you, the fallback is make program from the firmware project, which uses the same loader.

Install

  • macOS: open the .dmg, drag to Applications. First launch: right-click → Open (unsigned build).
  • Windows: run the .msi or -setup.exe.
  • Linux: .deb / .rpm / .AppImage.

The bundled Infineon OpenOCD is GPL-2.0 — see THIRD_PARTY_NOTICES.md.

TESAIoT PSE84 Programmer v1.0.0

Choose a tag to compare

@wiroon wiroon released this 05 Jul 06:50

TESAIoT PSE84 Programmer v1.0.0

First stable release of the universal desktop programmer for the Infineon PSoC Edge E84 — macOS (universal), Windows, and Linux.

Highlights

  • Firmware Identity — read the running firmware's SKU, version and board directly from a connected board over SWD. The board card shows e.g. TESAIOT-CLAW-EPC2-GAME · v1.2.6, with an UNVERIFIED tag when the firmware ships an unstamped CRC. Reading is display-safe: it can never leave a board halted or black, including boards running firmware without the feature.
  • Reliable flashing — every flash reads the image back and verifies it; a mismatch is retried automatically instead of needing a manual second flash. The final attempt falls back to the proven write-only path, so verification can only add reliability, never fail a working flash.
  • Update notifications — the app checks for a newer release on launch and shows a dismissible banner with a download link.
  • Local + Remote flashing — flash over USB (KitProg3), or pair with a remote board via a pairing code.

Install

  • macOS: open the .dmg, drag to Applications. First launch: right-click → Open (unsigned build).
  • Windows: run the .msi or -setup.exe.
  • Linux: .deb / .rpm / .AppImage.

The bundled Infineon OpenOCD is GPL-2.0 — see THIRD_PARTY_NOTICES.md.

TESAIoT PSE84 Programmer v0.3.2

Choose a tag to compare

@wiroon wiroon released this 05 Jul 06:28

TESAIoT PSE84 Programmer v0.3.2

Universal desktop programmer for the Infineon PSoC Edge E84 — macOS (universal), Windows, and Linux.

New

  • Firmware Identity — when a connected board runs firmware that embeds a .fw_identity record, the board card now shows the firmware's SKU and version (e.g. TESAIOT-CLAW-EPC2-GAME · v1.2.6). Read over SWD, integrity-checked via CRC — an UNVERIFIED tag appears if the firmware ships an unstamped CRC. Reading is display-safe: it can never leave a board halted or black, including boards running firmware without the feature.
  • Flash verify + auto-retry — every flash now reads the image back and verifies it; a mismatch is retried automatically instead of needing a manual second flash. The final attempt falls back to the proven write-only path, so this can only add reliability, never fail a working flash.
  • Update notification — the app checks GitHub on launch and shows a dismissible banner when a newer version is available.

Fixed

  • Correct app executable is always bundled (adding the internal CLI could previously produce a windowless app).

Install

  • macOS: open the .dmg, drag to Applications. First launch: right-click → Open (unsigned build).
  • Windows: run the .msi or -setup.exe.
  • Linux: .deb / .rpm / .AppImage.

Bundled Infineon OpenOCD is GPL-2.0 — see THIRD_PARTY_NOTICES.md.

TESAIoT PSE84 Programmer v0.2.9

Choose a tag to compare

@wiroon wiroon released this 15 Jun 13:10

Picks the correct BSP / flash-loader file from kit_name (via fw-loader --info) instead of guessing from the chip's security_class. The previous mapping assumed S2 ⇒ AI Kit and S4 ⇒ EVAL EPC2, but an EVAL EPC2 board reports PSE846GPS2DBZC4A · S2 and was being flashed with the AI Kit's FLM. The two FLMs only differ in 32 bytes of FlashDevice config so it worked by luck, but v0.2.9 now uses the right file for each kit. Also removes the v0.2.7 partial-update warning, which was misdiagnosis (every working PSE84 hex omits RRAM extended_boot because it is factory-provisioned, not in user hex files). Local Flash now treats hex files cleanly and the boot question is left to the firmware. Same install rules as prior releases (macOS first launch: right-click → Open; Windows SmartScreen: 'More info' → 'Run anyway').

TESAIoT PSE84 Programmer v0.2.4 — push board_info on USB hotplug

Choose a tag to compare

@wiroon wiroon released this 06 Jun 15:22

Adds proactive board_info push over the Remote Flash WebSocket on every USB hotplug + an 8s heartbeat. Fixes a relay-team-reported staleness where the Web peer kept showing the kit as Connected after the operator unplugged it. Spec match: {type:"board_info", ts, payload:{board_connected, serial, device_mpn, security_class, kit_name, display_name}}. Same install rules as v0.2.3 (macOS first-launch right-click → Open; Windows SmartScreen 'More info' → 'Run anyway').

TESAIoT PSE84 Programmer v0.2.3 — Windows BSP staging

Choose a tag to compare

@wiroon wiroon released this 05 Jun 15:21

Critical Windows fix — v0.2.2 silently failed after the OpenOCD banner on Windows installs where the user account name contains non-ASCII characters (Thai, CJK, etc.). The vendor OpenOCD couldn't open the BSP config files at their install path. This release stages those files into a guaranteed-safe location before invoking OpenOCD, so flashing now works regardless of the Windows user name.

What's fixed

  • 🪟 BSP files now staged to C:\Users\Public\TESAIoTProgrammer\bsp\ on Windows. v0.2.2 sourced qspi_config.cfg directly from the installer's resource folder. On per-user NSIS installs that folder lives under C:\Users\<username>\AppData\…\TESAIoT PSE84 Programmer\…, and if the user name contains non-ASCII characters the vendor OpenOCD's TCL source command fails to open the file — silently aborting after the banner with no output to diagnose. v0.2.3 mirrors the hex-staging trick for the BSP files too: PSE84_SMIF.FLM and qspi_config.cfg are copied into C:\Users\Public\TESAIoTProgrammer\bsp\ (always ASCII, writable by every user) before flashing.
  • 🚦 Friendly error if BSP files are missing. Instead of an opaque "Flash failed", the app now bails with "Required BSP file not found …" pointing at the exact file the installer was missing.

Carries forward from v0.2.2

  • SMIF flash bank registration (set QSPI_FLASHLOADER + source qspi_config.cfg before target cfg)
  • Forward-slashed TCL paths everywhere
  • "wrote 0 bytes" treated as failure
  • Last 30 lines of OpenOCD output surfaced on failure
  • Relay URL kept out of the Console pane

Download

Pick the installer that matches your operating system:

Platform File
🍎 macOS (Apple Silicon & Intel) TESAIoT_PSE84_Programmer_0.2.3_universal.dmg
🪟 Windows 10 / 11 TESAIoT_PSE84_Programmer_0.2.3_x64-setup.exe or ..._x64_en-US.msi
🐧 Linux (Debian / Ubuntu) TESAIoT_PSE84_Programmer_0.2.3_amd64.deb
🐧 Linux (RHEL / Fedora) TESAIoT_PSE84_Programmer-0.2.3-1.x86_64.rpm
🐧 Linux (any distro) TESAIoT_PSE84_Programmer_0.2.3_amd64.AppImage

Install

macOS — Open the .dmg and drag the app into Applications. On first launch, right-click the app and choose Open to confirm you trust it.

Windows — Run the .exe or .msi installer. If Windows shows a "Windows protected your PC" banner on first launch, click "More info" and then "Run anyway".

Linux

sudo apt install ./TESAIoT_PSE84_Programmer_0.2.3_amd64.deb     # Debian / Ubuntu
sudo dnf install ./TESAIoT_PSE84_Programmer-0.2.3-1.x86_64.rpm  # Fedora / RHEL
chmod +x TESAIoT_PSE84_Programmer_0.2.3_amd64.AppImage && ./TESAIoT_PSE84_Programmer_0.2.3_amd64.AppImage

TESAIoT PSE84 Programmer v0.2.2 — Windows flashing actually works

Choose a tag to compare

@wiroon wiroon released this 05 Jun 14:54

Critical Windows fix — v0.2.1 reported "Flash reported zero bytes written" on Windows because the vendor OpenOCD never registered the SMIF (QSPI) flash banks for the PSoC Edge E84. This release fixes the OpenOCD command order so the banks are registered correctly, and Windows flashing now actually programs the board.

What's fixed

  • 🪟 SMIF flash banks now register on Windows. The vendor define_flash_banks proc runs at source-time of the target cfg and needs both QSPI_FLASHLOADER and SMIF_BANKS set first. The previous order set them after sourcing the target cfg and relied on the proc's internal catch {source [find qspi_config.cfg]} to pick up SMIF_BANKS. macOS happened to find it via the -s search path; Windows did not (the BSP path contains spaces and was backslash-encoded), so the catch silently swallowed the failure and no SMIF banks were registered. This release sources qspi_config.cfg explicitly with a forward-slashed full path before sourcing the target cfg, and sets QSPI_FLASHLOADER first too.

Carries forward from v0.2.1

  • Windows hex path staging (sidesteps non-ASCII / space / parenthesis user paths)
  • Forward-slashed TCL paths everywhere
  • "wrote 0 bytes" treated as failure
  • Relay URL kept out of the Console pane
  • Last 30 lines of OpenOCD output surfaced on failure

Download

Pick the installer that matches your operating system:

Platform File
🍎 macOS (Apple Silicon & Intel) TESAIoT_PSE84_Programmer_0.2.2_universal.dmg
🪟 Windows 10 / 11 TESAIoT_PSE84_Programmer_0.2.2_x64-setup.exe or ..._x64_en-US.msi
🐧 Linux (Debian / Ubuntu) TESAIoT_PSE84_Programmer_0.2.2_amd64.deb
🐧 Linux (RHEL / Fedora) TESAIoT_PSE84_Programmer-0.2.2-1.x86_64.rpm
🐧 Linux (any distro) TESAIoT_PSE84_Programmer_0.2.2_amd64.AppImage

Install

macOS — Open the .dmg and drag the app into Applications. On first launch, right-click the app and choose Open to confirm you trust it.

Windows — Run the .exe or .msi installer. If Windows shows a "Windows protected your PC" banner on first launch, click "More info" and then "Run anyway".

Linux

sudo apt install ./TESAIoT_PSE84_Programmer_0.2.2_amd64.deb     # Debian / Ubuntu
sudo dnf install ./TESAIoT_PSE84_Programmer-0.2.2-1.x86_64.rpm  # Fedora / RHEL
chmod +x TESAIoT_PSE84_Programmer_0.2.2_amd64.AppImage && ./TESAIoT_PSE84_Programmer_0.2.2_amd64.AppImage

TESAIoT PSE84 Programmer v0.2.1 — Windows flash reliability + console privacy

Choose a tag to compare

@wiroon wiroon released this 05 Jun 14:23

A patch release focused on Windows flashing reliability and console privacy. All platforms include the same code-level fixes.

What's fixed

  • 🪟 Windows flashing now actually programs the board. v0.2.0 silently no-op'd (or hung) when the source .hex lived under a user name containing non-ASCII characters (Thai, CJK), spaces, or parentheses. The hex is now staged into C:\Users\Public\TESAIoTProgrammer\ (writable by all users, guaranteed ASCII) before invoking OpenOCD.
  • 🔒 Console no longer leaks the relay URL. The "Claiming pairing code…" and "Opening WebSocket…" lines now read "TESAIoT Remote Flash Service" — keeping infrastructure detail out of screenshots and screen-shares.
  • 🚫 No more silent "Complete" on zero-byte writes. OpenOCD's "wrote 0 bytes" line is now treated as a failure (it was previously reported as success).
  • 🔍 Actionable failure messages. When a flash fails without a clean error line, the last 30 lines of OpenOCD output are surfaced in the message so you have something concrete to diagnose instead of "check console".

Download

Pick the installer that matches your operating system:

Platform File
🍎 macOS (Apple Silicon & Intel) TESAIoT_PSE84_Programmer_0.2.1_universal.dmg
🪟 Windows 10 / 11 TESAIoT_PSE84_Programmer_0.2.1_x64-setup.exe or ..._x64_en-US.msi
🐧 Linux (Debian / Ubuntu) TESAIoT_PSE84_Programmer_0.2.1_amd64.deb
🐧 Linux (RHEL / Fedora) TESAIoT_PSE84_Programmer-0.2.1-1.x86_64.rpm
🐧 Linux (any distro) TESAIoT_PSE84_Programmer_0.2.1_amd64.AppImage

Install

macOS — Open the .dmg and drag the app into Applications. On first launch, right-click the app and choose Open to confirm you trust it. (The app isn't yet notarized with Apple, so this one-time confirmation is required.)

Windows — Run the .exe or .msi installer. If Windows shows a "Windows protected your PC" banner on first launch, click "More info" and then "Run anyway". (The installer isn't yet signed with an extended-validation certificate, so this one-time confirmation is required — it's safe to run.)

Linux

sudo apt install ./TESAIoT_PSE84_Programmer_0.2.1_amd64.deb     # Debian / Ubuntu
sudo dnf install ./TESAIoT_PSE84_Programmer-0.2.1-1.x86_64.rpm  # Fedora / RHEL
chmod +x TESAIoT_PSE84_Programmer_0.2.1_amd64.AppImage && ./TESAIoT_PSE84_Programmer_0.2.1_amd64.AppImage

Upgrading from v0.2.0

No migration needed — just install on top of v0.2.0. All settings and saved pairings are preserved.

TESAIoT PSE84 Programmer v0.2.0 — cross-platform (macOS · Windows · Linux)

Choose a tag to compare

@wiroon wiroon released this 28 May 16:47

One-click firmware flashing for PSoC™ Edge E84 boards — now on macOS, Windows, and Linux.

Download

Pick the installer that matches your operating system:

Platform File
🍎 macOS (Apple Silicon & Intel) TESAIoT_PSE84_Programmer_0.2.0_universal.dmg
🪟 Windows 10 / 11 TESAIoT_PSE84_Programmer_0.2.0_x64-setup.exe or ..._x64_en-US.msi
🐧 Linux (Debian / Ubuntu) TESAIoT_PSE84_Programmer_0.2.0_amd64.deb
🐧 Linux (RHEL / Fedora) TESAIoT_PSE84_Programmer-0.2.0-1.x86_64.rpm
🐧 Linux (any distro) TESAIoT_PSE84_Programmer_0.2.0_amd64.AppImage

Install

macOS — Open the .dmg and drag the app into Applications. On first launch, right-click the app and choose Open to confirm you trust it. (The app isn't yet notarized with Apple, so this one-time confirmation is required.)

Windows — Run the .exe or .msi installer. If Windows shows a "Windows protected your PC" banner on first launch, click "More info" and then "Run anyway". (The installer isn't yet signed with an extended-validation certificate, so this one-time confirmation is required — it's safe to run.)

Linux

# Debian / Ubuntu
sudo apt install ./TESAIoT_PSE84_Programmer_0.2.0_amd64.deb
# Fedora / RHEL
sudo dnf install ./TESAIoT_PSE84_Programmer-0.2.0-1.x86_64.rpm
# AppImage (no install — just run)
chmod +x TESAIoT_PSE84_Programmer_0.2.0_amd64.AppImage && ./TESAIoT_PSE84_Programmer_0.2.0_amd64.AppImage

Highlights

  • Automatic board detection over USB
  • Local and remote (pairing-code) flashing
  • Live progress and connection status
  • Same simple app on macOS, Windows, and Linux