Introduction

Welcome to the Maker Space wiki!

Here you will find (hopefully) all the information you could possibly want to know about our hackspace, how it works, what facilities we have and how to use them.

But really, what is this?

This is a demo wiki, if you are looking for the current wiki then head here.

This contains the actual proposal to change from our existing wiki to something very like this as well as a couple of demo pages that were either quick to write, quick to migrate or generously donated as part of testing.

The Wiki Proposal

This section outlines the proposal to replace our existing wiki with one based on mdBook (like you are reading right now!).

Problem Statement

In short, our current wiki is very decrepid.

  • Only a handful of pages contain actually useful information
  • Findability is pretty much non-existent
  • The site has injected adverts from the hosting provider
  • It does not support TLS, so generates a warning in most modern browsers
  • It is not mobile friendly
  • It is not very print friendly
  • It generally looks pretty bad

The problem is certainly both content and platform, however having a platform that generates actually nice documentation from a commonly used markup would certainly be a starting point in having more documentation written and kept up to date.

Solutions Considered

Here is a brief overview of the things that have been considered before arriving at the proposed solution.

Continue using PBworks and just update the content

Essentially keep on doing what we currently are, but perhaps with a bit of a push to keep the documentation up to date.

Pros:

  • Low-ish effort
  • The devil you know

Cons:

  • Does not fix aesthetic issues
  • Does not fix accessibility issues

MediaWiki

Host a MediaWiki instance and move documentation over there.

Pros:

  • Very well proven platform
  • Intuitive editor
  • Search out of the box
  • Accessible out of the box

Cons:

  • Requires hosting somewhere (plus the ongoing maintenance this involves)

mdBook

Use mdBook to generate a static site containing our documentation, with source content hosted on GitHub.

