Releases: dalethomas81/ArfBotOS
Release list
v2.2026.37.1 AlarmHistory
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_Errorwith a STRING latch (<LATCH %s>in the Processors text list). Faultclass 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
xActiveAlarmis true. - GLOBAL RESET /
GVL.ResetcallsAcknowledgeAll(). - Several
M_Errorcalls 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.ACQstill parses so old programs run.DUT_Command_VisionType.Acquireis nowCapture. - 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; existingACQprograms 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
- Add alarm history, global nav bar, and vision CAP by @dalethomas81 in #36
v2.2026.37.0 RobotAnimator
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.pyand hard-refresh, or joints stay frozen.
Install the control once: Tools → Visualization Element Repository → HTML5 Controls → Install → Codesys/Html5Controls/RobotAnimator/RobotAnimator.html5control.xml. Overlay of native elements must stay enabled.
Vision
FastTemplateMatching.pyusescv2.TM_CCOEFF_NORMED, refines the top peaks, draws with OpenCV primitives. Typical Test* times dropped from seconds to tens of milliseconds.install-pi.shinstalls aptpython3-opencv/python3-numpyforsudo python(the PLC path). Do notpip 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 ascx/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
PulsesPerRevolutionfor 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
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 | bashfrommain).--plc-onlyskips vision;--vision-onlyis 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
eth0by name, with a per-board MAC fallback. - Demo license remaining-time banner on the HMI.
- Update Device to Raspberry Pi 64 SL (
0000 0012);CmpIecTaskresults passed viaADR().
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-PiInstallerv2.2024.48.0 IoOptions
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
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
v1.2024.22.0
What's Changed
- Dev by @dalethomas81 in #3
- Dev by @dalethomas81 in #4
- add ability to use a remote vision system by @dalethomas81 in #5
- fix vision part count by @dalethomas81 in #6
- add orientation lines to calibration image by @dalethomas81 in #7
- Dev by @dalethomas81 in #8
- Dev by @dalethomas81 in #9
- update template designer by @dalethomas81 in #10
- Update template.html by @dalethomas81 in #11
- Dev by @dalethomas81 in #12
- Dev by @dalethomas81 in #13
Full Changelog: v1.2024.14.2...v1.2024.22.0
Add Jogging and Homing Features
- Major improvements to the Jogging UI.
- Overhauled the jogging function block to use the new
GroupHandlerfunction block. - Plenty of new additions to the README in regards to Tuning, Homing, and Jogging.
Axis Tuning Features and Game Controller Integration
- Added features to facilitate tuning of the axes.
- Added Playstation Dualsense game controller integration so the TCP can be manipulated more easily.
Initial Release
- code copy from private repository