flexibot - latest @francesco branch

This commit is contained in:
lovebird 2026-03-11 16:53:23 +01:00
parent d3b9afaa43
commit 8273756ae8
3180 changed files with 173515 additions and 754063 deletions

135
3dtest/README.md Normal file
View File

@ -0,0 +1,135 @@
# Polymech Machine Library
## Todos - Q4 - 2021/Q1
### General
- [x] refactor to pm-cad latest
- [ ] migrate osr-firmware, per machine
- [-] Discourse templates / defaults
## Machines
## Sheetpress
- [x] backport latest sheetpress cell design to cassandra light
- [-] backport latest sheetpress cell design to cassandra mini
- [-] Cassandra Mini - Light : water cooling
- [x] Cassandra - EDC - 650
- [x] Lydia - v3.8 connector
- [x] Cassandra - EDC - 450 - Lab
- [-] Cassandra - EDC - 850
- [x] Cassandra - EDC - 1100
- [x] Moulds
- [x] slides
- [ ] dies
- [x] tests
- [x] PID
- [x] profiles (ramping)
- [ ] active cooling
- [x] Load cell
- [x] Firmware
## Shredder
- [x] Obelix - SM300
- [ ] Asterix SM/PP/XL/Morren - cleanup
- [ ] RVM Option - PP - XL - 3kw
- [ ] Auto-Plunger cleanup (2024/Q1)
- [ ] v3.2 light cleanup / flywheel / pulley
## Extrusion
- [x] Lydia 3.5 cleanup
- [ ] Lydia 3.6 (edu kit)
- [x] OSR-300-40-30-25-80 clamping module
- [-] katbot connector
- [ ] Lydia 3.8 - Lab version (modular barrel / screw)
- [ ] 2.2kw
- [-] Lydia - v4.7
- [x] Lydia - v4.8
- [-] brick mould
- [-] block mould
### Print
- [ ] Flexi-Bot - Mounts (v3-4x) | Modbus Bridge
- [x] OSR Firmware: VFD & Cycle Control
- [x] Test Templates (->pm-cad->printr)
### Components
- [x] Hopper modular
- [x] mount, backports, quick-release
- [x] rotary / turret
- [x] adapter / flange fuckery
- [x] firmware consolidation
- [ ] Nozzle - Rotary
- [ ] Inserts
- [x] SJ25/30/35 extensions (mixer, ...)
- [ ] Hopper
- [x] Dual Feed - Screws (nema23)
- [ ] Dual Feed - Fluid (valves)
- [x] Quick release
- [ ] Meltpump
- [-] Motor cooling / sensors
- [x] Shutoff valve, backports
- [-] Universal housing, backports
- [-] Universal flange, v5x, backports
## Injection
- [x] Myriad - Pro (2024/Q1)
- [x] Elena - Standard - Cleanup
- [x] Elena - XMAX - Cleanup
- [x] Elena - ZMAX - Motor - Rev 2 (2024/Q1)
- [ ] Elena - ZMAX - Motor - Rev 3 (2024/Q2)
- [x] Katbot Pro - 100G / 40 - mini valve :)
- [-] Katbot - Slim
- [ ] 20mm / stainless, modular
- [ ] e-drive
- [ ] horizontal :)
- [ ] Pulley
### Components
- [x] Quick clamps, S/M/XL | backports | extruder mould clamping
## Electrics
- [ ] Merge osr-electrics (templates & symbols)
- [ ] extend osr-templates
- [ ] BOM to order
- [ ] variants
- [-] pipe/routing custom library (API?)
- [ ] cabinets
- [ ] poloy mech mounts
## Products
- [x] Templates
- [ ] Configurator
- [x] Infrastructure
- [x] Docs
-[ ] Schematics
-[ ] Materials
-[ ] Settings
-[ ] Assembly Instructions
- [ ] Tests
### Candidates
- [-] 3D Printer
- [x] Mechanical
- [x] Clamps
- [-] Speaker
### References
- [Mini Sheetpress](https://www.robotdigg.com/product/2099/Desktop-flat-plate-Vulcanizing-Machine-for-PVC,-Plastic,-Rubber,-and-Silicone-Products)
## Todos - 2026 - Q1 - Q2

View File

@ -1,6 +1,13 @@
# Polymech Machine Library
# Polymech Library
## Todos - Q4 - 2021/Q1
## Quick Jumps
- [Extruders](./extrusion/)
- [Extruders](./extrusion/defaults.json)
- ![](./library.png)
## Todos - Q4 - 2021
### General

114
firmware/README.md Normal file
View File

@ -0,0 +1,114 @@
# Polymech Cassandra Firmware
This repository contains the firmware for the Polymech Cassandra project, running on an ESP32-S3.
## Overview
The firmware manages various hardware components and provides multiple interfaces for control and monitoring:
* **Serial Interface:** For debugging, testing, and direct command execution.
* **Modbus TCP Server:** Allows interaction with components using the Modbus protocol over WiFi.
* **REST API & Web UI:** Provides a web-based interface (status page, API documentation) and a RESTful API for interacting with the system over WiFi.
## Architecture
The firmware is built upon a component-based architecture:
* **`App` / `PHApp`:** The main application class (`src/PHApp.h`).
* **`Component`:** Base class (`src/Component.h`) for all functional units.
* **`Bridge`:** (`src/Bridge.h`) Facilitates serial command dispatch.
* **`SerialMessage`:** (`src/SerialMessage.h`) Handles serial communication.
* **`ModbusManager`:** (`src/ModbusManager.h`) Manages the Modbus TCP server.
* **`RESTServer`:** (`src/RestServer.h`) Implements the web server and REST API.
* **Details:** See [docs/components.md](./docs/components.md) for how components are structured, configured, and added.
## Interfaces
### 1. Serial Communication
A command-line interface is available over the USB serial port used for programming and monitoring.
* **Purpose:** Debugging, direct method calls on components.
* **Command Format:** `<<component_id;call_type;flags;payload:arg1:arg2...>>`
* **Examples & Details:** See [docs/serial.md](./docs/serial.md)
* **Sending Commands:** Use `npm run send -- "<command_string>"` or a standard serial terminal.
### 2. Modbus TCP
The device runs a Modbus TCP server (slave/responder) on port 502.
* **Implementation:** Managed by `ModbusManager` using the `eModbus` library.
* **Component Interaction:** Components supporting Modbus (like `Relay` or `PHApp` itself) implement `readNetworkValue` and `writeNetworkValue` methods. They are registered with the `ModbusManager` along with their corresponding Modbus addresses.
* **Configuration:** Modbus addresses are defined in `src/config-modbus.h`.
* **Design Details:** See [docs/design-network.md](./docs/design-network.md)
* **Testing:** Use the `python scripts/modbus_*.py` scripts directly (npm script argument passing has issues):
```bash
# Read Coil 51
python scripts/modbus_read_coils.py --address 51 --ip-address <DEVICE_IP>
# Write Coil 51 ON
python scripts/modbus_write_coil.py --address 51 --value 1 --ip-address <DEVICE_IP>
# Read Register 20
python scripts/modbus_read_registers.py --address 20 --ip-address <DEVICE_IP>
# Write Register 20
python scripts/modbus_write_register.py --address 20 --value 123 --ip-address <DEVICE_IP>
```
### 3. Web Interface & REST API
A web server runs on port 80, providing:
* **Status Page:** `http://<DEVICE_IP>/`
* **Swagger UI:** `http://<DEVICE_IP>/api-docs` (Interactive API documentation)
* **REST API:** `http://<DEVICE_IP>/api/v1/...`
* **Working Endpoints:**
* `GET /api/v1/system/info`: Device status.
* `GET /api/v1/coils`: List of registered coils.
* `GET /api/v1/registers`: List of registered registers.
* `GET /api/v1/coils?address=<addr>`: Read a specific registered coil.
* `GET /api/v1/registers?address=<addr>`: Read a specific registered register.
* `POST /api/v1/relay/test`: Trigger internal relay test.
* **Non-Functional Endpoints (Known Issue):**
* `POST /coils/{address}`: Returns 404.
* `POST /registers/{address}`: Returns 404.
* **Details & Examples:** See [docs/web.md](./docs/web.md)
* **Testing:** Use `npm run test-api-ip` (note that some tests related to POST endpoints will fail).
## Building and Development
See [firmware/.cursor/rules](./.cursor/rules) for a summary of common workflow commands.
**Key `npm` Scripts:**
* `npm run build`: Compile the firmware.
* `npm run upload`: Upload the firmware to the device.
* `npm run clean`: Clean build artifacts.
* `npm run monitor`: Open the serial monitor.
* `npm run build-web`: Generate web assets (from `swagger.yaml`, `front/`) and build firmware.
* `npm run send -- "<command>"`: Send a serial command.
* `npm run test-api-ip`: Run the REST API test script against the device IP.
* *(Modbus tests need direct python execution, see Modbus section above)*
## Configuration
* **Hardware Pins, Features:** `src/config.h`, `src/config_adv.h`
* **WiFi Credentials:** `src/config_secrets.h` (ensure this file exists and is populated)
* **Modbus Addresses:** `src/config-modbus.h`
* **Component IDs:** `src/enums.h` (enum `COMPONENT_KEY`)
## Todos
### Web
* [x] pid stats
* [ ] prof enabled
* [ ] warmup toggle
* [-] press prof - remaining ( parent )
* [ ] auto - interlock ( rs 485 connect ) => modes
* [ ] press : sp ( ui - mobile)
* [ ] partitions : settings not applied
### FW
* [x] press - profile ( check abort => vis error )
* [x] sp drag / lag

BIN
library.png (Stored with Git LFS) Normal file

Binary file not shown.

3
systems/flexi-bot/.gitattributes vendored Normal file
View File

@ -0,0 +1,3 @@
*.exe filter=lfs diff=lfs merge=lfs -text
*.mp4 filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text

3
systems/flexi-bot/.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "software/Print3r"]
path = software/Print3r
url = https://github.com/Spiritdude/Print3r.git