Pros:

  • Well proven platform
  • Intuitive editor (via GitHub's markdown editor)
  • Search out of the box
  • Accessible out of the box
  • Good review/discussion ability via GitHub Pull Requests
  • Hosted for free on platforms we already use (GitHub and Cloudflare)

Cons:

  • Git based contribution workflow is more of a barrier

Proposed Solution

The proposed solution is the following:

  • setup a new wiki
  • migrate any existing documentation from the existing wiki
  • identify and write new desired documentation
  • ???
  • profit

Why mdBook?

mdBook is a mature, lightweight documentation tool that generates beautiful documentation from Markdown files.

The advantages that make it ideal for our purposes include:

  • It uses Markdown, likely the most common document markup language used in the world of open software/hardware, free culture, hacking and geekery:
    • The EMF Camp badge and developer documentation is written in it.
    • The very large majority of things on GitHub, GitLab, and other OSS repositories are documented in it.
  • It generates beautifully minimal documentation, making good use of screen real estate and styled tastefully out of the box.
  • It is reactive, i.e. will scale to smaller screen sizes and still be readable and navigable.
  • It has good theming out of the box, respecting the system native colour scheme and using optimal colours for e.g. Dyslexia.
  • It has native search functionality, which works very well.
  • It can format a document for printing if desired.

So what does this actually mean in practice?

It depends, do you...

You may also be interested in the immplementation plan.

Technical Details

Things used

Only three software/services are used by this solution:

I shall skip explaining what GitHub and Cloudflare are because most will already know and we already use them.

mdBook

mdBook is a static site generator, specifically designed to generate documentation in the form of books. Whilst "book-centric", you can replace the word "chapter" with "document" and it is just a hierarchical collection of documents.

It is fed plain old Markdown documents, containing nothing extra apart from the content you wish to display. The pages can be written using whatever Markdown editor the author chooses. GitHub's online Markdown rendering will show an accurate representation of what mdBook will render in the "main body content" area for a specific document.

It is a single binary with no outside dependencies that is available for all three major platforms. It is a core part of the documentation tooling for the Rust programming language, so is not going to go away overnight.

Source files

The source files will be in a repository in the MakerSpaceNewcastle organisation on GitHub. The layout/content of the repository will be pretty much identical to the one that contains this demo wiki, which you can view here.

Publishing process

Changes will be made via a Pull Request, this is so that the site can be built to verify it is syntactically correct. Pull Requests can only be merged if the GitHub Action passes.

We may choose to use this as a means of having another member review the contents, or have ownership of documents (e.g. Iain might own the membership and induction related documents, and must approve changes to it), however I suggest this be something we do later if the need arises.

Once a Pull Request is merged, a GitHub Action will build the site and publish it to Cloudflare Pages. This typically takes less than one minute.

Revocation of changes

The preferred method is via undoing the changes in the source Markdown files, either by git revert (or it's equivalent via the GitHub website) or by making the appropriate changes and following the above publishing process.

If there is a need for a quick revert to an older version, then this can be done via the Cloudflare Pages dashboard.

History

A link to the specific Cloudflare Pages deployment can be found in the GitHub Actions logs for the specific commit, selected via the green tick next to a commit on the GitHub website. e.g. click the green tick on commit, then details to get to actions logs and the link is shown in the logs for the "Publish to Cloudflare Pages" step under "Running Wrangler Commands". In future this may be easier when the appropriate GitHub Action for Cloudflare Wrangler interact with GitHub Deployments.

The history of the source files can be viewed, managed and manipulated via all the standard Git methods if the need to do so should arise.

Specific settings/configurations

Here are some specific and/or low level settings that will be used.

GitHub

General Pull Request settings

  • "Allow merge commits" - uncheck
  • "Allow squash merging" - check
    • "Default commit message" - "Pull request title and description"
  • "Allow rebase merging" - uncheck
  • "Automatically delete head branches" - check

Branch ruleset for main:

  • "Restrict deletions"
  • "Require linear history"
  • "Require a pull request before merging"
    • "Dismiss stale pull request approvals when new commits are pushed"
  • "Require status checks to pass"
  • "Block force pushes"

This forces all changes to be made via a Pull Request, ensuring that commits that may break the site build cannot be pushed directly to main. If we ever did want to require approval in the future, this is the place one would configure it.

Actions permissions

  • "Fork pull request workflows from outside collaborators" - "Require approval for all outside collaborators"

This ensures that actions will not run (unless manually allowed) on any Pull Request from a GitHub user who is not part of the MakerSpaceNewcastle. This is done to protect the Cloudflare API token.

It is the intention that members with a GitHub account are members of the MakerSpaceNewcastle GitHub organisation, so this should not be a common issue.

Cloudflare

DNS: CNAME wiki makerspace-wiki.pages.dev.

Assuming the Pages project is called makerspace-wiki, this will result in the wiki being availale at wiki.makerspace.org.uk. This is actually handled automatically by Cloudflare following the custom domain config in Pages, it is just here for the sake of completeness.

Editing Workflow

Please note, this document is just an overview of the processes available, it is not documentation of how to author the wiki. Actual documentation will be written in due course should this solution be selected.

In general, there are two options: editing entirely via the GitHub website, or editing locally with Git setup. If you are comfortable with Git then you likely want to use the latter option, if you are new to Git or only need to make a small change then the former option is best.

Making changes

Editing an existing page

If you just want to edit a single page then you may follow the edit link in the top right hand corner of the page. Assuming you are signed in to GitHub, this will take you directly to a page where you can edit the contents and submit a Pull Request.

Editing the wiki using GitHub via the web browser

Files may be uploaded via the GitHub website (text or images) and edited via GitHub's text editor. After uploading or editing files GitHub will prompt you to commit them and optionally create a Pull Request.

Editing the wiki locally

I am lazily going to assume I don't need to say much here. If you are familiar with Git then follow the usual create branch, do changes, commit, push, open Pull Request workflow.

It is possible to run mdBook locally, or just use any Markdown renderer you may already have to preview changes.

After the Pull Request has been created

One may wish to ask for people to review it, e.g. if you have editing a page relating to the CNC mill then you may wish to ask David Pye to look over it.

Whenever a new commit is added to a Pull Request, a GitHub Action runs which builds the page and deploys it in a test environment, allowing to to see exactly what your changes will actually look like. A bot will comment on the Pull Request with a link you can follow to read the wiki with your changes applied (always use the most recent comment).

If the bot did not post a comment, then check the status of the Action, it may show a red cross indicating that something has gone wrong. You will have to inspect the logs to see exactly what the issue is, if it is an error from mdBook then they are usually pretty descriptive as to what is wrong.

When happy the PR is merged, an Action runs and the live wiki is updated.

Implementation Plan

A general idea of how this will be put into practice.

  1. Create a Cloudflare Pages project named "makerspace-wiki" (or something close to that) under the Maker Space account
  2. Create a repository named "wiki" under the MakerSpaceNewcastle GitHub organisation containing all but the content of the repository behind this wiki
  3. Create an API key allowing publishing to the above project and store it as a repository Actions secret in the above repository
  4. See that GitHub Actions publishes to the Cloudflare Pages project
  5. Apply repository settings described in technical details
  6. Apply DNS settings described in technical details
  7. Move the repository behind this demo wiki under the MakerSpaceNewcastle organisation and archive it
  8. Begin migrating content to/creating content on the new wiki
  9. Once the new wiki contains all of the useful information from the old wiki, replace any wiki links with wiki.makerspace.org.uk
  10. When we are certain that any useful content has been migrated from the old wiki, delete it.

Hypothetically Asked Questions

Isn't needing to use GitHub adding a barrier to entry for editing the wiki?

Yes.

However, it is, in my view, a very small one.

Given that the process for editing can be done entirely via the browser and will be sufficiently documented, I do not see that it will be substantially worse than any other platform.

Should it be required, it would also be possible for a member to make edits on behalf of another member.

Would this mean I need to create a GitHub account to edit the wiki?

Yes (technically no, but that is probably not what you are really asking).

However, if we choose an online solution (e.g. MediaWiki), you would have to create an account for that anyway.

Isn't there a lot of individual parts?

Not really, there are effectively three core components, all of which are mature and used widely.

Why not use an online solution like MediaWiki?

Any dynamic site requires hosting somewhere. That means (in general) either paying or having adverts.

If we pay for a compute platform and manage the deployment ourselves, then it means someone has to spend time managing it.

There are also security and environmental benefits to not running a dynamic site when a static one will suffice.

But the GitHub, mdBook, Cloudflare solution does not need payment and does not have adverts? What gives?

We are well within the free tiers of GitHub and Cloudflare for what we need to do, and mdBook is FLOSS.

Equipment

Here you will find an overview of the equipment available at Maker Space.

This is a list of the significant items, there are a lot of smaller/hand tools that are around.

ItemLocationInduction Required
Laser CutterGround Floor, CoridoorYes
Bambu Lab P1SGround Floor, Main SpaceNo
Axminster BandsawBasement, Tall SideYes
Workbee CNC RouterBasement, Short SideYes, no, maybe

Laser Cutter

A laser cutter. It cuts stuff using a laser.

Essential Information

  • Location: Ground Floor, Corridor
  • Responsible Person(s): Dan Nixon
  • Induction Required: Yes

Usage notes

It is not permitted under any circumstances to leave this machine running unattended!

Bambu Lab P1S

Bambu Lab P1S with AMS and external spool caddy. A very good, quick FDM 3D printer.

Essential Information

  • Location: Ground Floor, Main Space
  • Responsible Person(s): Dan Nixon
  • Induction Required: No

Usage notes

It is not permitted to leave this (or any other) 3D printer running whilst Maker Space is unoccupied!

While no induction is required, it is very strongly recommended to read the user guide before using the printer.

Bambu Lab P1S user guide

Bambu Studio setup

Install

  1. Install and launch Bambu Suddio
  2. Click "Get Started"
    Bambu Studio welcome page
  3. Select "Europe"
    Bambu Studio region selection page
  4. Select "Skip"
    Bambu Studio data hoover page
  5. Select "Clear All"
    Bambu Studio printer selection page with default options
  6. Check "Bambu Lab P1S 0.4mm nozzle" and click "Next"
    Bambu Studio printer selection page with correct printer selected
  7. Customise the filament selection if needed, otherwise just click "Next"
    Bambu Studio filament selection page
  8. Ensure "Install Bambu Network plug-in" is checked and click "Finish"
    Bambu Studio network plugin install page

Add printer

  1. Switch to the "Devices" tab
    Bambu Studio devices tab with no printer added
  2. Click on "No printer" and select "3DP-01P-744" from the list
  3. When prompted enter the code from the printer menu as instructed
    Bambu Studio printer access code screen
  4. The printer status should now be shown in the "Device" tab
    Bambu Studio devices tab printer added

If you do not see the printer in the device list then most likely your machine is not properly configured to act as an SSDP client. See Simple Service Discovery Protocol and Printer Network Ports for more info. TL;DR: open UDP port 2021 on your machines firewall and try again.

When getting the access code from the printer do not select the refresh icon next to the code.

Loading, Unloading and Configuring Filament

Unloading

  1. Ensure the filament you wish to remove from the AMS is not currently loaded into the printer
  2. Pull the filament out of the AMS feeder and lift the spool out

You can tell if a filament is loaded into the printer either by:

  • Observing the tube connecting the AMS to the printer, if you cannot see the filament in question inside the tube then it is probably unloaded
  • Checking the diagram on the "Device" tab in Bambu Studio, if the line leading from the spool position is thin and grey then the filament is unloaded

Loading

Bambu Lab filament

  1. Place the spool in a free AMS slot
  2. Push the filament into the AMS feeder for the corresponding slot
  3. Wait 30 seconds or so for the filament to be identified
  4. Verify that the filament was correctly identified via the "Devices" tab in Bambu Studio

Generic filament on card spools

Filament on card spools should NOT be used directly in the AMS, the spool rollers chew up the card spools and make a mess of the AMS.

A shim can be printed to protect the edges of the card spool.

Shims on a cardboard filament spool

Some cardboard spools, once clad with a printed shim, are too wide for the lid of the AMS to be closed without clamping the spool and preventing it from moving. In this case the clips on the AMS lid may be used to prop the lid slightly open as shown below. This should only be done when a filament is loaded into the AMS that would otherwise foul the AMS lid, prefer closing the lid when possible to take advantage of the humidity control offered by the AMS.

AMS propped open

Generic filament

  1. Place the spool in a free AMS slot
  2. Push the filament into the AMS feeder for the corresponding slot
  3. In the "Device" tab of Bambu Studio, click the edit icon on the just loaded AMS slot (may show either an "?" or the settings for the last non RFID filament used in that slow)
    Bambu Studio AMS status showing unknown filament inserted
  4. Edit the parameters and click "Confirm"
    Bambu Studio filament settings dialog
  5. The "Devices" tab should now show the filament type you specified
    Bambu Studio AMS status showing configured filament

Printing

Preparing printer

  1. Ensure there are no obstacles above or below the bed and that the build plate is correctly seated, located by the white tabs on the rear corners (highlighted in red squares in the photo below)
    Front of printer prior to a print
  2. If you need to change filaments in the AMS, do so now

Preparing and starting job

  1. Load designs into the "Prepare" tab of Bambu Studio
    Bambu Studio prepare tab
  2. Synchronise local filament settings with AMS by clicking the Bambu Studio AMS sync button button on the filament settings panel, this will ensure your local filament settings reflect what is currently available on the printer
  3. Set machine, material and slicing settings in the left hand pane (yes the slicing profiles say "X1C", as far as I can tell this is fine)
  4. Click "Slice plate"
  5. You will see a preview in the "Preview" tab
    Bambu Studio preview tab
  6. If all is well, press "Print plate"
  7. Set options as desired, if you forgot to set the filament for your part you can override this here, disable timelapse if you have no intention of retrieving it, keep bed levelling and AMS enabled
    Bambu Studio job options
  8. Click "Send"
  9. Wait for the job to be uploaded
    Bambu Studio job uploading
  10. The "Device" page is automatically shown where you can monitor the jobs progress, adjust settings and temperatures if needed and pause or cancel the job
  11. It is worth checking that the purge filament has not ended up on the build plate, this should not happen but it is worth keeping an eye out for

End of job

  1. Remove build plate from printer
  2. Remove part from build plate
  3. Reseat build plate in printer
  4. Clean up any filament the printer has deposited (check the purge chute at the rear of the machine)

SD card

The micro SD card is used for storing print jobs, timelapse and camera recordings (amongst other things that are of little direct use to humans).

It is not advised to use the SD card as a means of getting print jobs onto the machine.

Removing the SD card is how you would get timelapses and camera recordings off the printer, however if you wish to do this then immediately return the card to the printer as removal of the card renders it inoperative.

Should the card be out of space, it can be safely formatted in the printer using the on screen menu.

MS4 Induction checklist

This is a checklist of the things that a person who is inducting a new member to Maker Space should cover during their initial induction tour.

Introduction

Maker Space is a community owned and run working space. We've all clubbed together to get a space to work in. There aren't any grownups looking after this place, its just us, and it works because everyone pulls their weight to keep it running and nice for us all.

If in doubt, ask the mailing list.

  • It can be found on the website header -> discussion list
  • There is also a private list for members which is for the running of the space. You should have been added to this when you became a member - if not, please say something as you'll be missing out on key announcements.

Access to the space

  • Access is available if a keyholder has opened the space. i.e. Welcome Wednesday and regular evening sessions.
  • If you need access outside of the normal hours, ask on the discussion list as a keyholder may be planning to be in.

RFID Access

  • RFID fobs can be used to access:
    • The space, when a keyholder is in.
    • Machines that require an induction.
  • If you have a compatible fob already, you can use that. We also have some fobs available if you don't.
  • Register your fob by swiping the main door a few times and letting an admin know when you did it.

General Safety

  • Fire exits - keep clear! / Fire Extinguishers / First Aid Kit
  • Be mindful of smoke alarms.
  • What to do it fire alarm goes off - muster outside - if you find a fire, sound the alarm, yell etc, then leave.
  • Fire assembly point is in the car park at the back of the building.
  • Don't leave things on the floor where people might trip over them, bags, cables, project boxes etc, tripping over hurts
  • Use ladders when required rather than chairs, tables etc. and make sure it's stable.
  • Be mindful of others if you're doing something that might impact on them or if they might. e.g. working in doorways, walkways etc.
  • Do not work on live mains electricity, it's quite dangerous.

Toilets / Water / Drainage

  • Toilets near entrance.
  • Drinking water from Kitchen.
  • If you're covered in oil or grease, cleaning supplies (Swarfega etc.) are available. - Currently downstairs by the lathe.

Using the Space

People use the space differently, please be considerate.

  • Avoid telling people how to do their project. Sometimes the objective is to learn a new technique rather than solve the problem in the best way.
  • Try not to touch or pick up projects without permission.
  • Some people are here to be social, some people are here to work and may not want to talk. Please respect their space and leave them be!

Infrastructure/security

  • While many things are fair game for hacking/modifying, the core infrastructure/access control systems are not.
  • Attempts to 'defeat' security/access control for equipment will be viewed very negatively and may end up in restriction/removal of space access privileges.
  • If you want to improve a piece of core infrastructure e.g. music player etc, then discuss any proposed changes with its' current owner/maintainer first.

Parts/Materials

  • We have lots of scraps, off-cuts, spares and components etc. which can be used.
  • If you need something specific or a lot of something, please provide your own.

Maker Space has a clean desk policy

  • Try to tidy up as you go if possible. Work spaces should be clean and tidy before you leave.
  • If you need to leave something out, ask on the discussion list.
  • Bins, dustpans, brushes, mops, blue roll and vacuum cleaners etc. are around the space.
  • If you have cut, sawed, drilled, sanded, filed or ground anything then there will be something to clean up.

Bins

  • Large bins in the workshops - Dustpans and brushes attached.
  • Small bins around the space.
  • Please do not leave food waste in the space.
  • Bins currently to be taken home. Please help out if you can.
  • Battery disposal - Please take to a battery recycling point e.g. Tesco.
  • Recycling - Clean/Dry items that could go in a household recycling bin.
  • Ensure cans are empty and not likely to leak in someone's car
  • soft plastics/films if marked with "Recycle at Store"
  • No electronics/e-waste

Entrance Lobby

Hack or Die

  • Items on the shelves are for hacking and remaining items are periodically disposed of.
  • Please only add items you realistically think will be used by someone.
  • Please don't bring things in just for Hack or Die. Do that virtually (by email) instead.

Laser Cutter

  • Induction required - Ask on the members list.
  • Scrap material available for use.

Toilets

Workshop

Main room

3D Printers

  • No training but ask for help if you need it. Follow the QR code for the Bambu.
  • Unattended printing is not allowed.
  • Filament is paid for by the users. If you use it, bring some filament in occasionally.
  • Do not try to maintain the printer. Notify a maintainer or the discussion list.

Members' Store/ General Storage

  • Your box goes here - 32L - 18cm (h) x 60cm (w) x 40cm (d)
  • Please stack things carefully, especially high up.
  • Ask on mailing list about storing big things in space, before you bring it in.

Chemicals

  • Any chemicals in the space should be clearly labelled whether hazardous or not.
  • Flammables box - Flammable stuff lives here, put it back after using.
  • No dangerous chemicals please.
  • No spray painting in the space - ventilation isn't adequate.
  • No flames/smoking

Wall o' boxes and other material around space

  • OK to use stuff, but please add stuff too - It's all provided by members and rather than the space.
  • Please also apply 'fair use' principles to Space items - If you use a lot of something, replace it.
  • Put it back in the box and on the correct shelf when done (boxes are colour coded to shelves).
  • Glue gun - please make sure you let it cool before putting it away.
  • There are "Please hack"/"Do not hack" stickers and labels. Please respect them. If labelling something, write "Please/Do Not Hack", your name and the current date.

Tea and coffee facilities.

  • Coffee machine - used for hot water instead of a kettle.
  • Bin bags - on shelves.
  • Tea/biscuits/sweets etc often on the table - help yourself - feel free to add more

Fridge

  • Lemonade/Irn Bru - Free but please replenish what you use.
  • Club Mate - Prices/Payment details on the fridge.

Soldering station

  • Turn irons off after use
  • If don't know how to use, please ask
  • Hot tools/irons shouldn't be left unattended
  • Let stuff cool before putting away
  • Scraps tub for collecting bits of wire etc. Please don't leave bits all over the desk.

Stationery

  • In grey drawers

Media Centre

  • Green Button - Play/Pause (Random tracks if playlist is clear)
  • Red "Fire" Button - Short press skips track, Long press (2 Secs) clears playlist.
  • For full control use http://mediaserver:9000/
  • Apps available to control music from your phone (e.g. Squeezer)

Side room (Goldfish Bowl)

  • PCs available for use. Please don't install crap
  • Vinyl Cutter
  • Electronic component storage - keep it tidy!
  • Items Stored on the shelves belong to the space. They can be used but not to be hacked. Don't take them away from the space without permission.

Basement

There are PPE boards - please use them.

  • We have provided it, it's your job to use it. It's OK to remind people you see not using it when they should be.
  • Dust masks are available from the "Spare PPE" box.
  • If you know you're going to need specific PPE for a certain task ahead of time (respirator, coveralls), consider bringing it yourself.
  • Hearing protection - if you are making lots of loud noise make sure you and others near you wear it.
  • If you are making flying objects, ensure people who may be affected know and are offered eye protection.

Clean up after yourself

  • Tools / Bench top / Floor

Tools

  • Sander / Pillar Drill / Lathe / Mill / Band Saw / Workbee CNC
    • RFID Controlled. Induction Required, ask on the members list or email the maintainer to get inducted.
  • Hand tools generally around the space on boards.
  • Drills, hand power tools, Dremel and bits/collets near the Workbee CNC machine.
  • Return tools when you have finished with them, definitely before leaving space.

Storage

  • Wood Store - Help yourself - Add more wood/offcuts when finished own projects. Please check for "Do Not Hack" stickers before using.
  • Nuts/Bolts/Screws - please keep tidy - use "M Don't Know" if you can't determine the size.
  • Metal Store - to be used for projects etc. Be careful of sharp edges, don't leave any for others.
  • Table legs may not be spare. Please check before using.