Skip to content

Releases: dalethomas81/ArfBotOS

v2.2026.37.1 AlarmHistory

Choose a tag to compare

@dalethomas81 dalethomas81 released this 12 Sep 23:49
cb5df5e

What's Changed

CODESYS Alarm Management is in the HMI: live faults, archived history, and a nav button that goes red while something is unacked. Also a shared nav frame, vision CAP, and a TCS teach lock.

Alarms

  • Processor faults are raised as Event alarms from FB_Module.M_Error with a STRING latch (<LATCH %s> in the Processors text list).
  • Fault class uses ACK. Alarm Storage is a 1000-record ring buffer on the Pi (PlcLogic/alarms/Application.alarmstorage.sqlite).
  • New Alarms page: live table, History, ack, clear history.
  • ALARMS nav: Accent on that page, Danger while xActiveAlarm is true.
  • GLOBAL RESET / GVL.Reset calls AcknowledgeAll().
  • Several M_Error calls in one scan are concatenated into one Event.
  • Starting a program while disabled, not homed, or with an active alarm reports the reason. R_TRIGs keep the same fault from spamming.

HMI

  • Nav bar is a global frame so button changes stay in sync on every page.

Vision / programs

  • Capture commands write CAP. ACQ still parses so old programs run. DUT_Command_VisionType.Acquire is now Capture.
  • Teach position is blocked in TCS.

How to verify

  • Trip a known processor/vision fault: Main banner still shows the live text; Alarms shows a live row; History keeps it after ack.
  • GLOBAL RESET acks alarms and clears the red nav highlight.
  • Confirm the sqlite file on the Pi after the first archived alarm (reset origin deletes it).
  • Teach while in TCS is rejected.
  • New vision programs persist CAP; existing ACQ programs still parse.

Install on the Pi:

curl -sSL https://raw.githubusercontent.com/dalethomas81/ArfBotOS/main/scripts/install-pi.sh | bash

See the wiki Installation page.

Full Changelog: v2.2026.37.0-RobotAnimator...v2.2026.37.1-AlarmHistory

v2.2026.37.0 RobotAnimator

Choose a tag to compare

@dalethomas81 dalethomas81 released this 08 Sep 04:00
8d83f3a

What's Changed

WebVisu now has a live 6-axis RobotAnimator, locate matching is native OpenCV (tens of milliseconds instead of seconds), and AR4 defaults match Annin 6.1+ microsteps. Verified path: download the application, then hard-refresh the HMI.

RobotAnimator

  • HTML5 control in Process View: joints, gripper, MCS/PC1/PC2/TCP frames, FK TCP HUD, orbit/zoom.
  • DH matches the axis group (MCS Z-up, display Y mirrored so jogging matches the robot).
  • Euler convention follows SoftMotion (OriConvention: ZYZ for robotics, switches for CNC).
  • Also a Flask tab at http://<pi>:5000/animator.
  • Safari: after each application download, run sudo python3 Codesys/Html5Controls/RobotAnimator/patch_webvisu_safari.py and hard-refresh, or joints stay frozen.

Install the control once: Tools → Visualization Element Repository → HTML5 Controls → InstallCodesys/Html5Controls/RobotAnimator/RobotAnimator.html5control.xml. Overlay of native elements must stay enabled.

Vision

  • FastTemplateMatching.py uses cv2.TM_CCOEFF_NORMED, refines the top peaks, draws with OpenCV primitives. Typical Test* times dropped from seconds to tens of milliseconds.
  • install-pi.sh installs apt python3-opencv / python3-numpy for sudo python (the PLC path). Do not pip install opencv-python. Bookworm 4.6 and Trixie 4.10 are supported.
  • LOC a: is -image_angle + rotation_offset, wrapped to ±180°, in the same frame as cx/cy (PCS1 when that frame is taught). Overlay boxes stay in image space.
  • Calibration origin is the first inner checkerboard corner (arrow start), not the printed plate edge. Teach PCS1 there. Red +X, green +Y.

AR4 / motion

  • PulsesPerRevolution for Annin 6.1+ DIP: J1 32000, J2/J3 40000, J4 35840 (800 microsteps), J5 15700, J6 16162.5.
  • If the robot is still on the old half-step DIP settings, either update the DIPs or restore the previous PPR values — otherwise motion will be about 2× too far.

HMI

  • DualSense hint labels when the controller is connected.
  • Programs: Ctrl+C copy, Ctrl+V paste, Ctrl+Del delete the selected command.
  • Every page shows the full nav row; the current page is highlighted.

Other

  • Bambu Studio Robots/AR4/3D Printing/Bambu.3mf (as-built AR4 Mk3 plus ArfBotOS extras).
  • README / HMI / vision screenshots refreshed; locate result image is PNG.

How to verify

  • python OpenCV/FastTemplateMatching/_bench.py (no camera).
  • On the Pi: python -c "import cv2; print(cv2.__version__, cv2.__file__)" should show apt dist-packages, 4.5+.
  • Jog in WebVisu and confirm the animator tracks J1–J6. On Safari, apply the overlay patch after download.
  • Teach PCS1 on the calibration arrows; a locate a: should match that yaw.

Install on the Pi:

curl -sSL https://raw.githubusercontent.com/dalethomas81/ArfBotOS/main/scripts/install-pi.sh | bash

See the wiki Installation page.

Full Changelog: v2.2026.35.0-PiInstaller...v2.2026.37.0-RobotAnimator

  • Speed up FastTemplateMatching and ship RobotAnimator, AR4 6.1 steps, and Pi OpenCV install by @dalethomas81 in #32
  • Update readme images by @dalethomas81 in #33
  • Add program keyboard shortcuts, report vision yaw in PCS, and update calibration docs by @dalethomas81 in #34
  • Show all navigation buttons on every HMI page and highlight the active one by @dalethomas81 in #35

