{"id":16238374,"url":"https://github.com/bdring/fluidterm","last_synced_at":"2025-03-19T16:30:44.705Z","repository":{"id":40260069,"uuid":"401459315","full_name":"bdring/fluidterm","owner":"bdring","description":"A Serial Terminal for FluidNC","archived":false,"fork":false,"pushed_at":"2022-05-17T17:12:20.000Z","size":7191,"stargazers_count":21,"open_issues_count":2,"forks_count":2,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-02-28T19:47:28.719Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bdring.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-08-30T19:16:06.000Z","updated_at":"2024-12-22T07:21:18.000Z","dependencies_parsed_at":"2022-07-29T19:19:04.104Z","dependency_job_id":null,"html_url":"https://github.com/bdring/fluidterm","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bdring%2Ffluidterm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bdring%2Ffluidterm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bdring%2Ffluidterm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bdring%2Ffluidterm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bdring","download_url":"https://codeload.github.com/bdring/fluidterm/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244006138,"owners_count":20382436,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-10T13:40:06.531Z","updated_at":"2025-03-19T16:30:43.541Z","avatar_url":"https://github.com/bdring.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# fluidterm a Serial Terminal for FluidNC\n\n### Overview\n\nFluidterm is a \"serial terminal\" program.  Serial terminals let you interact directly with a gadget that is connected to a host computer via a serial line or USB-to-serial adapter.  Fluidter is primarily intended for use with [FluidNC](https://github.com/bdring/FluidNC) - a next generation CNC controller that runs on ESP32 hardware - but is not inherently limited to that use.\n\n### Why Fluidterm\n\nThe normal way to interact with a CNC controller like FluidNC, Grbl or g2core is via a \"GCode sender\" program.  Most GCode senders are graphical UIs with point-and-click features for running CNC jobs. They are great for controlling machines after they are working.  However, when you are trying to setup a machine for the first time or when something is going wrong,  it is helpful to \"cut out the middleman\" (the graphical sender) and \"go direct\".  Most senders have a widget to send commands directly, but it is often surrounded by so many other buttons and displays that people do not know how to use it - and often it hides some of the messages unless you configure it in a special way.\n\nThere are many serial terminal programs, so why did we make another one?  Most of the existing serial terminal programs have grown to include many features that are unnecessary for the task of direct interaction with FluidNC.  That does not prevent them from doing the job, but it does make it difficult to explain how to configure for the specific task - usually involving screenshots of many graphical menus - and the explanation is different for each different program.  Furthermore, most of the existing serial terminals are platform-specific (the best cross-platform one is PuTTY, which has 31 configuration screens each with about a dozen configuration items).\n\nWe made Fluidterm so we can support a single, cross-platform, easy-to-install basic way to interact with FluidNC.  We hope that it will make FluidNC support easier by providing a baseline way to send test commands and receive diagnostic output.\n\n### Fluidterm Ancestry\n\nFluidterm is an extension of a simple Python serial terminal called [miniterm](https://github.com/pyserial/pyserial/blob/master/serial/tools/miniterm.py).  We added the following features to make it more useful with FluidNC:\n\n* Highlighting (colorizing) of FluidNC informational and error messages.\n* Semi-automatic detection of suitable serial ports for FluidNC controllers\n* XMODEM file transfer for uploading FluidNC config files.\n* Automatic triggering of FluidNC's smart line editing feature\n\nFluidterm is included in FluidNC release bundles so you get it\nautomatically when you download a FluidNC release.\n\n### Usage\n\n#### Windows\n\nThe FluidNC release bundle for Windows includes a precompiled executable\n\"fluidterm.exe\" so you do not need to install Python separately.  Just\nrun that executable, either by double-clicking on it or by issuing the\ncommand **fluidterm** in a CMD or PowerShell window in folder that\ncontains fluidterm.exe .  For convenience, you can also invoke it via\nthat \"fluidterm.bat\" batch file in the folder with the FluidNC install\nscripts.\n\n#### Linux and MacOS\n\nOn Linux and MacOS, compiling Python programs to executable files is\ntricky, so on those platforms we provide the Python source code\nfile \"fluidterm.py\", plus a shell script \"fluidterm.sh\" to run it\nafter automatically installing some libraries.\n\nIn many cases, you can simply invoke \"./fluidterm.sh\" in a shell\nwindow (AKA \"Terminal\" window on MacOS).\n\nOn Linux, it is very likely that the system will already have a\nsuitable version of Python 3 installed.  For MacOS, only the most\nrecent versions have Python 3 preinstalled, so you might have to\ninstall that first.  Consult the Web for how to install Python 3\non MacOS (it is pretty easy).\n\n### Command Line Options\n\nIn most cases no parameters need to be supplied, but all miniterm parameters and hotkeys are still supported. \n\nChanges\n\n- The default serial port parameters match FluidNC\n\n  - **Baudrate**: 115200\n  - **EOL**: CRLF\n  - **Echo**: On\n\n- If there is one serial port, it will attempt to use it. If there is more than one, you will be presented a list to choose from.\n\n- There is a new Transformation to colorize FluidNC responses. It uses that by default.\n\n### Installation\n\nIf you don't have Python installed, get the laytest version 3 from [python.org](https://www.python.org/). Use also need to make sure you have all the libraries. use pip install to get them.\n- pip install pyserial\n- pip install xmodem\n\nThe best method to get fluidterm is to use Git to clone the repositiory to your computer. You can also download the code as a zip file and extract to a folder on your computer.\n\n### Usage\n\n- With Python: **python fluidterm.py** from the fluidterm folder.\n\n### Restarting the eSP32\n\nYou can restart the ESP32 to see the boot messages with the FluidNC **$bye** command or you can toggle the DTR function to restart most ESP32 modules by doing Ctrl+T Ctrl+D twice. \n\n\u003cimg src=\"https://github.com/bdring/fluidterm/blob/main/images/screenshot_01.png\" width=\"800\" \u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbdring%2Ffluidterm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbdring%2Ffluidterm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbdring%2Ffluidterm/lists"}