リリースノート

86Duino Coding 501 – 2026.04

本リリースでは、新たに QEC M02 ボードを追加し、PPC 9"/10.4"/15" および HMI-043T への対応を大幅に拡張しました。86EVA にはサードパーティ製デバイスへの対応を追加、86HMI は全面的に刷新され、ArduBlock には新しいブロックを追加し、ライブラリとファームウェアも多数更新されています。


86Duino IDE — コア更新

新規ボード対応

  • ボードリストに QEC M02 を追加しました。
  • 追加した HMI-043T to the board list (uses the EXm2 CPU).
  • 追加した PPC 9″, PPC 10.4″, PPC 15″ board support across the IDE and libraries.

QEC M02 Features

  • Multi-Slot programming: Up to 10 independent program slots can be flashed to a single QEC M02. Each slot has its own independent resource folder, and the M02 automatically detects the external rotary selector position to determine which slot to run.
  • Run/Stop switch support: 新規ファイル qecm02_start(), qecm02_stop(), qecm02_inStop() weak functions. When the Run/Stop button is pressed, timing functions (millis(), delay(), micros()) automatically subtract the stop-state shift time so elapsed-time logic remains correct.
  • Digital pin naming convention: QEC M02 digital pins are named X00X37 (inputs) and Y00Y37 (outputs).
  • Fast digital I/O access: 追加した digitalWriteAll()digitalReadAll(). When GPIO addresses are contiguous, the functions automatically use 16-bit batch read/write for speed; otherwise they fall back to per-port access.
  • Fault indication: M02 flashes a red LED when the user program crashes, giving a clear visual fault signal.
  • External thermistor: CPU temperature on M02 (and M01) is now read from an external thermistor for improved accuracy.
  • A/B board auto-detection: digitalInit()digitalWrite() automatically detect the M02 A/B hardware revision and select the correct GPIO port.
  • Local digital I/O now supports a 24-IN / 8-OUT mode in addition to the existing modes.

HMI-043T Features

  • 追加した GP26 pin control for LCD backlight (Japanese customer requirement).
  • Corrected GPIO pin mapping: GP70GP77 now correctly map to digital pins 1–7.
  • Added support for Serial5, Serial6, and the Ethernet library.

Build System & Compilation

  • Rebuilt arduino-builder to fix a link-stage error when the command-line string exceeds 30,000 characters.
  • platform.txt now adds -I{build.path}/sketch so libraries located inside the sketch folder are searched during compilation.
  • Reordered the IDE compile/link sequence to prevent link errors.
  • 追加した __FlashStringHelper back to WString.h to support the MFRC522 library.
  • USBAPI.hHardwareSerial.h now include using Stream::setTimeout.
  • CDC.cpp: removed the com_GetDTR() check.
  • MCM.cpp: added EX3 CPU support; when MCM initialization fails, GetMCIRQ() returns 0xff and skips configuration.
  • When the resource folder exists but is empty, programming falls back to the standard flow (no resource bundle).
  • Fixed inability to compile LVGL 9.3.0 assembly code.
  • LVGL86 and upstream LVGL 9.3.0 can now coexist in the same project.
  • Updated LVGL86 bundled examples to work with the new 86HMI.

Runtime

  • Calling delay() または delayMicroseconds() inside setup() now automatically yields to helperYield().
  • Fixed touch-screen coordinate jitter when a USB keyboard is rapidly typed at the same time.

86Duino IDE — Libraries

SD Library

  • Expanded _name internal buffer from 12 to 256 bytes; SD.remove()SD.open() now work correctly with long file paths.
  • 追加した FILE_WRITE_TRUNC mode — use fwrite(filename, "w") to create an empty file.
  • Fixed SD.open("/") not honoring setBank() when only the root is specified.
  • Fixed SD.mkdir() missing the drive letter, which prevented directory creation.
  • Fixed automatic const char*char* conversion for the first argument of SD.open().
  • setBank() now also checks whether the SD folder exists on eMMC and creates it automatically if missing.
  • The SD library now reads _brdn.v86 to determine the default bank — QEC-series boards default to the USB flash drive.

LVGL86

  • Added 1280 × 720 resolution support for QEC M02.
  • Added 640 × 480 resolution support for HMI-043T.
  • 86Duino One rendering resolution fixed at 1024 × 600.
  • Refined the DISABLE state so disabled components are visually distinct in color and text.
  • Extended the FileBrowser plugin: _focus method, folder-level focus on back navigation, setFileBrowserFolder(), focusFileBrowserFilePath(), and support for non-root paths and long-text truncation.
  • getFileBrowserFilePath() now accepts an index and returns the file path or folder name.
  • getLine() now returns an empty string when out of range instead of misbehaving.
  • LVGL Console write() now safely skips '\0' bytes.
  • Fixed an image-scaling bug and the long-idle “image disappears” issue.
  • Added support for an external RS232 touchscreen: HDMI displays the screen, RS232 returns the touch coordinates.

EtherCAT (Virtual)

  • VirtualCNC: new gcode(const String &s) overload that accepts a String argument.
  • VirtualServo: new APIs for reading T600 voltage, current, and temperature.

EtherCAT

  • Updated to the 2025-11-18 release.

Ethernet

  • 追加した IPAddress.cpp / IPAddress.h APIs to align with the ArduinoMDNS library, and updated the Ethernet library to the latest Arduino API.

Modbus

  • Fixed a Modbus ASCII bug.

Motion86

  • First-stage port to the EX2 CPU, supporting QEC7, QEC9, and QEC15.
  • Completed the Custom Machine mechanism; added overridable IoHelper methods and config_Controller_Callback hooks.
  • 追加した Motion86_Ethercat, providing an EcatMachine plugin class bound to 86EVA, with an attach method that automatically invokes the EtherCAT version of IoHelper.
  • Fixed a large-number overflow bug in planner/stepper calculations.
  • Fixed an issue where the motor’s maximum acceleration could not be set.

RTCZero

  • Fixed an issue where checking the UIP field could cause overall program lag.

SCoop & _Helper

  • Added the ability to measure how many times a Task runs per second.

Built-in Libraries

  • 追加した RBDL2 as a built-in library, including headers and the pre-built .a archive.
  • Eigen: added to the DJGPP toolchain; resolved Arduino min / max macro conflicts via NOMINMAX; WString.h‘s F() macro no longer conflicts with Eigen; Macros.hMathFunctions.h modified for the Arduino environment.

86Duino IDE — Toolchain

  • Java JRE updated from 1.8.0_231 to 1.8.0_461.
  • v86dude.exe: fixed transfer issues on EX2 and increased transfer speed.
  • USB Device: HMI-043T can flash HMI resources through the current bootloader on EX CPUs; the USB ON/OFF pin is now configurable rather than fixed.
  • EX bootloader: fixed boot failure after flashing the bootloader on 86Duino Zero / One / EduCake / AI (the previously bundled bootloader was out of date).

86Duino IDE — LDmicro Plug-In

  • Initial integration of the LDmicro plug-in; GPIO can be dragged in to control local digital I/O on QEC M02.
  • Opening LDmicro now sends the selected board name to LDmicro.exe.
  • LDmicro.exe ships as a release build and includes the three required DLLs.
  • Added convenience options: “Disable LDmicro auto-save”, “Auto-open if a save file exists”, and “Auto-close after generating Arduino code”.

86Duino IDE — Project Protection

  • When a built-in example is opened in the IDE, the 86HMI, ArduBlock, LDmicro, and 86EVA buttons remain disabled until the project is saved under a new name, preventing accidental modification of the examples.

Bootloader

  • A/B partitions updated to FreeDOS 1.3.
  • Added the CREATE_SLOT command, which automatically creates slot folders and corrects the UIRPATH.
  • Updated deltree parameters to match FreeDOS 1.3.
  • Programming progress bar changed from a horizontal bar to an ArcBar(円弧バー), with size and percentage-text sizing adjusted automatically based on the board model.

Firmware

  • MP3S firmware updated to v1.11.
  • MV3S firmware updated to v1.06.
  • T600 firmware updated to v1.04.

86EVA

FOE (Firmware-over-EtherCAT)

  • Added FOE: detects attached firmware, checks the version, and conditionally shows an “Update” button.
  • Firmware flashing works correctly even when the project is located under a Chinese-character folder path.
  • After a successful flash, the UI automatically returns to the main screen and blocks re-entry to the device page.
  • Whenever an incorrect tool-firmware version is detected, an “Exit” button is shown.

L-Board Firmware Flashing

  • Added MV3S L-board firmware flashing.
  • Expanded L-board firmware coverage to all DIO / AIO / CIO devices.
  • DIO / AIO / CIO L-board firmware is hidden by default to prevent accidental misuse.

Device & Board Support

  • QEC M02, PPC 9″, PPC 10.4″, PPC 15″.
  • Added Beckhoff EL1889 and EL2889; refreshed product images for EK1814, EL2008, and EL3008.
  • Added EtherCAT HUB support, including display of the corresponding AX58100 network port number.
  • Added Delta R1EC5500D0E and R1EC5621D0.
  • Added MOONS M56S.
  • Added Oriental Motor EtherCAT AC motor driver AZD4A-KED.
  • Added QEC-R11HU8S, QEC-R00HU8S, QEC-R11CT0U, and several other QEC-R models.
  • Added R11MV6S 6-axis motor controller (G-code mode only).
  • Added third-party machine support for NPMEzi.

