{"id":42147938,"url":"https://github.com/peter-mount/mms-expansioncase","last_synced_at":"2026-01-26T18:00:48.479Z","repository":{"id":85760437,"uuid":"436628415","full_name":"peter-mount/mms-expansioncase","owner":"peter-mount","description":"A simple external expansion enclosure for the MISTer Multi System case","archived":false,"fork":false,"pushed_at":"2022-01-07T14:37:53.000Z","size":333,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-12-06T21:38:29.525Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"OpenSCAD","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-sa-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/peter-mount.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,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-12-09T13:32:27.000Z","updated_at":"2023-05-17T12:34:22.000Z","dependencies_parsed_at":"2023-05-04T17:47:30.406Z","dependency_job_id":null,"html_url":"https://github.com/peter-mount/mms-expansioncase","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/peter-mount/mms-expansioncase","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peter-mount%2Fmms-expansioncase","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peter-mount%2Fmms-expansioncase/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peter-mount%2Fmms-expansioncase/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peter-mount%2Fmms-expansioncase/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/peter-mount","download_url":"https://codeload.github.com/peter-mount/mms-expansioncase/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peter-mount%2Fmms-expansioncase/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28784093,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T13:55:28.044Z","status":"ssl_error","status_checked_at":"2026-01-26T13:55:26.068Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":"2026-01-26T18:00:22.962Z","updated_at":"2026-01-26T18:00:48.462Z","avatar_url":"https://github.com/peter-mount.png","language":"OpenSCAD","funding_links":[],"categories":[],"sub_categories":[],"readme":"This is a simple concept of an expansion enclosure for the MISTer Multi System\ncase.\n\n![View of just the enclosure](images/preview1.png)\n\nIt's designed in OpenSCAD and is intended to sit underneath the MMS case:\n![Side view with MMS on top](images/view1.png)\n\nIt's configurable for it's height, images above are 50mm and the cutout's on\nthe top can be turned off if required - the ones here matches those on the MMS case\nalthough there is an additional one for under the SNAC/Dust cover if needed.\n\nThere's the option of placing a similar fan to the one in the main case present\nand a slot at the back for a backing plate.\n\n# This is a work in progress, so it's not complete in any manner!\n\n## Generating STL's\n\nYou need OpenScad installed and on the command line, preferably 2021.01 or later.\nEdit the root Makefile and edit the following lines with the location of your install:\n\n    export OPENSCAD      = OpenSCAD-2021.01-x86_64.AppImage\n    export OPENSCAD_OPTS = --export-format binstl\n\nHere I have an AppImage in my path so I'm using that directly.\n\n### Using earlier versions of OpenSCAD\nYou can use versions earlier than 2021.01 but if you do and the build fails due to the\n`--export-format` option not being recognised then remove it from `OPENSCAD_OPTS`.\nThis will, however, mean you are generating Ascii STL's not Binary ones which are\nabout 5 times the size.\n\n## Running the build\n\nTo generate the STL's simply run\n\n    make clean all\n\nAll the possible combinations will be generated in the build directory.\n\n### Concurrent renders\nThis will take a while but if you have the CPU and Memory capacity use the -j option to\nmake so that multiple renders are done at the same time.\n\nFor example:\n\n    make -j8 clean all\n\nwill render 8 stl's at the same time.\n\nThis will reduce the time taken.\nFor example a single threaded build takes approximately 10 minutes but on my machine -j32 takes just 36 seconds.\n\nJust make certain the value you pick is less than the number of cores/threads available on your CPU.\n\n## Enclosure\n\nThe generated stl's have the following naming convention:\n\nName of the part, `top` or `base`\n\nThen a `_` delimited list of the options applied.\n\nFor example, `top_tc_tp_bf.stl` is the top part with top cutouts, pins \u0026 back plate.\n\nThese are the current options:\n\n| Option | Description                                                                           | Applies to |\n| ------ |---------------------------------------------------------------------------------------|------------|\n| tc | Cutout top access points for cables to go though                                      | top        |\n| sc | Optional cutout under the SNAC port / dust cover                                      | top        |\n| tp | Add pegs on the top to stop MMS from sliding off | top        |\n| bc | Optional base access points for cables to go though, for stacking multiple enclosures | base       |\n| bf | Space for a faceplate at the back | top base   |\n| ff | Space for a faceplate at the front | top base   |\n\n## Face plates\n\nThere are currently two faceplate options available:\n\n| Option             | Description                                                                                                  |\n|--------------------|--------------------------------------------------------------------------------------------------------------|\n| faceplatePlain.stl | A plain blank faceplate                                                                                      |\n| faceplateFlush.stl | A blank faceplate but with the centre raised so the front appears to be flush with the rest of the enclosure |\n\n## Pegs\nIf you have printed a top with the `tp` option for pegs then you also need to print `pegs.stl` which contains a set of\npegs that will insert into them and prevent the MMS from sliding off the enclosure.\n\n## Customising\n\n### Enclosure height\n\nThere's one more configurable setting which is the **external** height of the enclosure.\nIt defaults to 50mm but if you want to increase that height then edit `global.scad` and change the\n`height` variable.\n\nDo not reduce the height below 50mm otherwise the fan will not fit.\n\nAll released STL's are with the default height.\n\n### Adding parts\n\nTo add custom parts via OpenSCAD code you need to implement the following three modules:\n\n    module enclosureRemoveBefore() {}\n    module enclosureAdd() {}\n    module enclosureRemoveAfter() {}\n\nThese three get called at specific places during constructing the enclosure, but before it is split\ninto the two halves.\n\nThe enclosure is built along the following lines:\n\n    module enclosure() {\n        difference() {\n            union() {\n                difference() {\n                    // Outer hull\n                    // Cut out inside, fan and grille\n                    // back \u0026 front faceplate holders\n                    // cutouts\n                    enclosureRemoveBefore();\n                }\n                // Add support struts\n                // Add internal posts\n                enclosureAdd();\n            }\n            // Remove internal post holes\n            enclosureRemoveAfter();\n        }\n    }\n\n`enclosureRemoveBefore()` is for cutting out anything before the internal features\nare added.called first during a difference, so you can use it to remove parts from the enclosure.\n`enclosureAdd()` is for adding new internal structures and\n`enclosureRemoveAfter()` for any final removals.\n\n#### Example\n\nThis example is based on the parts/top_tc_tp_bf.scad generated file but covers the basics:\n\n    // The settings for the standard options, 0=disable, 1=enable\n    topCutouts = 1;\n    snacCutout = 0;\n    baseCutouts = 0;\n    topPegs = 1;\n    backFaceplate = 1;\n    frontFaceplate = 0;\n\n    // Include global.scad and enclosure.scad - change path as necessary\n    include \u003c../global.scad\u003e;\n    include \u003c../enclosure.scad\u003e;\n\n    // The part to render, either top(), bottom() or plate()\n    // If your part exists across both halves then you'll beed to print it\n    // once with each.\n    top();\n\n    // The hooks, place your code, or references to it in these\n    module enclosureRemoveBefore() {\n    }\n\n    module enclosureAdd() {\n    }\n    \n    module enclosureRemoveAfter() {\n    }\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeter-mount%2Fmms-expansioncase","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpeter-mount%2Fmms-expansioncase","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeter-mount%2Fmms-expansioncase/lists"}