-
Notifications
You must be signed in to change notification settings - Fork 2
/
index.html
200 lines (176 loc) · 16.2 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="FabMo™ : At last... An Innovative Platform for Today's and Tomorrow's Smart Tools">
<link rel="stylesheet" type="text/css" media="screen" href="stylesheets/stylesheet.css">
<title>FabMo™</title>
<script type="text/javascript" src="http://use.typekit.net/nbm6rcp.js"></script>
<script type="text/javascript">try{Typekit.load();}catch(e){}</script>
<link rel="stylesheet" type="text/css" media="screen" href="https://handibot.com/css/global.css">
<link rel="stylesheet" type="text/css" media="screen" href="css/style.css">
<link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.2.0/styles/default.min.css">
<!-- google analytics script - don't remove -->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-40600601-3', 'auto');
ga('send', 'pageview');
</script>
</head>
<body>
<div id="header_wrap" class="outer">
<img id="header_img" src="images/cutting.png">
<img id="fabmo_logo" src="images/FabMo_G2_logo.png">
<a id="forkme_banner" href="https://github.com/FabMo">View on GitHub</a>
</div>
<script src="http://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.2.0/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
<div class="introduction_story">
<p>
<strong>FabMo</strong> is an open-source, digital fabrication and motion platform of software and hardware. Having a front-end originated by a small team at ShopBot Tools, the FabMo Platform also encapsulates a powerful core motion system, G2, created by Synthetos (makers of TinyG). FabMo is available to be used, adopted, and adapted by anyone, to run and manage every digital smart tool imaginable, today and tomorrow -- providing users a single, compelling interface for all their fabrication equipment. Go FabMo to create, produce, and manufacture in ways that suit your style.</p>
<p>
<strong>FabMo</strong> offers CNC users and digital-fabbers <strong>5 essential features</strong>.
</p>
</div>
<div class="features inner">
<div class="fast">
<p></p>
<h3>1 - Fast, Smooth Cutting</h3>
<h4><strong>A powerful, low-level, motion-controller provides fast, vibration-free motion with S-shaped acceleration/deceleration profiles that minimize jerk and provide smooth snappy action </strong></h4>
<p>
Sophisticated, 5th-order, state-of-the-art motion-planning is at FabMo's G2 core. "S"-shaped profiles improve the efficiency of machining and produce confident, brisk moves. High-resolution timing produces smooth surfaces. The FabMo interface makes running a cutting job easy with straight-forward starting, monitoring, and file-management.
</p>
</div>
<div class="access">
<h3>2 - Freedom of Access</h3>
<h4><strong>Access your digital fabrication tool from any device and generate toolpath files from a wide range of programs (CAD/CAM) or from digital-fabrication apps</strong></h4>
<p>
FabMo will link a wide range of devices to your digital fab tool. Access a tool from a phone or any computer or tablet. Choose your access route. Be hard-wired for industrial robustness or go wireless. Decide whether you want to be networked or not. Control the tool with a device, or just monitor the action. And, post job files from your cloud storage, or allow only locally generated files for security. FabMo further supports a wide range of digital-fab workflows from traditional CAD > CAM approaches to a variety of "app" types. FabMo supports several motion languages including g-code and OpenSBP. Other languages may be added.
</p>
</div>
<div class="interface">
<h3>3 - Programmable Interface</h3>
<h4><strong>Modify FabMo to fit your needs or the needs of your own specialized fabrication tools</strong></h4>
<p>
We hope the FabMo platform will serve the needs of the fabrication, motion, and robotics community and provide an open platform for shared innovation. The platform is programmable in multiple ways. There are simple macro-based functions for quick production use. One level up, we have created an environment for apps that can serve many users functions. Apps are programmable in familiar languages of the web. Apps can provide utility functions and carry out common jobs; they can also serve-up complex digital-fab projects whose parameters can be customized by users.
</p>
</div>
<div class="interactive">
<h3>4 - Interactive and Dynamic Control</h3>
<h4><strong>Hands-on, heads-up, real-time operation offers interactive control</strong></h4>
<p>
Near-real-time operation for interactive control is made possible by the dynamic planning on which the G2 system is based. App development with responsive motion and programmed filtering can creates opportunities to new types of human-machine interface enhancing creative and productive work.
</p>
</div>
<div class="sensing">
<h3>5 - Industrial Performance Sensing</h3>
<h4><strong>Open smarts in sensing and reporting that can optimize cutting and maintenance</strong></h4>
<p>
FabMo was designed for the Industrial Internet of Things (IIoT) and Industry 4.0. Smart sensing and reporting will help optimize performance for production tools improving productivity and quality. A wide range of inputs from tools inputs to FabMo can happen over multiple channels -- from direct low-level inputs to the G2 controller to networked and browser sensing.
</p>
</div>
</div>
<div class="fabmo_story">
<h2>The <span>FabMo</span> Story</h2>
<h4>The history</h4>
<p>
Five 5 years ago, ShopBot began an ambitious project to develop a new software system to run CNC and digital fabrication tools -- computer controlled robotic tools that fashion items by subtraction cutting and machining components from blocks and sheets of material, or addition by infusing, hardening, and generally building-up items from raw material. Fifteen years previously, ShopBot had led in showing how industrial automation tools could be made affordable using the capabilities of the then new, personal computer. Today, powerful new capabilities are made available in the next generation of micro-controllers that allow putting even more capability at lower cost in the control of robotic equipment. We needed this capability for our own machines. We decided to develop it for ourselves and anyone else who wants to put the system to use. We call the system FabMo -- short for digital Fabrication and Motion software platform.
</p>
<h4>Our two challenges in digital fabrication today</h4>
<p>
The first challenge is the CAD to CAM workflow for generating tool-path files. The difficulty of doing CAD and CAM creates a tough hurdle, particulary for simple projects or routine work. The second challenge is that running the files that are generated from CAM output is made complicated by proprietary or idiosyncratic tool languages and by tool interfaces having restrictive connectivity and little interoperability.
</p>
<p>
With the FabMo digital fabrication and motion platform, we introduce an approach to digital fabrication that opens new paths of use and frees access to tools. We take advantage of progress in microprocessors and microcontrollers, which now offers low-cost options for managing and driving digital fabrication equipment and inter-connecting equipment, sensors, and other data sources. The FabMo "Engine" looks outward from a digital fab tool allowing access via wireless and wired routes, from almost any type of device, and utilizing multiple and expandable motion languages. It efficiently feeds the FabMo "Core" -- a low-level, real-time, high-performance motion-system producing graceful fabbing action.
</p>
<p>
FabMo links a fabrication tool to apps and projects. Such apps will make content created for digital fabrication more available and customizable to users' needs. FabMo supports links for managing cloud apps, projects, galleries, and accounts.
</p>
<img id="diagram_img" src="images/fabmo_diagram_v05b.png">
<p>
<strong>Diagram of FabMo.</strong> Top line shows the general model of FabMo for digital Fabrication -- the connection from a device in the world, to a tool's motion system, and the electronic and mechanical hardware that support it. The lower portion of the diagram shows the current ShopBot/Handibot instantiation of FabMo by way of detailed example, as well as other options available to developers and OEMs.
</p>
</div>
<div class="outer">
<div id="wrapper product">
<div class="hardware">
<h2>The Hardware</h2>
<h4>(Options for Users and Developers)</h4>
<p>
FabMo is based on two hardware components: 1) an SBC (single board computer) on which the "Engine" - interface, communications, and management systems - runs;
and 2) a microprocessor the provides real-time environment for the "Core", G2, motion functions.
</p>
<ul>
<li>
The SBC runs a minimal linux install that supports the FabMo Engine and related management modules. For our current ShopBot version we are using a Raspberry Pi 4B, but support is planned for other computer builds of FabMo.
</li>
<li>
The real-time microcontroller is loaded with the G2 motion system. Our reference implementation is on the Atmel SAM3X8E. This microcontroller is found on the Arduino Due, which makes the Due a useful development board. This real-time component of the system is also available in the form of ShopBot's latest (V30x) Control Cards.
This Control Card modularly connects to a wide range of ShopBot CNC interface boards that provide drivers, I/O buffering, and isolation. The real-time module is also available on digital-fab boards from Synthetos, which include motor drivers and I/O on a single board. Either of these latter two systems will interface to a wide range of motors and hardware and can be used for creating a variety of DIY, digital fab tools and projects.
</li>
</ul>
</div>
<div class="hardware">
<h2>The Software</h2>
<h4>(Concepts and Organization)</h4>
<p>
FabMo is a collection of software components and well-documented APIs. The FabMo Engine, running in linux on the tool's SBC, connects a digital fab tool to the world; handles local user needs; manages the flow of jobs to the real-time core.
</p>
<p>
Programmed primarily in javascript and node.js, the FabMo Engine serves up a contemporary, mobile-friendly web interface. Several base modules provide run-times for different digital-fab-tool path languages and serve as models for creating others.
</p>
<p>
More importantly, FabMo provides a framework for developing and hosting "apps" that will contribute a wide range of usability to digital fab tools. App Developer Resources include definitive and documented "example apps" that serves as a template for app development as well as several more specific examples. Apps are written in the languages of the web (HTML, Javascript, Coffeescript, CSS, etc) so that as tools for the web grow, so do our tools for doing digital fabrication!
</p>
<p>
The FabMo "G2 Core" resides on the ARM microcontroller. It represents work of the Synthetos team. G2 is a sophisticated motion system: high speed (high step rates), advanced "S" shaped ramping for smooth and efficient accelerations and decelerations, all running in real time and not requiring fussing with PC timing functions or USB converters.
</p>
<p></p>
<img id="dash_img" src="images/dash.png">
<p>
<strong>FabMo "Dashboard" Interface.</strong> Showing system apps (left panel), apps area, and Digital Read Out (DRO; optionally displayed on right).
</p>
</div>
<div class="resources">
<br>
<h3>FabMo Resources</h3>
<h4>Example Apps</h4>
<p>There are lots of good examples online of apps that use fabmo.js and the Handibot Dashboard - Choose one of interest and you can check it out here. (Note that when opened here they will open in your full browser and not the Dashboard.)</p>
<ul>
<li> <a href="http://fabmo.github.io/fabmo-example-app/">The Official FabMo Example App</a> - Covers a lot of the API in simple examples.</li>
<li> <a href="http://fabmo.github.io/fabmo-touchandgo-app/">FabMo Touch-and-Go</a> - Runs immediate code, interacts with configuration, responds to status reports.</li>
<li> <a href="http://fabmo.github.io/fabmo-holecutter-app/">Hole Cutter</a> - Submits a job based on input parameters.</li>
<li> <a href="http://fabmo.github.io/fabmo-terrainman-app/">Terrainman</a> - More complex job based on input parameters.</li>
<li> <a href="http://fabmo.github.io/fabmo-the-news-app/">Handibot News</a> - Display a simple page from an external site.</li>
</ul>
<h4>FabMo Virtual Tool</h4>
<p>Open up our <a href="https://efferent-frigatebird-4071.dataplicity.io/">virtual FabMo Dashboard</a> to see the look and feel of the interface and apps in action. This is just like running a real tool ...</p>
<h4>API Documentation for the Dashboard (fabmo.js)</h4>
<p>Check out <a href="http://fabmo.github.io/fabmo.js/">the API documentation</a> for the details on making use of FabMo functionality in your own apps.</p>
<h4>FabMo on GitHub</h4>
<p>And there is always the <a href="http://github.com/fabmo">FabMo project itself on GitHub.</a> Code, apps, and resources. Join the community.</p>
<h3>Additional Resources</h3>
<div class=handibot_image>
<img class="handibot_image" src="images/FabMo_Cartoon.png">
<p>FabMo has been implemented for the Version 2 generation of <a href="https://www.handibot.com">Handibots</a>. Handibot provides and example and test bed for demonstrating FabMo functionality and capabilities. Feel free to explore ...</p>
<h5>Find discussions on </h5>
<a href="https://github.com/Handibot/handibot-software/blob/master/Introduction%20to%20App%20Development/Introduction%20to%20Handibot%20Software%20and%20to%20Developing%20APPS%20for%20Handibot.pdf">Hardware, Software and App Development for Handibots</a>
<br>
<h5>Read about the philosophy behind the </h5>
<a href="http://handibot.com/open-source.php">Handibot Open Innovation Platform and FabMo.</a>
<br>
<br>
</div>
</div>
<div class="logo_footer">
<img src="images/FabMo_G2_logo.png">
<br>
<br>
</div>
</body>
</html>