EEPROM Detection

  • Added detection for empty slave EEPROMs, prompting the user when a device has not yet had its SII EEPROM written.

コード生成

  • Generates QECmcp21.js.
  • Old QECmcp**.js files are deleted before new generation to avoid stale residue.
  • Scanned object-pointer arrays moved from local to global scope.
  • setIntegerDataPin now handles the CIQ type.
  • myeva.cpp now generates the Virtual-series object-pointer arrays.

UI Improvements

  • When Master is configured for DC, a callback function is generated automatically and EtherCAT SYNC mode is enabled.
  • MP3S UI: removed Max Acc/Dec; “Max Velocity” renamed to “Max Motor Speed”.
  • Other motor-brand UIs: removed Max Velocity, Max Acc, and Max Dec.
  • Encoder UI: added Encoder Count and Position Feedback computed fields (Scale / Offset). The encoder-to-motor mapping can now be changed, and the corresponding Encoder Label updates accordingly.
  • G-code mode: added a MaxError field for 3-axis lost-step compensation.
  • CiA402 mode: each axis can now individually select its speed unit (pulses/sec または rpm).
  • Fixed missing Advance entries and voltage/current readings on PPC 9″.
  • Fixed firmware-tool update failures on PPC 10.4″ and PPC 15″.
  • Fixed R11ACSS inability to configure Virtual Pins or modify remote voltage.
  • Corrected the tooltip typo “coonect” → “connect”.
  • Fixed incorrect CIQ digital-pin configuration count.
  • MV6S: fixed returning -1 when scanning extremely large double values; axis names changed from UVW to ABC.

86HMI

Board Support

  • HMI-043T is now a production-supported control board.

Bug Fixes

  • Fixed empty folders being created on import.
  • Fixed a paste-object bug.
  • Fixed incorrect ordering of audioInit / audioLoad.
  • Preview now plays at the original sample rate to avoid stutter caused by 22 kHz conversion.
  • Fixed a crash when closing the window during playback.
  • Fixed bugs in setBarValue, setImageBarValue, setSliderValue, setImageSliderValue, setArcBarValue.
  • Fixed the decimal-display behavior of setNumberInputValue.
  • Fixed image content disappearing when 86HMI is reopened.
  • Directory deletion now clears the read-only attribute and retries multiple times.
  • Button and ToggleButton symbols are no longer offset when no text is present.

Theme & Components

  • Theme updated so disabled components are visually distinct.
  • Extended selection APIs: setListSelectedItem, setDropDownListSelectedItem, setRollerSelectedItem.
  • ProcessingBox is now asynchronous, so the progress bar feels real-time.
  • Audio default output changed to 48 kHz.
  • Sound resources are transcoded with ffmpeg to MP3 / WAV at 22 kHz on import, with a progress bar during import.

New Features

  • 追加した getButtonStategetImageButtonState.
  • Added a console component.
  • Supports QEC M02, PPC 9″, and PPC 10.4″ display resolutions.
  • Fixed missing fonts and images when the project path contains Chinese characters.

ArduBlock(ブロック・プログラミング)

UX

  • Holding Ctrl now moves a single block instead of the entire stack below it.

New Blocks

  • RTC block for retrieving year / month / day / hour / minute / second — used in most public demos.
  • HMI array blocks.
  • Production Modbus blocks.
  • CiA402 “get current position” block.
  • getCurrentPageNumber()consolePrint() blocks, with a new Console icon.

Behavior Changes

  • When an EtherCAT block is used, an empty callback is always generated; the user fills it in if needed.
  • Fixed a bug in CNC mode where the “get current angle” block generated an extra ;\n.

Project Protection

  • When the project file is read-only, the SAVE, OPEN, and CODEGEN buttons are disabled.

Character Blocks

  • Fixed character blocks being converted to strings after code generation.
  • Character blocks chained together now automatically concatenate into a string.


86Duino Coding 500 – 2024.06.08

Arduino IDE バージョン 1.8.9 から 1.8.19 へのアップデート

  1. Theme Color Optimization: The theme colors have been optimized to use softer colors.
  2. Theme Font Optimization: The theme fonts have been optimized to use more suitable fonts and colors.
  3. Serial Monitor Update: Added a new 3000000 Baudrate option.
  4. Programmer Update: Updated the programmer (v86dude.exe) to support more necessary programming commands and to handle PL2303 pin operations.
  5. 新しいQECシリーズ(Vortex86EX2 CPU搭載)ボードが追加されました:
    • QEC M01
    • QEC M043T
    • QEC M070T
    • QEC M090T
    • QEC M150T
  6. Help and Example Menu Updates: The items displayed in the Help and Example menus will vary depending on the selected board.
  7. New Features for QEC Series Products.

