├── .editorconfig
├── .eslintrc.js
├── .gitignore
├── .husky
└── pre-commit
├── .npmrc
├── .prettierignore
├── .prettierrc
├── .vscode
└── settings.json
├── LICENSE
├── README.md
├── authentication.js
├── build_scripts
├── copy_built_files.sh
└── dev-build.sh
├── config
├── PtData.xyz
├── config.js
├── dashboard_config.js
├── engine_config.js
├── g2_config.js
├── index.js
├── instance_config.js
├── machine_config.js
├── opensbp_config.js
├── profile_config.js
└── user_config.js
├── config_watcher.js
├── dashboard
├── app_manager.js
├── apps
│ ├── apps.fma
│ │ ├── css
│ │ │ └── style.css
│ │ ├── icon.png
│ │ ├── index.html
│ │ ├── js
│ │ │ ├── Sortable.js
│ │ │ └── apps.js
│ │ ├── old_icon.png
│ │ └── package.json
│ ├── configuration.fma
│ │ ├── css
│ │ │ └── style.css
│ │ ├── fonts
│ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ └── glyphicons-halflings-regular.woff
│ │ ├── icon.png
│ │ ├── images
│ │ │ ├── Thumbs.db
│ │ │ ├── changepassword.svg
│ │ │ ├── delete.png
│ │ │ ├── download.png
│ │ │ ├── ex.png
│ │ │ ├── grantadmin.svg
│ │ │ ├── loading.gif
│ │ │ ├── recycling10.svg
│ │ │ ├── revokeadmin.svg
│ │ │ └── shopbot_logo.png
│ │ ├── index.html
│ │ ├── js
│ │ │ ├── app_manager.js
│ │ │ ├── configuration.js
│ │ │ ├── jquery.dragster.js
│ │ │ └── user_manager.js
│ │ ├── old_icon.png
│ │ └── package.json
│ ├── editor.fma
│ │ ├── component.json
│ │ ├── css
│ │ │ ├── codemirror.css
│ │ │ ├── style.css
│ │ │ └── syntax.css
│ │ ├── icon.png
│ │ ├── index.html
│ │ ├── js
│ │ │ ├── cm-addons
│ │ │ │ ├── dialog.js
│ │ │ │ ├── jump-to-line.js
│ │ │ │ ├── search.js
│ │ │ │ └── searchcursor.js
│ │ │ ├── cm-fabmo-modes.js
│ │ │ ├── codemirror.js
│ │ │ ├── editor.js
│ │ │ └── simple.js
│ │ └── package.json
│ ├── job_manager.fma
│ │ ├── css
│ │ │ ├── images
│ │ │ │ ├── download151.svg
│ │ │ │ ├── player6.svg
│ │ │ │ ├── recycling10.svg
│ │ │ │ ├── settings46.svg
│ │ │ │ └── visible9.svg
│ │ │ └── style.css
│ │ ├── icon.png
│ │ ├── images
│ │ │ ├── Sorting icons.psd
│ │ │ ├── Thumbs.db
│ │ │ ├── Untitled-1.psd
│ │ │ ├── arrow_key.png
│ │ │ ├── back_disabled.png
│ │ │ ├── back_enabled.png
│ │ │ ├── back_enabled_hover.png
│ │ │ ├── click.png
│ │ │ ├── delete.png
│ │ │ ├── download.png
│ │ │ ├── droptarget.png
│ │ │ ├── edit_icon.png
│ │ │ ├── favicon.ico
│ │ │ ├── forward_disabled.png
│ │ │ ├── forward_enabled.png
│ │ │ ├── forward_enabled_hover.png
│ │ │ ├── loading.gif
│ │ │ ├── shopbot_logo.png
│ │ │ ├── sort_asc.png
│ │ │ ├── sort_asc_disabled.png
│ │ │ ├── sort_both.png
│ │ │ ├── sort_desc.png
│ │ │ └── sort_desc_disabled.png
│ │ ├── index.html
│ │ ├── js
│ │ │ ├── Sortable.js
│ │ │ ├── job_manager.js
│ │ │ ├── jquery.dragster.js
│ │ │ └── moment.js
│ │ └── package.json
│ ├── macro_manager.fma
│ │ ├── css
│ │ │ ├── images
│ │ │ │ ├── Sorting icons.psd
│ │ │ │ ├── Thumbs.db
│ │ │ │ ├── arrow_key.png
│ │ │ │ ├── back_disabled.png
│ │ │ │ ├── back_enabled.png
│ │ │ │ ├── back_enabled_hover.png
│ │ │ │ ├── delete.png
│ │ │ │ ├── details_close.png
│ │ │ │ ├── details_open.png
│ │ │ │ ├── download.png
│ │ │ │ ├── edit_icon.png
│ │ │ │ ├── favicon.ico
│ │ │ │ ├── forward_disabled.png
│ │ │ │ ├── forward_enabled.png
│ │ │ │ ├── forward_enabled_hover.png
│ │ │ │ ├── loading.gif
│ │ │ │ ├── play_icon.png
│ │ │ │ ├── recycling10.svg
│ │ │ │ ├── shopbot_logo.png
│ │ │ │ ├── sort_asc.png
│ │ │ │ ├── sort_asc_disabled.png
│ │ │ │ ├── sort_both.png
│ │ │ │ ├── sort_desc.png
│ │ │ │ └── sort_desc_disabled.png
│ │ │ └── style.css
│ │ ├── icon.png
│ │ ├── images
│ │ │ ├── Sorting icons.psd
│ │ │ ├── Thumbs.db
│ │ │ ├── arrow_key.png
│ │ │ ├── back_disabled.png
│ │ │ ├── back_enabled.png
│ │ │ ├── back_enabled_hover.png
│ │ │ ├── delete.png
│ │ │ ├── download.png
│ │ │ ├── favicon.ico
│ │ │ ├── forward_disabled.png
│ │ │ ├── forward_enabled.png
│ │ │ ├── forward_enabled_hover.png
│ │ │ ├── loading.gif
│ │ │ ├── shopbot_logo.png
│ │ │ ├── signal.png
│ │ │ ├── signal_0.png
│ │ │ ├── signal_1.png
│ │ │ ├── signal_2.png
│ │ │ ├── signal_3.png
│ │ │ ├── signal_4.png
│ │ │ ├── sort_asc.png
│ │ │ ├── sort_asc_disabled.png
│ │ │ ├── sort_both.png
│ │ │ ├── sort_desc.png
│ │ │ └── sort_desc_disabled.png
│ │ ├── index.html
│ │ ├── js
│ │ │ └── macro_manager.js
│ │ └── package.json
│ ├── network_manager.fma
│ │ ├── css
│ │ │ └── style.css
│ │ ├── icon.png
│ │ ├── images
│ │ │ ├── signal.png
│ │ │ ├── signal_0.png
│ │ │ ├── signal_1.png
│ │ │ ├── signal_2.png
│ │ │ ├── signal_3.png
│ │ │ └── signal_4.png
│ │ ├── index.html
│ │ ├── js
│ │ │ ├── jquery.dragster.js
│ │ │ └── network_manager.js
│ │ └── package.json
│ ├── previewer.fma
│ │ ├── README.md
│ │ ├── css
│ │ │ └── style.css
│ │ ├── icon.png
│ │ ├── images
│ │ │ ├── help.png
│ │ │ ├── pause.png
│ │ │ ├── play.png
│ │ │ ├── reset.png
│ │ │ ├── settings.png
│ │ │ ├── x.png
│ │ │ ├── y.png
│ │ │ └── z.png
│ │ ├── index.html
│ │ ├── js
│ │ │ ├── OrbitControls.js
│ │ │ ├── XgridHelper.js
│ │ │ ├── app.js
│ │ │ ├── axes.js
│ │ │ ├── cookie.js
│ │ │ ├── dimensions.js
│ │ │ ├── grid.js
│ │ │ ├── gui.js
│ │ │ ├── helvetiker_regular.typeface.js
│ │ │ ├── move.js
│ │ │ ├── parser.js
│ │ │ ├── path.js
│ │ │ ├── table.js
│ │ │ ├── three.js
│ │ │ ├── tool.js
│ │ │ ├── util.js
│ │ │ └── viewer.js
│ │ └── package.json
│ ├── sb4.fma
│ │ ├── assets
│ │ │ ├── docs
│ │ │ │ ├── ComRef.pdf
│ │ │ │ ├── Handibot 2 MANUAL Safe Use Source_v002.pdf
│ │ │ │ └── No_Internet.pdf
│ │ │ ├── icon_jobs.png
│ │ │ ├── icon_jobs_w.png
│ │ │ ├── icon_video.png
│ │ │ ├── image6b.gif
│ │ │ ├── image6b.jpg
│ │ │ ├── image6b_transparent.png
│ │ │ ├── info_icon.png
│ │ │ ├── pad_icon_01.png
│ │ │ ├── pad_icon_02.png
│ │ │ ├── pad_icon_03.png
│ │ │ ├── sb3_commands.json
│ │ │ └── settings_icon.png
│ │ ├── css
│ │ │ ├── css-notes.txt
│ │ │ ├── foundation.css
│ │ │ ├── foundation.min.css
│ │ │ ├── normalize.css
│ │ │ ├── style.css
│ │ │ ├── stylejogdial.css
│ │ │ └── tips.css
│ │ ├── icon.png
│ │ ├── index.html
│ │ ├── js
│ │ │ ├── init_setActions.js
│ │ │ ├── jog_dial.js
│ │ │ ├── lib
│ │ │ │ ├── fabmo.js
│ │ │ │ ├── fastclick.js
│ │ │ │ ├── foundation.dropdown.js
│ │ │ │ ├── foundation.min.js
│ │ │ │ ├── haptics.js
│ │ │ │ ├── jquery.js
│ │ │ │ ├── modernizr.js
│ │ │ │ └── paper-full.min.js
│ │ │ ├── message_g2.js
│ │ │ ├── mo_pad.js
│ │ │ ├── motion.js
│ │ │ ├── sb_app.js
│ │ │ ├── tool_config.js
│ │ │ ├── vendor
│ │ │ │ ├── jquery.cookie.js
│ │ │ │ ├── jquery.js
│ │ │ │ ├── modernizr.js
│ │ │ │ └── xplaceholder.js
│ │ │ └── video.js
│ │ └── package.json
│ ├── selftest.fma
│ │ ├── css
│ │ │ ├── font-awesome.min.css
│ │ │ ├── pure-min.css
│ │ │ └── style.css
│ │ ├── fonts
│ │ │ ├── fontawesome-webfont.eot
│ │ │ ├── fontawesome-webfont.svg
│ │ │ ├── fontawesome-webfont.ttf
│ │ │ ├── fontawesome-webfont.woff
│ │ │ └── fontawesome-webfont.woff2
│ │ ├── icon.png
│ │ ├── index.html
│ │ ├── js
│ │ │ └── selftest.js
│ │ ├── package.json
│ │ └── path
│ │ │ └── sample.pdf
│ └── video.fma
│ │ ├── README.md
│ │ ├── __pycache__
│ │ ├── v4l2.cpython-311.pyc
│ │ └── v4l2.cpython-39.pyc
│ │ ├── camera-server
│ │ ├── icon.png
│ │ ├── images
│ │ ├── in-use.jpg
│ │ └── offline.jpg
│ │ ├── index.html
│ │ ├── js
│ │ └── video.js
│ │ ├── package.json
│ │ └── v4l2.py
├── build
│ └── index.html
├── img
│ └── icon_spindle_off.png
├── index.js
└── static
│ ├── css
│ ├── font-awesome.css
│ ├── fonts.css
│ ├── foundation.min.css
│ ├── normalize.css
│ ├── style.css
│ ├── tips.css
│ └── toastr.min.css
│ ├── docs
│ ├── ComRef.pdf
│ ├── Handibot 2 MANUAL Safe Use Source_v002.pdf
│ ├── No_Internet.pdf
│ └── xComRef.pdf
│ ├── favicon.ico
│ ├── fonts
│ ├── ShopBotStandard-Regular.otf
│ ├── droid-sans-mono-v7-latin-regular.eot
│ ├── droid-sans-mono-v7-latin-regular.svg
│ ├── droid-sans-mono-v7-latin-regular.ttf
│ ├── droid-sans-mono-v7-latin-regular.woff
│ ├── droid-sans-mono-v7-latin-regular.woff2
│ ├── fontawesome-webfont.eot
│ ├── fontawesome-webfont.svg
│ ├── fontawesome-webfont.ttf
│ ├── fontawesome-webfont.woff
│ ├── fontawesome-webfont.woff2
│ ├── sourcesanspro-bold-webfont.eot
│ ├── sourcesanspro-bold-webfont.svg
│ ├── sourcesanspro-bold-webfont.ttf
│ ├── sourcesanspro-bold-webfont.woff
│ ├── sourcesanspro-bold-webfont.woff2
│ ├── sourcesanspro-boldit-webfont.eot
│ ├── sourcesanspro-boldit-webfont.svg
│ ├── sourcesanspro-boldit-webfont.ttf
│ ├── sourcesanspro-boldit-webfont.woff
│ ├── sourcesanspro-boldit-webfont.woff2
│ ├── sourcesanspro-extralight-webfont.eot
│ ├── sourcesanspro-extralight-webfont.svg
│ ├── sourcesanspro-extralight-webfont.ttf
│ ├── sourcesanspro-extralight-webfont.woff
│ ├── sourcesanspro-extralight-webfont.woff2
│ ├── sourcesanspro-extralightit-webfont.eot
│ ├── sourcesanspro-extralightit-webfont.svg
│ ├── sourcesanspro-extralightit-webfont.ttf
│ ├── sourcesanspro-extralightit-webfont.woff
│ ├── sourcesanspro-extralightit-webfont.woff2
│ ├── sourcesanspro-it-webfont.eot
│ ├── sourcesanspro-it-webfont.svg
│ ├── sourcesanspro-it-webfont.ttf
│ ├── sourcesanspro-it-webfont.woff
│ ├── sourcesanspro-it-webfont.woff2
│ ├── sourcesanspro-regular-webfont.eot
│ ├── sourcesanspro-regular-webfont.svg
│ ├── sourcesanspro-regular-webfont.ttf
│ ├── sourcesanspro-regular-webfont.woff
│ └── sourcesanspro-regular-webfont.woff2
│ ├── img
│ ├── Thumbs.db
│ ├── fabmo-f.svg
│ ├── favicon
│ │ ├── android-icon-144x144.png
│ │ ├── android-icon-192x192.png
│ │ ├── android-icon-36x36.png
│ │ ├── android-icon-48x48.png
│ │ ├── android-icon-72x72.png
│ │ ├── android-icon-96x96.png
│ │ ├── apple-icon-114x114.png
│ │ ├── apple-icon-120x120.png
│ │ ├── apple-icon-144x144.png
│ │ ├── apple-icon-152x152.png
│ │ ├── apple-icon-180x180.png
│ │ ├── apple-icon-57x57.png
│ │ ├── apple-icon-60x60.png
│ │ ├── apple-icon-72x72.png
│ │ ├── apple-icon-76x76.png
│ │ ├── apple-icon-precomposed.png
│ │ ├── apple-icon.png
│ │ ├── browserconfig.xml
│ │ ├── favicon-16x16.png
│ │ ├── favicon-32x32.png
│ │ ├── favicon-96x96.png
│ │ ├── manifest.json
│ │ ├── ms-icon-144x144.png
│ │ ├── ms-icon-150x150.png
│ │ ├── ms-icon-310x310.png
│ │ └── ms-icon-70x70.png
│ ├── icon_DROin.png
│ ├── icon_DROout.png
│ ├── icon_apps.png
│ ├── icon_apps_w.png
│ ├── icon_colapse.png
│ ├── icon_colapse_r.png
│ ├── icon_details.min.png
│ ├── icon_details.png
│ ├── icon_editor.png
│ ├── icon_folder.png
│ ├── icon_folder_w.png
│ ├── icon_global.png
│ ├── icon_global_w.png
│ ├── icon_go-home.png
│ ├── icon_home.png
│ ├── icon_home_w.png
│ ├── icon_jobs.png
│ ├── icon_jobs_w.png
│ ├── icon_keypad.png
│ ├── icon_log.png
│ ├── icon_more.png
│ ├── icon_mv-xy.png
│ ├── icon_network.png
│ ├── icon_plus_cross.png
│ ├── icon_refresh.png
│ ├── icon_search.png
│ ├── icon_search_w.png
│ ├── icon_settings.png
│ ├── icon_settings_w.png
│ ├── icon_sign_out.png
│ ├── icon_social.png
│ ├── icon_social_w.png
│ ├── icon_spindle_off.png
│ ├── icon_spindle_on.png
│ ├── icon_status_green.png
│ ├── icon_status_grey.png
│ ├── icon_status_red.png
│ ├── icon_status_yellow.png
│ ├── icon_video.png
│ ├── icon_zero-z.png
│ └── maingear.png
│ └── js
│ ├── app.js
│ ├── auth.js
│ ├── context.js
│ ├── dashboard.js
│ ├── events.js
│ ├── libs
│ ├── backbone.js
│ ├── fabmo.js
│ ├── fabmoapi.js
│ ├── fabmoui.js
│ ├── foundation.min.js
│ ├── hammer.js
│ ├── hammer.min.js
│ ├── hammer.min.map
│ ├── jquery.min.js
│ ├── keyboard.js
│ ├── keypad.js
│ ├── lockr.min.js
│ ├── modernizr.js
│ ├── moment.js
│ ├── pako.min.js
│ ├── require.js
│ ├── socket.io.js
│ ├── socket.io.js.map
│ ├── toastr.js.map
│ ├── toastr.min.js
│ ├── underscore.js
│ └── usb-browser.js
│ ├── main.js
│ ├── models.js
│ ├── routers.js
│ ├── templates
│ ├── app-icon-add.html
│ ├── app-icon.html
│ └── authentication.html
│ └── views.js
├── data
└── g2_errors.json
├── db.js
├── debug.js
├── doc
├── apple_logo.gif
├── intel_edison.jpg
├── project_layout.md
└── raspi.png
├── engine.js
├── example-version.json
├── files
├── README.md
├── camera-server-1.service
├── camera-server-2.service
├── fabmo.service
├── network_conf_fabmo
│ ├── fabmo-ip-reporting.desktop
│ ├── hostapd.service
│ ├── ip-reporting.py
│ ├── ip-reporting.sh
│ ├── network-monitor.service
│ ├── network-monitor.sh
│ ├── recent_wifi.json
│ ├── setup-wlan0_ap.service
│ └── setup_wlan0_ap.sh
├── tools
│ ├── ck_heat_volts.sh
│ ├── ck_network.sh
│ ├── ck_services.sh
│ └── ld_firmware.sh
└── usb_logger.service
├── firmware
├── g2.bin
├── g2core_101.57.47.bin
└── g2core_101.57.49 - Copy.bin
├── g2.js
├── log.js
├── machine.js
├── macros.js
├── network.js
├── network
└── linux
│ └── raspberry-pi
│ ├── commands.js
│ └── index.js
├── network_manager.js
├── package.json
├── profiles.js
├── profiles
├── default
│ ├── config
│ │ ├── engine.json
│ │ ├── g2.json
│ │ ├── instance.json
│ │ ├── machine.json
│ │ └── opensbp.json
│ └── package.json
├── fabmo-profile-dt
│ ├── .gitignore
│ ├── README.md
│ ├── apps
│ │ ├── Desktop-HELP_v0.0.4.fma
│ │ └── smooth.fma
│ ├── config
│ │ ├── engine.json
│ │ ├── g2.json
│ │ ├── instance.json
│ │ ├── machine.json
│ │ └── opensbp.json
│ ├── macros
│ │ ├── macro_10.sbp
│ │ ├── macro_2.sbp
│ │ ├── macro_201.sbp
│ │ ├── macro_211.sbp
│ │ ├── macro_3.sbp
│ │ ├── macro_5.sbp
│ │ ├── macro_6.sbp
│ │ ├── macro_7.sbp
│ │ ├── macro_78.sbp
│ │ ├── macro_79.sbp
│ │ ├── macro_9.sbp
│ │ ├── macro_90.sbp
│ │ └── macro_91.sbp
│ └── package.json
├── fabmo-profile-dtatc
│ ├── .gitignore
│ ├── README.md
│ ├── apps
│ │ ├── CONSOLE_v0.0.04.fma
│ │ ├── Desktop-HELP_v0.0.4.fma
│ │ ├── config_app.fma
│ │ ├── fabmo-univ-atc-app_v1.0.0.fma
│ │ └── smooth.fma
│ ├── config
│ │ ├── engine.json
│ │ ├── g2.json
│ │ ├── instance.json
│ │ ├── machine.json
│ │ └── opensbp.json
│ ├── macros
│ │ ├── macro_1.sbp
│ │ ├── macro_10.sbp
│ │ ├── macro_2.sbp
│ │ ├── macro_201.sbp
│ │ ├── macro_204.sbp
│ │ ├── macro_205.sbp
│ │ ├── macro_211.sbp
│ │ ├── macro_212.sbp
│ │ ├── macro_3.sbp
│ │ ├── macro_5.sbp
│ │ ├── macro_6.sbp
│ │ ├── macro_7.sbp
│ │ ├── macro_70.sbp
│ │ ├── macro_71.sbp
│ │ ├── macro_72.sbp
│ │ ├── macro_73.sbp
│ │ ├── macro_74.sbp
│ │ ├── macro_75.sbp
│ │ ├── macro_78.sbp
│ │ ├── macro_79.sbp
│ │ ├── macro_9.sbp
│ │ ├── macro_90.sbp
│ │ └── macro_91.sbp
│ └── package.json
├── fabmo-profile-dtmax
│ ├── README.md
│ ├── apps
│ │ ├── CONSOLE_v0.0.04.fma
│ │ ├── Desktop-Utils-Prefs_v0.0.2.fma
│ │ ├── FabMo Simple Surfacer_v0.0.3.fma
│ │ └── fabmo-app-example_v1.0.3.fma
│ ├── config
│ │ ├── engine.json
│ │ ├── g2.json
│ │ ├── instance.json
│ │ ├── machine.json
│ │ └── opensbp.json
│ ├── macros
│ │ ├── macro_10.sbp
│ │ ├── macro_2.sbp
│ │ ├── macro_201.sbp
│ │ ├── macro_211.sbp
│ │ ├── macro_3.sbp
│ │ ├── macro_5.sbp
│ │ ├── macro_6.sbp
│ │ ├── macro_7.sbp
│ │ ├── macro_78.sbp
│ │ ├── macro_79.sbp
│ │ ├── macro_9.sbp
│ │ ├── macro_90.sbp
│ │ └── macro_91.sbp
│ └── package.json
└── fabmo-profile-handibot-2
│ ├── README.md
│ ├── apps
│ ├── config_app.fma
│ ├── fabmo-app-example_v1.0.3.fma
│ └── smooth.fma
│ ├── config
│ ├── engine.json
│ ├── g2.json
│ ├── instance.json
│ ├── machine.json
│ └── opensbp.json
│ ├── macros
│ ├── NEWmacro_10.sbp
│ ├── NEWmacro_2.sbp
│ ├── NEWmacro_201.sbp
│ ├── NEWmacro_211.sbp
│ ├── NEWmacro_3.sbp
│ ├── NEWmacro_5.sbp
│ ├── NEWmacro_6.sbp
│ ├── NEWmacro_7.sbp
│ ├── NEWmacro_78.sbp
│ ├── NEWmacro_79.sbp
│ ├── NEWmacro_9.sbp
│ ├── NEWmacro_90.sbp
│ ├── NEWmacro_91.sbp
│ ├── README.txt
│ ├── macro_2.sbp
│ ├── macro_201.sbp
│ ├── macro_211.sbp
│ ├── macro_3.sbp
│ ├── macro_6.sbp
│ ├── macro_7.sbp
│ ├── macro_77.sbp
│ ├── macro_78.sbp
│ ├── macro_79.sbp
│ ├── macro_9.sbp
│ ├── macro_90.sbp
│ └── macro_91.sbp
│ └── package.json
├── pythonUtils
├── README.md
├── fabmo_support_contact.txt
├── i2c_display.py
├── libs
│ └── ssd1039.py
├── run_i2c_display.sh
└── usb_logger.py
├── routes
├── acc.js
├── authentication.js
├── config.js
├── dashboard.js
├── direct.js
├── firmware.js
├── index.js
├── jobs.js
├── kill.js
├── log.js
├── macros.js
├── network.js
├── state.js
├── time.js
├── uix.js
├── updater.js
├── usbFileRoutes.js
├── util.js
├── video.js
└── websocket.js
├── runtime
├── gcode
│ ├── gcode.js
│ └── index.js
├── idle.js
├── manual
│ ├── driver.js
│ └── index.js
├── opensbp
│ ├── commands
│ │ ├── custom.js
│ │ ├── cut.js
│ │ ├── file.js
│ │ ├── index.js
│ │ ├── jog.js
│ │ ├── leveler.js
│ │ ├── location.js
│ │ ├── move.js
│ │ ├── probe.js
│ │ ├── setting.js
│ │ ├── tools.js
│ │ ├── value.js
│ │ └── zero.js
│ ├── index.js
│ ├── interpolate.js
│ ├── opensbp.js
│ ├── parser.js
│ ├── sb3_commands.json
│ ├── sbp_parser.js
│ ├── sbp_parser.pegjs
│ ├── test-error.js
│ ├── test1.sbp
│ ├── test2.sbp
│ ├── test_parser.js
│ └── transformation.js
└── passthrough
│ └── index.js
├── scripts
├── convert_sb3.js
└── sb3_to_gcode.js
├── server.js
├── spindle1.js
├── spindles
├── spindle-VFD-data
│ ├── spin-DT-1hp-delta.json
│ └── spin-DT-1hp-lenze.json
└── spindle1_settings.json
├── static.js
├── test
├── machine.test.js
└── util.test.js
├── updater.js
├── util.js
└── webpack.config.js
/.editorconfig:
--------------------------------------------------------------------------------
1 | [*]
2 | end_of_line = lf
3 | charset = utf-8
4 | indent_style = space
5 | tab_width = 4
6 | max_line_length = 80
7 |
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | env: {
3 | amd: true,
4 | node: true,
5 | commonjs: true,
6 | es2021: true,
7 | },
8 | globals: {
9 | async: true,
10 | log: true,
11 | process: true,
12 | setImmediate: true,
13 | setTimeout: true,
14 | clearTimeout: true,
15 | console: true,
16 | },
17 | plugins: ["jest", "prettier"],
18 |
19 | extends: ["eslint:recommended", "prettier"],
20 | parserOptions: {
21 | ecmaVersion: 12,
22 | },
23 | rules: {
24 | "no-mixed-spaces-and-tabs": "off",
25 | "prettier/prettier": ["warn"],
26 | "no-unused-vars": "warn",
27 | },
28 | ignorePatterns: [
29 | "dashboard/static/js/libs/socket.io.js",
30 | "dashboard/static/js/libs/hammer.js",
31 | "dashboard/static/js/libs/hammer.min.js",
32 | "dashboard/static/js/libs/jquery.min.js",
33 | "dashboard/static/js/libs/lockr.min.js",
34 | "dashboard/static/js/libs/moment.js",
35 | "dashboard/static/js/libs/modernizr.js",
36 | "dashboard/static/js/libs/pako.min.js",
37 | "dashboard/static/js/libs/require.js",
38 | "dashboard/static/js/libs/toastr.min.js",
39 | "dashboard/static/js/libs/underscore.js",
40 | "dashboard/static/js/libs/foundation.min.js",
41 | "dashboard/static/js/libs/backbone.js",
42 | "dashboard/static/js/events.js",
43 | "dashboard/apps/",
44 | "routes/video.js",
45 | "runtime/opensbp/sbp_parser.js",
46 | "log.js",
47 | ],
48 | overrides: [
49 | {
50 | env: { browser: true, jquery: true },
51 | files: ["dashboard/**"],
52 | },
53 | {
54 | files: ["test/**"],
55 | plugins: ["jest"],
56 | extends: ["plugin:jest/recommended"],
57 | rules: { "jest/prefer-expect-assertions": "off" },
58 | },
59 | ],
60 | };
61 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | routes/debug.js
2 | sandbox
3 | build
4 | .vscode
5 | .vscode/.*
6 | .vscode/*
7 | *.swp
8 | *~
9 | *.bak
10 | *.tmp
11 | *.log
12 | version.json
13 | node_modules
14 | npm-debug.log
15 | app_settings.json
16 | docs-dist
17 | .grunt
18 | config/data/*.json
19 | .DS_Store
20 | *.sublime*
21 | *.orig
22 | dashboard/build/*
23 | #had to comment out the following to build using vscode; then had to manually create paths and copy files
24 | #profiles/*
25 | #profiles/.*
26 | !dashboard/build/index.html
27 | !profiles/fabmo-profile-dev-tests
28 | !profiles/fabmo-profile-atc
29 | !profiles/fabmo-profile-dt
30 | !profiles/fabmo-profile-dtmax
31 | !profiles/fabmo-profile-dtatc
32 | !profiles/fabmo-handibot-2
33 | !profiles/default
34 | !profiles/README.md
35 | install_token
36 | runtime/opensbp/test.sbp
37 | package-lock.json
38 |
--------------------------------------------------------------------------------
/.husky/pre-commit:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 | . "$(dirname -- "$0")/_/husky.sh"
3 |
4 | npx lint-staged
5 |
--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | unsafe-perm = true
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | dashboard/static/js/libs/socket.io.js
2 | dashboard/static/js/libs/hammer.js
3 | dashboard/static/js/libs/hammer.min.js
4 | dashboard/static/js/libs/jquery.min.js
5 | dashboard/static/js/libs/lockr.min.js
6 | dashboard/static/js/libs/moment.js
7 | dashboard/static/js/libs/pako.min.js
8 | dashboard/static/js/libs/require.js
9 | dashboard/static/js/libs/toastr.min.js
10 | dashboard/static/js/libs/underscore.js
11 | dashboard/static/js/libs/foundation.min.js
12 | dashboard/static/js/libs/backbone.js
13 | dashboard/static/js/events.js
14 | dashboard/static/js/libs/modernizr.js
15 | dashboard/apps/previewer.fma/js/three.js
16 | dashboard/apps/job_manager.fma/js/moment.js
17 | dashboard/apps/job_manager.fma/js/Sortable.js
18 | dashboard/apps/home.fma/js/Sortable.js
19 | dashboard/apps/editor.fma/js/codemirror.js
20 | dashboard/apps/editor.fma/js/cm-addon/**
21 | spindle.js
22 | dashboard/static/js/libs/keyboard.js
23 |
24 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "endOfLine": "lf",
3 | "printWidth": 120
4 | }
5 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "editor.codeActionsOnSave": {
3 | "source.fixAll": "explicit"
4 | }
5 | }
--------------------------------------------------------------------------------
/build_scripts/copy_built_files.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | : "${FABMO_HOME:=/fabmo}"
4 |
5 | cp -R ${FABMO_HOME}/dashboard/static/* ${FABMO_HOME}/dashboard/build/
6 | cp ${FABMO_HOME}/dashboard/build/dashboard.css ${FABMO_HOME}/dashboard/build/css/dashboard.css
7 |
--------------------------------------------------------------------------------
/build_scripts/dev-build.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # Builds my current dev version ... need to have branch identified right!!!
3 |
4 | clear
5 | echo "==> Building dev version"
6 | cd /
7 | echo "--> ... be at root"
8 | echo "--> ... clearing all Fabmo dirs"
9 |
10 | sudo systemctl stop fabmo
11 | echo "--> ... Stopped fabmo service"
12 |
13 | sudo rm -rf /fabmo && sudo rm -rf /opt/fabmo
14 | echo
15 |
16 | echo "--> Cloning current version of FabMo Engine from GitHub"
17 | cd /
18 | sudo git clone https://github.com/fabmo/fabmo-engine ./fabmo
19 |
20 | cd /fabmo
21 | echo
22 |
23 | echo "--> Setting Branch"
24 | sudo git checkout master
25 | git status
26 | echo
27 |
28 | # starts the
29 | cd pythonUtils
30 | make -f MakeFile # installs usb status logger deamon
31 | sudo apt-get install i2c-tools # ensures i2c serial tools are avalible
32 | output=$(i2cdetect -y 1)
33 | if echo "$output" | grep -q "3c"; then # checks if display is connected
34 | sh run_i2c_display.sh & # Runs line in background
35 | fi
36 | unset $output
37 | cd ..
38 |
39 | echo "--> Ready for npm install"
40 | sudo npm install
41 | sudo npm install multer # Used for the usb fileFilesRoutes.js to serve the usb files
42 |
43 | echo
44 | echo "================================================="
45 | echo "==> Seem to have done it ... "
46 | echo "STARTING FabMo!"
47 | echo "================================== check path! =="
48 | echo
49 | sudo npm run dev
50 |
51 |
--------------------------------------------------------------------------------
/config/PtData.xyz:
--------------------------------------------------------------------------------
1 | 0 0 0
2 | 1 0 0
3 | 2 0 0
4 | 3 0 0
5 | 4 0 0
6 | 5 0 0
7 | 6 0 0
8 | 7 0 0
9 | 8 0 0
10 | 9 0 0
11 | 0 1 1
12 | 1 1 1
13 | 2 1 1
14 | 3 1 1
15 | 4 1 1
16 | 5 1 1
17 | 6 1 1
18 | 7 1 1
19 | 8 1 1
20 | 9 1 1
21 | 0 2 2
22 | 1 2 2
23 | 2 2 2
24 | 3 2 2
25 | 4 2 2
26 | 5 2 2
27 | 6 2 2
28 | 7 2 2
29 | 8 2 2
30 | 9 2 2
31 | 0 3 3
32 | 1 3 3
33 | 2 3 3
34 | 3 3 3
35 | 4 3 3
36 | 5 3 3
37 | 6 3 3
38 | 7 3 3
39 | 8 3 3
40 | 9 3 3
41 | 0 4 4
42 | 1 4 4
43 | 2 4 4
44 | 3 4 4
45 | 4 4 4
46 | 5 4 4
47 | 6 4 4
48 | 7 4 4
49 | 8 4 4
50 | 9 4 4
51 | 0 5 5
52 | 1 5 5
53 | 2 5 5
54 | 3 5 5
55 | 4 5 5
56 | 5 5 5
57 | 6 5 5
58 | 7 5 5
59 | 8 5 5
60 | 9 5 5
61 | 0 6 6
62 | 1 6 6
63 | 2 6 6
64 | 3 6 6
65 | 4 6 6
66 | 5 6 6
67 | 6 6 6
68 | 7 6 6
69 | 8 6 6
70 | 9 6 6
71 | 0 7 7
72 | 1 7 7
73 | 2 7 7
74 | 3 7 7
75 | 4 7 7
76 | 5 7 7
77 | 6 7 7
78 | 7 7 7
79 | 8 7 7
80 | 9 7 7
81 | 0 8 8
82 | 1 8 8
83 | 2 8 8
84 | 3 8 8
85 | 4 8 8
86 | 5 8 8
87 | 6 8 8
88 | 7 8 8
89 | 8 8 8
90 | 9 8 8
91 | 0 9 9
92 | 1 9 9
93 | 2 9 9
94 | 3 9 9
95 | 4 9 9
96 | 5 9 9
97 | 6 9 9
98 | 7 9 9
99 | 8 9 9
100 | 9 9 9
101 |
--------------------------------------------------------------------------------
/config/dashboard_config.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable no-undef */
2 | /* eslint-disable no-unused-vars */
3 | /*
4 | * dashboard_config.js
5 | *
6 | * This configuration object is for storing configuration related to the dashboard.
7 | * There really isn't anything special about it.
8 | */
9 | var Config = require("./config").Config;
10 | var log = require("../log").logger("dashboard_config");
11 |
12 | // The DashboardConfig object keeps track of engine-specific settings
13 | var DashboardConfig = function (driver) {
14 | Config.call(this, "dashboard");
15 | this.driver = driver;
16 | };
17 | util.inherits(DashboardConfig, Config);
18 |
19 | DashboardConfig.prototype.apply = function (callback) {
20 | // Ideally, nothing happens here, because this is just a data store
21 | };
22 |
23 | exports.DashboardConfig = DashboardConfig;
24 |
--------------------------------------------------------------------------------
/config/profile_config.js:
--------------------------------------------------------------------------------
1 | /*
2 | * profile_config.js
3 | *
4 | * This module provides the profile configuration.
5 | * Since profiles are not editable, this is pretty simple.
6 | */
7 | var profiles = require("../profiles");
8 |
9 | // The profile config object isn't a proper config object, it's just sort of a pass-through
10 | // that returns the list of profiles defined for this tool. They're not editable, so it doesn't
11 | // need to be more than that.
12 | var ProfileConfig = function () {};
13 |
14 | // Return the current list of profiles
15 | ProfileConfig.prototype.getData = function () {
16 | return profiles.getProfiles();
17 | };
18 |
19 | exports.ProfileConfig = ProfileConfig;
20 |
--------------------------------------------------------------------------------
/dashboard/apps/apps.fma/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/apps.fma/icon.png
--------------------------------------------------------------------------------
/dashboard/apps/apps.fma/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Apps
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | You are currently in the "Default" Profile. Use the Configuration Manager (left-side menu) to select Profile appropriate for your specific Machine.
18 |
19 |
20 | By default, FabMo will require you to press the Start Button on your machine to begin any operation.
21 | An "admin" user may disable this Safety "Authorization" requirement by unchecking it in the
22 | Machine Menu of the Configuration Manager (left-side menu).
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/dashboard/apps/apps.fma/old_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/apps.fma/old_icon.png
--------------------------------------------------------------------------------
/dashboard/apps/apps.fma/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name":"Apps",
3 | "main":"./index.html",
4 | "icon":"icon.png",
5 | "icon_color":"#313366",
6 | "icon_display":"none",
7 | "version":"0.0.1",
8 | "author":"Brendan Collins",
9 | "website":"http://shopbottools.com",
10 | "id":"apps",
11 | "description":"System app for managing optionally installed apps"
12 | }
--------------------------------------------------------------------------------
/dashboard/apps/configuration.fma/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/configuration.fma/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/dashboard/apps/configuration.fma/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/configuration.fma/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/dashboard/apps/configuration.fma/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/configuration.fma/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/dashboard/apps/configuration.fma/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/configuration.fma/icon.png
--------------------------------------------------------------------------------
/dashboard/apps/configuration.fma/images/Thumbs.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/configuration.fma/images/Thumbs.db
--------------------------------------------------------------------------------
/dashboard/apps/configuration.fma/images/delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/configuration.fma/images/delete.png
--------------------------------------------------------------------------------
/dashboard/apps/configuration.fma/images/download.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/configuration.fma/images/download.png
--------------------------------------------------------------------------------
/dashboard/apps/configuration.fma/images/ex.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/configuration.fma/images/ex.png
--------------------------------------------------------------------------------
/dashboard/apps/configuration.fma/images/grantadmin.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
8 |
9 |
10 |
13 |
14 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/dashboard/apps/configuration.fma/images/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/configuration.fma/images/loading.gif
--------------------------------------------------------------------------------
/dashboard/apps/configuration.fma/images/shopbot_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/configuration.fma/images/shopbot_logo.png
--------------------------------------------------------------------------------
/dashboard/apps/configuration.fma/old_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/configuration.fma/old_icon.png
--------------------------------------------------------------------------------
/dashboard/apps/configuration.fma/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name":"Configuration",
3 | "main":"./index.html",
4 | "icon":"icon.png",
5 | "icon_color":"#313366",
6 | "icon_display":"none",
7 | "version":"0.0.1",
8 | "author":"Ryan Sturmer",
9 | "website":"http://shopbottools.com",
10 | "id":"config",
11 | "description":"System app for editing tool configuration and settings"
12 | }
13 |
--------------------------------------------------------------------------------
/dashboard/apps/editor.fma/component.json:
--------------------------------------------------------------------------------
1 | {
2 | "name":"FabMo Editor App",
3 | "version":"0.0.1",
4 | "dependencies" : {
5 | "codemirror" : "latest",
6 | "jquery" : "latest"
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/dashboard/apps/editor.fma/css/syntax.css:
--------------------------------------------------------------------------------
1 | .cm-s-fabmo span.cm-meta { color: #FF1717; }
2 | .cm-s-fabmo span.cm-keyword { line-height: 1em; font-weight: bold; color: #7F0055; }
3 | .cm-s-fabmo span.cm-atom { color: #219; font-weight: bold; }
4 | .cm-s-fabmo span.cm-number { color: #00f; }
5 | .cm-s-fabmo span.cm-def { color: #00f; }
6 | .cm-s-fabmo span.cm-systemvar { color: #6c0606;}
7 | .cm-s-fabmo span.cm-variable { color: #6c0606;}
8 | .cm-s-fabmo span.cm-variable-2 { color: #69c605; }
9 | .cm-s-fabmo span.cm-variable-3 { color: #296506; font-weight: bold; }
10 | .cm-s-fabmo span.cm-property { color: black; }
11 | .cm-s-fabmo span.cm-operator { color: black; }
12 | .cm-s-fabmo span.cm-cmd { color: #0686bd; font-weight: bold; }
13 | .cm-s-fabmo span.cm-comment { color: #AAA; }
14 | .cm-s-fabmo span.cm-string { color: rgb(182, 117, 5); }
15 | .cm-s-fabmo span.cm-string-2 { color: #f50; }
16 | .cm-s-fabmo span.cm-qualifier { color: #555; }
17 | .cm-s-fabmo span.cm-builtin { color: #30a; }
18 | .cm-s-fabmo span.cm-bracket { color: #737319; }
19 | .cm-s-fabmo span.cm-tag { color: #170; }
20 | .cm-s-fabmo span.cm-attribute { color: #00c; }
21 | .cm-s-fabmo span.cm-link { color: #219; }
22 | .cm-s-fabmo span.cm-error { color: white; background-color: #9C210C; border-radius: 3px; }
23 |
24 | .cm-s-fabmo .CodeMirror-activeline-background { background: #e8f2ff; }
25 | .cm-s-fabmo .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }
26 |
--------------------------------------------------------------------------------
/dashboard/apps/editor.fma/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/editor.fma/icon.png
--------------------------------------------------------------------------------
/dashboard/apps/editor.fma/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name":"Editor",
3 | "main":"./index.html",
4 | "icon":"icon.png",
5 | "icon_color":"#313366",
6 | "icon_display":"none",
7 | "version":"0.0.2",
8 | "author":"Ryan Sturmer",
9 | "website":"http://shopbottools.com",
10 | "id":"editor",
11 | "description":"System app for editing and running machining code"
12 | }
13 |
--------------------------------------------------------------------------------
/dashboard/apps/job_manager.fma/css/images/download151.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
11 |
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 |
--------------------------------------------------------------------------------
/dashboard/apps/job_manager.fma/css/images/player6.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
9 |
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 |
--------------------------------------------------------------------------------
/dashboard/apps/job_manager.fma/css/images/settings46.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
9 |
15 |
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 |
--------------------------------------------------------------------------------
/dashboard/apps/job_manager.fma/css/images/visible9.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
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 |
--------------------------------------------------------------------------------
/dashboard/apps/job_manager.fma/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/job_manager.fma/icon.png
--------------------------------------------------------------------------------
/dashboard/apps/job_manager.fma/images/Sorting icons.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/job_manager.fma/images/Sorting icons.psd
--------------------------------------------------------------------------------
/dashboard/apps/job_manager.fma/images/Thumbs.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/job_manager.fma/images/Thumbs.db
--------------------------------------------------------------------------------
/dashboard/apps/job_manager.fma/images/Untitled-1.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/job_manager.fma/images/Untitled-1.psd
--------------------------------------------------------------------------------
/dashboard/apps/job_manager.fma/images/arrow_key.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/job_manager.fma/images/arrow_key.png
--------------------------------------------------------------------------------
/dashboard/apps/job_manager.fma/images/back_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/job_manager.fma/images/back_disabled.png
--------------------------------------------------------------------------------
/dashboard/apps/job_manager.fma/images/back_enabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/job_manager.fma/images/back_enabled.png
--------------------------------------------------------------------------------
/dashboard/apps/job_manager.fma/images/back_enabled_hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/job_manager.fma/images/back_enabled_hover.png
--------------------------------------------------------------------------------
/dashboard/apps/job_manager.fma/images/click.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/job_manager.fma/images/click.png
--------------------------------------------------------------------------------
/dashboard/apps/job_manager.fma/images/delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/job_manager.fma/images/delete.png
--------------------------------------------------------------------------------
/dashboard/apps/job_manager.fma/images/download.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/job_manager.fma/images/download.png
--------------------------------------------------------------------------------
/dashboard/apps/job_manager.fma/images/droptarget.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/job_manager.fma/images/droptarget.png
--------------------------------------------------------------------------------
/dashboard/apps/job_manager.fma/images/edit_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/job_manager.fma/images/edit_icon.png
--------------------------------------------------------------------------------
/dashboard/apps/job_manager.fma/images/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/job_manager.fma/images/favicon.ico
--------------------------------------------------------------------------------
/dashboard/apps/job_manager.fma/images/forward_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/job_manager.fma/images/forward_disabled.png
--------------------------------------------------------------------------------
/dashboard/apps/job_manager.fma/images/forward_enabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/job_manager.fma/images/forward_enabled.png
--------------------------------------------------------------------------------
/dashboard/apps/job_manager.fma/images/forward_enabled_hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/job_manager.fma/images/forward_enabled_hover.png
--------------------------------------------------------------------------------
/dashboard/apps/job_manager.fma/images/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/job_manager.fma/images/loading.gif
--------------------------------------------------------------------------------
/dashboard/apps/job_manager.fma/images/shopbot_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/job_manager.fma/images/shopbot_logo.png
--------------------------------------------------------------------------------
/dashboard/apps/job_manager.fma/images/sort_asc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/job_manager.fma/images/sort_asc.png
--------------------------------------------------------------------------------
/dashboard/apps/job_manager.fma/images/sort_asc_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/job_manager.fma/images/sort_asc_disabled.png
--------------------------------------------------------------------------------
/dashboard/apps/job_manager.fma/images/sort_both.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/job_manager.fma/images/sort_both.png
--------------------------------------------------------------------------------
/dashboard/apps/job_manager.fma/images/sort_desc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/job_manager.fma/images/sort_desc.png
--------------------------------------------------------------------------------
/dashboard/apps/job_manager.fma/images/sort_desc_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/job_manager.fma/images/sort_desc_disabled.png
--------------------------------------------------------------------------------
/dashboard/apps/job_manager.fma/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name":"Job Manager",
3 | "main":"./index.html",
4 | "icon":"icon.png",
5 | "icon_color":"#313366",
6 | "icon_display":"none",
7 | "version":"0.0.1",
8 | "author":"Brendan Collins",
9 | "website":"http://shopbottools.com",
10 | "id":"job-manager",
11 | "description":"System app for submitting CAM files to the tool and managing the job queue"
12 | }
13 |
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/css/images/Sorting icons.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/css/images/Sorting icons.psd
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/css/images/Thumbs.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/css/images/Thumbs.db
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/css/images/arrow_key.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/css/images/arrow_key.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/css/images/back_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/css/images/back_disabled.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/css/images/back_enabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/css/images/back_enabled.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/css/images/back_enabled_hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/css/images/back_enabled_hover.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/css/images/delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/css/images/delete.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/css/images/details_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/css/images/details_close.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/css/images/details_open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/css/images/details_open.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/css/images/download.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/css/images/download.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/css/images/edit_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/css/images/edit_icon.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/css/images/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/css/images/favicon.ico
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/css/images/forward_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/css/images/forward_disabled.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/css/images/forward_enabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/css/images/forward_enabled.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/css/images/forward_enabled_hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/css/images/forward_enabled_hover.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/css/images/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/css/images/loading.gif
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/css/images/play_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/css/images/play_icon.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/css/images/shopbot_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/css/images/shopbot_logo.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/css/images/sort_asc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/css/images/sort_asc.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/css/images/sort_asc_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/css/images/sort_asc_disabled.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/css/images/sort_both.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/css/images/sort_both.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/css/images/sort_desc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/css/images/sort_desc.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/css/images/sort_desc_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/css/images/sort_desc_disabled.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/icon.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/images/Sorting icons.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/images/Sorting icons.psd
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/images/Thumbs.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/images/Thumbs.db
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/images/arrow_key.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/images/arrow_key.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/images/back_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/images/back_disabled.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/images/back_enabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/images/back_enabled.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/images/back_enabled_hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/images/back_enabled_hover.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/images/delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/images/delete.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/images/download.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/images/download.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/images/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/images/favicon.ico
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/images/forward_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/images/forward_disabled.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/images/forward_enabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/images/forward_enabled.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/images/forward_enabled_hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/images/forward_enabled_hover.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/images/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/images/loading.gif
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/images/shopbot_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/images/shopbot_logo.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/images/signal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/images/signal.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/images/signal_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/images/signal_0.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/images/signal_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/images/signal_1.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/images/signal_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/images/signal_2.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/images/signal_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/images/signal_3.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/images/signal_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/images/signal_4.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/images/sort_asc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/images/sort_asc.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/images/sort_asc_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/images/sort_asc_disabled.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/images/sort_both.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/images/sort_both.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/images/sort_desc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/images/sort_desc.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/images/sort_desc_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/macro_manager.fma/images/sort_desc_disabled.png
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Macro Manager
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | Menu
17 |
18 |
23 |
24 |
25 |
26 |
27 |
28 |
29 | Custom #
30 | Name
31 | Description
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/dashboard/apps/macro_manager.fma/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name":"Custom Macros",
3 | "main":"./index.html",
4 | "icon":"icon.png",
5 | "icon_color":"#313366",
6 | "icon_display":"none",
7 | "version":"0.0.1",
8 | "author":"Ryan Sturmer",
9 | "website":"http://shopbottools.com",
10 | "id":"macros",
11 | "description":"System app for managing and running custom macros"
12 | }
13 |
--------------------------------------------------------------------------------
/dashboard/apps/network_manager.fma/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/network_manager.fma/icon.png
--------------------------------------------------------------------------------
/dashboard/apps/network_manager.fma/images/signal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/network_manager.fma/images/signal.png
--------------------------------------------------------------------------------
/dashboard/apps/network_manager.fma/images/signal_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/network_manager.fma/images/signal_0.png
--------------------------------------------------------------------------------
/dashboard/apps/network_manager.fma/images/signal_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/network_manager.fma/images/signal_1.png
--------------------------------------------------------------------------------
/dashboard/apps/network_manager.fma/images/signal_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/network_manager.fma/images/signal_2.png
--------------------------------------------------------------------------------
/dashboard/apps/network_manager.fma/images/signal_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/network_manager.fma/images/signal_3.png
--------------------------------------------------------------------------------
/dashboard/apps/network_manager.fma/images/signal_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/network_manager.fma/images/signal_4.png
--------------------------------------------------------------------------------
/dashboard/apps/network_manager.fma/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name":"Network Manager",
3 | "main":"./index.html",
4 | "icon":"icon.png",
5 | "icon_color":"#313366",
6 | "icon_display":"none",
7 | "version":"0.0.1",
8 | "author":"Ryan Sturmer",
9 | "website":"http://shopbottools.com",
10 | "id":"network-manager",
11 | "description":"System app for configuring network interfaces"
12 | }
13 |
--------------------------------------------------------------------------------
/dashboard/apps/previewer.fma/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/previewer.fma/icon.png
--------------------------------------------------------------------------------
/dashboard/apps/previewer.fma/images/help.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/previewer.fma/images/help.png
--------------------------------------------------------------------------------
/dashboard/apps/previewer.fma/images/pause.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/previewer.fma/images/pause.png
--------------------------------------------------------------------------------
/dashboard/apps/previewer.fma/images/play.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/previewer.fma/images/play.png
--------------------------------------------------------------------------------
/dashboard/apps/previewer.fma/images/reset.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/previewer.fma/images/reset.png
--------------------------------------------------------------------------------
/dashboard/apps/previewer.fma/images/settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/previewer.fma/images/settings.png
--------------------------------------------------------------------------------
/dashboard/apps/previewer.fma/images/x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/previewer.fma/images/x.png
--------------------------------------------------------------------------------
/dashboard/apps/previewer.fma/images/y.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/previewer.fma/images/y.png
--------------------------------------------------------------------------------
/dashboard/apps/previewer.fma/images/z.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/previewer.fma/images/z.png
--------------------------------------------------------------------------------
/dashboard/apps/previewer.fma/js/cookie.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Get and set cookies.
3 | *
4 | * @author Joseph Coffland
5 | */
6 |
7 | 'use strict'
8 |
9 |
10 | var prefix = 'preview-';
11 |
12 |
13 | module.exports = {
14 | get: function (name, defaultValue) {
15 | var decodedCookie = decodeURIComponent(document.cookie);
16 | var ca = decodedCookie.split(';');
17 | name = prefix + name + '=';
18 |
19 | for (var i = 0; i < ca.length; i++) {
20 | var c = ca[i];
21 | while (c.charAt(0) == ' ') c = c.substring(1);
22 | if (!c.indexOf(name)) return c.substring(name.length, c.length);
23 | }
24 |
25 | return defaultValue;
26 | },
27 |
28 |
29 | set: function (name, value, days) {
30 | var offset = 2147483647; // Max value
31 | if (typeof days != 'undefined') offset = days * 24 * 60 * 60 * 1000;
32 | var d = new Date();
33 | d.setTime(d.getTime() + offset);
34 | var expires = 'expires=' + d.toUTCString();
35 | document.cookie = prefix + name + '=' + value + ';' + expires + ';path=/';
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/dashboard/apps/previewer.fma/js/tool.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Tool widget.
3 | *
4 | * @author Joseph Coffland
5 | */
6 |
7 | 'use strict';
8 |
9 |
10 | var util = require('./util');
11 | var cookie = require('./cookie');
12 |
13 |
14 | module.exports = function(scene, update) {
15 | var self = this;
16 |
17 |
18 | self.setPosition = function (v) {
19 | self.mesh.position.set(v[0], v[1], v[2] + self.size / 2)
20 | }
21 |
22 |
23 | self.update = function (size, position) {
24 | var material = new THREE.MeshPhongMaterial({
25 | shininess: 30,
26 | specular: 0x888888,
27 | color: 0xffff00,
28 | opacity: 0.8,
29 | transparent: true
30 | });
31 |
32 | self.size = size / 8;
33 | var geometry = new THREE.CylinderGeometry(0, self.size / 4, self.size, 32);
34 | self.mesh = new THREE.Mesh(geometry, material);
35 | self.mesh.rotation.x = -Math.PI / 2;
36 | self.setPosition(position);
37 |
38 | scene.add(self.mesh);
39 | self.mesh.visible = !!self.show;
40 | }
41 |
42 |
43 | self.setShow = function(show) {
44 | self.show = show;
45 | self.mesh.visible = !!show;
46 | cookie.set('show-tool', show ? 1 : 0);
47 | update();
48 | }
49 |
50 |
51 | // Show
52 | self.show = parseInt(cookie.get('show-tool', 1));
53 | util.connectSetting('show-tool', self.show, self.setShow);
54 | }
55 |
--------------------------------------------------------------------------------
/dashboard/apps/previewer.fma/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name":"Previewer",
3 | "main":"./index.html",
4 | "icon":"icon.png",
5 | "icon_color":"#313366",
6 | "icon_display":"none",
7 | "version":"0.2.0",
8 | "author":"Joseph Coffland, Alex Canales, Ted Hall",
9 | "website":"http://shopbottools.com",
10 | "id":"previewer",
11 | "description":"System app for previewing machining code"
12 | }
13 |
--------------------------------------------------------------------------------
/dashboard/apps/sb4.fma/assets/docs/ComRef.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/sb4.fma/assets/docs/ComRef.pdf
--------------------------------------------------------------------------------
/dashboard/apps/sb4.fma/assets/docs/Handibot 2 MANUAL Safe Use Source_v002.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/sb4.fma/assets/docs/Handibot 2 MANUAL Safe Use Source_v002.pdf
--------------------------------------------------------------------------------
/dashboard/apps/sb4.fma/assets/docs/No_Internet.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/sb4.fma/assets/docs/No_Internet.pdf
--------------------------------------------------------------------------------
/dashboard/apps/sb4.fma/assets/icon_jobs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/sb4.fma/assets/icon_jobs.png
--------------------------------------------------------------------------------
/dashboard/apps/sb4.fma/assets/icon_jobs_w.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/sb4.fma/assets/icon_jobs_w.png
--------------------------------------------------------------------------------
/dashboard/apps/sb4.fma/assets/icon_video.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/sb4.fma/assets/icon_video.png
--------------------------------------------------------------------------------
/dashboard/apps/sb4.fma/assets/image6b.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/sb4.fma/assets/image6b.gif
--------------------------------------------------------------------------------
/dashboard/apps/sb4.fma/assets/image6b.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/sb4.fma/assets/image6b.jpg
--------------------------------------------------------------------------------
/dashboard/apps/sb4.fma/assets/image6b_transparent.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/sb4.fma/assets/image6b_transparent.png
--------------------------------------------------------------------------------
/dashboard/apps/sb4.fma/assets/info_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/sb4.fma/assets/info_icon.png
--------------------------------------------------------------------------------
/dashboard/apps/sb4.fma/assets/pad_icon_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/sb4.fma/assets/pad_icon_01.png
--------------------------------------------------------------------------------
/dashboard/apps/sb4.fma/assets/pad_icon_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/sb4.fma/assets/pad_icon_02.png
--------------------------------------------------------------------------------
/dashboard/apps/sb4.fma/assets/pad_icon_03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/sb4.fma/assets/pad_icon_03.png
--------------------------------------------------------------------------------
/dashboard/apps/sb4.fma/assets/settings_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/sb4.fma/assets/settings_icon.png
--------------------------------------------------------------------------------
/dashboard/apps/sb4.fma/css/css-notes.txt:
--------------------------------------------------------------------------------
1 | body.noScroll body.dialogShowing { /* ...or body.dialogShowing */
2 | overflow: hidden;
3 | }
4 |
--------------------------------------------------------------------------------
/dashboard/apps/sb4.fma/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/sb4.fma/icon.png
--------------------------------------------------------------------------------
/dashboard/apps/sb4.fma/js/message_g2.js:
--------------------------------------------------------------------------------
1 | //..................................... SEND Message to G2 Stream VIA Manual RUNTIME-Raw
2 | function sendG2message (message) {
3 | console.log("sending ====> ", message);
4 | fabmo.manualRunGCode(message)
5 | }
6 |
--------------------------------------------------------------------------------
/dashboard/apps/sb4.fma/js/motion.js:
--------------------------------------------------------------------------------
1 | //..................................... SEND DATA TO FABMO VIA Manual RUNTIME ##### PRIMARY Motion from Scrolling / Swiping
2 | let last_speed
3 | function doMotion (x, y, z, speed) {
4 | var err // TODO: expand to all possible axes and create fast scan for those being used
5 | console.log("NEXT doMotion loc: " + x, y, z, speed);
6 | var code = ['G1']
7 | if(x != undefined) {code.push('X' + x.toFixed(4));}
8 | if(y != undefined) {code.push('Y' + y.toFixed(4));}
9 | if(z != undefined) {code.push('Z' + z.toFixed(4));}
10 | if(speed != undefined) {
11 | last_speed = speed;
12 | code.push('F' + speed.toFixed(0));
13 | } else if (last_speed != undefined) {
14 | code.push('F' + last_speed.toFixed(0));
15 | } else {
16 | code.push('F60')
17 | }
18 | //code.push('F240');
19 | //code.push('F60');
20 | fabmo.manualRunGCode(code.join(''))
21 | //PAnEvent = false;
22 | beep(20, 1800, 1);
23 | }
24 |
25 | // TODO: Implement jerk change from slow abrupt to smoother ... ramp up with manual speed feed ... not changing jerk before stop
26 | function changeJerk (x, y, z) {
27 |
28 | }
29 |
30 | function killMotion () { // Send KILL if Moving ...
31 | if (globals.G2_stat === 5) {
32 | console.log('#### KILL INITIATED! from timer if moving');
33 | fabmo.manualStop();
34 |
35 | //fabmo.manualRunGCode('\x04\n');
36 | //fabmo.manualRunGCode('\x04\n M0\n');
37 | //fabmo.manualRunGCode('M100.1({zl:0})\n M0\n G90\n');
38 | //fabmo.manualRunGCode('M100({gc:"M0"})');
39 | }
40 | // globals.G2_killed = true;
41 | }
42 |
--------------------------------------------------------------------------------
/dashboard/apps/sb4.fma/js/vendor/jquery.cookie.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * jQuery Cookie Plugin v1.4.1
3 | * https://github.com/carhartl/jquery-cookie
4 | *
5 | * Copyright 2013 Klaus Hartl
6 | * Released under the MIT license
7 | */
8 | !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a){function b(a){return h.raw?a:encodeURIComponent(a)}function c(a){return h.raw?a:decodeURIComponent(a)}function d(a){return b(h.json?JSON.stringify(a):String(a))}function e(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(g," ")),h.json?JSON.parse(a):a}catch(b){}}function f(b,c){var d=h.raw?b:e(b);return a.isFunction(c)?c(d):d}var g=/\+/g,h=a.cookie=function(e,g,i){if(void 0!==g&&!a.isFunction(g)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setTime(+k+864e5*j)}return document.cookie=[b(e),"=",d(g),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=e?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;o>n;n++){var p=m[n].split("="),q=c(p.shift()),r=p.join("=");if(e&&e===q){l=f(r,g);break}e||void 0===(r=f(r))||(l[q]=r)}return l};h.defaults={},a.removeCookie=function(b,c){return void 0===a.cookie(b)?!1:(a.cookie(b,"",a.extend({},c,{expires:-1})),!a.cookie(b))}});
9 |
--------------------------------------------------------------------------------
/dashboard/apps/sb4.fma/js/video.js:
--------------------------------------------------------------------------------
1 |
2 | initVideo = function() {
3 | var img = document.getElementById('video');
4 | var img1 = document.getElementById('video1');
5 |
6 | function resize() {
7 | img.width = g.COnt_Width/2;
8 | img.height = g.COnt_Height;
9 | img1.width = g.COnt_Width/2;
10 | img1.height = g.COnt_Height;
11 | }
12 |
13 | function reload() {
14 | img.onload = resize;
15 | img.src = 'http://' + location.hostname + ':3141?' + Math.random()
16 | img1.onload = resize;
17 | img1.src = 'http://' + location.hostname + ':3142?' + Math.random()
18 | }
19 |
20 | $('#sbp-container').on('click', function () {
21 | img.onclick = reload;
22 | img1.onclick = reload;
23 | reload();
24 | }
25 | )
26 | };
--------------------------------------------------------------------------------
/dashboard/apps/sb4.fma/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ShopBot-Sb4",
3 | "main": "./index.html",
4 | "icon": "icon.png",
5 | "icon_color": "#327c7e",
6 | "author": "Ted Hall",
7 | "version": "4.0.79",
8 | "website": "http://www.shopbottools.com",
9 | "description": "ShopBot CNC Interface - Sb4",
10 | "id": "fabmo-sb4",
11 | "devDependencies": {
12 | "grunt": "^0.4.5",
13 | "grunt-zip": "^0.17.1"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/dashboard/apps/selftest.fma/css/style.css:
--------------------------------------------------------------------------------
1 | .go {
2 | color: darkgreen;
3 | width: 1px;
4 | cursor: pointer;
5 | }
6 |
7 | #test_table {
8 | width: 100%;
9 | padding: 10px;
10 | }
11 |
12 |
--------------------------------------------------------------------------------
/dashboard/apps/selftest.fma/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/selftest.fma/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/dashboard/apps/selftest.fma/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/selftest.fma/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/dashboard/apps/selftest.fma/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/selftest.fma/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/dashboard/apps/selftest.fma/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/selftest.fma/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/dashboard/apps/selftest.fma/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/selftest.fma/icon.png
--------------------------------------------------------------------------------
/dashboard/apps/selftest.fma/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name":"Self-Test App",
3 | "main":"./index.html",
4 | "icon":"icon.png",
5 | "icon_color":"#313366",
6 | "icon_display":"none",
7 | "version":"0.0.0",
8 | "author":"Ryan Sturmer",
9 | "website":"http://shopbottools.com",
10 | "id":"selftest",
11 | "description":"System app for running self tests on the fabmo software framework."
12 | }
13 |
--------------------------------------------------------------------------------
/dashboard/apps/selftest.fma/path/sample.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/selftest.fma/path/sample.pdf
--------------------------------------------------------------------------------
/dashboard/apps/video.fma/__pycache__/v4l2.cpython-311.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/video.fma/__pycache__/v4l2.cpython-311.pyc
--------------------------------------------------------------------------------
/dashboard/apps/video.fma/__pycache__/v4l2.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/video.fma/__pycache__/v4l2.cpython-39.pyc
--------------------------------------------------------------------------------
/dashboard/apps/video.fma/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/video.fma/icon.png
--------------------------------------------------------------------------------
/dashboard/apps/video.fma/images/in-use.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/video.fma/images/in-use.jpg
--------------------------------------------------------------------------------
/dashboard/apps/video.fma/images/offline.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/apps/video.fma/images/offline.jpg
--------------------------------------------------------------------------------
/dashboard/apps/video.fma/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Camera
6 |
7 |
28 |
29 |
30 |
31 |
camera 1
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/dashboard/apps/video.fma/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name":"Video App",
3 | "main":"./index.html",
4 | "icon":"icon.png",
5 | "icon_color":"#313366",
6 | "icon_display":"none",
7 | "version":"1.0.0",
8 | "author":"Joseph Coffland",
9 | "website":"http://shopbottools.com",
10 | "id":"video",
11 | "description":"System app for USB video camera"
12 | }
13 |
--------------------------------------------------------------------------------
/dashboard/img/icon_spindle_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/img/icon_spindle_off.png
--------------------------------------------------------------------------------
/dashboard/static/docs/ComRef.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/docs/ComRef.pdf
--------------------------------------------------------------------------------
/dashboard/static/docs/Handibot 2 MANUAL Safe Use Source_v002.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/docs/Handibot 2 MANUAL Safe Use Source_v002.pdf
--------------------------------------------------------------------------------
/dashboard/static/docs/No_Internet.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/docs/No_Internet.pdf
--------------------------------------------------------------------------------
/dashboard/static/docs/xComRef.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/docs/xComRef.pdf
--------------------------------------------------------------------------------
/dashboard/static/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/favicon.ico
--------------------------------------------------------------------------------
/dashboard/static/fonts/ShopBotStandard-Regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/fonts/ShopBotStandard-Regular.otf
--------------------------------------------------------------------------------
/dashboard/static/fonts/droid-sans-mono-v7-latin-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/fonts/droid-sans-mono-v7-latin-regular.eot
--------------------------------------------------------------------------------
/dashboard/static/fonts/droid-sans-mono-v7-latin-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/fonts/droid-sans-mono-v7-latin-regular.ttf
--------------------------------------------------------------------------------
/dashboard/static/fonts/droid-sans-mono-v7-latin-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/fonts/droid-sans-mono-v7-latin-regular.woff
--------------------------------------------------------------------------------
/dashboard/static/fonts/droid-sans-mono-v7-latin-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/fonts/droid-sans-mono-v7-latin-regular.woff2
--------------------------------------------------------------------------------
/dashboard/static/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/dashboard/static/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/dashboard/static/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/dashboard/static/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/dashboard/static/fonts/sourcesanspro-bold-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/fonts/sourcesanspro-bold-webfont.eot
--------------------------------------------------------------------------------
/dashboard/static/fonts/sourcesanspro-bold-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/fonts/sourcesanspro-bold-webfont.ttf
--------------------------------------------------------------------------------
/dashboard/static/fonts/sourcesanspro-bold-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/fonts/sourcesanspro-bold-webfont.woff
--------------------------------------------------------------------------------
/dashboard/static/fonts/sourcesanspro-bold-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/fonts/sourcesanspro-bold-webfont.woff2
--------------------------------------------------------------------------------
/dashboard/static/fonts/sourcesanspro-boldit-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/fonts/sourcesanspro-boldit-webfont.eot
--------------------------------------------------------------------------------
/dashboard/static/fonts/sourcesanspro-boldit-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/fonts/sourcesanspro-boldit-webfont.ttf
--------------------------------------------------------------------------------
/dashboard/static/fonts/sourcesanspro-boldit-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/fonts/sourcesanspro-boldit-webfont.woff
--------------------------------------------------------------------------------
/dashboard/static/fonts/sourcesanspro-boldit-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/fonts/sourcesanspro-boldit-webfont.woff2
--------------------------------------------------------------------------------
/dashboard/static/fonts/sourcesanspro-extralight-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/fonts/sourcesanspro-extralight-webfont.eot
--------------------------------------------------------------------------------
/dashboard/static/fonts/sourcesanspro-extralight-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/fonts/sourcesanspro-extralight-webfont.ttf
--------------------------------------------------------------------------------
/dashboard/static/fonts/sourcesanspro-extralight-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/fonts/sourcesanspro-extralight-webfont.woff
--------------------------------------------------------------------------------
/dashboard/static/fonts/sourcesanspro-extralight-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/fonts/sourcesanspro-extralight-webfont.woff2
--------------------------------------------------------------------------------
/dashboard/static/fonts/sourcesanspro-extralightit-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/fonts/sourcesanspro-extralightit-webfont.eot
--------------------------------------------------------------------------------
/dashboard/static/fonts/sourcesanspro-extralightit-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/fonts/sourcesanspro-extralightit-webfont.ttf
--------------------------------------------------------------------------------
/dashboard/static/fonts/sourcesanspro-extralightit-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/fonts/sourcesanspro-extralightit-webfont.woff
--------------------------------------------------------------------------------
/dashboard/static/fonts/sourcesanspro-extralightit-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/fonts/sourcesanspro-extralightit-webfont.woff2
--------------------------------------------------------------------------------
/dashboard/static/fonts/sourcesanspro-it-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/fonts/sourcesanspro-it-webfont.eot
--------------------------------------------------------------------------------
/dashboard/static/fonts/sourcesanspro-it-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/fonts/sourcesanspro-it-webfont.ttf
--------------------------------------------------------------------------------
/dashboard/static/fonts/sourcesanspro-it-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/fonts/sourcesanspro-it-webfont.woff
--------------------------------------------------------------------------------
/dashboard/static/fonts/sourcesanspro-it-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/fonts/sourcesanspro-it-webfont.woff2
--------------------------------------------------------------------------------
/dashboard/static/fonts/sourcesanspro-regular-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/fonts/sourcesanspro-regular-webfont.eot
--------------------------------------------------------------------------------
/dashboard/static/fonts/sourcesanspro-regular-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/fonts/sourcesanspro-regular-webfont.ttf
--------------------------------------------------------------------------------
/dashboard/static/fonts/sourcesanspro-regular-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/fonts/sourcesanspro-regular-webfont.woff
--------------------------------------------------------------------------------
/dashboard/static/fonts/sourcesanspro-regular-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/fonts/sourcesanspro-regular-webfont.woff2
--------------------------------------------------------------------------------
/dashboard/static/img/Thumbs.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/Thumbs.db
--------------------------------------------------------------------------------
/dashboard/static/img/fabmo-f.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
8 |
10 |
11 |
13 |
15 |
17 |
19 |
20 |
--------------------------------------------------------------------------------
/dashboard/static/img/favicon/android-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/favicon/android-icon-144x144.png
--------------------------------------------------------------------------------
/dashboard/static/img/favicon/android-icon-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/favicon/android-icon-192x192.png
--------------------------------------------------------------------------------
/dashboard/static/img/favicon/android-icon-36x36.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/favicon/android-icon-36x36.png
--------------------------------------------------------------------------------
/dashboard/static/img/favicon/android-icon-48x48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/favicon/android-icon-48x48.png
--------------------------------------------------------------------------------
/dashboard/static/img/favicon/android-icon-72x72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/favicon/android-icon-72x72.png
--------------------------------------------------------------------------------
/dashboard/static/img/favicon/android-icon-96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/favicon/android-icon-96x96.png
--------------------------------------------------------------------------------
/dashboard/static/img/favicon/apple-icon-114x114.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/favicon/apple-icon-114x114.png
--------------------------------------------------------------------------------
/dashboard/static/img/favicon/apple-icon-120x120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/favicon/apple-icon-120x120.png
--------------------------------------------------------------------------------
/dashboard/static/img/favicon/apple-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/favicon/apple-icon-144x144.png
--------------------------------------------------------------------------------
/dashboard/static/img/favicon/apple-icon-152x152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/favicon/apple-icon-152x152.png
--------------------------------------------------------------------------------
/dashboard/static/img/favicon/apple-icon-180x180.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/favicon/apple-icon-180x180.png
--------------------------------------------------------------------------------
/dashboard/static/img/favicon/apple-icon-57x57.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/favicon/apple-icon-57x57.png
--------------------------------------------------------------------------------
/dashboard/static/img/favicon/apple-icon-60x60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/favicon/apple-icon-60x60.png
--------------------------------------------------------------------------------
/dashboard/static/img/favicon/apple-icon-72x72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/favicon/apple-icon-72x72.png
--------------------------------------------------------------------------------
/dashboard/static/img/favicon/apple-icon-76x76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/favicon/apple-icon-76x76.png
--------------------------------------------------------------------------------
/dashboard/static/img/favicon/apple-icon-precomposed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/favicon/apple-icon-precomposed.png
--------------------------------------------------------------------------------
/dashboard/static/img/favicon/apple-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/favicon/apple-icon.png
--------------------------------------------------------------------------------
/dashboard/static/img/favicon/browserconfig.xml:
--------------------------------------------------------------------------------
1 |
2 | #ffffff
--------------------------------------------------------------------------------
/dashboard/static/img/favicon/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/favicon/favicon-16x16.png
--------------------------------------------------------------------------------
/dashboard/static/img/favicon/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/favicon/favicon-32x32.png
--------------------------------------------------------------------------------
/dashboard/static/img/favicon/favicon-96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/favicon/favicon-96x96.png
--------------------------------------------------------------------------------
/dashboard/static/img/favicon/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "App",
3 | "icons": [
4 | {
5 | "src": "\/android-icon-36x36.png",
6 | "sizes": "36x36",
7 | "type": "image\/png",
8 | "density": "0.75"
9 | },
10 | {
11 | "src": "\/android-icon-48x48.png",
12 | "sizes": "48x48",
13 | "type": "image\/png",
14 | "density": "1.0"
15 | },
16 | {
17 | "src": "\/android-icon-72x72.png",
18 | "sizes": "72x72",
19 | "type": "image\/png",
20 | "density": "1.5"
21 | },
22 | {
23 | "src": "\/android-icon-96x96.png",
24 | "sizes": "96x96",
25 | "type": "image\/png",
26 | "density": "2.0"
27 | },
28 | {
29 | "src": "\/android-icon-144x144.png",
30 | "sizes": "144x144",
31 | "type": "image\/png",
32 | "density": "3.0"
33 | },
34 | {
35 | "src": "\/android-icon-192x192.png",
36 | "sizes": "192x192",
37 | "type": "image\/png",
38 | "density": "4.0"
39 | }
40 | ]
41 | }
--------------------------------------------------------------------------------
/dashboard/static/img/favicon/ms-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/favicon/ms-icon-144x144.png
--------------------------------------------------------------------------------
/dashboard/static/img/favicon/ms-icon-150x150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/favicon/ms-icon-150x150.png
--------------------------------------------------------------------------------
/dashboard/static/img/favicon/ms-icon-310x310.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/favicon/ms-icon-310x310.png
--------------------------------------------------------------------------------
/dashboard/static/img/favicon/ms-icon-70x70.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/favicon/ms-icon-70x70.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_DROin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_DROin.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_DROout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_DROout.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_apps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_apps.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_apps_w.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_apps_w.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_colapse.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_colapse.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_colapse_r.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_colapse_r.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_details.min.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_details.min.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_details.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_details.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_editor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_editor.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_folder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_folder.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_folder_w.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_folder_w.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_global.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_global.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_global_w.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_global_w.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_go-home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_go-home.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_home.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_home_w.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_home_w.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_jobs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_jobs.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_jobs_w.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_jobs_w.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_keypad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_keypad.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_log.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_log.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_more.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_more.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_mv-xy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_mv-xy.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_network.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_network.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_plus_cross.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_plus_cross.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_refresh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_refresh.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_search.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_search_w.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_search_w.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_settings.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_settings_w.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_settings_w.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_sign_out.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_sign_out.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_social.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_social.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_social_w.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_social_w.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_spindle_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_spindle_off.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_spindle_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_spindle_on.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_status_green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_status_green.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_status_grey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_status_grey.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_status_red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_status_red.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_status_yellow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_status_yellow.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_video.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_video.png
--------------------------------------------------------------------------------
/dashboard/static/img/icon_zero-z.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/icon_zero-z.png
--------------------------------------------------------------------------------
/dashboard/static/img/maingear.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/dashboard/static/img/maingear.png
--------------------------------------------------------------------------------
/dashboard/static/js/app.js:
--------------------------------------------------------------------------------
1 | require("./libs/fabmo.js");
2 |
--------------------------------------------------------------------------------
/dashboard/static/js/models.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable no-undef */
2 | define(function (require) {
3 | var Backbone = require("backbone");
4 | models = {};
5 |
6 | // Model for a single app instance
7 | models.App = Backbone.Model.extend({
8 | defaults: {
9 | name: null,
10 | icon_path: null,
11 | icon_background_color: null,
12 | icon_display: null,
13 | app_path: null,
14 | app_url: null,
15 | id: null,
16 | },
17 | sync: function (method, model, options) {
18 | if (method === "read") {
19 | Backbone.sync(method, model, options);
20 | } else {
21 | console.error("You can not " + method + " the App model");
22 | }
23 | },
24 | });
25 |
26 | // A collection of (all) apps
27 | models.Apps = Backbone.Collection.extend({
28 | model: models.App,
29 | url: "/apps",
30 | parse: function (response) {
31 | apps = response.data.apps;
32 | return apps;
33 | },
34 | });
35 |
36 | return models;
37 | });
38 |
--------------------------------------------------------------------------------
/dashboard/static/js/templates/app-icon-add.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Install Apps...
8 |
--------------------------------------------------------------------------------
/dashboard/static/js/templates/app-icon.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/dashboard/static/js/templates/authentication.html:
--------------------------------------------------------------------------------
1 |
23 |
--------------------------------------------------------------------------------
/debug.js:
--------------------------------------------------------------------------------
1 | /*
2 | * debug.js
3 | *
4 | * This module provides some functions that are used when the engine is run in "debug" mode.
5 | * (Debug mode is enacted by passing the --debug switch to server.js)
6 | *
7 | */
8 | var dashboard = require("./dashboard");
9 | var log = require("./log").logger("debug");
10 | var config = require("./config");
11 | var path = require("path");
12 |
13 | var watch_semaphore = 0;
14 |
15 | // App reloader
16 | var appReloader = function (event, pth, details) {
17 | pth = path.normalize(details.watchedPath || details.path);
18 |
19 | // Don't watch for changes if there is an update in progress
20 | if (watch_semaphore) {
21 | log.warn(
22 | "Not reloading " + pth + " because a reload is already in progress."
23 | );
24 | return;
25 | }
26 |
27 | // Determine which app changed, and re-copy that app
28 | var app_index = dashboard.getAppIndex();
29 | for (var app_id in app_index) {
30 | var app_path = app_index[app_id].app_archive_path;
31 | app_path = path.normalize(app_path);
32 | }
33 | };
34 |
35 | // This function is called (if enabled) at application startup.
36 | // Nominally, it sets up a "watcher" that live-reloads system apps if they are edited while the system is running.
37 | function startDebug() {
38 | log.info("Starting debug watcher...");
39 | var chokidar = require("chokidar");
40 | var pth = path.resolve("./dashboard/apps");
41 | log.debug("Watching " + pth + " for changes...");
42 | var watcher = chokidar.watch(pth, {
43 | ignored: /[/\\]\./,
44 | persistent: true,
45 | });
46 | watcher.on("raw", appReloader);
47 | watcher = chokidar.watch(config.getDataDir("apps"), {
48 | ignored: /[/\\]\./,
49 | persistent: true,
50 | });
51 | watcher.on("raw", appReloader);
52 | }
53 |
54 | exports.start = startDebug;
55 |
--------------------------------------------------------------------------------
/doc/apple_logo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/doc/apple_logo.gif
--------------------------------------------------------------------------------
/doc/intel_edison.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/doc/intel_edison.jpg
--------------------------------------------------------------------------------
/doc/raspi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/doc/raspi.png
--------------------------------------------------------------------------------
/example-version.json:
--------------------------------------------------------------------------------
1 | {
2 | "hash": "",
3 | "number": "3.0.0",
4 | "type": "release"
5 | }
6 |
--------------------------------------------------------------------------------
/files/README.md:
--------------------------------------------------------------------------------
1 | These are files representing fabmo systemd utilities (with their service files) or other useful tools for FabMo.
2 | They are installed as symlinks during the SD-card-BUILD so that they can be maintained in the context of FabMo and updated here.
--------------------------------------------------------------------------------
/files/camera-server-1.service:
--------------------------------------------------------------------------------
1 | [Unit]
2 | Description=Video Camera Server
3 | After=network.target
4 |
5 | [Service]
6 | ExecStart=/fabmo/dashboard/apps/video.fma/camera-server -a 0.0.0.0 -p 3141 -c 0
7 | User=root
8 | Restart=always
9 |
10 | [Install]
11 | WantedBy=multi-user.target
12 |
--------------------------------------------------------------------------------
/files/camera-server-2.service:
--------------------------------------------------------------------------------
1 | [Unit]
2 | Description=Video Camera Server
3 | After=network.target
4 |
5 | [Service]
6 | ExecStart=/fabmo/dashboard/apps/video.fma/camera-server -a 0.0.0.0 -p 3142 -c 2
7 | User=root
8 | Restart=always
9 |
10 | [Install]
11 | WantedBy=multi-user.target
12 |
--------------------------------------------------------------------------------
/files/fabmo.service:
--------------------------------------------------------------------------------
1 | [Unit]
2 | Description=FabMo Engine
3 |
4 | [Service]
5 | ExecStart=/usr/bin/node /fabmo/server.js &
6 | Type=simple
7 | User=root
8 | Restart=always
9 | SyslogIdentifier=FBMO
10 | WorkingDirectory = /fabmo/
11 |
12 | [Install]
13 | WantedBy=multi-user.target
14 |
--------------------------------------------------------------------------------
/files/network_conf_fabmo/fabmo-ip-reporting.desktop:
--------------------------------------------------------------------------------
1 | [Desktop Entry]
2 | Type=Application
3 | Name=fabmo_ip_report
4 | Comment=Show IP in tkinter window and AP-ssid
5 | NoDisplay=false
6 | Exec=/fabmo/files/network_conf_fabmo/ip-reporting.sh
7 |
--------------------------------------------------------------------------------
/files/network_conf_fabmo/hostapd.service:
--------------------------------------------------------------------------------
1 | [Unit]
2 | Description=Access point and authentication server for Wi-Fi and Ethernet
3 | After=network.target setup-wlan0_ap.service
4 | #After=network.target
5 |
6 | [Service]
7 | ExecStart=/usr/sbin/hostapd -P /run/hostapd/hostapd.pid /etc/hostapd/hostapd.conf
8 | ExecReload=/bin/kill -HUP
9 | PIDFile=/run/hostapd/hostapd.pid
10 |
11 | [Install]
12 | WantedBy=multi-user.target
13 |
--------------------------------------------------------------------------------
/files/network_conf_fabmo/ip-reporting.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/bash
2 |
3 | #just in case we want to use i2c for RTC or other...
4 |
5 | enable_i2c_cmd="sudo raspi-config nonint do_i2c 0"
6 | get_i2c_cmd="sudo raspi-config nonint get_i2c"
7 | i2c_enabled=`$get_i2c_cmd`
8 |
9 | echo -n "i2c state: "
10 | echo $i2c_enabled
11 |
12 | if [ $i2c_enabled == "1" ]
13 | then
14 | echo "Enabling i2c"
15 | $enable_i2c_cmd
16 | else
17 | echo "i2c enabled"
18 | fi
19 |
20 |
21 | # systemd is a little messy for starting graphics
22 | # ... so we called this starter from: /etc/xdg/lxsessions/LXDE-pi/
23 | # ... and, now continue with (which itself delays a bit before checking networks and reporting):
24 |
25 | python3 /fabmo/files/network_conf_fabmo/ip-reporting.py
26 |
--------------------------------------------------------------------------------
/files/network_conf_fabmo/network-monitor.service:
--------------------------------------------------------------------------------
1 | [Unit]
2 | Description=Network Monitor and Switch Service
3 | After=network-online.target
4 | Wants=network-online.target
5 |
6 | [Service]
7 | ExecStart=/fabmo/files/network_conf_fabmo/network-monitor.sh
8 | Restart=always
9 |
10 | [Install]
11 | WantedBy=multi-user.target
12 |
--------------------------------------------------------------------------------
/files/network_conf_fabmo/recent_wifi.json:
--------------------------------------------------------------------------------
1 | {"ip_address": "192.168.1.52", "ssid": "HOME-57B8-2"}
--------------------------------------------------------------------------------
/files/network_conf_fabmo/setup-wlan0_ap.service:
--------------------------------------------------------------------------------
1 | [Unit]
2 | Description=Set up wlan0_ap interface
3 | After=network.target
4 |
5 | [Service]
6 | Type=oneshot
7 | ExecStart=/fabmo/files/network_conf_fabmo/setup-wlan0_ap.sh
8 |
9 | [Install]
10 | WantedBy=multi-user.target
11 |
--------------------------------------------------------------------------------
/files/network_conf_fabmo/setup_wlan0_ap.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Needed to make sure we are using the wlan0 transmitter with NetworkManager ???
4 | # Create the AP interface if it doesn't exist
5 | #### Marked liness removed to allow control of AP mode enable/disable via the FabMo Client 4/20/2025
6 | ####if ! iw dev | grep -q wlan0_ap; then
7 | #### iw dev wlan0 interface add wlan0_ap type __ap
8 | ####fi
9 | # Bring up the AP interface
10 | ####ip link set wlan0_ap up
11 |
12 | # Wait for the interface to be up and running
13 | sleep 5
14 |
15 | # Ensure the interface is properly configured
16 | ####ifconfig wlan0_ap 192.168.42.1 netmask 255.255.255.0
17 |
18 | # Restart hostapd to ensure it picks up the interface correctly
19 | sudo systemctl restart hostapd
--------------------------------------------------------------------------------
/files/tools/ck_heat_volts.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # https://retropie.org.uk/forum/topic/2295/runcommand-warning-if-voltage-temperature-throttling
4 | # modified slightly ...
5 | # using: vcgencmd get_throttled
6 | # throttled=0x50005
7 | # New info for Rpi5: https://forums.raspberrypi.com/viewtopic.php?t=370719
8 |
9 | #Flag Bits
10 | UNDERVOLTED=0x1
11 | CAPPED=0x2
12 | THROTTLED=0x4
13 | HAS_UNDERVOLTED=0x10000
14 | HAS_CAPPED=0x20000
15 | HAS_THROTTLED=0x40000
16 |
17 | #Text Colors
18 | GREEN=`tput setaf 2`
19 | RED=`tput setaf 1`
20 | NC=`tput sgr0`
21 |
22 | #Output Strings
23 | GOOD="${GREEN}NO${NC}"
24 | BAD="${RED}YES${NC}"
25 |
26 | #Get Status, extract hex
27 | STATUS=$(vcgencmd get_throttled)
28 | STATUS=${STATUS#*=}
29 |
30 | echo " "
31 | echo "================================ Volt & Temp Fail Report "
32 | echo -n "Status (combined in binary; > 0 means throttling): "
33 | (($STATUS!=0)) && echo "${RED}${STATUS}${NC}" || echo "${GREEN}${STATUS}${NC}"
34 | echo "----------------------------------------------decoded--- "
35 |
36 | echo "Undervolted:"
37 | echo -n " Now: "
38 | ((($STATUS&UNDERVOLTED)!=0)) && echo "${BAD}" || echo "${GOOD}"
39 | echo -n " Past: "
40 | ((($STATUS&HAS_UNDERVOLTED)!=0)) && echo "${BAD}" || echo "${GOOD}"
41 |
42 | echo "Throttled (voltage OK? then throttling from temp):"
43 | echo -n " Now: "
44 | ((($STATUS&THROTTLED)!=0)) && echo "${BAD}" || echo "${GOOD}"
45 | echo -n " Past: "
46 | ((($STATUS&HAS_THROTTLED)!=0)) && echo "${BAD}" || echo "${GOOD}"
47 |
48 | echo "Frequency Capped:"
49 | echo -n " Now: "
50 | ((($STATUS&CAPPED)!=0)) && echo "${BAD}" || echo "${GOOD}"
51 | echo -n " Past: "
52 | ((($STATUS&HAS_CAPPED)!=0)) && echo "${BAD}" || echo "${GOOD}"
53 | echo "-------------------------------------------------------- "
54 | echo "volts ===============(core Pi4~0.8-1.2V; Pi5~0.7-0.9V)== "
55 | # Loop through each id and echo the voltage
56 | for id in core sdram_c sdram_i sdram_p ; do
57 | echo -e "$id:\t$(vcgencmd measure_volts $id)"
58 | done
59 | echo "======================================================== "
60 | echo " "
61 |
--------------------------------------------------------------------------------
/files/tools/ck_network.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # This script opens multiple terminal windows to monitor network-related services and commands.
4 | # It uses lxterminal to create new terminal windows and execute commands in them.
5 | # SO THIS NEEDS TO BE RUN FROM LXDE DESKTOP ENVIRONMENT on THE RPI from the terminal.
6 |
7 | # Function to open a new terminal window and execute a command
8 | open_terminal() {
9 | local title="$1"
10 | local command="$2"
11 | lxterminal --title="$title" --command="bash -c '$command; exec bash'" &
12 | sleep 2
13 | }
14 |
15 | # Commands to run in each terminal window
16 | command1="sudo nmcli m"
17 | title1="NetManager M"
18 | #command2="sudo tail -f /var/log/network_monitor.log"
19 | #title2="Monitoring Script Log"
20 | command3="sudo journalctl -u dnsmasq -f"
21 | title3="dnsmasq"
22 | command4="sudo journalctl -u NetworkManager -f"
23 | title4="NetManager JCtl"
24 |
25 | # Open terminal windows with the specified commands
26 | open_terminal "$title1" "$command1"
27 | #open_terminal "$title2" "$command2"
28 | open_terminal "$title3" "$command3"
29 | open_terminal "$title4" "$command4"
30 |
31 | # Add a delay to ensure terminals are fully open
32 | sleep 3
33 | echo "Please manually arrange the terminal windows."
--------------------------------------------------------------------------------
/files/tools/ck_services.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # Checks the systemd services running FabMo
4 |
5 | echo " "
6 | echo "Checking the status of Key Fabmo services ============================"
7 | echo " "
8 | echo "------------------------------------------------------------"
9 | echo "----FabMo---------------------------------------------------"
10 | systemctl --no-pager status fabmo.service
11 | echo " "
12 | echo "------------------------------------------------------------"
13 | echo "----Updater-------------------------------------------------"
14 | systemctl --no-pager status fabmo-updater.service
15 | echo " "
16 | echo "------------------------------------------------------------"
17 | echo "----User Networking-----------------------------------------"
18 | systemctl --no-pager status network-monitor.service
19 | systemctl --no-pager status setup-wlan0_ap.service
20 | echo " "
21 | echo "------------------------------------------------------------"
22 | echo "----System Networking---------------------------------------"
23 | systemctl --no-pager status NetworkManager
24 | systemctl --no-pager status dnsmasq
25 | systemctl --no-pager status hostapd
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/files/tools/ld_firmware.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # Does the initial load and and initialization of the FabMo-G2 Control Card
4 | # Card needs to be powered and fresh or reset
5 |
6 |
7 | echo " "
8 | echo "LOADING G2 INITIAL FIRMWARE ================================"
9 | echo " - press red button while starting; hold 10 sec"
10 | echo " "
11 | cd /fabmo
12 | until bossac -w -v ./firmware/g2.bin; do
13 | echo "bossac failed, retrying in 2 seconds ..."
14 | sleep 2
15 | done
16 | bossac -b
17 | bossac -R
18 | echo " "
19 | echo "G2 Firmware loaded and initialized successfully."
20 | echo " > You will need to POWERCYCLE the TOOL and RPi to reboot. Confirm heartbeat LED is blinking."
21 |
22 |
--------------------------------------------------------------------------------
/files/usb_logger.service:
--------------------------------------------------------------------------------
1 | [Unit]
2 | Description=USB Thumb Drive Monitor for FABMO Status
3 | After=network.target
4 |
5 | [Service]
6 | ExecStart=/usr/bin/python3 /fabmo/pythonUtils/usb_logger.py
7 | Restart=always
8 | User=root
9 |
10 | [Install]
11 | WantedBy=multi-user.target
12 |
--------------------------------------------------------------------------------
/firmware/g2.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/firmware/g2.bin
--------------------------------------------------------------------------------
/firmware/g2core_101.57.47.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/firmware/g2core_101.57.47.bin
--------------------------------------------------------------------------------
/firmware/g2core_101.57.49 - Copy.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/firmware/g2core_101.57.49 - Copy.bin
--------------------------------------------------------------------------------
/network.js:
--------------------------------------------------------------------------------
1 | /*
2 | * network.js
3 | *
4 | * This module provides the factory function for creating the network manager.
5 | *
6 | * TODO: For consistency with how we've organized most of the packages, it might be better to move this to a network/index.js module
7 | */
8 | var config = require("./config");
9 | var log = require("./log").logger("network");
10 |
11 | // Create and return the network manager. You should only call this function once.
12 | // It consults the os and plaform and fishes the appropriate network manager object out of the network/ directory
13 | // If no such manager is defined or there's a problem creating it, an exception is thrown.
14 | exports.createNetworkManager = function (name, callback) {
15 | // The OS comes from node, and is something like 'linux' or 'darwin'
16 | // The platform is now defined in the engine configuration - it's something like 'raspberry-pi'
17 | var OS = config.platform;
18 | var PLATFORM = config.engine.get("platform");
19 | log.info("OS is:" + OS);
20 | log.info("PLATFORM is:" + PLATFORM);
21 | try {
22 | var NetworkManager = require("./network/" +
23 | OS +
24 | "/" +
25 | PLATFORM).NetworkManager;
26 | var nm = new NetworkManager();
27 | nm.os = OS;
28 | nm.platform = PLATFORM;
29 | if (!name && nm.platform === "raspberry-pi") {
30 | // eslint-disable-next-line no-unused-vars
31 | nm.set_serialnum(function (name) {
32 | callback(null, nm);
33 | });
34 | } else {
35 | callback(null, nm);
36 | }
37 | } catch (e) {
38 | log.error("Network Management configuration failure" + e);
39 | callback(
40 | new Error(
41 | "Cannot load network manager for " +
42 | OS +
43 | "/" +
44 | PLATFORM +
45 | ": " +
46 | e.message
47 | )
48 | );
49 | }
50 | };
51 |
--------------------------------------------------------------------------------
/profiles/default/config/engine.json:
--------------------------------------------------------------------------------
1 | {
2 | "server_port": 80,
3 | "driver": "g2",
4 | "log_level": "info",
5 | "upload_dir" : "/tmp",
6 | "profile" : "Default",
7 | "name" : null,
8 | "password" : "go2fabmo",
9 | "platform" : "raspberry-pi",
10 | "network" : {
11 | "wifi":{
12 | "mode" : "ap",
13 | "enabled" : true,
14 | "wifi_networks" : [],
15 | "default_config" : {
16 | "ip_address":"192.168.42.1",
17 | "netmask":"255.255.255.0",
18 | "gateway":"192.168.42.1",
19 | "dns":["8.8.8.8"]
20 | }
21 | },
22 | "ethernet":{
23 | "mode" : "magic",
24 | "default_config" : {
25 | "ip_address":"192.168.44.1",
26 | "netmask":"255.255.255.0",
27 | "gateway":"192.168.44.1",
28 | "dns":["8.8.8.8"],
29 | "dhcp_range":{
30 | "start": "192.168.44.20",
31 | "end": "192.168.44.254"
32 | }
33 | }
34 | }
35 | },
36 | "video": {
37 | "camera1": true,
38 | "index1": 0,
39 | "camera2": true,
40 | "index2": 2
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/profiles/default/config/g2.json:
--------------------------------------------------------------------------------
1 | {
2 | "gco": 2,
3 | "gdi": 0,
4 | "si": 100,
5 | "gun": 0,
6 | "ct": 0.001,
7 | "jt": 1.5,
8 | "xam": 1,
9 | "yam": 1,
10 | "zam": 1,
11 | "aam": 0,
12 | "bam": 0,
13 | "cam": 0,
14 | "1ma": 0,
15 | "2ma": 1,
16 | "3ma": 2,
17 | "4ma": 3,
18 | "5ma": 4,
19 | "6ma": 5,
20 | "1po": 0,
21 | "2po": 0,
22 | "3po": 0,
23 | "4po": 0,
24 | "5po": 0,
25 | "6po": 0,
26 | "1su":4000,
27 | "2su":4000,
28 | "3su":4000,
29 | "4su":4000,
30 | "5su":33.333333,
31 | "6su":33.333333,
32 | "xfr": 300,
33 | "yfr": 300,
34 | "zfr": 240,
35 | "afr": 240,
36 | "bfr": 6000,
37 | "cfr": 6000,
38 | "g55x": 0,
39 | "g55y": 0,
40 | "g55z": 0,
41 | "g55a": 0,
42 | "g55b": 0,
43 | "g55c": 0,
44 | "g54x": 0,
45 | "g54y": 0,
46 | "g54z": 0,
47 | "g54a": 0,
48 | "g54b": 0,
49 | "g54c": 0,
50 | "di1en": 1,
51 | "di2en": 1,
52 | "di3en": 1,
53 | "di4en": 1,
54 | "di5en": 1,
55 | "di6en": 1,
56 | "di7en": 1,
57 | "di8en": 1,
58 | "di9en": 1,
59 | "di10en": 1,
60 | "di11en": 1,
61 | "di12en":1,
62 | "di1po": 1,
63 | "di2po": 1,
64 | "di3po": 1,
65 | "di4po": 1,
66 | "di5po": 1,
67 | "di6po": 1,
68 | "di7po": 1,
69 | "di8po": 1,
70 | "di9po": 1,
71 | "di10po": 1,
72 | "di11po": 1,
73 | "di12po": 1,
74 | "xjh": 10000,
75 | "yjh": 10000,
76 | "zjh": 10000,
77 | "ajh": 10000,
78 | "bjh": 10000,
79 | "cjh": 10000,
80 | "spde": 2,
81 | "plmo": 3
82 | }
83 |
--------------------------------------------------------------------------------
/profiles/default/config/instance.json:
--------------------------------------------------------------------------------
1 | {
2 | "position" : {
3 | "x" : 0,
4 | "y" : 0,
5 | "z" : 0,
6 | "a" : 0,
7 | "b" : 0,
8 | "c" : 0
9 | }
10 | }
--------------------------------------------------------------------------------
/profiles/default/config/machine.json:
--------------------------------------------------------------------------------
1 | {
2 | "units" : "in",
3 | "time_units" : "s",
4 | "last_units" : "in",
5 | "quit_input": 0,
6 | "auth_timeout" : 30,
7 | "auth_required": false,
8 | "auth_input" : 0,
9 | "ap_input" : 0,
10 | "ap_time" : 8,
11 | "di1ac": "none",
12 | "di2ac": "none",
13 | "di3ac": "none",
14 | "di4ac": "stop",
15 | "di5ac": "none",
16 | "di6ac": "none",
17 | "di7ac": "none",
18 | "di8ac": "none",
19 | "di9ac": "none",
20 | "di10ac": "none",
21 | "di11ac": "none",
22 | "di12ac": "none",
23 | "default_app" : "apps",
24 | "envelope" : {
25 | "xmin" : 0,
26 | "xmax" : 24,
27 | "ymin" : 0,
28 | "ymax" : 18,
29 | "zmin" : -2,
30 | "zmax" : 6
31 | },
32 | "manual" : {
33 | "xy_speed" : 3,
34 | "xy_min" : 0.1,
35 | "xy_max" : 6,
36 | "z_fast_speed" : 1,
37 | "z_slow_speed": 0.1,
38 | "xy_increment" : 0.05,
39 | "z_increment" : 0.005,
40 | "abc_increment" : 1,
41 | "xy_jerk" : 50,
42 | "z_jerk" : 50
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/profiles/default/config/opensbp.json:
--------------------------------------------------------------------------------
1 | {
2 | "movexy_speed": 3,
3 | "movez_speed": 1,
4 | "movea_speed": 1,
5 | "moveb_speed": 10,
6 | "movec_speed": 10,
7 | "jogxy_speed": 5,
8 | "jogy_speed": 5,
9 | "jogz_speed": 3,
10 | "joga_speed": 3,
11 | "jogb_speed": 100,
12 | "jogc_speed": 100,
13 | "xy_maxjerk": 50,
14 | "y_maxjerk": 50,
15 | "z_maxjerk": 50,
16 | "a_maxjerk": 50,
17 | "b_maxjerk": 1000,
18 | "c_maxjerk": 1000,
19 | "cutterDia": 0.25,
20 | "pocketOverlap": 50,
21 | "safeZpullUp": 0.25,
22 | "safeApullUp": 0.25,
23 | "variables": {},
24 | "transforms": {
25 | "rotate": {
26 | "apply": false,
27 | "angle": 0,
28 | "x": 0,
29 | "y": 0
30 | },
31 | "shearx": {
32 | "apply": false,
33 | "angle": 0
34 | },
35 | "sheary": {
36 | "apply": false,
37 | "angle": 0
38 | },
39 | "scale": {
40 | "apply": false,
41 | "scalex": 1,
42 | "scaley": 1,
43 | "scalez": 1,
44 | "x": 0,
45 | "y": 0,
46 | "z": 0
47 | },
48 | "move": {
49 | "apply": false,
50 | "x": 0,
51 | "y": 0,
52 | "z": 0
53 | },
54 | "interpolate": {
55 | "apply": false
56 | },
57 | "level": {
58 | "apply": false,
59 | "ptDataFile": "C:/SbParts/PtData.json"
60 | }
61 | },
62 | "cRes": 0.01,
63 | "GblPropX": 1,
64 | "GblPropY": 1,
65 | "tempVariables": {}
66 | }
--------------------------------------------------------------------------------
/profiles/default/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name" : "Default",
3 | "description" : "Default for when no defined tool"
4 | }
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dt/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | *.bak
3 | *.txt
4 | *~
5 |
6 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dt/README.md:
--------------------------------------------------------------------------------
1 | # fabmo-profile-dt
2 | FabMo machine profile for the ShopBot Desktop (DT3).
3 |
4 | # macros - NOTES for ShopBot Dev Team
5 | This is an updated version of Sb4 FabMo Macros for "FabMo DT".
6 | These will be similar to the previous Sb3 Macro system ... but better standardized. Generally, all
7 | tools will use the same macros. The format for standard macros is described in Macro #201.
8 |
9 | To help with interchangeability we employ a set of "Standard Variables" whose "Values" are
10 | set or each machine. This is set up in Macro #201 where values for an individual machine are specified.
11 |
12 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dt/apps/Desktop-HELP_v0.0.4.fma:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/profiles/fabmo-profile-dt/apps/Desktop-HELP_v0.0.4.fma
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dt/apps/smooth.fma:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/profiles/fabmo-profile-dt/apps/smooth.fma
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dt/config/engine.json:
--------------------------------------------------------------------------------
1 | {
2 | "profile":"ShopBot Desktop"
3 | }
4 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dt/config/g2.json:
--------------------------------------------------------------------------------
1 | {
2 | "gun": 0,
3 | "ct": 0.001,
4 | "jt": 1.5,
5 | "xfr": 300,
6 | "yfr": 300,
7 | "zfr": 240
8 | }
9 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dt/config/instance.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dt/config/machine.json:
--------------------------------------------------------------------------------
1 | {
2 | "limits_on" : false,
3 | "softlimits_on" : false,
4 | "di1ac": "none",
5 | "di2ac": "none",
6 | "di3ac": "none",
7 | "di4ac": "stop",
8 | "di5ac": "none",
9 | "di6ac": "none",
10 | "di7ac": "none",
11 | "di8ac": "none",
12 | "di9ac": "none",
13 | "di10ac": "none",
14 | "di11ac": "none",
15 | "di12ac": "none",
16 | "default_app" : "fabmo-sb4",
17 | "envelope" : {
18 | "xmin" : 0,
19 | "xmax" : 24,
20 | "ymin" : 0,
21 | "ymax" : 18,
22 | "zmin" : -2,
23 | "zmax" : 6
24 | },
25 | "manual" : {
26 | "xy_speed": 3
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dt/config/opensbp.json:
--------------------------------------------------------------------------------
1 | {
2 | "movexy_speed": 3,
3 | "movez_speed": 1,
4 | "movea_speed": 1,
5 | "variables" : {
6 | "example_variable": 999
7 | },
8 | "cRes": 0.01,
9 | "GblPropX": 1,
10 | "GblPropY": 1
11 | }
12 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dt/macros/macro_5.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name: Spindle Warm Up
2 | '!FABMO!description: Turns spindle ON and runs for 2 minutes
3 | ' Name: Spindle Warm Up
4 | ' Description: Turns spindle ON and runs for 2 minutes
5 |
6 | SO, 1, 1 ' Make OUTPUT #1 ACTIVE (high)
7 | PAUSE 120 ' Pause for 2 minutes
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dt/macros/macro_6.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name: Start Spindle
2 | '!FABMO!description: Turns spindle ON in file; SBP convention for managing tools
3 | ' Name: Start Spindle
4 | ' Description: Turns spindle ON in files, SBP convention for managing tools [C6] used in Vectric Posts.
5 | ' ... also called in files with Manual or Automatic Tool Changes
6 | ' If Macro is run manually, file ends after the PAUSE and Spindle turns off automatically at that file-end.
7 |
8 | SO, 1, 1 ' Make OUTPUT #1 ACTIVE (high) [Spindle channel]
9 | PAUSE .1 ' ... optional additional pause for spinup, now automatic in FabMo, may be increased here
10 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dt/macros/macro_7.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name: Stop Spindle
2 | '!FABMO!description: Turns spindle OFF in file; SBP convention for managing tools
3 | ' Name: Stop Spindle
4 | ' Description: Turns spindle OFF in files, SBP convention for managing tools [C7]. (See Macro #6)
5 | ' Spindle is automatically turned off when a file ends, but this macro can be used to turn spindle on and off withing files
6 |
7 | SO, 1,0 ' Make OUTPUT #1 INACTIVE (low) [Spindle channel]
8 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dt/macros/macro_78.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name: Set Z-Zero to Current Offset
2 | '!FABMO!description: Use after manually zeroing to record offset
3 | '!FABMO!enabled:true
4 | ' Name: Set Z-Zero to Current Offset
5 | ' Description:
6 | ' Installs Current Value of Z offset to permanent offset for future Zeroing. Works even if manually zeroed assuming Macro#3 has been run once.
7 | ' Author: Ted Hall, Ryan Sturmer
8 | ' History:
9 | ' 2/2/17, 3/16/17, 9/13/17, 11/12/19
10 | ' 9/25/21 Refactored for FabMo (th)
11 |
12 | PAUSE "This routine requires you have only zeroed once at the new Z location since homing tool with Macro#3." ''too much commentary?
13 | &tempTB_Zoffset = %(9) ' Read in System Variables for current Z-tablebase-offset (g55Z)
14 |
15 | IF %(25) == 1 THEN GOTO tool_MM ' Read UNIT of Tool; System Variable #25
16 | tool_IN:
17 | $sb_current_cutter_Zoffset_Units = "IN"
18 | GOTO continue_with_variables
19 | tool_MM:
20 | $sb_current_cutter_Zoffset_Units = "MM"
21 | GOTO continue_with_variables
22 | 'continue adjusting units for current working variables ...
23 | continue_with_variables:
24 | $sb_current_cutter_Zoffset = &tempTB_Zoffset * -1
25 | END
26 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dt/macros/macro_79.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name: Park
2 | '!FABMO!description: Move Tool to a Parking Location
3 | '!FABMO!enabled:true
4 |
5 | ' Name: Park
6 | ' Description: Move Tool to a Parking Location (typically to back)
7 | ' Platform: Desktop
8 | ' Author: Ted Hall, Ryan Sturmer
9 | ' History:
10 | ' 2/2/17, 3/16/17 th
11 | ' 2021/10/15 refactored (th)
12 |
13 | '--- Adjust Standard Macro Variables to Current Tool Units if Needed ---
14 | '--- Check to make sure Standard Macro Variables have been read
15 | $sb_standard_variables_PRESENT := 0 ' Define test variable if it does not exist
16 | IF $sb_standard_variables_PRESENT == 0 THEN GOSUB no_variables
17 |
18 | ' === Main Program ===
19 | GOSUB initialize_variables
20 | GOSUB Move_to_Position
21 | END
22 | '====================
23 |
24 | '--- 'Subroutines ---
25 | Move_to_Position:
26 | IF &Z_park < %(3) THEN GOTO Skip_Lift
27 | JZ, &Z_park
28 | Skip_Lift:
29 | J2, &X_park, &Y_park
30 | END
31 |
32 | no_variables:
33 | C201
34 | RETURN
35 |
36 | '--- Initialize Variables and Adjust Standard Macro Variables for Current Tool and Conditions as Needed
37 | initialize_variables:
38 | 'Adjust to current UNITS of tool (handles whether tool Macro Variables are for INCHES or MM)
39 | &dist_mult = 1.0
40 | IF %(25) == 1 THEN GOTO tool_MM ' Read UNIT of Tool; System Variable #25
41 | tool_IN:
42 | IF $sb_varTableUNITS == "IN" THEN GOTO continue_with_variables
43 | &dist_mult = 0.0393701 ' Defined in MM: Multiplier to redefine distances from mm to inches
44 | GOTO continue_with_variables
45 | tool_MM:
46 | IF $sb_varTableUNITS == "MM" THEN GOTO continue_with_variables
47 | &dist_mult = 25.4 ' Defined in IN: Multiplier to redefine distances from inches to mm
48 | GOTO continue_with_variables
49 | 'continue adjusting units for current working variables ...
50 | continue_with_variables:
51 | &X_park = $sb_X_park * &dist_mult
52 | &Y_park = $sb_Y_park * &dist_mult
53 | &Z_park = $sb_Z_park * &dist_mult
54 | RETURN
55 |
56 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dt/macros/macro_90.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name: Settings-OBS
2 | '!FABMO!description: LEGACY: Default variable settings
3 | ' Name: Settings
4 | ' Description: LEGACY: Load default variable settings
5 |
6 | ' This macro was previously used to load default settings. Now being done in FabMo as part of the tool "Profile"
7 | ' The macro is called by some existing Vectric posts so just stubbed-in here to prevent error
8 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dt/macros/macro_91.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name: Unit error
2 | '!FABMO!description: Notification that file Units do not match machine
3 | ' Name: Change Unit error
4 | ' Description: Notify of inconsistent Units
5 |
6 | ' This Macro is called by Vectric posts in the process of checking Units
7 | ' FabMo will handle a file even if its Units are mismatched to the current tool setting.
8 | ' - So this macro could just provide a warning and return
9 | ' - Or, content could just be deleted, though the macro needs to remain stubbed in to handle legacy Vectric posts
10 |
11 | IF %(25)=1 THEN GOTO METRIC_ERROR
12 |
13 | 'Deal with Metric file in Inch Mode ------------------------
14 | 'The file you are running is written for use in metric mode but your tool is set for inches. Quit and Reset your tool for metric in the Configuration Manager (left panel).
15 | PAUSE
16 | ' We could allow a better option here by putting the action at the beginning of the file and making use of END/EXIT.
17 | END
18 |
19 | 'Deal with Inch file in Metric Mode ------------------------
20 | METRIC_ERROR:
21 | 'The file you are running is written for use in inch mode but your tool is set for metric. Quit and reset your tool for inches in the Configuration Manager (left panel).
22 | PAUSE
23 | ' We could allow a better option here by putting the action at the beginning of the file and making use of END/EXIT.
24 | END
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dt/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name" : "ShopBot Desktop",
3 | "description" : "The ShopBot DT2418 tool",
4 | "version" : "v1.1.6"
5 | }
6 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtatc/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | *.bak
3 | *.txt
4 | *~
5 |
6 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtatc/README.md:
--------------------------------------------------------------------------------
1 | # fabmo-profile-dtatc
2 | FabMo machine profile for the ShopBot Desktop Max Automatic Tool Changer.
3 |
4 | # macros - NOTES for ShopBot Dev Team
5 | This is an updated version of FabMo Macros for "FabMo DT Release 2023".
6 | These will be similar to the previous Sb3 Macro system ... but standardized. Generally, all tools will
7 | use the same macros. The format for standard macros is described in Macro #201.
8 |
9 | To help with interchangeability we employ a set of "Standard Variables" whose "Values" are
10 | set or each machine. This is set up in Macro #201 where values for an individual machine are specified.
11 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtatc/apps/CONSOLE_v0.0.04.fma:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/profiles/fabmo-profile-dtatc/apps/CONSOLE_v0.0.04.fma
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtatc/apps/Desktop-HELP_v0.0.4.fma:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/profiles/fabmo-profile-dtatc/apps/Desktop-HELP_v0.0.4.fma
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtatc/apps/config_app.fma:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/profiles/fabmo-profile-dtatc/apps/config_app.fma
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtatc/apps/fabmo-univ-atc-app_v1.0.0.fma:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/profiles/fabmo-profile-dtatc/apps/fabmo-univ-atc-app_v1.0.0.fma
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtatc/apps/smooth.fma:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/profiles/fabmo-profile-dtatc/apps/smooth.fma
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtatc/config/engine.json:
--------------------------------------------------------------------------------
1 | {
2 | "profile":"ShopBot Desktop ATC"
3 | }
4 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtatc/config/g2.json:
--------------------------------------------------------------------------------
1 | {
2 | "gun": 0,
3 | "ct": 0.001,
4 | "jt": 1.5,
5 | "xfr": 960,
6 | "yfr": 960,
7 | "zfr": 480,
8 | "spde": 2
9 | }
10 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtatc/config/instance.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtatc/config/machine.json:
--------------------------------------------------------------------------------
1 | {
2 | "units" : "in",
3 | "limits_on" : false,
4 | "softlimits_on" : false,
5 | "default_app" : "fabmo-sb4",
6 | "envelope" : {
7 | "xmin" : 0,
8 | "xmax" : 36,
9 | "ymin" : 0,
10 | "ymax" : 24,
11 | "zmin" : -2,
12 | "zmax" : 6
13 | },
14 | "manual" : {
15 | "xy_speed": 3,
16 | "xy_max": 6
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtatc/config/opensbp.json:
--------------------------------------------------------------------------------
1 | {
2 | "units":"in",
3 | "movexy_speed": 3,
4 | "movez_speed": 1,
5 | "movea_speed": 1,
6 | "moveb_speed": 1,
7 | "movec_speed": 1,
8 | "jogxy_speed" : 5,
9 | "jogz_speed" : 5,
10 | "joga_speed" : 250,
11 | "jogb_speed" : 250,
12 | "jogc_speed" : 250,
13 | "cutterDia": 0.25,
14 | "pocketOverlap": 50,
15 | "safeZpullUp": 0.5,
16 | "safeApullUp": 0.5,
17 | "variables" : {
18 | "example_variable": 999,
19 | "ATC.type": 7
20 | },
21 | "cRes": 0.01,
22 | "GblPropX": 1,
23 | "GblPropY": 1
24 | }
25 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtatc/macros/macro_1.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name:ATC Toolchange -- User Initiated
2 | '!FABMO!description:Swaps tools using Automatic Tool Changer - ATC
3 | '!FABMO!enabled:true
4 | C70
5 | &type = $ATC.type
6 | If &type = 7 Then GoTo IsDTATC
7 | If &type = 6 Then GoTo IsATC
8 | If &type = 5 Then GoTo IsMTC
9 | If &type = 4 Then GoTo IsATC
10 | If &type = 3 Then GoTo IsATC
11 | If &type = 2 Then GoTo IsATC
12 | If &type = 1 Then GoTo IsATC
13 | If &type = 0 Then GoTo IsMTC
14 |
15 | GOTO Tool_Type_Error
16 |
17 | IsMTC:
18 | C9
19 | GoTo IsDone
20 |
21 | IsATC:
22 | PAUSE "Request Tool # to Load (or: 0 = Return Current Tool; -1 = Manual Change)
", &tool
23 | C71
24 | GoTo IsDone
25 |
26 | IsDTATC:
27 | PAUSE "Request Tool # to Load (or: 0 = Return Current Tool; -1 = Manual Change)
", &tool
28 | C71
29 | GoTo IsDone
30 |
31 | IsDone:
32 | END
33 |
34 | Tool_Type_Error:
35 | 'Tool type not set, please check your ShopBot setup to make sure you have selected a tool type.
36 | PAUSE
37 | GOTO IsDone
38 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtatc/macros/macro_204.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name:DRAW BAR OFF
2 | '!FABMO!description:DRAW BAR OFF
3 | '!FABMO!enabled:true
4 | SO, 7,1
5 | SO, 1,0
6 | SO, 1,1
7 | SO, 1,0
8 | SO, 2,0
9 | SO, 3,0
10 | SO, 4,0
11 | SO, 5,0
12 | SO, 6,0
13 | SO, 7,0
14 | SO, 8,0
15 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtatc/macros/macro_205.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name:Release Tool and Move away
2 | '!FABMO!description:Test Change
3 | '!FABMO!enabled:true
4 | SO, 8,1
5 | JZ, $CLIP1_Z + $thClearance
6 | SO, 8,0
7 |
8 | J2,0,0
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtatc/macros/macro_212.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name:Test Draw Bar ON
2 | '!FABMO!description:Test Draw Bar
3 | '!FABMO!enabled:true
4 | SO, $DrawBar,1
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtatc/macros/macro_5.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name: Spindle Warm Up
2 | '!FABMO!description: Turns spindle ON and runs for 2 minutes
3 | ' Name: Spindle Warm Up
4 | ' Description: Turns spindle ON and runs for 2 minutes
5 |
6 | SO, 1, 1 ' Make OUTPUT #1 ACTIVE (high)
7 | PAUSE 120 ' Pause for 2 minutes
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtatc/macros/macro_6.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name: Start Spindle
2 | '!FABMO!description: Turns spindle ON in file; SBP convention for managing tools
3 | ' Name: Start Spindle
4 | ' Description: Turns spindle ON in files, SBP convention for managing tools [C6] used in Vectric Posts.
5 | ' ... also called in files with Manual or Automatic Tool Changes
6 | ' If Macro is run manually, file ends after the PAUSE and Spindle turns off automatically at that file-end.
7 |
8 | SO, 1, 1 ' Make OUTPUT #1 ACTIVE (high) [Spindle channel]
9 | PAUSE .1 ' ... optional additional pause for spinup, now automatic in FabMo, may be increased here
10 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtatc/macros/macro_7.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name: Stop Spindle
2 | '!FABMO!description: Turns spindle OFF in file; SBP convention for managing tools
3 | ' Name: Stop Spindle
4 | ' Description: Turns spindle OFF in files, SBP convention for managing tools [C7]. (See Macro #6)
5 | ' Spindle is automatically turned off when a file ends, but this macro can be used to turn spindle on and off withing files
6 |
7 | SO, 1,0 ' Make OUTPUT #1 INACTIVE (low) [Spindle channel]
8 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtatc/macros/macro_73.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name:ATC Plate Offset
2 | '!FABMO!description:Set distance from ATC Measurement Plate to Material
3 | '!FABMO!enabled:true
4 | C70 ' >> Load all ATC Settings
5 | GOSUB HOME_Z ' >> Home the Z Axis (this is the only axis that we're referencing with this routine, so no need to home X and Y
6 | PAUSE "The keypad will now open, move your spindle to your preferred Z Zeroing location"
7 | SK ' >> Keypad open
8 | C2 ' >> Zero Z Axis to Z Zero Plate
9 | PAUSE "Offset is " + %(9) ' >> Display offset for user's reference
10 | $ATC.PlateOffset = %(9) - $tools[$ATC.ToolIn].H ' >> Record Offset in config
11 |
12 | ' Subroutines ==========================================================
13 | HOME_Z:
14 | PZ, &searchDist_Z, &searchSpeed_Z, &proxNum_Z ' >> PZ "probes" for a switch or contact in the Z axis
15 | ZZ ' >> Reset working zero
16 | JZ, (-1 * &homeOff_Z) ' >> Pull back from prox
17 | &target_ck = &homeOff_Z + &ooch ' >> New target for detecting error just past prox
18 | PZ, &target_ck, &slowSearchSpeed_Z, &proxNum_Z ' >> Slowly probe for prox in final accurate check
19 | IF %(3)== &target_ck THEN GOSUB fail_missed_target ' >> Look at current Z location to see if we went past the target
20 | ZZ
21 | JZ, (-1 * &homeOff_Z)
22 | VA,,,-1*($tools[$ATC.ToolIn].H + $ATC.PlateOffset) ' >> Apply Offset for no tool
23 | RETURN
24 |
25 | ' Error Messages =======================================================
26 | fail_missed_target:
27 | PAUSE "Target Not Triggered! Lower Z Axis and run C3 (XYZ Homing)." ' >> Did not hit target.
28 | END
29 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtatc/macros/macro_78.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name: Set Z-Zero to Current Offset
2 | '!FABMO!description: Use after manually zeroing to record offset
3 | '!FABMO!enabled:true
4 | ' Name: Set Z-Zero to Current Offset
5 | ' Description:
6 | ' Installs Current Value of Z offset to permanent offset for future Zeroing. Works even if manually zeroed assuming Macro#3 has been run once.
7 | ' Author: Ted Hall, Ryan Sturmer
8 | ' History:
9 | ' 2/2/17, 3/16/17, 9/13/17, 11/12/19
10 | ' 9/25/21 Refactored for FabMo (th)
11 |
12 | PAUSE "This routine requires you have only zeroed once at the new Z location since homing tool with Macro#3." ''too much commentary?
13 | &tempTB_Zoffset = %(9) ' Read in System Variables for current Z-tablebase-offset (g55Z)
14 |
15 | IF %(25) == 1 THEN GOTO tool_MM ' Read UNIT of Tool; System Variable #25
16 | tool_IN:
17 | $sb_current_cutter_Zoffset_Units = "IN"
18 | GOTO continue_with_variables
19 | tool_MM:
20 | $sb_current_cutter_Zoffset_Units = "MM"
21 | GOTO continue_with_variables
22 | 'continue adjusting units for current working variables ...
23 | continue_with_variables:
24 | $sb_current_cutter_Zoffset = &tempTB_Zoffset * -1
25 | END
26 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtatc/macros/macro_79.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name: Park
2 | '!FABMO!description: Move Tool to a Parking Location
3 | '!FABMO!enabled:true
4 |
5 | ' Name: Park
6 | ' Description: Move Tool to a Parking Location (typically to back)
7 | ' Platform: Desktop
8 | ' Author: Ted Hall, Ryan Sturmer
9 | ' History:
10 | ' 2/2/17, 3/16/17 th
11 | ' 2021/10/15 refactored (th)
12 |
13 | '--- Adjust Standard Macro Variables to Current Tool Units if Needed ---
14 | '--- Check to make sure Standard Macro Variables have been read
15 | $sb_standard_variables_PRESENT := 0 ' Define test variable if it does not exist
16 | IF $sb_standard_variables_PRESENT == 0 THEN GOSUB no_variables
17 |
18 | ' === Main Program ===
19 | GOSUB initialize_variables
20 | GOSUB Move_to_Position
21 | END
22 | '====================
23 |
24 | '--- 'Subroutines ---
25 | Move_to_Position:
26 | IF &Z_park < %(3) THEN GOTO Skip_Lift
27 | JZ, &Z_park
28 | Skip_Lift:
29 | J2, &X_park, &Y_park
30 | END
31 |
32 | no_variables:
33 | C201
34 | RETURN
35 |
36 | '--- Initialize Variables and Adjust Standard Macro Variables for Current Tool and Conditions as Needed
37 | initialize_variables:
38 | 'Adjust to current UNITS of tool (handles whether tool Macro Variables are for INCHES or MM)
39 | &dist_mult = 1.0
40 | IF %(25) == 1 THEN GOTO tool_MM ' Read UNIT of Tool; System Variable #25
41 | tool_IN:
42 | IF $sb_varTableUNITS == "IN" THEN GOTO continue_with_variables
43 | &dist_mult = 0.0393701 ' Defined in MM: Multiplier to redefine distances from mm to inches
44 | GOTO continue_with_variables
45 | tool_MM:
46 | IF $sb_varTableUNITS == "MM" THEN GOTO continue_with_variables
47 | &dist_mult = 25.4 ' Defined in IN: Multiplier to redefine distances from inches to mm
48 | GOTO continue_with_variables
49 | 'continue adjusting units for current working variables ...
50 | continue_with_variables:
51 | &X_park = $sb_X_park * &dist_mult
52 | &Y_park = $sb_Y_park * &dist_mult
53 | &Z_park = $sb_Z_park * &dist_mult
54 | RETURN
55 |
56 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtatc/macros/macro_90.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name: Settings-OBS
2 | '!FABMO!description: LEGACY: Default variable settings
3 | ' Name: Settings
4 | ' Description: LEGACY: Load default variable settings
5 |
6 | ' This macro was previously used to load default settings. Now being done in FabMo as part of the tool "Profile"
7 | ' The macro is called by some existing Vectric posts so just stubbed-in here to prevent error
8 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtatc/macros/macro_91.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name: Unit error
2 | '!FABMO!description: Notification that file Units do not match machine
3 | ' Name: Change Unit error
4 | ' Description: Notify of inconsistent Units
5 |
6 | ' This Macro is called by Vectric posts in the process of checking Units
7 | ' FabMo will handle a file even if its Units are mismatched to the current tool setting.
8 | ' - So this macro could just provide a warning and return
9 | ' - Or, content could just be deleted, though the macro needs to remain stubbed in to handle legacy Vectric posts
10 |
11 | IF %(25)=1 THEN GOTO METRIC_ERROR
12 |
13 | 'Deal with Metric file in Inch Mode ------------------------
14 | 'The file you are running is written for use in metric mode but your tool is set for inches. Quit and Reset your tool for metric in the Configuration Manager (left panel).
15 | PAUSE
16 | ' We could allow a better option here by putting the action at the beginning of the file and making use of END/EXIT.
17 | END
18 |
19 | 'Deal with Inch file in Metric Mode ------------------------
20 | METRIC_ERROR:
21 | 'The file you are running is written for use in inch mode but your tool is set for metric. Quit and reset your tool for inches in the Configuration Manager (left panel).
22 | PAUSE
23 | ' We could allow a better option here by putting the action at the beginning of the file and making use of END/EXIT.
24 | END
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtatc/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name" : "ShopBot Desktop ATC",
3 | "description" : "The ShopBot Desktop DT3624 Automatic Tool Changer",
4 | "version" : "v1.1.0"
5 | }
6 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtmax/README.md:
--------------------------------------------------------------------------------
1 | # fabmo-profile-dtmax
2 | FabMo machine profile for the ShopBot Desktop MAX.
3 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtmax/apps/CONSOLE_v0.0.04.fma:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/profiles/fabmo-profile-dtmax/apps/CONSOLE_v0.0.04.fma
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtmax/apps/Desktop-Utils-Prefs_v0.0.2.fma:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/profiles/fabmo-profile-dtmax/apps/Desktop-Utils-Prefs_v0.0.2.fma
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtmax/apps/FabMo Simple Surfacer_v0.0.3.fma:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/profiles/fabmo-profile-dtmax/apps/FabMo Simple Surfacer_v0.0.3.fma
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtmax/apps/fabmo-app-example_v1.0.3.fma:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/profiles/fabmo-profile-dtmax/apps/fabmo-app-example_v1.0.3.fma
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtmax/config/engine.json:
--------------------------------------------------------------------------------
1 | {
2 | "profile":"ShopBot Desktop MAX"
3 | }
4 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtmax/config/g2.json:
--------------------------------------------------------------------------------
1 | {
2 | "gun": 0,
3 | "ct": 0.001,
4 | "jt": 1.5,
5 | "xfr": 300,
6 | "yfr": 300,
7 | "zfr": 240
8 | }
9 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtmax/config/instance.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtmax/config/machine.json:
--------------------------------------------------------------------------------
1 | {
2 | "limits_on" : false,
3 | "softlimits_on" : false,
4 | "default_app" : "fabmo-sb4",
5 | "envelope" : {
6 | "xmin" : 0,
7 | "xmax" : 36,
8 | "ymin" : 0,
9 | "ymax" : 24,
10 | "zmin" : -2,
11 | "zmax" : 6
12 | },
13 | "manual" : {
14 | "xy_speed": 3
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtmax/config/opensbp.json:
--------------------------------------------------------------------------------
1 | {
2 | "movexy_speed": 3,
3 | "movez_speed": 1,
4 | "movea_speed": 1,
5 | "variables" : {
6 | "example_variable": 999
7 | },
8 | "cRes": 0.01,
9 | "GblPropX": 1,
10 | "GblPropY": 1
11 | }
12 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtmax/macros/macro_5.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name: Spindle Warm Up
2 | '!FABMO!description: Turns spindle ON and runs for 2 minutes
3 | ' Name: Spindle Warm Up
4 | ' Description: Turns spindle ON and runs for 2 minutes
5 |
6 | SO, 1, 1 ' Make OUTPUT #1 ACTIVE (high)
7 | PAUSE 120 ' Pause for 2 minutes
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtmax/macros/macro_6.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name: Start Spindle
2 | '!FABMO!description: Turns spindle ON in file; SBP convention for managing tools
3 | ' Name: Start Spindle
4 | ' Description: Turns spindle ON in files, SBP convention for managing tools [C6] used in Vectric Posts.
5 | ' ... also called in files with Manual or Automatic Tool Changes
6 | ' If Macro is run manually, file ends after the PAUSE and Spindle turns off automatically at that file-end.
7 |
8 | SO, 1, 1 ' Make OUTPUT #1 ACTIVE (high) [Spindle channel]
9 | PAUSE .1 ' ... optional additional pause for spinup, now automatic in FabMo, may be increased here
10 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtmax/macros/macro_7.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name: Stop Spindle
2 | '!FABMO!description: Turns spindle OFF in file; SBP convention for managing tools
3 | ' Name: Stop Spindle
4 | ' Description: Turns spindle OFF in files, SBP convention for managing tools [C7]. (See Macro #6)
5 | ' Spindle is automatically turned off when a file ends, but this macro can be used to turn spindle on and off withing files
6 |
7 | SO, 1,0 ' Make OUTPUT #1 INACTIVE (low) [Spindle channel]
8 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtmax/macros/macro_78.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name: Set Z-Zero to Current Offset
2 | '!FABMO!description: Use after manually zeroing to record offset
3 | '!FABMO!enabled:true
4 | ' Name: Set Z-Zero to Current Offset
5 | ' Description:
6 | ' Installs Current Value of Z offset to permanent offset for future Zeroing. Works even if manually zeroed assuming Macro#3 has been run once.
7 | ' Author: Ted Hall, Ryan Sturmer
8 | ' History:
9 | ' 2/2/17, 3/16/17, 9/13/17, 11/12/19
10 | ' 9/25/21 Refactored for FabMo (th)
11 |
12 | PAUSE "This routine requires you have only zeroed once at the new Z location since homing tool with Macro#3." ''too much commentary?
13 | &tempTB_Zoffset = %(9) ' Read in System Variables for current Z-tablebase-offset (g55Z)
14 |
15 | IF %(25) == 1 THEN GOTO tool_MM ' Read UNIT of Tool; System Variable #25
16 | tool_IN:
17 | $sb_current_cutter_Zoffset_Units = "IN"
18 | GOTO continue_with_variables
19 | tool_MM:
20 | $sb_current_cutter_Zoffset_Units = "MM"
21 | GOTO continue_with_variables
22 | 'continue adjusting units for current working variables ...
23 | continue_with_variables:
24 | $sb_current_cutter_Zoffset = &tempTB_Zoffset * -1
25 | END
26 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtmax/macros/macro_79.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name: Park
2 | '!FABMO!description: Move Tool to a Parking Location
3 | '!FABMO!enabled:true
4 |
5 | ' Name: Park
6 | ' Description: Move Tool to a Parking Location (typically to back)
7 | ' Platform: Desktop
8 | ' Author: Ted Hall, Ryan Sturmer
9 | ' History:
10 | ' 2/2/17, 3/16/17 th
11 | ' 2021/10/15 refactored (th)
12 |
13 | '--- Adjust Standard Macro Variables to Current Tool Units if Needed ---
14 | '--- Check to make sure Standard Macro Variables have been read
15 | $sb_standard_variables_PRESENT := 0 ' Define test variable if it does not exist
16 | IF $sb_standard_variables_PRESENT == 0 THEN GOSUB no_variables
17 |
18 | ' === Main Program ===
19 | GOSUB initialize_variables
20 | GOSUB Move_to_Position
21 | END
22 | '====================
23 |
24 | '--- 'Subroutines ---
25 | Move_to_Position:
26 | IF &Z_park < %(3) THEN GOTO Skip_Lift
27 | JZ, &Z_park
28 | Skip_Lift:
29 | J2, &X_park, &Y_park
30 | END
31 |
32 | no_variables:
33 | C201
34 | RETURN
35 |
36 | '--- Initialize Variables and Adjust Standard Macro Variables for Current Tool and Conditions as Needed
37 | initialize_variables:
38 | 'Adjust to current UNITS of tool (handles whether tool Macro Variables are for INCHES or MM)
39 | &dist_mult = 1.0
40 | IF %(25) == 1 THEN GOTO tool_MM ' Read UNIT of Tool; System Variable #25
41 | tool_IN:
42 | IF $sb_varTableUNITS == "IN" THEN GOTO continue_with_variables
43 | &dist_mult = 0.0393701 ' Defined in MM: Multiplier to redefine distances from mm to inches
44 | GOTO continue_with_variables
45 | tool_MM:
46 | IF $sb_varTableUNITS == "MM" THEN GOTO continue_with_variables
47 | &dist_mult = 25.4 ' Defined in IN: Multiplier to redefine distances from inches to mm
48 | GOTO continue_with_variables
49 | 'continue adjusting units for current working variables ...
50 | continue_with_variables:
51 | &X_park = $sb_X_park * &dist_mult
52 | &Y_park = $sb_Y_park * &dist_mult
53 | &Z_park = $sb_Z_park * &dist_mult
54 | RETURN
55 |
56 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtmax/macros/macro_90.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name: Settings-OBS
2 | '!FABMO!description: LEGACY: Default variable settings
3 | ' Name: Settings
4 | ' Description: LEGACY: Load default variable settings
5 |
6 | ' This macro was previously used to load default settings. Now being done in FabMo as part of the tool "Profile"
7 | ' The macro is called by some existing Vectric posts so just stubbed-in here to prevent error
8 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtmax/macros/macro_91.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name: Unit error
2 | '!FABMO!description: Notification that file Units do not match machine
3 | ' Name: Change Unit error
4 | ' Description: Notify of inconsistent Units
5 |
6 | ' This Macro is called by Vectric posts in the process of checking Units
7 | ' FabMo will handle a file even if its Units are mismatched to the current tool setting.
8 | ' - So this macro could just provide a warning and return
9 | ' - Or, content could just be deleted, though the macro needs to remain stubbed in to handle legacy Vectric posts
10 |
11 | IF %(25)=1 THEN GOTO METRIC_ERROR
12 |
13 | 'Deal with Metric file in Inch Mode ------------------------
14 | 'The file you are running is written for use in metric mode but your tool is set for inches. Quit and Reset your tool for metric in the Configuration Manager (left panel).
15 | PAUSE
16 | ' We could allow a better option here by putting the action at the beginning of the file and making use of END/EXIT.
17 | END
18 |
19 | 'Deal with Inch file in Metric Mode ------------------------
20 | METRIC_ERROR:
21 | 'The file you are running is written for use in inch mode but your tool is set for metric. Quit and reset your tool for inches in the Configuration Manager (left panel).
22 | PAUSE
23 | ' We could allow a better option here by putting the action at the beginning of the file and making use of END/EXIT.
24 | END
--------------------------------------------------------------------------------
/profiles/fabmo-profile-dtmax/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name" : "ShopBot Desktop MAX",
3 | "description" : "The ShopBot DT3624 tool"
4 | }
5 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-handibot-2/README.md:
--------------------------------------------------------------------------------
1 | # fabmo-profile-handibot-2
2 | FabMo machine profile for the Handibot Version 2.
3 |
4 | # macros - NOTES on macros
5 | While these are updated versions of macros for FabMo; not all variable functionality is in place in Handibot-FabMo usages.
6 | Thus, there is some hard-coding in macros here for temporary use.
7 |
8 | # HANDIBOT MACROS DIFFER FROM OTHER TOOLS BECAUSE THERE ARE NO PROX SWITCHES FOR ZEROING
9 |
10 | To help with interchangeability we employ a set of standard variables whose values are then set or each tool. This is set up in Macro #201.
11 | THIS HAS NOT BEEN SET UP TO HANDIBOTS YET.
12 |
13 | Checkout the new standard variable definitions are in Macro #201.
14 |
15 | To use these variables, we just need to call this macro once, just after any new profile is installed.
16 |
17 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-handibot-2/apps/config_app.fma:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/profiles/fabmo-profile-handibot-2/apps/config_app.fma
--------------------------------------------------------------------------------
/profiles/fabmo-profile-handibot-2/apps/fabmo-app-example_v1.0.3.fma:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/profiles/fabmo-profile-handibot-2/apps/fabmo-app-example_v1.0.3.fma
--------------------------------------------------------------------------------
/profiles/fabmo-profile-handibot-2/apps/smooth.fma:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FabMo/FabMo-Engine/38561c776764864b599c90ee5f88ec1e4a6e97a4/profiles/fabmo-profile-handibot-2/apps/smooth.fma
--------------------------------------------------------------------------------
/profiles/fabmo-profile-handibot-2/config/engine.json:
--------------------------------------------------------------------------------
1 | {
2 | "profile":"Handibot 2.0/2.1"
3 | }
4 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-handibot-2/config/g2.json:
--------------------------------------------------------------------------------
1 | {
2 | "gun": 0,
3 | "ct": 0.001,
4 | "jt": 1.5,
5 | "xfr": 300,
6 | "yfr": 300,
7 | "zfr": 240,
8 | "out5": 1
9 | }
10 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-handibot-2/config/instance.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/profiles/fabmo-profile-handibot-2/config/machine.json:
--------------------------------------------------------------------------------
1 | {
2 | "units" : "in",
3 | "limits_on" : false,
4 | "softlimits_on" : false,
5 | "default_app" : "fabmo-sb4",
6 | "envelope" : {
7 | "xmin" : 0,
8 | "xmax" : 6,
9 | "ymin" : 0,
10 | "ymax" : 8,
11 | "zmin" : -2,
12 | "zmax" : 6
13 | },
14 | "manual" : {
15 | "xy_speed": 2,
16 | "xy_max": 6
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-handibot-2/config/opensbp.json:
--------------------------------------------------------------------------------
1 | {
2 | "movexy_speed": 2,
3 | "movez_speed": 1,
4 | "jogxy_speed" : 4,
5 | "jogz_speed" : 4,
6 | "cutterDia": 0.25,
7 | "pocketOverlap": 50,
8 | "safeZpullUp": 0.25,
9 | "safeApullUp": 0.25,
10 | "variables" : {
11 | "example_variable": 999
12 | },
13 | "cRes": 0.01,
14 | "GblPropX": 1,
15 | "GblPropY": 1
16 | }
17 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-handibot-2/macros/NEWmacro_5.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name: Spindle Warm Up
2 | '!FABMO!description: Turns spindle ON and runs for 2 minutes
3 | ' Name: Spindle Warm Up
4 | ' Description: Turns spindle ON and runs for 2 minutes
5 |
6 | SO, 1, 1 ' Make OUTPUT #1 ACTIVE (high)
7 | PAUSE 120 ' Pause for 2 minutes
--------------------------------------------------------------------------------
/profiles/fabmo-profile-handibot-2/macros/NEWmacro_6.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name: Start Spindle
2 | '!FABMO!description: Turns spindle ON in file; SBP convention for managing tools
3 | ' Name: Start Spindle
4 | ' Description: Turns spindle ON in files, SBP convention for managing tools [C6] used in Vectric Posts.
5 | ' ... also called in files with Manual or Automatic Tool Changes
6 | ' If Macro is run manually, file ends after the PAUSE and Spindle turns off automatically at that file-end.
7 |
8 | SO, 1, 1 ' Make OUTPUT #1 ACTIVE (high) [Spindle channel]
9 | PAUSE .1 ' ... optional additional pause for spinup, now automatic in FabMo, may be increased here
10 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-handibot-2/macros/NEWmacro_7.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name: Stop Spindle
2 | '!FABMO!description: Turns spindle OFF in file; SBP convention for managing tools
3 | ' Name: Stop Spindle
4 | ' Description: Turns spindle OFF in files, SBP convention for managing tools [C7]. (See Macro #6)
5 | ' Spindle is automatically turned off when a file ends, but this macro can be used to turn spindle on and off withing files
6 |
7 | SO, 1,0 ' Make OUTPUT #1 INACTIVE (low) [Spindle channel]
8 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-handibot-2/macros/NEWmacro_78.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name: Set Z-Zero to Current Offset
2 | '!FABMO!description: Use after manually zeroing to record offset
3 | '!FABMO!enabled:true
4 | ' Name: Set Z-Zero to Current Offset
5 | ' Description:
6 | ' Installs Current Value of Z offset to permanent offset for future Zeroing. Works even if manually zeroed assuming Macro#3 has been run once.
7 | ' Author: Ted Hall, Ryan Sturmer
8 | ' History:
9 | ' 2/2/17, 3/16/17, 9/13/17, 11/12/19
10 | ' 9/25/21 Refactored for FabMo (th)
11 |
12 | PAUSE "This routine requires you have only zeroed once at the new Z location since homing tool with Macro#3." ''too much commentary?
13 | &tempTB_Zoffset = %(9) ' Read in System Variables for current Z-tablebase-offset (g55Z)
14 |
15 | IF %(25) == 1 THEN GOTO tool_MM ' Read UNIT of Tool; System Variable #25
16 | tool_IN:
17 | $sb_current_cutter_Zoffset_Units = "IN"
18 | GOTO continue_with_variables
19 | tool_MM:
20 | $sb_current_cutter_Zoffset_Units = "MM"
21 | GOTO continue_with_variables
22 | 'continue adjusting units for current working variables ...
23 | continue_with_variables:
24 | $sb_current_cutter_Zoffset = &tempTB_Zoffset * -1
25 | END
26 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-handibot-2/macros/NEWmacro_79.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name: Park
2 | '!FABMO!description: Move Tool to a Parking Location
3 | ' Name: Park
4 | ' Description: Move Tool to a Parking Location (typically to back)
5 | ' Platform: Desktop
6 | ' Author: Ted Hall, Ryan Sturmer
7 | ' History:
8 | ' 2/2/17, 3/16/17 th
9 | ' 2021/10/15 refactored (th)
10 |
11 | '--- Adjust Standard Macro Variables to Current Tool Units if Needed ---
12 | '--- Check to make sure Standard Macro Variables have been read
13 | $sb_standard_variables_PRESENT := 0 ' Define test variable if it does not exist
14 | IF $sb_standard_variables_PRESENT == 0 THEN GOSUB no_variables
15 |
16 | ' === Main Program ===
17 | GOSUB initialize_variables
18 | GOSUB Move_to_Position
19 | END
20 | '====================
21 |
22 | '--- 'Subroutines ---
23 | Move_to_Position:
24 | IF &Z_park < %(3) THEN GOTO Skip_Lift
25 | JZ, &Z_park
26 | Skip_Lift:
27 | J2, &X_park, &Y_park
28 | END
29 |
30 | no_variables:
31 | C201
32 | RETURN
33 |
34 | '--- Initialize Variables and Adjust Standard Macro Variables for Current Tool and Conditions as Needed
35 | initialize_variables:
36 | 'Adjust to current UNITS of tool (handles whether tool Macro Variables are for INCHES or MM)
37 | &dist_mult = 1.0
38 | IF %(25) == 1 THEN GOTO tool_MM ' Read UNIT of Tool; System Variable #25
39 | tool_IN:
40 | IF $sb_varTableUNITS == "IN" THEN GOTO continue_with_variables
41 | &dist_mult = 0.0393701 ' Defined in MM: Multiplier to redefine distances from mm to inches
42 | GOTO continue_with_variables
43 | tool_MM:
44 | IF $sb_varTableUNITS == "MM" THEN GOTO continue_with_variables
45 | &dist_mult = 25.4 ' Defined in IN: Multiplier to redefine distances from inches to mm
46 | GOTO continue_with_variables
47 | 'continue adjusting units for current working variables ...
48 | continue_with_variables:
49 | &X_park = $sb_X_park * &dist_mult
50 | &Y_park = $sb_Y_park * &dist_mult
51 | &Z_park = $sb_Z_park * &dist_mult
52 | RETURN
53 |
54 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-handibot-2/macros/NEWmacro_90.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name: Settings-OBS
2 | '!FABMO!description: LEGACY: Default variable settings
3 | ' Name: Settings
4 | ' Description: LEGACY: Load default variable settings
5 |
6 | ' This macro was previously used to load default settings. Now being done in FabMo as part of the tool "Profile"
7 | ' The macro is called by some existing Vectric posts so just stubbed-in here to prevent error
8 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-handibot-2/macros/NEWmacro_91.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name: Unit error
2 | '!FABMO!description: Notification that file Units do not match machine
3 | ' Name: Change Unit error
4 | ' Description: Notify of inconsistent Units
5 |
6 | ' This Macro is called by Vectric posts in the process of checking Units
7 | ' FabMo will handle a file even if its Units are mismatched to the current tool setting.
8 | ' - So this macro could just provide a warning and return
9 | ' - Or, content could just be deleted, though the macro needs to remain stubbed in to handle legacy Vectric posts
10 |
11 | IF %(25)=1 THEN GOTO METRIC_ERROR
12 |
13 | 'Deal with Metric file in Inch Mode ------------------------
14 | 'The file you are running is written for use in metric mode but your tool is set for inches. Quit and Reset your tool for metric in the Configuration Manager (left panel).
15 | PAUSE
16 | ' We could allow a better option here by putting the action at the beginning of the file and making use of END/EXIT.
17 | END
18 |
19 | 'Deal with Inch file in Metric Mode ------------------------
20 | METRIC_ERROR:
21 | 'The file you are running is written for use in inch mode but your tool is set for metric. Quit and reset your tool for inches in the Configuration Manager (left panel).
22 | PAUSE
23 | ' We could allow a better option here by putting the action at the beginning of the file and making use of END/EXIT.
24 | END
--------------------------------------------------------------------------------
/profiles/fabmo-profile-handibot-2/macros/README.txt:
--------------------------------------------------------------------------------
1 | We are in the process of converting the earlier Handibot macro framework to FabMo's current framework. New Desktop version included here for reference.
--------------------------------------------------------------------------------
/profiles/fabmo-profile-handibot-2/macros/macro_6.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name: Start Spindle
2 | '!FABMO!description: Turns spindle ON, SBP convention for managing tools
3 | ' Name: Start Spindle
4 | ' Description: Turns spindle ON, SBP convention for managing tools [C6]
5 |
6 | SO, 1, 1 ' Make OUTPUT #1 ACTIVE (high)
7 | PAUSE .1 ' ... optional pause for spinup, now automatic in FabMo
8 |
9 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-handibot-2/macros/macro_7.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name: Stop Spindle
2 | '!FABMO!description: Turns spindle OFF, SBP convention for managing tools
3 | ' Name: Stop Spindle
4 | ' Description: Turns spindle OFF, SBP convention for managing tools [C7]
5 |
6 | SO, 1, 0 ' Make OUTPUT #1 INACTIVE (low)
7 |
8 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-handibot-2/macros/macro_78.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name: Set Z-Zero to Current Offset
2 | '!FABMO!description: Use after manually zeroing to record offset
3 | '!FABMO!enabled:true
4 | ' Name: Set Z-Zero to Current Offset
5 | ' Description:
6 | ' Installs Current Value of Z offset to permanent offset for future Zeroing. Works even if manually zeroed assuming Macro#3 has been run once.
7 | ' Author: Ted Hall, Ryan Sturmer
8 | ' History:
9 | ' 2/2/17, 3/16/17, 9/13/17, 11/12/19
10 | ' 9/25/21 Refactored for FabMo (th)
11 |
12 | PAUSE "This routine requires you have only zeroed once at the new Z location since homing tool with Macro#3." ''too much commentary?
13 | &tempTB_Zoffset = %(9) ' Read in System Variables for current Z-tablebase-offset (g55Z)
14 |
15 | IF %(25) == 1 THEN GOTO tool_MM ' Read UNIT of Tool; System Variable #25
16 | tool_IN:
17 | $sb_current_cutter_Zoffset_Units = "IN"
18 | GOTO continue_with_variables
19 | tool_MM:
20 | $sb_current_cutter_Zoffset_Units = "MM"
21 | GOTO continue_with_variables
22 | 'continue adjusting units for current working variables ...
23 | continue_with_variables:
24 | $sb_current_cutter_Zoffset = &tempTB_Zoffset * -1
25 | END
26 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-handibot-2/macros/macro_79.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name: Park
2 | '!FABMO!description: Move Tool to Parking Location (typically to back)
3 | ' Name: Park
4 | ' Description: Move Tool to Parking Location (typically to back) [C79]
5 | ' Platform: Handibot2, Handibot1
6 | ' Author: Ted Hall, Ryan Sturmer
7 | ' History:
8 | ' 2/2/17, 3/16/17, 12/12/18 th
9 |
10 | SU,0 ' Set to Inches; Units will auto-revert to current starting units at end of file
11 |
12 | '--- Main ---
13 | IF %(25) = 0 THEN GOTO Inch
14 | 'else
15 | GOTO Metric
16 | END
17 |
18 | '--- Settings --- Initializing permanent variables; ##:=## if not already set
19 | Inch:
20 | $x_park_in := 3
21 | $y_park_in := 7
22 | $z_park_in := 1.5
23 | GOTO Move_to_Position_INCH
24 | Metric:
25 | $x_park_mm := 75
26 | $y_park_mm := 175
27 | $z_park_mm := 40
28 | GOTO Move_to_Position_MM
29 |
30 | '--- Subroutines ---
31 | Move_to_Position_INCH:
32 | JZ, $z_park_in
33 | J2, $x_park_in, $y_park_in
34 | END
35 |
36 | Move_to_Position_MM:
37 | JZ, $z_park_mm
38 | J2, $x_park_mm, $y_park_mm
39 | END
40 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-handibot-2/macros/macro_90.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name: Settings
2 | '!FABMO!description: LEGACY: Loaded default variable settings
3 | ' Name: Settings
4 | ' Description: LEGACY: Loaded default variable settings
5 |
6 | ' This macro was previously used to load default settings. Now being done in FabMo by the tool "Profile"
7 | ' It is called by existing Vectric posts
8 |
--------------------------------------------------------------------------------
/profiles/fabmo-profile-handibot-2/macros/macro_91.sbp:
--------------------------------------------------------------------------------
1 | '!FABMO!name: Unit type issue
2 | '!FABMO!description: Please change to correct units
3 | ' Name: Change Unit type issue
4 | ' Description: Please change to correct units
5 |
6 | ' This Macro is called by Vectric posts in the process of checking Units
7 |
8 | IF %(25)=1 THEN GOTO METRIC_ERROR
9 |
10 | 'Deal with Metric file in Inch Mode ------------------------
11 | 'The file you are running is written for use in metric mode but your tool is set for inches. Please Quit and Reset your tool for metric in the Configuration Manager (left panel).
12 | PAUSE
13 | END
14 |
15 | 'Deal with Inch file in Metric Mode ------------------------
16 | METRIC_ERROR:
17 | 'The file you are running is written for use in inch mode but your tool is set for metric. Please Quit and reset your tool for inches in the Configuration Manager (left panel).
18 | PAUSE
19 | END
--------------------------------------------------------------------------------
/profiles/fabmo-profile-handibot-2/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name" : "Handibot 2.0/2.1",
3 | "description" : "The ShopBot Handibot Adventure Edition",
4 | "version" : "v1.1.3"
5 | }
6 |
--------------------------------------------------------------------------------
/pythonUtils/README.md:
--------------------------------------------------------------------------------
1 | # USB Fabmo Logger
2 |
3 | The **USB Fabmo Logger** is a Python-based daemon that monitors for USB flash drive insertions. When a USB flash drive is detected, the tool generates a `##-FABMO-##.log` file and an `##-accessSHOPBOT-##.html file in the root directory of the USB drive. This log file includes the following:
4 |
5 | - The local IP address of the device.
6 | - other info useful for diagnosing problems
7 |
8 | The html file provide a link to start FabMo/ShopBot on a device on the same network.
9 |
10 |
11 | # I2C Display
12 |
13 | The **I2C Display** script can be used to drive an I2C display from the Raspberry Pi to proovide the tool's IP address and other system Info. This syetem is in-active by default and requires additional hardware.
14 |
15 |
16 | ## License
17 |
18 | This project is licensed under the MIT License. See the LICENSE file for details.
19 |
--------------------------------------------------------------------------------
/pythonUtils/fabmo_support_contact.txt:
--------------------------------------------------------------------------------
1 | Technical Support Contact Information
2 | Email: Support@ShopBotTools.com
3 | Phone: 1-888-680-4466
--------------------------------------------------------------------------------
/pythonUtils/run_i2c_display.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Define the virtual environment directory
4 | VENV_DIR="./venv"
5 |
6 | # Check if the virtual environment exists, if not create it
7 | if [ ! -d "$VENV_DIR" ]; then
8 | echo "No virtual environment found. Creating one..."
9 | python3 -m venv "$VENV_DIR"
10 |
11 | if [ $? -ne 0 ]; then
12 | echo "Failed to create virtual environment."
13 | exit 1
14 | fi
15 | fi
16 |
17 | # Activate the virtual environment
18 | echo "Activating the virtual environment..."
19 | source "$VENV_DIR/bin/activate" || source "$VENV_DIR/Scripts/activate"
20 |
21 | # Upgrade pip to avoid dependency issues
22 | echo "Upgrading pip..."
23 | pip install --upgrade pip
24 |
25 | # Check if Blinka is installed
26 | if ! python -c "import board" &> /dev/null; then
27 | echo "Blinka not found. Installing..."
28 | pip install Adafruit-Blinka
29 | else
30 | echo "Blinka is already installed."
31 | fi
32 |
33 | # Run the Python script
34 | echo "Running 12c_display.py..."
35 | python 12c_display.py
36 |
--------------------------------------------------------------------------------
/routes/acc.js:
--------------------------------------------------------------------------------
1 | var machine = require("../machine").machine;
2 |
3 | /**
4 | * @api {post} // Direct control of accessories like spindles
5 | * @apiGroup acc // *have not figured out how to make these calls work as groups
6 | * @apiDescription Execute the POSTed acc request
7 | * @apiParam {Object} acc ITEM. Currently supported: `spindle-speed`
8 | * @apiParam {Object} new RPM.
9 | * @apiError {String} status `error`
10 | * @apiError {Object} message Error message
11 | */
12 |
13 | // eslint-disable-next-line no-unused-vars
14 | var spindle_speed = function (req, res, next) {
15 | var answer = {
16 | status: "success",
17 | data: null,
18 | };
19 | // Adjust parameter names to match the client's payload
20 | if (req.body.rpm !== undefined) {
21 | var RPM = req.body.rpm;
22 | machine.spindleSpeed(RPM);
23 | } else {
24 | answer = {
25 | status: "error",
26 | message: "No RPM specified in request.",
27 | };
28 | }
29 | res.json(answer);
30 | };
31 |
32 | module.exports = function (server) {
33 | server.post("/acc/spindle_speed", spindle_speed);
34 | };
35 |
--------------------------------------------------------------------------------
/routes/kill.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable no-undef */
2 | process = require("process");
3 | log = require("../log").logger("routes");
4 |
5 | /**
6 | * @api {get} /restart Kill the engine
7 | * @apiDescription Forcibly terminate the engine software. Software may be restarted by system service manager
8 | * @apiGroup Developer
9 | * @apiSuccess {String} status success
10 | * @apiSuccess {Object} data null
11 | */
12 | // eslint-disable-next-line no-unused-vars
13 | function kill(req, res, next) {
14 | log.warn("Killing the engine by user request...");
15 | var answer = {
16 | status: "success",
17 | data: null,
18 | };
19 | res.json(answer);
20 | process.exit(1);
21 | }
22 |
23 | module.exports = function (server) {
24 | server.get("/kill", kill);
25 | };
26 |
--------------------------------------------------------------------------------
/routes/log.js:
--------------------------------------------------------------------------------
1 | var log = require("../log");
2 |
3 | /**
4 | * @apiGroup Log
5 | * @api {get} /log Get log
6 | * @apiDescription Get the contents of the debug log
7 | */
8 | // eslint-disable-next-line no-unused-vars
9 | var getLog = function (req, res, next) {
10 | var body = log.getLogBuffer();
11 | res.setHeader("content-type", "text/plain");
12 | res.send(body);
13 | };
14 |
15 | /**
16 | * @apiGroup Log
17 | * @api {get} /flight Get log
18 | * @apiDescription Get the contents of the debug log
19 | */
20 | // eslint-disable-next-line no-unused-vars
21 | var getFlightLog = function (req, res, next) {
22 | try {
23 | res.json(log.getFlightLog());
24 | } catch (e) {
25 | res.send(503, e.message);
26 | }
27 | };
28 |
29 | /**
30 | * @apiGroup Log
31 | * @api {delete} /log Clear log
32 | * @apiDescription Clear the debug log.
33 | * @apiSuccess {String} status `success`
34 | * @apiSuccess {Object} data null
35 | */
36 | // eslint-disable-next-line no-unused-vars
37 | var clearLog = function (req, res, next) {
38 | var answer = {
39 | status: "success",
40 | data: null,
41 | };
42 | log.clearLogBuffer();
43 | res.json(answer);
44 | };
45 |
46 | module.exports = function (server) {
47 | server.get("/log", getLog);
48 | server.del("/log", clearLog);
49 | server.get("/flight", getFlightLog);
50 | };
51 |
--------------------------------------------------------------------------------
/routes/state.js:
--------------------------------------------------------------------------------
1 | var machine = require("../machine").machine;
2 |
3 | /**
4 | * @api {get} /quit Quit
5 | * @apiGroup State
6 | * @apiDescription Abort the current job, whether it is running, paused, or stopped due to an error.
7 | * @apiSuccess {String} status `success`
8 | * @apiSuccess {Object} data null
9 | * @apiError {String} status `error`
10 | * @apiError {Object} message Error message
11 | */
12 | // eslint-disable-next-line no-unused-vars
13 | var quit = function (req, res, next) {
14 | machine.quit();
15 | var answer = {
16 | status: "success",
17 | data: null,
18 | };
19 | res.json(answer);
20 | };
21 |
22 | /**
23 | * @api {get} /pause Pause
24 | * @apiDescription Pause the current job. Only a valid operation when a job is running. Generally, a resume is possible after this operation.
25 | * @apiGroup State
26 | * @apiSuccess {String} status `success`
27 | * @apiSuccess {Object} data null
28 | * @apiError {String} status `error`
29 | * @apiError {Object} message Error message
30 | */
31 | // eslint-disable-next-line no-unused-vars
32 | var pause = function (req, res, next) {
33 | machine.pause(next);
34 | var answer = {
35 | status: "success",
36 | data: null,
37 | };
38 | res.json(answer);
39 | };
40 |
41 | /**
42 | * @api {get} /resume Resume
43 | * @apiGroup State
44 | * @apiDescription Continue running the current job if the system is paused.
45 | * @apiSuccess {String} status `success`
46 | * @apiSuccess {Object} data null
47 | * @apiError {String} status `error`
48 | * @apiError {Object} message Error message
49 | */
50 | // eslint-disable-next-line no-unused-vars
51 | var resume = function (req, res, next) {
52 | machine.resume();
53 | var answer = {
54 | status: "success",
55 | data: null,
56 | };
57 | res.json(answer);
58 | };
59 |
60 | module.exports = function (server) {
61 | //server.get('/run/:id',run); //OK
62 | server.post("/quit", quit); //OK
63 | server.post("/pause", pause); //OK
64 | server.post("/resume", resume); //OK
65 | };
66 |
--------------------------------------------------------------------------------
/routes/time.js:
--------------------------------------------------------------------------------
1 | /*
2 | * routes/time.js
3 | *
4 | * Route for setting the time
5 | */
6 |
7 | // Set time to the value provided in the post body.
8 | // POST body example: {"ms": 1234567} where `ms` is ms since the unix epoch
9 |
10 | var engine = require("../engine");
11 |
12 | // eslint-disable-next-line no-unused-vars
13 | var setTime = function (req, res, next) {
14 | if (req.params.ms) {
15 | engine.setTime(req.params.ms);
16 | }
17 | };
18 |
19 | // eslint-disable-next-line no-unused-vars
20 | var get_time = function (req, res, next) {
21 | const d = new Date();
22 | let t = d.getTime();
23 | var answer = {
24 | status: "success",
25 | data: { time: t },
26 | };
27 | res.json(answer);
28 | };
29 |
30 | module.exports = function (server) {
31 | server.post("/time", setTime);
32 | server.get("/time", get_time);
33 | };
34 |
--------------------------------------------------------------------------------
/routes/uix.js:
--------------------------------------------------------------------------------
1 | var machine = require("../machine").machine;
2 |
3 | /**
4 | * @api {post} // Respond interactively to user inputs (U_ser I_nput xI_nteraction) during file running, etc.
5 | * @apiGroup uix // *have not figured out how to make these calls work as groups
6 | * @apiDescription Execute the POSTed uixc request
7 | * @apiParam {Object} uix ITEM. Currently suppored: `fr_override`
8 | * @apiParam {Object} new OVR.
9 | * @apiError {String} status `error`
10 | * @apiError {Object} message Error message
11 | */
12 |
13 | // eslint-disable-next-line no-unused-vars
14 | var fr_override = function (req, res, next) {
15 | var answer = {
16 | status: "success",
17 | data: null,
18 | };
19 | // Adjust parameter names to match the client's payload
20 | if (req.body.ovr !== undefined) {
21 | var OVR = req.body.ovr;
22 | machine.frOverride(OVR);
23 | } else {
24 | answer = {
25 | status: "error",
26 | message: "No OVR specified in request.",
27 | };
28 | }
29 | res.json(answer);
30 | };
31 |
32 | module.exports = function (server) {
33 | server.post("/uix/fr_override", fr_override);
34 | };
35 |
--------------------------------------------------------------------------------
/runtime/gcode/index.js:
--------------------------------------------------------------------------------
1 | exports.GCodeRuntime = require("./gcode").GCodeRuntime;
2 |
--------------------------------------------------------------------------------
/runtime/opensbp/commands/custom.js:
--------------------------------------------------------------------------------
1 | /* CUSTOM CUTS */
2 |
3 | // Set to table base coordinates
4 | exports.C_POUND = function (args, callback) {
5 | this.runCustomCut(args[0], callback);
6 | };
7 | exports.CN = function (args, callback) {
8 | this.runCustomCut(args[0], callback);
9 | };
10 |
--------------------------------------------------------------------------------
/runtime/opensbp/commands/file.js:
--------------------------------------------------------------------------------
1 | var log = require("../../../log").logger("sbp");
2 | var config = require("../../../config");
3 |
4 | /* FILES */
5 |
6 | // At the moment, this is just a placeholder for the files
7 | // ... "F" functions are only implemented via Sb4 and can not be used within part files
8 |
9 | // /* ####** probably don't need this */
10 |
11 | // // Set to table base coordinates
12 | // exports.FL = function (args, callback) {
13 | // // fabmo.submitJob({
14 | // // file : text,
15 | // // filename: filename,
16 | // // name : name, // just letting this float for the moment, make name without ext to be easily available
17 | // // description: description
18 | // // },
19 | // // function(err, result) {
20 | // // if(err) {
21 | // // if(err.message) {
22 | // // fabmo.notify('error', err.message);
23 | // // } else if(err.job) {
24 | // // fabmo.notify('warn', err.job);
25 | // // } else {
26 | // // fabmo.notify('error', err);
27 | // // }
28 | // // } else {
29 | // // fabmo.launchApp('job-manager');
30 | // // }
31 | // // }
32 | // // );
33 |
34 | // // $('#jobsubmit-modal').foundation('reveal', 'close');
35 | // // $("#jobsubmit-form").trigger('reset');
36 | // // };
37 | // if (this.machine) {
38 | // var toRun = this.lastFilename;
39 | // if (toRun) {
40 | // this._pushFileStack();
41 | // this.runFile(toRun);
42 | // } else {
43 | // throw new Error("Can't run last file; lost?");
44 | // }
45 | // } else {
46 | // callback();
47 | // }
48 | // return true;
49 | // };
50 |
51 | // exports.FR = function (args, callback) {
52 | // this.getJobHistory(args[0], callback);
53 | // };
54 |
--------------------------------------------------------------------------------
/runtime/opensbp/commands/index.js:
--------------------------------------------------------------------------------
1 | var fs = require("fs");
2 | var path = require("path");
3 | var log = require("../../../log").logger("opensbp");
4 |
5 | // Load all the files in the 'routes' directory and process them as route-producing modules
6 | exports.load = function () {
7 | var commandDir = __dirname;
8 | var files = fs.readdirSync(commandDir);
9 | var retval = {};
10 | files.forEach(function (file) {
11 | var filePath = path.resolve("./", commandDir, file);
12 | if (path.extname(filePath) == ".js" && path.basename(filePath) != "index.js") {
13 | try {
14 | var commands = require(filePath);
15 | for (var attr in commands) {
16 | retval[attr] = commands[attr];
17 | }
18 | log.debug('Loaded OpenSBP commands from "' + filePath + '"');
19 | } catch (e) {
20 | log.warn('Could not load OpenSBP Commands from "' + filePath + '": ' + e);
21 | log.error(e);
22 | }
23 | }
24 | });
25 | return retval;
26 | };
27 |
--------------------------------------------------------------------------------
/runtime/opensbp/commands/tools.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | var log = require("../../../log").logger("sbp");
3 |
4 | /* TOOLS */
5 |
6 | // Set Up Spindle Control Tool; VFD, Spindle, RPM, etc. (Does not contorl RUN/STOP or optional FWD/REV)
7 | // ... currently only managing a single spindle
8 |
9 | exports.TR = function (args, callback) {
10 | // todo: Not currently managing spindle number or checking to make sure *not spinning before setting direction
11 | const spindle = require("../../../spindle1");
12 |
13 | // Incoming requests:
14 | var new_RPM = args[0];
15 | var spindle_num = args[1];
16 | var opts1 = args[2];
17 | var opts2 = args[3];
18 |
19 | // Defaults for Incoming requests
20 | if (!spindle_num) {
21 | spindle_num = 1;
22 | }
23 | if (!opts1) {
24 | opts = "";
25 | }
26 | if (!opts2) {
27 | opts2 = "";
28 | }
29 |
30 | // Set RPM; todo: check for change only (or deeper than here); update range
31 | if (new_RPM > 5000 && new_RPM < 30000) {
32 | try {
33 | log.info("----> new speed: " + new_RPM);
34 | spindle.setSpindleVFDFreq(new_RPM);
35 | } catch (error) {
36 | log.error("Failed to pass new RPM: " + error);
37 | }
38 | };
39 |
40 | callback();
41 |
42 | };
--------------------------------------------------------------------------------
/runtime/opensbp/index.js:
--------------------------------------------------------------------------------
1 | exports.SBPRuntime = require("./opensbp").SBPRuntime;
2 |
--------------------------------------------------------------------------------
/runtime/opensbp/test-error.js:
--------------------------------------------------------------------------------
1 | // test-error.js
2 | function testErrorCreation(message) {
3 | var error = new Error(message);
4 | console.log(error);
5 | }
6 |
7 | testErrorCreation("Test message");
8 |
--------------------------------------------------------------------------------
/runtime/opensbp/test1.sbp:
--------------------------------------------------------------------------------
1 | mx,1
2 | mx,2
3 | mx,3
4 |
--------------------------------------------------------------------------------
/runtime/opensbp/test2.sbp:
--------------------------------------------------------------------------------
1 | 'more complex test
2 | PAUSE "This is a statement"
3 | &var=3.4
4 | mx, &var
5 | jh
6 | IF &var > 3 then GOTO last
7 | last:
8 | END
9 |
--------------------------------------------------------------------------------
/runtime/opensbp/test_parser.js:
--------------------------------------------------------------------------------
1 | const parser = require("./sbp_parser");
2 |
3 | // Test inputs
4 | const testInputs = [
5 | "&var=2",
6 | "$tools[1].x = 100",
7 | "$config.settings.speed = 500",
8 | "$unknown[5] = 2",
9 | "$loc[&i] = { x: 1.1, y: 2.2 }",
10 | "PAUSE",
11 | 'PAUSE "Please configm action"',
12 | 'PAUSE "Please configm action", &Var',
13 | 'PAUSE "Confirm?", TITLE="Confirmation", OKTEXT="Yes", CANCELTEXT="No", NOBUTTON=FALSE',
14 | "PAUSE INPUT=&UserInput",
15 | 'PAUSE MESSAGE="Wait...", TIMER=5',
16 | 'PAUSE "Processing...", TIMER=10',
17 | 'PAUSE "Just a message."',
18 | "PAUSE TIMER=5",
19 | 'PAUSE &varName, MESSAGE="Input required", TITLE="Data Entry"',
20 | 'DIALOG "Please enter your name:", INPUT=&name, OKTEXT="Submit"',
21 | "IF &A = 1 THEN RETURN",
22 | ];
23 |
24 | // Function to test parsing of inputs
25 | function testParser(inputs) {
26 | inputs.forEach((input) => {
27 | try {
28 | const result = parser.parse(input);
29 | console.log(`Input: ${input}`);
30 | console.log("Parsed Output:", JSON.stringify(result, null, 2));
31 | } catch (e) {
32 | console.error(`Error parsing input "${input}":`, e.message);
33 | console.error("Expected:", e.expected);
34 | console.error("Found:", e.found);
35 | console.error("Location:", e.location);
36 | }
37 | console.log("------------------------------------");
38 | });
39 | }
40 |
41 | // Run the test
42 | testParser(testInputs);
43 |
--------------------------------------------------------------------------------
/scripts/sb3_to_gcode.js:
--------------------------------------------------------------------------------
1 | var SBPRuntime = require("../runtime/opensbp").SBPRuntime;
2 | var config = require("../config");
3 | var fs = require("fs");
4 |
5 | var input_file = process.argv[2];
6 | var output_file = process.argv[3];
7 |
8 | config.configureOpenSBP(function () {
9 | config.configureDriver(null, function () {
10 | var runtime = new SBPRuntime();
11 | runtime.loadCommands(function (err) {
12 | if (!err) {
13 | fs.readFile(input_file, function (err, data) {
14 | if (!err) {
15 | runtime.on("end", function (data) {
16 | fs.writeFile(output_file, data.join("\n"));
17 | });
18 | runtime.runString(String(data));
19 | }
20 | });
21 | }
22 | });
23 | });
24 | });
25 |
--------------------------------------------------------------------------------
/server.js:
--------------------------------------------------------------------------------
1 | /*
2 | * server.js
3 | *
4 | * Engine server module.
5 | *
6 | * This is the entry point for the fabmo engine. It just starts the engine.
7 | */
8 | var engine = require("./engine");
9 | // eslint-disable-next-line no-undef
10 | var argv = require("minimist")(process.argv); // process is undefined
11 |
12 | // eslint-disable-next-line no-unused-vars
13 | engine.start(function (err, data) {
14 | // Start the debug monitor if requested, but only after the engine is fully started
15 | if ("debug" in argv) {
16 | require("./debug").start();
17 | }
18 | });
19 |
20 | exports.engine = engine;
21 |
--------------------------------------------------------------------------------
/spindles/spindle-VFD-data/spin-DT-1hp-delta.json:
--------------------------------------------------------------------------------
1 | {
2 | "VFD_Settings": {
3 | "Name": "spin-DT-1hp-delta",
4 | "COM_PORT": "/dev/vfdACM_controller1",
5 | "MB_ADDRESS": 3,
6 | "BAUDRATE": 9600,
7 | "BYTESIZE": 8,
8 | "STOPBITS": 1,
9 | "PARITY": "even",
10 | "MAX_RPM": 18000,
11 | "MIN_RPM": 8000,
12 | "Registers": {
13 | "READ_FREQUENCY": 8450,
14 | "READ_ATTAINED_FREQUENCY": 8451,
15 | "READ_OUTPUT_CURRENT": 8452,
16 | "READ_STATUS": 8449,
17 | "TRIG_READ_FREQ": 8450,
18 | "SET_FREQUENCY": 8193,
19 | "RPM_MULT": 1,
20 | "READ_AMPS_HI": null,
21 | "AMP_MULT": 1,
22 | "UNLOCK_PARAMETERS": null,
23 | "PASSWORD": 0
24 | },
25 | "Modbus_Function_Codes": {
26 | "READ_REGISTER": 3,
27 | "WRITE_SINGLE_REGISTER": 6
28 | },
29 | "READ_LENGTH": 6
30 | }
31 | }
--------------------------------------------------------------------------------
/spindles/spindle-VFD-data/spin-DT-1hp-lenze.json:
--------------------------------------------------------------------------------
1 | {
2 | "VFD_Settings": {
3 | "Name": "spin-DT-1hp-lenze",
4 | "COM_PORT": "/dev/vfdACM_controller1",
5 | "MB_ADDRESS": 3,
6 | "BAUDRATE": 9600,
7 | "BYTESIZE": 8,
8 | "STOPBITS": 1,
9 | "PARITY": "even",
10 | "MAX_RPM": 18000,
11 | "MIN_RPM": 8000,
12 | "Registers": {
13 | "READ_FREQUENCY": 24,
14 | "READ_ATTAINED_FREQUENCY": 25,
15 | "READ_OUTPUT_CURRENT": 26,
16 | "READ_STATUS": 26,
17 | "TRIG_READ_FREQ": 24,
18 | "SET_FREQUENCY": 44,
19 | "RPM_MULT": 6,
20 | "READ_AMPS_HI": true,
21 | "AMP_MULT": 2.6,
22 | "UNLOCK_PARAMETERS": 49,
23 | "PASSWORD": 0
24 | },
25 | "Modbus_Function_Codes": {
26 | "READ_REGISTER": 3,
27 | "WRITE_SINGLE_REGISTER": 6
28 | },
29 | "READ_LENGTH": 6
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/spindles/spindle1_settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "VFD_Settings": {
3 | "Name": "spin-DT-1hp-lenze",
4 | "COM_PORT": "/dev/vfdACM_controller1",
5 | "MB_ADDRESS": 3,
6 | "BAUDRATE": 9600,
7 | "BYTESIZE": 8,
8 | "STOPBITS": 1,
9 | "PARITY": "even",
10 | "MAX_RPM": 18000,
11 | "MIN_RPM": 8000,
12 | "Registers": {
13 | "READ_FREQUENCY": 24,
14 | "READ_ATTAINED_FREQUENCY": 25,
15 | "READ_OUTPUT_CURRENT": 26,
16 | "READ_STATUS": 26,
17 | "TRIG_READ_FREQ": 24,
18 | "SET_FREQUENCY": 44,
19 | "RPM_MULT": 6,
20 | "READ_AMPS_HI": true,
21 | "AMP_MULT": 2.6,
22 | "UNLOCK_PARAMETERS": 49,
23 | "PASSWORD": 0
24 | },
25 | "Modbus_Function_Codes": {
26 | "READ_REGISTER": 3,
27 | "WRITE_SINGLE_REGISTER": 6
28 | },
29 | "READ_LENGTH": 6
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/updater.js:
--------------------------------------------------------------------------------
1 | /*
2 | * updater.js
3 | *
4 | * Handle functions of the updater that need to be called from the engine.
5 | *
6 | * Currently, this is just the AP collapse. All other functions are handled through the router.
7 | *
8 | */
9 | var got = require("got");
10 | var config = require("./config");
11 | var log = require("./log").logger("updater");
12 |
13 | async function postJSON(url, obj) {
14 | try {
15 | await got
16 | .post(url, {
17 | json: obj,
18 | })
19 | .json();
20 | } catch (err) {
21 | log.error(err);
22 | }
23 | }
24 |
25 | exports.APModeCollapse = function () {
26 | var port = config.engine.get("server_port") + 1;
27 | var url = "http://localhost:" + port + "/network/hotspot/state";
28 | postJSON(url, { enabled: true });
29 | };
30 |
--------------------------------------------------------------------------------