View File

@ -0,0 +1,68 @@
# Flexi Print
- [Forum Tracker](https://forum.osr-plastic.org/t/flexi-print/)
## References
- [https://www.dls-schmiersysteme.de/FlexxPump-400-DLS/235-411-210 - HWIN](https://www.dls-schmiersysteme.de/FlexxPump-400-DLS/235-411-210)
- [https://www.fruugo.es/one-set-lubricating-oil-pump-hand-actuated-cnc-router-electromagnetic-lubrication-pump-lubricator-s/E](https://www.fruugo.es/one-set-lubricating-oil-pump-hand-actuated-cnc-router-electromagnetic-lubrication-pump-lubricator-s/E)
-[https://www.central-lubrication.com/Lubrication-systems_1](https://www.central-lubrication.com/Lubrication-systems_1)
- [https://cncbote.de/en/product/yeong-dien-mfe-302fw-t4p-central-lubrication/ - TM-302-FW](https://cncbote.de/en/product/yeong-dien-mfe-302fw-t4p-central-lubrication/)
### 4th Axis - Print (Low End / Opensource)
- https://all3dp.com/4/prusa-4-axis-3d-printing/
- https://reprap.org/forum/read.php?180,530001
- https://hackaday.com/2022/03/13/5-axis-3d-printing-for-the-rest-of-us/
- https://www.diabasemachines.com/post/top-5-benefits-of-rotary-3d-printing-or-4-axis-3d-printing
- https://reprap.org/forum/read.php?1,824119,824341
- https://lauras3dprintingprojects.wordpress.com/rotary-3d-printer/
- R360 - https://github.com/kory75/Marlin_360
- https://forum.linuxcnc.org/additive-manufacturing
- [Marlin 5axis](https://github.com/DerAndere1/Marlin)
- [Marlin Fusion - 360 Post](https://github.com/flyfisher604/mpcnc_post_processor/blob/master/MPCNC.cps)
- [Slicers, tools, ...](https://xyzdims.com/)
- [3D Printing: Penta Axis (PAX) / 5 Axis Printing Option Draft](https://xyzdims.com/2021/02/08/3d-printing-penta-axis-pax-5-axis-printing-option/)
- [Universal slicing](https://xyzdims.com/3d-printing/universalslicing/)
### Misc - Software & Libraries
- [OpenSCAD - JS](https://github.com/Spiritdude/OpenSCAD.jscad)
- [Fusion 360 - Sample Mill Turning](https://a360.co/3qdRdAo)
- [AI toolpaths for robots](https://ai-build.com/)
### STM - 446ZE
- [buildroot\share\PlatformIO\variants\MARLIN_F446ZE\variant.h](buildroot\share\PlatformIO\variants\MARLIN_F446ZE\variant.h)
### Tests & Setup
## References - Suppliers (industrial)
- [Fusion 360 - Sample Mill Turning](https://a360.co/3qdRdAo)
## Parts
- [SFU2005 - 1500mm - EBay](https://www.ebay.es/itm/313477317601?var=612322375062)
- [HGH20-1500 mm - EBay](https://www.ebay.es/itm/274741722317)
- [CEAD - Extrusion Heads](https://ceadgroup.com/)
- [Weber - Twin Extruders](https://www.hansweber.de/produkte-services/extrusion/baureihen/weber-konische-doppelschnecken)
- [MD - MDPH2 - Pellet Head Extruder](https://massivedimension.com/products/mdphe-v1-pellet-head-extruder-system)
- [dyzedesign Hotends & parts](https://dyzedesign.com/)
- [Wire-Laser Metal 3D Printing](https://meltio3d.com/)
- [Q5D - Manufacturing Cell](https://q5d.com/haas/technical-details/)
- [Pellet Extruder](https://extrudinaire.com/extrudinaire-pellet-extruder/)
## HMI - TFT / OLED
- [4D](https://4dsystems.com.au/products/4d-clearcore-adaptor/)
## Servos & Controllers
- [ClearPath - Nema23](https://teknic.com/model-info/CPM-SDSK-2321S-RLN/?model_voltage=75VDC)
- [ClearPath - Encoder Feedback - FPGA](https://www.cnczone.com/forums/servo-motors-drives/337240-possible-clearpath-servos-provide-encoder-feedback.html)
- [ClearPath - Nema34](https://teknic.com/model-info/CPM-SDHP-3446P-ELN/?model_voltage=75VDC)
- [ClearPath Cables](https://teknic.com/clearpath-accessories-guide/accessories-guide-sd-dc/#power-supplies)
- [Clear - Core - Motion Controller](https://teknic.com/products/io-motion-controller/)
- [DynaMotion - Windows Only - Shitty DotNet SDK](https://www.dynomotion.com/)

BIN
systems/flexi-bot/cad-cabinet/1300_ECabinet.SLDASM (Stored with Git LFS) Normal file

Binary file not shown.

BIN
systems/flexi-bot/cad-cabinet/1301_Enclosure.SLDPRT (Stored with Git LFS) Normal file

Binary file not shown.

BIN
systems/flexi-bot/cad-cabinet/1302_Door.SLDPRT (Stored with Git LFS) Normal file

Binary file not shown.

BIN
systems/flexi-bot/cad-cabinet/1305_MountPlate.SLDPRT (Stored with Git LFS) Normal file

Binary file not shown.

BIN
systems/flexi-bot/cad-cabinet/bolt.SLDPRT (Stored with Git LFS) Normal file

Binary file not shown.

BIN
systems/flexi-bot/cad-cabinet/flinge 2.SLDPRT (Stored with Git LFS) Normal file

Binary file not shown.

BIN
systems/flexi-bot/cad-cabinet/flinge.SLDPRT (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,30 @@
{
"slug": "sprcb650",
"name": "Sheetpress cell module - 650",
"category": "sheetpress",
"code": "SPRCB650",
"parts": "parts.csv",
"opensource": true,
"bestseller": false,
"Preview3d": true,
"version": "1.0",
"status": "mature",
"cscartId": 75,
"shipping_eu": "100 Euro",
"shipping_oversea": "300 Euro",
"price": 4800,
"showParts": false,
"showDimensions": false,
"hasSpec": false,
"forumCategory": 50,
"osr": {
"version": "0.3"
},
"production": {},
"authors": [
{
"name": "PlasticHub S.L.",
"url": "${author_link}"
}
]
}

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More