{"id":13802688,"url":"https://github.com/joewez/PyboardFileManager","last_synced_at":"2025-05-13T13:32:44.744Z","repository":{"id":81910677,"uuid":"365649103","full_name":"joewez/PyboardFileManager","owner":"joewez","description":"Windows GUI for managing the files on a MicroPython device","archived":false,"fork":false,"pushed_at":"2022-02-06T05:29:54.000Z","size":13055,"stargazers_count":4,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-04-22T13:31:35.130Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joewez.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2021-05-09T02:12:33.000Z","updated_at":"2023-10-13T20:53:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"57b1048d-db2f-4654-81f0-71ce61e74bee","html_url":"https://github.com/joewez/PyboardFileManager","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joewez%2FPyboardFileManager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joewez%2FPyboardFileManager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joewez%2FPyboardFileManager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joewez%2FPyboardFileManager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joewez","download_url":"https://codeload.github.com/joewez/PyboardFileManager/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253950308,"owners_count":21989337,"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-08-04T00:01:50.306Z","updated_at":"2025-05-13T13:32:42.953Z","avatar_url":"https://github.com/joewez.png","language":"C#","readme":"# Pyboard File Manager\nWindows GUI for Pyboard.py Compatible Devices\n\n\u003cp align=\"center\"\u003e\n  \u003ci\u003eNote: This project is not associated in any way with the Pyboard hardware project or the MicroPython organization.\u003c/i\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ci\u003eBTW: Thanks Damien!\u003c/i\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/joewez/PyboardFileManager/blob/main/pybfm.jpg\" alt=\"Screenshot\"/\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/joewez/PyboardFileManager/blob/main/pybfm-repl.jpg\" alt=\"REPL Screenshot\"/\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/joewez/PyboardFileManager/blob/main/rp2-repl.jpg\" alt=\"RP2 REPL Screenshot\"/\u003e\n\u003c/p\u003e\n\nA simple GUI wrapper that executes the \u003cb\u003epyboard.py\u003c/b\u003e script (https://github.com/micropython/micropython/blob/master/tools/pyboard.py) command to manipulate the files on an device running MicroPython.  The device must support raw REPL over the serial port in order for this application to function properly.\n\nIt was written in C# in Visual Studio 2019, so you will need VS Express or better to compile it.  It uses the Scintilla editor control (https://github.com/jacobslusser/ScintillaNET) which allows for MicroPython syntax highlighting.\n\nAs a development tool, I wrote the utility to mainly just edit the files directly off of the device.  I have also embedded a simple terminal emulator to send commands to the serial REPL.  The program works better though when paired with an external terminal such as puTTY or TeraTerm.  See the configuration notes below on how to set this up.\n\nA precompiled binary is available for download here:\n\n  https://wezensky.no-ip.org/shared/pybfm.zip\n  \nJust unzip to a convenient location and run the PyboardFileManager.exe. \n\n\u003cb\u003eDEPENDENCIES:\u003c/b\u003e \n\n- Python 3.X\n- Pyboard.py  (pip3 install pyboard)\n- .Net Framework (maybe)\n\n\u003cb\u003eHOW TO START:\u003c/b\u003e\n\n- Plug your MicroPython device into your computer and determine what com port it was assigned to\n- Start the application.\n- Select the com port for your device (if there is more than one)\n- The main window should appear with the files on the root of the device listed\n- If there was a problem and the files were not listed, click on the Refresh button\n  \n\u003cb\u003eHOW TO USE:\u003c/b\u003e\n\nAll the features are pretty self-explanatory, but here is just a short description of it's general use.\n\n- Navigation\n  - To open a file for viewing or editing, select the file and click \"Open\" (or just double-click the filename)\n  - To go into a sub-folder select the folder and click \"Open\" (or just double-click the folder name)\n  - To go back one directory click on the [..] entry at the top of the file list\n    \n- Main Commands\n  - \u003cb\u003eRefresh\u003c/b\u003e will re-read the file list of the current directory\n  - \u003cb\u003eNew\u003c/b\u003e will prepare a new file for editing\n  - \u003cb\u003eOpen\u003c/b\u003e will open a file for editing or change the directory\n  - \u003cb\u003eLoad\u003c/b\u003e will allow you to import a file from your computer\n  - \u003cb\u003eExport\u003c/b\u003e will save the selected file to your computer\n  - \u003cb\u003eDelete\u003c/b\u003e will delete the file or directory from the device\n  - \u003cb\u003eMove\u003c/b\u003e will move (rename) the selected file\n  - \u003cb\u003eMKDIR\u003c/b\u003e will allow you to create a sub-folder\n  - \u003cb\u003eRun\u003c/b\u003e will attempt to import/run the selected file\n  - \u003cb\u003eView\u003c/b\u003e will open the selected file for viewing\n  - \u003cb\u003eREPL\u003c/b\u003e will open a MicroPython REPL window\n  \n- Editing Commands\n  - \u003cb\u003eUndo/Redo/Cut/Copy/Paste/Delete\u003c/b\u003e standard editing commands\n  - \u003cb\u003eFind\u003c/b\u003e will do a search on the current file being edited\n  - \u003cb\u003eReplace\u003c/b\u003e will do a search and replace on the current file being edited\n  - \u003cb\u003eSave As\u003c/b\u003e will save the current file to the device using the name you give it in the \u003ci\u003ecurrent\u003c/i\u003e directory\n  - \u003cb\u003eSave\u003c/b\u003e will save the current file to the device\n\n\u003cb\u003eADDITIONAL INFO:\u003c/b\u003e\n\n- Configuration setting are located in the PyboardFilemanager.exe.config file\n  - \u003cb\u003e\u003ci\u003eCommPort\u003c/i\u003e\u003c/b\u003e designation can be a name like COM3 (no colon) or just a number\n  - The application defaults to 115200 baud for serial communications\n  - If \u003cb\u003e\u003ci\u003eExternalTerminal\u003c/i\u003e\u003c/b\u003e is set to \"Y\" the \u003cb\u003e\u003ci\u003eTerminalApp\u003c/i\u003e\u003c/b\u003e, \u003cb\u003e\u003ci\u003eTerminalAppArgs\u003c/i\u003e\u003c/b\u003e and \n    \u003cb\u003e\u003ci\u003eTerminalAppTitle\u003c/i\u003e\u003c/b\u003e settings are used\n    - \u003cb\u003e\u003ci\u003eTerminalApp\u003c/i\u003e\u003c/b\u003e is the EXE to run\n    - \u003cb\u003e\u003ci\u003eTerminalAppArgs\u003c/i\u003e\u003c/b\u003e are the arguments to run the terminal app with\n      - The term \u003ci\u003e{PORT}\u003c/i\u003e in this setting will be replaced at runtime with the current port\n      - The term \u003ci\u003e{PORTNUM}\u003c/i\u003e in this setting will be replaced at runtime with the current port number\n    - \u003cb\u003e\u003ci\u003eTerminalAppTitle\u003c/i\u003e\u003c/b\u003e is the title of the external window\n    - Example:\n\n        \u003cp\u003e\t\n        \u0026lt;add key=\"ExternalTerminal\" value=\"Y\" /\u0026gt;\u003cbr /\u003e\n        \u0026lt;add key=\"TerminalApp\" value=\"putty\" /\u0026gt;\u003cbr /\u003e\n        \u0026lt;add key=\"TerminalAppArgs\" value=\"-load \u0026quot;repl\u0026quot; -serial {PORT}\" /\u0026gt;\u003cbr /\u003e\n        \u0026lt;add key=\"TerminalAppTitle\" value=\"PuTTY\" /\u0026gt;\u003cbr /\u003e\t\n        \u003c/p\u003e\n        \n        Invokes the putty.exe application and uses the \"repl\" session\n  - The \u003cb\u003e\u003ci\u003eEditExtensions\u003c/i\u003e\u003c/b\u003e setting determines what types of files are editable (text)\n  - The \u003cb\u003e\u003ci\u003eSaveDir\u003c/i\u003e\u003c/b\u003e setting determines where session files are created, if blank the EXE location is used\n  - \u003cb\u003e\u003ci\u003eUniqueSessions\u003c/i\u003e\u003c/b\u003e indicates if a single session directory is used or a new one for each program start\n    - The \"session\" directory is where a file is stored while being edited\n  - Color settings may be a WebColor name or a 3 value, comma-separated list of the RGB values to use\n  - \u003cb\u003e\u003ci\u003eCommPortExclusions\u003c/i\u003e\u003c/b\u003e should be just the numbers seperated by commas\n- The editor now supports syntax highlighting for html/xml documents\n- The editor now supports the Dragging and Dropping of multiple files from Windows Explorer. Just be sure to drop your\n  file or files onto the directory list on the main window.\n\n\n\u003cb\u003eCAVEATS:\u003c/b\u003e\n\n- Although it should work with any device that \u003cb\u003epyboard.py\u003c/b\u003e works with, it has only been tested with...\n    - Pyboard v1.1\n    - TPYBoard\n    - Wemos D1 Mini\n    - Witty Cloud Board \n    - Generic NodeMCU Board\n    - Raspberry Pi Pico (requires DTR to be enabled)\n- This can only edit basic text files and is focused on editing MicroPython source code\n- Binary files can be loaded and exported\n- This editor is only meant to edit a single file at a time\n- You cannot delete a directory unless it is empty\n- Switching between the REPL and the editor (and back) is a little rough... especially with an ESP8266 and the internal REPL.  \n    - You may have to \"Refresh\" or try again to get a feature to work.\n    - Sometimes the software will pause until the device is momentarily unplugged\n    - This is highly dependent on the type of application that is running\n\t- It is recommended you use an external application (such as putty or TeraTerm) for the REPL\n\n\u003cb\u003eROADMAP:\u003c/b\u003e\n\n- Proper Options/Configuration editing window.\n","funding_links":[],"categories":["Development"],"sub_categories":["IDEs"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoewez%2FPyboardFileManager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoewez%2FPyboardFileManager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoewez%2FPyboardFileManager/lists"}