HackMD
  • Beta
    Beta  Get a sneak peek of HackMD’s new design
    Turn on the feature preview and give us feedback.
    Go → Got it
      • Create new note
      • Create a note from template
    • Beta  Get a sneak peek of HackMD’s new design
      Beta  Get a sneak peek of HackMD’s new design
      Turn on the feature preview and give us feedback.
      Go → Got it
      • Sharing Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • More (Comment, Invitee)
      • Publishing
        Please check the box to agree to the Community Guidelines.
        Everyone on the web can find and read all notes of this public team.
        After the note is published, everyone on the web can find and read this note.
        See all published notes on profile page.
      • Commenting Enable
        Disabled Forbidden Owners Signed-in users Everyone
      • Permission
        • Forbidden
        • Owners
        • Signed-in users
        • Everyone
      • Invitee
      • No invitee
      • Options
      • Versions and GitHub Sync
      • Transfer ownership
      • Delete this note
      • Template
      • Save as template
      • Insert from template
      • Export
      • Dropbox
      • Google Drive Export to Google Drive
      • Gist
      • Import
      • Dropbox
      • Google Drive Import from Google Drive
      • Gist
      • Clipboard
      • Download
      • Markdown
      • HTML
      • Raw HTML
    Menu Sharing Create Help
    Create Create new note Create a note from template
    Menu
    Options
    Versions and GitHub Sync Transfer ownership Delete this note
    Export
    Dropbox Google Drive Export to Google Drive Gist
    Import
    Dropbox Google Drive Import from Google Drive Gist Clipboard
    Download
    Markdown HTML Raw HTML
    Back
    Sharing
    Sharing Link copied
    /edit
    View mode
    • Edit mode
    • View mode
    • Book mode
    • Slide mode
    Edit mode View mode Book mode Slide mode
    Note Permission
    Read
    Only me
    • Only me
    • Signed-in users
    • Everyone
    Only me Signed-in users Everyone
    Write
    Only me
    • Only me
    • Signed-in users
    • Everyone
    Only me Signed-in users Everyone
    More (Comment, Invitee)
    Publishing
    Please check the box to agree to the Community Guidelines.
    Everyone on the web can find and read all notes of this public team.
    After the note is published, everyone on the web can find and read this note.
    See all published notes on profile page.
    More (Comment, Invitee)
    Commenting Enable
    Disabled Forbidden Owners Signed-in users Everyone
    Permission
    Owners
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Invitee
    No invitee
       owned this note    owned this note      
    Published Linked with GitHub
    Like BookmarkBookmarked
    Subscribed
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    Subscribe
    --- title: Hardware design and prototyping description: In this lesson we introduce concepts, tools and techniques to design and develop open hardware projects. authors: Jerry de Vos, Jose Urra, Santosh Ilhamparuthi --- <!-- Back to [overview](https://hackmd.io/ya-g7omdSI--Vx0JcayB1Q?view) --> <!-- ## Extra technical lessons [3D printing lesson](https://hackmd.io/pVnRQfivSkOsd6ixdPiq6A) [PCB making lesson](https://hackmd.io/kTN1tTUuSYu4zB7rjEg5xQ) --> # Hardware design and prototyping [![License: CC BY 4.0](https://img.shields.io/badge/License-CC_BY_4.0-lightgrey.svg)](https://creativecommons.org/licenses/by/4.0/) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.7195666.svg)](https://doi.org/10.5281/zenodo.7195666) **Date of release:** 29-08-2022 Prototyping (or **experimental thinking and building of functional products**) is perhaps the most relevant skill needed to design (open) hardware successfully. (Some might argue that is a fundamental skill for life :smile_cat: but we are not going that far). Prototypes help us to expand our knowledge base, build confidence in the relevance of a project, implement ideas, and approach projects iteratively through controlled failure and incremental success. **They are a means to the end of reaching a durable and long-lasting design in a lean and cost-efficient way**. This lesson is about helping you to incorporate prototyping into your toolbox. :::info **By the end of this lesson you will** - Be able to generate experiment designs or prototyping tasks to validate and develop key ideas in your project - Organize and plan the execution of these experiments - Document these experiments and capture the learnings from executing them **Considerations and prerequisites** - Being familiar with our previous lesson: **[framing open hardware projects](https://hackmd.io/AHVevvT-SbOY2jq4FYdieg?both)** will help you get the most out of this lesson. **Learning objectives** - Incorporate an experimental approach to the development of your project ideas - Apply prototyping as a core activity in the design and development of open hardware projects ::: ## Introduction **15 years, 5127 prototypes** is what it took James Dyson to create the DC01, his first upright vacuum cleaner with the patented cyclone technology. This can give you an idea of how much prototyping was needed to change vacuum cleaning technologies and set a new standard. But an open hardware project may well be a series of prototypes or even just one prototype (these are often found in [hackaday.io](https://hackaday.io/discover)) ![](https://i.imgur.com/mpG4GXI.png) Early promotional photo of a DC01 against a competitor with a cloth bag. image retrieved from: [link](https://dyson-h.assetsadobe2.com/is/image/content/dam/dyson/invention/06/Cullinan_Chapter06_Sidebyside.jpg?cropPathE=mobile&fit=stretch,1&fmt=pjpeg&wid=640) ### What is a prototype Prototypes are models of a future solution or product that help better define the final design specifications of the product/service, as well as communicate how the final product will be. They are used to test partially or completely ideas and designs and they have essentially an experimenting and testing purpose. **We prototype to learn fast and cheaply. To study and approach the solution iteratively, manage risks, and control failure.** :::danger **What is not a prototype** Not all builds, made artifacts or hacks are by default prototypes. You can build something for fun, or as a hobby. A prototype can be easily confused with a build or a model, it is only a prototype when it has served the purpose of researching or testing aspects of a final solution in progress within a project. ::: ## Uses of prototypes - **Product/project concept validation** Check that the product/project expectations and core hypothesis are objectively or empirically valid. - **Product/project concept verification** Check and demonstrate the technical feasibility of the product. - **Learning:**: answering questions about performance, feasibility, and desirability. - **Communication**: Demonstration of product for feedback, 3D physical models of style or function. - **Integration** Combination of sub-systems into system model, alpha or beta test models. These prototypes tend to be approximations that are closer to a final product. - **Milestones** Sprint increment, the release of a new version of a product/project, first testable solution. ## Different types of prototypes Prototypes come in many shapes and sizes, they can be as simple as a piece of cardboard, or as advanced as a ready-to-fly satellite. *A prototype is an approximation of the product*. The following diagram classifies different types of prototypes using a biodigester as an example. This diagram can help you think about how can you design experiments or prototypes to approach sub-problems or aspects of your solution. A backlog of experiments or tests can be composed of focused prototypes where you develop a critical module of your solution or a functional prototype where you go after a working principle or mechanism. :::info The goal of articulating your different prototyping intents or experiments has to do with the framing of your project, as well as the time and resources you can allocate to it. ::: ![](https://i.imgur.com/sENP08T.png) ### Prototyping for validation vs verification In the context of hardware design, prototypes can be useful to: 1. **Validate** core project /product assumptions. (In the case of open hardware these can be core design specifications that satisfy certain needs or even the purpose of the project itself) 2. Explore technical options/solutions/ideas and **verify** that they implement correctly the desired design specifications. :::info Prototypes that **verify** are focused on technical feasibility, and performance. Prototypes to **validate** are focused on desirability, market, needs, etc. The first type aims to "Do the right thing" The second type aims to "Do things right". ::: At a very high level then we can say that prototyping can be used to **validate** a value proposition (Is it a good value proposition?) or to **verify** a value proposition (Is it feasible?). In the first case, prototypes aim to test a project's theory, in the second case they are used to test the project's feasibility through experimentation and engineering. > Validation is the process of checking whether the specification captures the customer's requirements, while verification is the process of checking that the software meets specifications. [Read more about it here](https://www.arbourgroup.com/blog/2015/verification-vs-validation-whats-the-difference/#:~:text=Validation%20is%20the%20process%20of,that%20the%20software%20meets%20specifications) ## Overview of the testing process The testing process involves mostly planning your experiments and prototypes based on different criteria such as resources, relevance, component dependencies, deadlines, among many more criteria. :::warning :warning: The following testing process is inspired by scrum, lean, and the way is presented by the authors of value proposition design. Even though this process is presented as a process to validate the business ideas, it can also be applicable to design and development activities. **The only difference is that we have added verification experiments as part of the hardware development process.** ::: ![](https://i.imgur.com/wLCeMJX.png) :::info :point_up_2: Image retrieved from the book: "Value proposition design: How to create products and services that customers want" ::: 1. **Extract hypotheses from your project framing process** (ideas, concepts, sketches). It might be that a hypothesis requires multiple experiments, even a cycle of prototypes that aim to test this core hypothesis. 2. **Prioritize hypotheses**. Which are those hypothesis that underly the core framing of your project? Which are the riskier ones, or the ones that has more weight on the overall idea? These are questions that can help you decide how to prioritize them. 5. **Ideate and design experiments to help you validate these hypotheses.** Before building prototypes you can create a "test card", this is way of documentation including its purpose. 7. **Prioritize these experiments based on effectiveness, effort, time, completeness, and price.** This can end up being the planning of a sprint or a milestone in your project. 8. **Build your experiments and run your tests to answer your hypotheses.** 9. **Document and incorporate your learnings into your design.** This may well end up being also an upgrade of your design specifications, a new version release and a changelog explaining what has changed in your latest desgin version. :::warning You can apply this process very loosely or very systematically and detailed, depending on how important the project is. The complexity of the planning, documentation, and project mangement always follows the complexity of a project, its size, number of adopters, and how dependable it is. ::: ### Find a balance between quality, time, and budget when organizing and prioritizing your backlog of experiments using the criteria below :point_down: --- ![](https://i.imgur.com/LH56kho.png) image retrieved from: [https://www.mistywest.com/posts/what-is-the-purpose-of-hardware-prototyping](https://www.mistywest.com/posts/what-is-the-purpose-of-hardware-prototyping) ## Getting started Our set of tools to help you get started with this process are [**test cards**](https://www.strategyzer.com/blog/posts/2015/3/5/validate-your-ideas-with-the-test-card), [**learning cards**](https://www.strategyzer.com/blog/posts/2015/3/9/capture-customer-insights-and-actions-with-the-learning-card), and a [**progress board**](https://www.strategyzer.com/blog/posts/2015/3/11/lean-startup-progress-board). ![](https://i.imgur.com/GKwhzXZ.png) :::info :point_up_2: Image retrieved from the book: "Value proposition design: How to create products and services that customers want" ::: ### Design and build your experiments/prototypes using a test card At this point, you should have selected those ideas, hypotheses, and concepts that are a priority for your project currently. In this step, we will find out how testable these are. **At this point the goal is to design prototypes and capture them using the test card as a documentation template.**. :::success **Tips** - **Go tangible and visual.** "Don’t waste time in long winding conversations (we like calling this blahblahbah). Sketches, simple cad models, paper, cardboard, or a 3D print. - **Keep your models/prototypes simple.** "Deeply refining ideas that are likely to change drastically is expensive and wasteful – only capture the essence in your prototypes" - **Don’t fall in love with your first idea.** "Explore and compare alternatives before you focus on one option." Say you have a hypothesis, perhaps you can design experiments with different technical options that can achieve roughly the same goal. - **Seek criticism early!** "Present your models early on to spark conversations and use negative feedback to create improved prototypes." ::: **Some examples of candidates to capture in a test card**: - An architecture or several architecture designs that you want to present to a more senior engineer to get feedback. - A translation of a schematic into different PCB variations that fit for example a casing you have already selected from a vendor. - A simulation or several simulations - It can even be a set of experiments that aim to validate a core hypothesis that combines simulations, cad modeling, 3D printing, etc. ### Test your prototypes and capture your learnings At this point, you have run at least a test and you can reflect back on what have you observed, discovered, or learned through the prototype implementation and testing based on measurements. **The goal here is to capture this learning and translate this into new actions** (perhaps a next prototype or perhaps a document updating your new design version). > The Learning Card forces you explicitly articulate: >- Which hypotheses you choose to test >- What you observed, discovered, or learned in the field >- What did you deduct from those observations (i.e. the insights you gained from the experiment) >- How you'll act upon this learning (e.g. to improve your business model and value proposition ideas) ## The progress board This tool simply aims to structure your testing process by starting from left to right with your core ideas broken down into prioritized hypotheses (concepts, ideas, sub-problems, sub-solutions). Then we have a backlog of tests that can also be prioritized using the prototyping criteria we have shared in previous sections and ends up with learnings and knowledge that are captured in better design specifications and choices. ![](https://i.imgur.com/hynkVZL.png) :::info :point_up_2: Image retrieved from the book: "Value proposition design: How to create products and services that customers want" ::: # Exercises **Goal:** The goal of these exercises is to help you set up a simple testing framework with a free, simple and available tool that is widely used by open source communities in software and hardware development. **Hopefully these exercises will help you work further in your project using an agile-like project management approach.** ## Exercise 1: Create a progress board We are going to rely mostly on GitHub and markdown to do these exercises. Consider doing all the documentation using markdown in your own notes and then transfer them in github issues and the board so that you keep also those notes reusable. :::warning :hand: Before getting started you need to have a GitHub ::: **Instructions:** - Create a GitHub project if you haven't for your project (remember you can use github as one of the different distribution channels for your open hardware documentation) - Use GitHub project boards to create a progress board. Make an example that people can copy ## Exercise 2: Pick up a hypothesis that is core to your project and design several experiments using the test cards :::warning :hammer_and_wrench: Here we provide a template that already combines a test card and a learning card. This ::: **Instructions** - Document your experiments in a local hackmd so that you can reuse it later using the template we are providing below. - Open an issue and name it based on a test design. [Read more about how to open an issue in GitHub](https://docs.github.com/en/issues/tracking-your-work-with-issues/creating-an-issue). - Add the issue to your project board. [Read more about how to do this step](https://docs.github.com/en/issues/tracking-your-work-with-issues/creating-an-issue) ### Template ``` ## Test name (this can be the name of the GitHub issue) duration, deadline (these metadata can be added in GitHub issues) Step 1: hypothesis - We believe that .... <here goes your hypothesis> - Hypothesis importance (score from 1 to 3) Step 2: Test - To verify that, we will.... <here goes your experiment design, you can also use sketches and images> - Test cost (from 1 to 3) - Data reliability (score from 1 to 3) Step3: Metric - And measure..... <what is your core > - Time required Step 4: Criteria We are right if...... <here goes the criteria that need to be met for this test to be positive> Learning documentation Step 5: Observation - We observed that ..... Step 6: Learning and insights - From what we learned that .... Step 7: - Therefore, we will ... <what you will do after capturing this insight, perhaps new prototypes or different types of tests> ``` ## Example: 3D printable hand-powered centrifuge This exercise uses the [3D -Fuge: A New Hand Powered Centrifuge](https://www.labonthecheap.com/3d-fuge-a-new-hand-powered-centrifuge/) as an inspiration to demonstrate how you can design a test card and they haven't been tested, therefore the learning part is just an example for the purpose of this lesson. :::spoiler ### Test 1 focused on target specifications hypotheses (verification) **Step 1:** We believe that a portable hand-powered centrifuge of less than 20 EUR can be used to analyze diseases like meningitis and aids in extreme situations where there is no electricity. (This hypotheses has an importance score of 3) **Step 2:** To verify that we will build a 3D printable prototype with a rotational mechanism that delivers the force needed to achieve the target spec of 2000 CFR and build a test setup with a sensor to test the speed of the centrifuge. :warning: Notice in this step that the prototype involves designing the testing setup, otherwise the target spec cannot be measured accurately. **Step 3:** We will measure the Centrifugal Relative Force that separates the sample matter (2000 CFR) **Step 4:** We are right we can deliver the CFR at a certain time (2 mins, and we can separate the samples, and it is doable by a person X times per hour. This is an example of a target spec that allows to translation of the hypothesis into a testable idea. **Step 5** We observed that the centrifuge can rotate up to 30000 RPM. **Step 6** We learned that is possible to build a centrifuge of this kind with recycled PLA for much less than 20 EUR of costs. **Step 7** Therefore we will develop new experiments and prototypes focused on testing the robustness usability and lifecycle of such a centrifuge in actual usage environments. ::: --- :::spoiler ### Test 2 focused on testing contributor and user channels (validation) **Step 1:** We believe that many people around the world will be interested in testing and replicating this prototype and provide useful feedback on how relevant it is for the target usage context. **Step 2:** In order to test this, we will generate clear building guides with the STL files to print and clear documentation of how to separate a sample with coffee. We will also provide a simple form with some questions and fields to provide feedback. The form will be a clear contribution request. **Step 3:** We will measure likes in GitHub, we will measure **Step 4:** We are right if someone doing a diagnosis of these diseases in these difficult contexts confirms that this is a useful **Step 5** - We observed that most enthusiasm came from teachers and educators in high schools and primary schools that have local maker spaces. - There were a variety of hobbyists and enthusiasts - Few but relevant responses from physicians doing service in rural areas. **Step 6** The audience that is more interested in the project is not the one we expected. **Step 7** Therefore we will: - Keep reaching our target audience and learn more from contexts in which this tool could be used. - Think of a different low-cost design that is battery-powered or even solar-powered. - Refine the design based on user feedback. - Document an assignment for a mechanical engineer to optimize the design for 3D printing and injection molding. ::: --- # References [1] K. T. Ulrich and S. D. Eppinger, Product design and development, 3rd ed. Boston: McGraw-Hill/Irwin, 2004. [2] “Adding issues and pull requests to a project board - GitHub Enterprise Server 3.4 Docs,” GitHub Docs. https://ghdocs-prod.azurewebsites.net/en/enterprise-server@3.4/issues/organizing-your-work-with-project-boards/tracking-work-with-project-boards/adding-issues-and-pull-requests-to-a-project-board (accessed Aug. 28, 2022). [3] “Creating an issue,” GitHub Docs. https://ghdocs-prod.azurewebsites.net/en/issues/tracking-your-work-with-issues/creating-an-issue (accessed Aug. 28, 2022). [4] “3D -Fuge: A New Hand Powered Centrifuge | Lab On The Cheap.” https://www.labonthecheap.com/3d-fuge-a-new-hand-powered-centrifuge/ (accessed Aug. 28, 2022). [5] “Creating a project (classic),” GitHub Docs. https://ghdocs-prod.azurewebsites.net/en/issues/organizing-your-work-with-project-boards/managing-project-boards/creating-a-project-board (accessed Aug. 28, 2022). [6] A. Osterwalder, Y. Pigneur, G. Bernarda, and A. Smith, Value proposition design: how to create products and services customers want. Hoboken: John Wiley & Sons, 2014. [7] “What Is The Purpose Of Hardware Prototyping?” https://www.mistywest.com/posts/what-is-the-purpose-of-hardware-prototyping/ (accessed Aug. 26, 2022). [8] T. Varma, Agile Product Development: How to Design Innovative Products That Create Customer Value. Berkeley, CA: Apress, 2015. # Thanks to This lesson is made possible by: Jerry de Vos, Jose Urra, Santosh Ilhamparuti <!-- # Notes Jerry make something for a reason, learn something along the way, understand the process, gain experience, show potential > The purpose of hardware prototyping is **to answer questions, ranging from technical unknowns to getting a better understanding of your end-users and/or market.** > stages - proof of concept - alpha - beta - release ### considerations while hardware prototyping it is always finding a balance between quality, time, and budget. but you can define this budget ![](https://i.imgur.com/LH56kho.png) from: [https://www.mistywest.com/posts/what-is-the-purpose-of-hardware-prototyping](https://www.mistywest.com/posts/what-is-the-purpose-of-hardware-prototyping) ### example: spaceX https://www.youtube.com/watch?v=bvim4rsNHkQ [](https://www.youtube.com/watch?v=bvim4rsNHkQ) ### Example: Dyson **15 years, 5127 prototypes** is what it took James Dyson to create the DC01, his first upright vacuum cleaner with the patented cyclone technology. Dyson clearly understood the importance of creating and testing prototypes for the development of his new product. [https://www.youtube.com/watch?v=OwtjQM49Ir0](https://www.youtube.com/watch?v=OwtjQM49Ir0) :::danger example materials for different stages of prototypes: * simple: cardboard, lego,foam, paper, clay, breadboard * basic: extruded aluminium, lasercut, 3D print, perfboard * advanced: milling, injection moulding, pcb(a) ::: ### Useful Resources [Digital Manufacturing Resource Center | Fictiv](https://www.fictiv.com/resources) [3D Printing Guides, White Papers, Webinars, and More](https://formlabs.com/eu/resources/) [](https://prototype.berkeley.edu/) [Blog | Outdesign.Co](https://www.outdesign.co/blog) https://www.youtube.com/c/HardwarePioneers/videos -->

    Import from clipboard

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lost their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template is not available.


    Upgrade

    All
    • All
    • Team
    No template found.

    Create custom template


    Upgrade

    Delete template

    Do you really want to delete this template?

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Tutorials

    Book Mode Tutorial

    Slide Mode Tutorial

    YAML Metadata

    Contacts

    Facebook

    Twitter

    Feedback

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions

    Versions and GitHub Sync

    Sign in to link this note to GitHub Learn more
    This note is not linked with GitHub Learn more
     
    Add badge Pull Push GitHub Link Settings
    Upgrade now

    Version named by    

    More Less
    • Edit
    • Delete

    Note content is identical to the latest version.
    Compare with
      Choose a version
      No search result
      Version not found

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub

        Please sign in to GitHub and install the HackMD app on your GitHub repo. Learn more

         Sign in to GitHub

        HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Available push count

        Upgrade

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Upgrade

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully