{"id":20056683,"url":"https://github.com/thijses/pcbcoilgenerator","last_synced_at":"2025-09-20T13:31:07.378Z","repository":{"id":142853447,"uuid":"564724863","full_name":"thijses/PCBcoilGenerator","owner":"thijses","description":"a python-based PCB-coil (planar inductor) generator. Visualization in python using pygame","archived":false,"fork":false,"pushed_at":"2023-11-11T19:28:06.000Z","size":40415,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-11-13T12:55:59.956Z","etag":null,"topics":["electrical-engineering","pcb","pygame","python","python3"],"latest_commit_sha":null,"homepage":"","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/thijses.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,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-11-11T10:54:37.000Z","updated_at":"2024-09-21T07:25:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"488a390e-5922-4650-b771-a70c947948e6","html_url":"https://github.com/thijses/PCBcoilGenerator","commit_stats":{"total_commits":20,"total_committers":2,"mean_commits":10.0,"dds":"0.15000000000000002","last_synced_commit":"bc57c206172b32ae997e4c8317bda232fbacbbf8"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thijses%2FPCBcoilGenerator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thijses%2FPCBcoilGenerator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thijses%2FPCBcoilGenerator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thijses%2FPCBcoilGenerator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thijses","download_url":"https://codeload.github.com/thijses/PCBcoilGenerator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233665624,"owners_count":18710916,"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":["electrical-engineering","pcb","pygame","python","python3"],"created_at":"2024-11-13T12:56:05.826Z","updated_at":"2025-09-20T13:31:00.432Z","avatar_url":"https://github.com/thijses.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PCBcoilGenerator\na python-based PCB-coil (planar inductor) generator. Visualization in python using pygame. \nV0 can generate basic 1-layer coils (with some deviation from the source material),\nV1 can generate multilayer coils (with parameters as described in the papers)\nV2 comes with multi-layer-coupling-factor coefficients adjusted based on test samples i made\nThe original math came from 3 papers:\n- [1] provides the math for single-layer coils\n- [3] provides the math for multilayer coils\n- [2] fills in the gaps left in [3]\nFor my data/analysis/results, please see the the PDF in the 'documentation' folder.\n\nscreenshot:  \n\u003cimg src=\"documentation/screenshot%20of%20code.png\" width=\"500\"\u003e\n\u003c!-- ![screenshot of GUI](documentation/screenshot%20of%20code.png) --\u003e\n\nshapes currently supported: (screenshots)  \n\u003cimg src=\"documentation/shapes.png\" width=\"400\"\u003e  \n\u003c!-- ![shapes](documentation/shapes.png) --\u003e  \nmore (custom) shapes are technically possible (the class structure is there), but paper [1] doesn't provide parameters for arbetary shapes.\n\nrequirements:\n- python 3.10ish (tested with 3.10.8)\nlibraries:\n- numpy (tested with 1.23.4)\n- pygame (tested with 3.10.8) (only needed for visualization) (CV2 version is on TODO list)\n- dxfwrite (tested with 1.2.2) (only needed for DXF exporting)\n- pandas (tested with 1.5.2) and openpyxl (tested with 3.0.10) (only needed for excel exporting) (non-pandas version is on TODO list)\n- opencv-python (tested with 4.6.0.66) (only needed for image exporting (cv2exporter.py))\n- matplotlib (tested with 3.6.2) (only needed for matplotlibRenderer.py (currently useless))\n\nfile explenations:\n- PCBcoilV_.py is the main file where all the fun stuff happens\n- pygameRenderer.py holds all the drawing and window-management functions\n- pygameUI.py is just for the keyboard/mouse input in pygame. It quickly gets messy, so i put it in a seperate file\n- DXF_ excel_ and cv2_  _exporter.py are exactly what they sound like. They export coil designs/specs to be used in further development\n- matplotlibRenderer.py is just a demo of a coil in 3D. It does not yet have a purpose, but i wrote it anyway.\n(- cv2renderer is under construction!)\n\nkey bind legend: (auto-generated)\n![key bind legend](keyBindLegend.png)\n\nlinks to papers:\n- [1]  https://stanford.edu/~boyd/papers/pdf/inductance_expressions.pdf     which is applied for demo purposes at: https://coil32.net/pcb-coil.html\n- [2]  http://www.edatop.com/down/paper/NFC/A_new_calculation_for_designing_multilayer_planar_spiral_inductors_PDF.pdf\n- [3]  https://www.researchgate.net/publication/271291453_Design_and_Optimization_of_Printed_Circuit_Board_Inductors_for_Wireless_Power_Transfer_System\n\n- (probably better alternative solution) https://www.mdpi.com/1424-8220/21/14/4864\n- (helps justify inaccuracy of results)  https://www.mdpi.com/1424-8220/22/10/3815","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthijses%2Fpcbcoilgenerator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthijses%2Fpcbcoilgenerator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthijses%2Fpcbcoilgenerator/lists"}