v2.2026.35.0 PiInstaller

Choose a tag to compare

@dalethomas81 dalethomas81 released this 31 Aug 00:28
ed4bc04

What's Changed

Raspberry Pi OS Lite 64-bit is now the default, with CODESYS Control Raspberry Pi 64 SL. Install on a Pi 4 or Pi 5 is four steps: image the Pi, install the runtime, download the application, run the install script. Verified on Pi 4 and Pi 5 (home, vision, DualSense Bluetooth, EtherCAT).

  • Add a Linux installer for the Raspberry Pi (curl | bash from main). --plc-only skips vision; --vision-only is for a dedicated vision Pi.
  • Combined web app on port 5000: vision templates at /vision, saved templates at /vision/files, DualSense pairing at /bluetooth, HMI image at /vision/output_sized.
  • DualSense Bluetooth pairing is the web page (Create + PS, then Scan / Pair device). USB still works without pairing.
  • EtherCAT NIC defaults to eth0 by name, with a per-board MAC fallback.
  • Demo license remaining-time banner on the HMI.
  • Update Device to Raspberry Pi 64 SL (0000 0012); CmpIecTask results passed via ADR().

Also since the last release:

  • CNC / Fusion 360 Hello World, M-codes, and simulation.
  • Euler-angle end effector, vision calibration/template matching, and drive-tuning HMI.
  • Fix low-speed joint jitter (SoftMotion velocity scale + Teensy PTO).
  • Fix WebVisu lag by reducing the 3D path point buffer.
  • ArfBot Night visualization style, IEC FB_ / F_ object prefixes, and factory programs seeded from retain.

Install on the Pi:

curl -sSL https://raw.githubusercontent.com/dalethomas81/ArfBotOS/main/scripts/install-pi.sh | bash

See the wiki Installation (https://github.com/dalethomas81/ArfBotOS/wiki/Installation) page.

Full Changelog: https://github.com/dalethomas81/ArfBotOS/compare/v2.2024.48.0-IoOptions...v2.2026.35.0-PiInstaller

v2.2024.48.0 IoOptions

Choose a tag to compare

@dalethomas81 dalethomas81 released this 27 Nov 02:19
db0b9db

What's Changed

  • Added the ability to select between one of two IO options.

  • The PLC program will automatically map the appropriate device IO based on which one is enabled in the Device tree.

  • Added an EtherCAT remote IO option using the Teensy controller and a EtherCAT slave.

  • Added logic for the PLC and the IO slaves to discriminate based on expected device type to prevent slaves with the same description file from processing the wrong information.

  • Updated documentation to add additional information about IO mapping and how to enable or disable IO.

  • General documentation updates.

  • Create MyRobot.png by @dalethomas81 in #17

  • Added IO Options 1 and 2 by @dalethomas81 in #19

Full Changelog: v2.2024.47.0-EtherCAT...v2.2024.48.0-IoOptions

v2.2024.47.0-EtherCAT

Choose a tag to compare

@dalethomas81 dalethomas81 released this 23 Nov 06:42
86b6f1c

What's Changed

  • Converted communication protocol to EtherCAT.

  • Added electrical documentation for AR4 robot.

  • Tons of quality-of-life improvements, bug fixes, and features including:

    • manual triggering of saving persistent data.
    • auto-increment jump commands when adding or removing commands in a program.
    • improved management of robot status when connections fail.
    • remove hard-coded "magic numbers" from AR4 controller code to make configuration for other robots possible.
    • EtherCAT status added to home screen.
    • Homing sequence groups are now configurable. (As of now, this needs to be done online with PLC. UI coming.)
    • Home button now has a confirmation step to mitigate accidental zeroing of robot.
    • CODESYS version bumps across the board to latest revisions. (runtime, softmotion, visu, and IDE)
    • Added CODESYS configuration file to be used by CODESYS Installer to make installation easier to manage versions needed for ArfBotOS.
    • Tons of documentation including tutorials, electrical schematics, and images.
  • Dev by @dalethomas81 in #15

  • update documentation by @dalethomas81 in #16

Full Changelog: v1.2024.52.0...v2.2024.47.0-EtherCAT

v1.2024.52.0 - Codesys

Choose a tag to compare

@dalethomas81 dalethomas81 released this 29 Jun 07:13
ad47302

What's Changed

Full Changelog: v1.2024.22.0...v1.2024.52.0

v1.2024.22.0

Choose a tag to compare

@dalethomas81 dalethomas81 released this 27 May 19:35
402e70d

What's Changed

Full Changelog: v1.2024.14.2...v1.2024.22.0

Add Jogging and Homing Features

Choose a tag to compare

@dalethomas81 dalethomas81 released this 08 Apr 03:12
1769c98
  • Major improvements to the Jogging UI.
  • Overhauled the jogging function block to use the new GroupHandler function block.
  • Plenty of new additions to the README in regards to Tuning, Homing, and Jogging.

Axis Tuning Features and Game Controller Integration

Choose a tag to compare

@dalethomas81 dalethomas81 released this 06 Apr 09:16
a1ca1bf
  • Added features to facilitate tuning of the axes.
  • Added Playstation Dualsense game controller integration so the TCP can be manipulated more easily.

Initial Release

Initial Release Pre-release
Pre-release

Choose a tag to compare

@dalethomas81 dalethomas81 released this 03 Apr 04:23
  • code copy from private repository