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
X00–X37(inputs) andY00–Y37(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
- 追加した
GP26pin control for LCD backlight (Japanese customer requirement). - Corrected GPIO pin mapping:
GP70–GP77now correctly map to digital pins 1–7. - Added support for
Serial5,Serial6, and the Ethernet library.
Build System & Compilation
- Rebuilt
arduino-builderto fix a link-stage error when the command-line string exceeds 30,000 characters. platform.txtnow adds-I{build.path}/sketchso libraries located inside the sketch folder are searched during compilation.- Reordered the IDE compile/link sequence to prevent link errors.
- 追加した
__FlashStringHelperback toWString.hto support the MFRC522 library. USBAPI.hとHardwareSerial.hnow includeusing Stream::setTimeout.CDC.cpp: removed thecom_GetDTR()check.MCM.cpp: added EX3 CPU support; when MCM initialization fails,GetMCIRQ()returns0xffand skips configuration.- When the
resourcefolder 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()insidesetup()now automatically yields tohelperYield(). - Fixed touch-screen coordinate jitter when a USB keyboard is rapidly typed at the same time.
86Duino IDE — Libraries
SD Library
- Expanded
_nameinternal buffer from 12 to 256 bytes;SD.remove()とSD.open()now work correctly with long file paths. - 追加した
FILE_WRITE_TRUNCmode — usefwrite(filename, "w")to create an empty file. - Fixed
SD.open("/")not honoringsetBank()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 ofSD.open(). setBank()now also checks whether theSDfolder exists on eMMC and creates it automatically if missing.- The SD library now reads
_brdn.v86to 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
DISABLEstate so disabled components are visually distinct in color and text. - Extended the FileBrowser plugin:
_focusmethod, 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: newgcode(const String &s)overload that accepts aStringargument.VirtualServo: new APIs for reading T600 voltage, current, and temperature.
EtherCAT
- Updated to the 2025-11-18 release.
Ethernet
- 追加した
IPAddress.cpp/IPAddress.hAPIs 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
IoHelpermethods andconfig_Controller_Callbackhooks. - 追加した
Motion86_Ethercat, providing anEcatMachineplugin class bound to 86EVA, with anattachmethod that automatically invokes the EtherCAT version ofIoHelper. - 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
.aarchive. - Eigen: added to the DJGPP toolchain; resolved Arduino
min/maxmacro conflicts viaNOMINMAX;WString.h‘sF()macro no longer conflicts with Eigen;Macros.hとMathFunctions.hmodified 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.exeships 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_SLOTcommand, which automatically creates slot folders and corrects theUIRPATH. - Updated
deltreeparameters 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 NPM と Ezi.
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**.jsfiles are deleted before new generation to avoid stale residue. - Scanned object-pointer arrays moved from local to global scope.
setIntegerDataPinnow handles the CIQ type.myeva.cppnow 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
-1when scanning extremely largedoublevalues; axis names changed fromUVWtoABC.
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
- 追加した
getButtonStateとgetImageButtonState. - Added a
consolecomponent. - 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
Ctrlnow 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 へのアップデート
- Theme Color Optimization: The theme colors have been optimized to use softer colors.
- Theme Font Optimization: The theme fonts have been optimized to use more suitable fonts and colors.
- Serial Monitor Update: Added a new 3000000 Baudrate option.
- Programmer Update: Updated the programmer (
v86dude.exe) to support more necessary programming commands and to handle PL2303 pin operations. - 新しいQECシリーズ(Vortex86EX2 CPU搭載)ボードが追加されました:
- QEC M01
- QEC M043T
- QEC M070T
- QEC M090T
- QEC M150T
- Help and Example Menu Updates: The items displayed in the Help and Example menus will vary depending on the selected board.
- New Features for QEC Series Products.
プラグインとツール
- 86HMI – ビジュアルヒューマンマシンインターフェース編集ツール(初心者向け)
- QEC UI インタラクション インターフェースを 1:1 の画面比率で描画します。
- QEC M043T、M070T、M090T、M150T を完全にサポートします。
- 必要なパラメータ設定を備えた 33 種類の UI コンポーネント。
- カスタム画像、サウンド、フォントなどの読み込みを許可します。
- 2 つのテーマ スタイルが利用可能で、テーマ スタイルはカスタマイズ可能です。
- 描画コードを記述せずに IDE でコードを自動的に生成します。
- 86EVA – ビジュアルEtherCAT設定ツール(初心者向け)
- Virtual Arduino の概念を使用して、低閾値 EtherCAT 操作を実装します。
- QEC Subデバイスのオンライン位置スワッピング。削除後に再構成する必要がなく、元のプログラムは引き続き動作します。
- Arduino スタイルのコードを自動的に生成します。
- GPT 記述ステートメントを自動的に生成し、ユーザーが ChatGPT の支援を受けて必要なコードを生成できるようにします。(ArduBlock と GPT はどちらか一方しか選択できません)。
- ArduBlock – ドラッグアンドドロップブロックプログラミング(初心者向け):
- 86HMI、EtherCAT機能に対応し、Arduinoの基本機能(digitalWrite、analogWriteなど)を提供します。
- 86HMI コンポーネント ブロックを完全に提供し、コンポーネントがトリガーされた後のインタラクティブな動作を実装します。
- QEC EtherCAT 固有のブロックを提供し、86EVA を使用してコードを記述せずに QEC 上で EtherCAT プログラムを完了できるようにします。
- ワンクリックでプログラムを生成、アップロードします。
- Resource File Upload Function: Uploads all files in the resource folder of the 86Duino project.
- 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).
- QEC Reboot Function: Reboots QEC online (software reset), no need to manually toggle QEC power.
ファームウェアパッケージプログラミング
- 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).
- 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.
追加機能
- Three New Shortcut Buttons: Added to the top right corner, corresponding to 86HMI, 86EVA, ArduBlock, hidden when a non-QEC board is selected.
- 新しいライブラリ:
- EtherCAT – EtherCAT に必要な完全な API を提供する EtherCAT マスター ライブラリ。基本的な開発者に適しています。
- SCoop – Arduino 環境でマルチタスク プログラムを作成するための協調マルチタスク ライブラリ。
- FRAM – EEPROM に似た不揮発性データの読み取り/書き込み用の FRAM ライブラリ。
- MySQL
- LVGL86 – QEC UI 画面の描画を支援する 86HMI 基盤ライブラリ。
ブートローダーの更新
- New Commands: Upload executable files + resource files, upload firmware packages, corresponding to the new programming functions in the IDE.
- Load Balance Programming Support: Enhances the number of programming cycles within the limited disk overwrite life.
- Automatic Disk Formatting and Recovery: Supports automatic disk formatting and work environment recovery upon disk damage.
- QEC M070T、QEC M090T、QEC M150T の内蔵メニュー (画面の左上隅を押して入力します):
- ブートローダのパスワード、ユーザー アプリのパスワードを設定し、IDE アップロード プログラム機能の有効化/無効化、リソース ダウンロード機能の有効化/無効化を行い、開発者にデータ セキュリティを提供します。
- リアルタイムのタッチスクリーンキャリブレーション。
- QECの表示時間を設定します。
- 内蔵の 86EVA プログラムを起動し、QEC EtherCAT Subデバイスをスキャンし、構成ファイルの変更/設定を完了します。
- EtherCAT 冗長性、CycleTime を変更/設定します (BIOS メニューに入らずに)。
BIOSアップデート
- 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.