プラグインとツール

  1. 86HMI – ビジュアルヒューマンマシンインターフェース編集ツール(初心者向け)
    • QEC UI インタラクション インターフェースを 1:1 の画面比率で描画します。
    • QEC M043T、M070T、M090T、M150T を完全にサポートします。
    • 必要なパラメータ設定を備えた 33 種類の UI コンポーネント。
    • カスタム画像、サウンド、フォントなどの読み込みを許可します。
    • 2 つのテーマ スタイルが利用可能で、テーマ スタイルはカスタマイズ可能です。
    • 描画コードを記述せずに IDE でコードを自動的に生成します。
  2. 86EVA – ビジュアルEtherCAT設定ツール(初心者向け)
    • Virtual Arduino の概念を使用して、低閾値 EtherCAT 操作を実装します。
    • QEC Subデバイスのオンライン位置スワッピング。削除後に再構成する必要がなく、元のプログラムは引き続き動作します。
    • Arduino スタイルのコードを自動的に生成します。
    • GPT 記述ステートメントを自動的に生成し、ユーザーが ChatGPT の支援を受けて必要なコードを生成できるようにします。(ArduBlock と GPT はどちらか一方しか選択できません)。
  3. ArduBlock – ドラッグアンドドロップブロックプログラミング(初心者向け):
    • 86HMI、EtherCAT機能に対応し、Arduinoの基本機能(digitalWrite、analogWriteなど)を提供します。
    • 86HMI コンポーネント ブロックを完全に提供し、コンポーネントがトリガーされた後のインタラクティブな動作を実装します。
    • QEC EtherCAT 固有のブロックを提供し、86EVA を使用してコードを記述せずに QEC 上で EtherCAT プログラムを完了できるようにします。
    • ワンクリックでプログラムを生成、アップロードします。
  4. Resource File Upload Function: Uploads all files in the resource folder of the 86Duino project.
  5. Resource File Download Function: Downloads all files in the resource folder from the QEC machine (this function can be disabled in the Bootloader, enabled by default).
  6. QEC Reboot Function: Reboots QEC online (software reset), no need to manually toggle QEC power.

ファームウェアパッケージプログラミング

  1. Automatic Multi-Firmware and Tool Programming: Includes EtherCAT, 86EVA firmware tools, Bootloader Menu firmware tools, etc. Future IDE versions can update all firmware and tools on the QEC Master with this button (update time varies by model).
  2. One-Click Program and Resource Package Programming: During the programming process, if 86HMI resource files or 86EVA configuration files are detected, they will be automatically included.

追加機能

  1. Three New Shortcut Buttons: Added to the top right corner, corresponding to 86HMI, 86EVA, ArduBlock, hidden when a non-QEC board is selected.
  2. 新しいライブラリ:
    • EtherCAT – EtherCAT に必要な完全な API を提供する EtherCAT マスター ライブラリ。基本的な開発者に適しています。
    • SCoop – Arduino 環境でマルチタスク プログラムを作成するための協調マルチタスク ライブラリ。
    • FRAM – EEPROM に似た不揮発性データの読み取り/書き込み用の FRAM ライブラリ。
    • MySQL
    • LVGL86 – QEC UI 画面の描画を支援する 86HMI 基盤ライブラリ。

ブートローダーの更新

  1. New Commands: Upload executable files + resource files, upload firmware packages, corresponding to the new programming functions in the IDE.
  2. Load Balance Programming Support: Enhances the number of programming cycles within the limited disk overwrite life.
  3. Automatic Disk Formatting and Recovery: Supports automatic disk formatting and work environment recovery upon disk damage.
  4. QEC M070T、QEC M090T、QEC M150T の内蔵メニュー (画面の左上隅を押して入力します):
    • ブートローダのパスワード、ユーザー アプリのパスワードを設定し、IDE アップロード プログラム機能の有効化/無効化、リソース ダウンロード機能の有効化/無効化を行い、開発者にデータ セキュリティを提供します。
    • リアルタイムのタッチスクリーンキャリブレーション。
    • QECの表示時間を設定します。
    • 内蔵の 86EVA プログラムを起動し、QEC EtherCAT Subデバイスをスキャンし、構成ファイルの変更/設定を完了します。
    • EtherCAT 冗長性、CycleTime を変更/設定します (BIOS メニューに入らずに)。

BIOSアップデート

  1. EtherCAT Redundancy and CycleTime Settings: Support adjustments for these settings.

For the complete technical changelog and downloads, visit 86Duino.com. For technical inquiries, contact info@86duino.com または info@qec.tw.

上部へスクロール