{"id":21969640,"url":"https://github.com/cinderblock/3-phase-calibration-tool","last_synced_at":"2026-04-05T22:02:16.174Z","repository":{"id":39268848,"uuid":"169244326","full_name":"cinderblock/3-Phase-Calibration-Tool","owner":"cinderblock","description":"Calibration Tool for 3-Phase-Controller","archived":false,"fork":false,"pushed_at":"2022-12-11T20:06:39.000Z","size":2858,"stargazers_count":0,"open_issues_count":37,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-28T02:16:14.109Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/cinderblock.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":"2019-02-05T13:19:10.000Z","updated_at":"2021-05-09T07:22:18.000Z","dependencies_parsed_at":"2023-01-27T06:16:03.896Z","dependency_job_id":null,"html_url":"https://github.com/cinderblock/3-Phase-Calibration-Tool","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/cinderblock%2F3-Phase-Calibration-Tool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cinderblock%2F3-Phase-Calibration-Tool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cinderblock%2F3-Phase-Calibration-Tool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cinderblock%2F3-Phase-Calibration-Tool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cinderblock","download_url":"https://codeload.github.com/cinderblock/3-Phase-Calibration-Tool/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245027881,"owners_count":20549407,"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-11-29T14:23:02.843Z","updated_at":"2025-12-30T23:42:49.518Z","avatar_url":"https://github.com/cinderblock.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 3-Phase-Calibration-Tool\n\nGenerates memory .hex file of lookup table data and ID page.\n\n## Running\n\nSome values need to be configured before running:\n\n- `data` needs to be collected via USB or from a previously recorded dataset\n- `cyclesPerRev` needs to be accurate\n- `Revs` specifies the number of revolutions to collect redundant calibration data for\n\n## Plot outputs\n\nIn order for plotting outputs to work properly, `chartjs-node`'s dependencies need to be installed.\nThis mainly means that **Cairo** needs to be installed.\nSee below for OS specific Cairo setup instructions\n\n## Windows\n\n### Cairo\n\n_Original Instructions: https://github.com/Automattic/node-canvas/wiki/Installation:-Windows_\n\n1. `npm install --global --production windows-build-tools` in an admin shell\n1. Extract GTK2 to `C:\\GTK` (includes Cairo)\n   - [Win32](http://ftp.gnome.org/pub/GNOME/binaries/win32/gtk+/2.24/gtk+-bundle_2.24.10-20120208_win32.zip) or [Win64](http://ftp.gnome.org/pub/GNOME/binaries/win64/gtk+/2.22/gtk+-bundle_2.22.1-20101229_win64.zip)\n1. Install [libjpeg-turbo](http://sourceforge.net/projects/libjpeg-turbo/files/) to default location (`C:\\libjpeg-turbo` or `C:\\libjpeg-turbo64`, 32/64 must match GTK)\n1. Install `canvas` with `yarn`\n\n### USB Drivers\n\nSince we're still using non-standard USB VID/PID, we need to install some slightly non-standard drivers.\n\n#### zadig\n\nUse [Zadig](http://zadig.akeo.ie/) to install the _WinUSB_ driver for our USB device.\nOtherwise you will get `LIBUSB_ERROR_NOT_SUPPORTED`, `LIBUSB_ERROR_INVALID_PARAM`, or other similar errors when attempting to open devices.\n\n1. After launching Zadig, `Options` -\u003e `List All Devices`\n1. Select \"LMR Quantum Driver\" from drop down\n1. Click \"Replace Driver\"\n   - \"You are about to modify a system driver. Are you sure this is what you want?\" Yes\n\n## Linux\n\nKnown working set of needed packages:\n\n```bash\nsudo apt install build-essential libcairo2-dev libpango1.0-dev libjpeg8-dev libgif-dev librsvg2-dev\n```\n\n# electron-react-ts-starter\n\n#### ( Has Auto Reloading and Works with Create-React-App )\n\nThis is a boiler plate starter pack when starting an electron project which uses react with typescript. The code contains some bug fixes that are found when using react with electron and typescript and has auto monitoring of typescript changes to reload the electron app for faster development.\n\n### Why this electron-react-ts-starter :\n\n- Run electron app with create-react-app without ejecting.\n- Auto reloads the electron app when the typescript source file changes. (This is missing in a lot of tutorial articles which only have an electron.js file and not a electron.ts file )\n- Provides the required npm scripts and folder structure for simple to complex projects.\n- Includes a very simple bundling process.\n- Auto reloads app for changes in both main process files and react files.\n- With the provided folder structure , main and renderer process codebase can be maintained independently.\n\n## Usage :\n\n##### Run the react project from the renderer directory :\n\n```js\ncd renderer\nnpm install // First time only\nnpm run start\n```\n\n##### Run electron app's main process from main directory :\n\n```js\ncd main\nnpm install // First time only\nnpm run start\n```\n\n## To Build and Bundle :\n\n- Just make sure that you have added all the dependencies in the `main/package.json` to the `renderer/package.json` and the run the below command from the `renderer` folder.\n\n```js\ncd renderer\nnpm run release // or npm run build\n```\n\n**Sit back and have a cup of Coffee while the app gets built** .\n\nYou will now have a full fledged application waiting for you in the `dist` folder.\n\n---\n\n### Misc And Extra Options :\n\n- If your app uses React Router , make sure you use `HashRouter` instead of `BrowserRouter` .\n- In the `renderer/package.json` , use the `build` property to modify the settings for electron-builder. All assets and static files in your project should be present in the `assets` folder.\n- To get different installer types like 'msi' , 'appx' , '7z' , 'zip' etc , change the `target` property inside the `build` property in `renderer/package.json` .\n- If you have nested structure of typescript files in the `main` folder , make sure that you copy all the generated javascript `.js` files into the `renderer/public/` folder before building the react app (This would add the javascript files in the public folder into the build folder when building our react-app).\n\n### Project built using this pack :\n\n[Windows Terminal Tweaker](https://github.com/nateshmbhat/windows-terminal-tweaker)\n\n# Node Server UI base\n\nSkeleton for a sever/client TypeScript pair.\n\n## Details\n\nThis skeleton has 3 parts.\n\n1. A super simple node.js daemon skeleton with socket.io and colorful logging facilities.\n2. Basic React app skeleton with webpack, TypeScript, and socket.io client (with fancy state synchronization).\n3. Deployment scripts\n\n## create-node-server-ui-app\n\nSimple steps to make a new project/app based on this skeleton.\n\n1. clone\n1. Update `README.md` and `package.json`\n1. `git commit -am 'Initial commit'`\n\n## Development\n\nThe development environment is intended to be a first class and modern.\n\n- Reload on save for client ui and server daemon running locally or remotely.\n- Full color easy console logging.\n- Easy debugging with source maps everywhere.\n- ESLint configured and integrated with editor\n- Dependency changes automatically maintained with git hooks.\n\n### Prerequisites\n\n[**Node 10+**](https://nodejs.org/en/download) must be installed on your development system.\n[**Yarn**](https://yarnpkg.com/lang/en/docs/install) is nice to have but **optional**.\n\n### Setup\n\nInstall dependencies and setup development environment.\n\n```bash\nyarn setup\n```\n\n#### Non-global Yarn?\n\nWhile easier if Yarn is installed globally, this works fine without it.\n\n```bash\n# Installs yarn locally\nnpm install\n# Setup development environment\nnpm run setup\n```\n\n\u003e You can run any command from the cheat sheet by replacing `yarn` with `npm run`.\n\n### Running\n\nTo run this full system, **two** separate programs need to be run.\nOne for the web **UI** and one to actually do something persistent, the **daemon**.\n\n### Remote Execution\n\nConfigs for daemons often need to be slightly different than when running locally.\nThe deploy script will pick a config file from [`daemon/configs/`](daemon/configs).\n\n### Suggested Environment\n\nUse Visual Studio Code.\n\n## Cheat sheet\n\nAll of these are run from the top level directory.\n\n| Command                        | Description                                                                           |\n| ------------------------------ | ------------------------------------------------------------------------------------- |\n| `yarn setup`                   | Setup your local machine for development                                              |\n| `yarn ui dev`                  | Run the web **ui** on your local machine (_dev mode_)                                 |\n| `yarn daemon dev`              | Run **daemon** locally in watch mode with most recent local code                      |\n| `yarn deploy daemon-dev`       | Run local compiler in watch mode and **daemon** on remote with most recent local code |\n| `yarn ui add some-package`     | Add `some-package` to the ui                                                          |\n| `yarn ui upgrade`              | Upgrade ui packages to latest versions                                                |\n| `yarn upgrade-all`             | Upgrade all packages to latest versions                                               |\n| `yarn remote add some-package` | Add `some-package` to the daemon using the remote's yarn                              |\n| `yarn remote upgrade`          | Upgrade daemon packages to latest version using the remote's yarn                     |\n| `yarn remote kill`             | Kill the daemon on remote                                                             |\n| `yarn remote shutdown`         | Shutdown the remote system                                                            |\n| `yarn remote reboot`           | Reboot the remote system                                                              |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcinderblock%2F3-phase-calibration-tool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcinderblock%2F3-phase-calibration-tool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcinderblock%2F3-phase-calibration-tool/lists"}