Repository navigation
Releases: wiroon/TESAIoT_PSE84_Programmer
Release list
TESAIoT PSE84 Programmer v1.0.2
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
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 —
.deband.rpmare now produced even when the AppImage step cannot run inside a container.
Verified
- On an HMI Kit (KitProg3 name
KIT_PSE84_HMI, partPSE846GPS2DBZC4A): the kit's loader writes and verifies a 6 MBapp_combined.hexover 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 programfrom 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
.msior-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
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 anUNVERIFIEDtag 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
.msior-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
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_identityrecord, 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 — anUNVERIFIEDtag 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
.msior-setup.exe. - Linux:
.deb/.rpm/.AppImage.
Bundled Infineon OpenOCD is GPL-2.0 — see THIRD_PARTY_NOTICES.md.
TESAIoT PSE84 Programmer v0.2.9
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
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
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 sourcedqspi_config.cfgdirectly from the installer's resource folder. On per-user NSIS installs that folder lives underC:\Users\<username>\AppData\…\TESAIoT PSE84 Programmer\…, and if the user name contains non-ASCII characters the vendor OpenOCD's TCLsourcecommand 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.FLMandqspi_config.cfgare copied intoC:\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.AppImageTESAIoT PSE84 Programmer v0.2.2 — Windows flashing actually works
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_banksproc runs at source-time of the target cfg and needs bothQSPI_FLASHLOADERandSMIF_BANKSset first. The previous order set them after sourcing the target cfg and relied on the proc's internalcatch {source [find qspi_config.cfg]}to pick upSMIF_BANKS. macOS happened to find it via the-ssearch 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 sourcesqspi_config.cfgexplicitly with a forward-slashed full path before sourcing the target cfg, and setsQSPI_FLASHLOADERfirst 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.AppImageTESAIoT PSE84 Programmer v0.2.1 — Windows flash reliability + console privacy
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
.hexlived under a user name containing non-ASCII characters (Thai, CJK), spaces, or parentheses. The hex is now staged intoC:\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.AppImageUpgrading 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)
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.AppImageHighlights
- Automatic board detection over USB
- Local and remote (pairing-code) flashing
- Live progress and connection status
- Same simple app on macOS, Windows, and Linux