Skip to content

Commit

Permalink
Merge 3.0 refactoring
Browse files Browse the repository at this point in the history
## What's Changed
* Complete refactoring using spectre.css and correct Preact API per @alexblog suggestion
* Smaller footprint
* Add support for extensions/pluggins
* Add theme support by using external css
* Remove banner as unnecessary
* Remove information bar and put information to separate page and respective panel
* Add audio and haptic feedback
* Add Repetier / ESP3DLib V2 / Smoothieware / GRBL support
* Split code for 3DPrinter / CNC / Sand Table

## Limitations
* CNC / Sand Table specific UI is still not defined
* Wizard is not implemented yet
* Works with ESP3D 3.0- alpha-2 - no backward compatibility
* Language packs are not ready to be translated yet as UI is not finished

## Discussion / status
[Discussion](#94)

## New Contributors
@alexblog made several contributions like #236
  • Loading branch information
luc-github committed Jun 1, 2022
1 parent c55bd56 commit d9ad884
Show file tree
Hide file tree
Showing 515 changed files with 68,739 additions and 32,945 deletions.
6 changes: 0 additions & 6 deletions .babelrc

This file was deleted.

9 changes: 3 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@

node_modules
dist/images/jogdial.svg
dist/images/jogdial1.svg
dist/images/jogdial2.svg
dist/images/printer.tpl.htm
dist/images/repetier.htm
dist/index.html
.vscode
build
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
14.16.1
2 changes: 1 addition & 1 deletion .prettierrc
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
},
{"files": "*.scss",
"options": {
"parser": "scss"
"parser": "css"
}
}
]
Expand Down
17 changes: 0 additions & 17 deletions .travis.yml

This file was deleted.

Binary file modified ESP3D-WebUI-features.xls
Binary file not shown.
73 changes: 73 additions & 0 deletions Features.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# V3 Features

## Global Features
* Firmware update
* WebUI update
* List of enabled features /capabilities
* Wifi configuration
* Features configuration
* WebUI features configuration
* Haptic feedback
* Audio feedback
* Terminal commands
* Emmergency stop
* Pluggins support
* Themes support (CSS)
* Language packs support
* Macro commands
* Local FS listing / content management
* External pages/panel support
* PC / Tablet / phone UI
* IP Camera & ESP32 Camera display support
* Import / Export settings
* Restart board support
* Monolitic small footprint
* Single user management support (auto close if not latest connected)
* Authentication support (admin / user)
* Configuration wizard (TBD)
* Firmware supported (3DPrinter / CNC / SandTable):
* ESP3D:
* Marlin (1.x / 2.x)
* Smoothieware (1.x / 2.x)
* Repetier (1.x / 2.x)
* GRBL (TBD)
* ESP3DLib
* Marlin (2.x)
* GRBL_ESP32 (TBD)
* FluidNC (TBD)
* Makerbase TFT (ESP3D)
* Bigtreetech TFT (ESP3D)
* Firmware NOT yet supported:
* Reprap

## 3D Printer Features
* Target firmware configuration
* Jog control / monitoring
* Temperatures control / monitoring
* Additionnal sensors support
* Chart support for temperatures / sensors
* Multiple extruder support
* Target Firmware SD listing / content management (if supported)
* TFT SD/USB listing / content management (if supported)
* Fan control / monitoring (if supported)
* Flow rate control / monitoring (if supported)
* Feed rate control / monitoring (if supported)
* Print control / monitoring

## CNC Features
* Target firmware configuration
* Jog control / monitoring
* Job control / monitoring
* Status monitoring
* TBD...

## Sand Table Features
* Target firmware configuration
* Jog control / monitoring
* Job control / monitoring
* Status monitoring
* TBD...




92 changes: 92 additions & 0 deletions Memo/ESP3D [ESP400] format.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
ESP3D [ESP400] format:
{"Settings":[
{"F":"network/network","P":"130","T":"S","V":"esp3d","H":"hostname","S":"32","M":"1"},
{"F":"network/network","P":"0","T":"B","V":"1","H":"radio mode","O":[{"none":"0"},
{"sta":"1"},
{"ap":"2"}]},
{"F":"network/sta","P":"1","T":"S","V":"WIFI_OFFICE_B2G","S":"32","H":"SSID","M":"1"},
{"F":"network/sta","P":"34","T":"S","N":"1","V":"********","S":"64","H":"pwd","M":"8"},
{"F":"network/sta","P":"99","T":"B","V":"1","H":"ip mode","O":[{"dhcp":"1"},
{"static":"0"}]},
{"F":"network/sta","P":"100","T":"A","V":"192.168.0.1","H":"ip"},
{"F":"network/sta","P":"108","T":"A","V":"192.168.0.1","H":"gw"},
{"F":"network/sta","P":"104","T":"A","V":"255.255.255.0","H":"msk"},
{"F":"network/ap","P":"218","T":"S","V":"ESP3D","S":"32","H":"SSID","M":"1"},
{"F":"network/ap","P":"251","T":"S","N":"1","V":"********","S":"64","H":"pwd","M":"8"},
{"F":"network/ap","P":"316","T":"A","V":"192.168.0.1","H":"ip"},
{"F":"network/ap","P":"118","T":"B","V":"11","H":"channel","O":[{"1":"1"},
{"2":"2"},
{"3":"3"},
{"4":"4"},
{"5":"5"},
{"6":"6"},
{"7":"7"},
{"8":"8"},
{"9":"9"},
{"10":"10"},
{"11":"11"},
{"12":"12"},
{"13":"13"},
{"14":"14"}]},
{"F":"service/http","P":"328","T":"B","V":"1","H":"enable","O":[{"no":"0"},
{"yes":"1"}]},
{"F":"service/http","P":"121","T":"I","V":"80","H":"port","S":"65001","M":"1"},
{"F":"service/telnetp","P":"329","T":"B","V":"1","H":"enable","O":[{"no":"0"},
{"yes":"1"}]},
{"F":"service/telnetp","P":"125","T":"I","V":"23","H":"port","S":"65001","M":"1"},
{"F":"service/ftp","P":"1021","T":"B","V":"1","H":"enable","O":[{"no":"0"},
{"yes":"1"}]},
{"F":"service/ftp","P":"1009","T":"I","V":"21","H":"control port","S":"65001","M":"1"},
{"F":"service/ftp","P":"1013","T":"I","V":"20","H":"active port","S":"65001","M":"1"},
{"F":"service/ftp","P":"1017","T":"I","V":"55600","H":"passive port","S":"65001","M":"1"},
{"F":"service/notification","P":"1004","T":"B","V":"1","H":"auto notif","O":[{"no":"0"},
{"yes":"1"}]},
{"F":"service/notification","P":"116","T":"B","V":"0","H":"notification","O":[{"none":"0"},
{"pushover":"1"},
{"email":"2"},
{"line":"3"}]},
{"F":"service/notification","P":"332","T":"S","V":"********","S":"63","H":"t1","M":"0"},
{"F":"service/notification","P":"396","T":"S","V":"********","S":"63","H":"t2","M":"0"},
{"F":"service/notification","P":"855","T":"S","V":" ","S":"127","H":"ts","M":"0"},
{"F":"system/system","P":"461","T":"B","V":"40","H":"targetfw","O":[{"repetier":"50"},
{"marlin":"20"},
{"smoothieware":"40"},
{"grbl":"10"},
{"unknown":"0"}]},
{"F":"system/system","P":"112","T":"I","V":"115200","H":"baud","O":[{"9600":"9600"},
{"19200":"19200"},
{"38400":"38400"},
{"57600":"57600"},
{"74880":"74880"},
{"115200":"115200"},
{"230400":"230400"},
{"250000":"250000"},
{"500000":"500000"},
{"921600":"921600"}]},
{"F":"system/system","P":"320","T":"I","V":"10000","H":"bootdelay","S":"40000","M":"0"},
]}

1 - key : Settings
2 - value: array of data formated like this
{"F":"network/network","P":"130","T":"S","V":"esp3d","H":"hostname","S":"32","M":"1"}
or
{"F":"service/notification","P":"1004","T":"B","V":"1","H":"auto notif","O":[{"no":"0"},{"yes":"1"}]}

F: is filter formated as section/sub-section, if section is same as sub-section, it means no sub-section
P: is id (also position reference so it is unique)
T: is type of data which can be:
S: for string
I: for integer
T: for Byte
A: for IP address / Mask
V: is current value, if type is string and value is ********, (8 stars)then it is a password
H: is label of value
S: is max size if type is string, and max possible value if value is number (byte, integer)
M: is min size if type is string, and min possible value if value is number (byte, integer)
MS: is additionnal min size if type is string (e.g for password can be 0 or 8, so need additional min size), M should be the more minimal value
so MS value must be between M and S
O: is an array of {label:value}
R: need restart to be applied

Note: currently there is no float value so far, if needed a new type will be added in futur - TBD,
Note2 : the 2.1 Flag type is no more used, several entries are used instead grouped by sub-section
7 changes: 7 additions & 0 deletions Memo/TargetFW.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
fluidnc: 60
repetier: 50
smoothieware: 40
marlin_embedded: 30
marlin: 20
grbl: 10
unknown: 0
Binary file added Memo/data structure.odt
Binary file not shown.
47 changes: 47 additions & 0 deletions Memo/realtimecmd.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
0x18 (ctrl-x) : Soft-Reset : #SOFTRESET#
0x84 : Safety Door #SAFETYDOOR#
0x85 : Jog Cancel #JOGCANCEL#

Feed Overrides
0x90 : Set 100% of programmed rate. #FO100#
0x91 : Increase 10% #FO+10#
0x92 : Decrease 10% #FO-10#
0x93 : Increase 1% #FO+1#
0x94 : Decrease 1% #FO-1#

Rapid Overrides
0x95 : Set to 100% full rapid rate. #RO100#
0x96 : Set to 50% of rapid rate. #RO50#
0x97 : Set to 25% of rapid rate. #RO25#

Spindle Speed Overrides 10%->200%
0x99 : Set 100% of programmed spindle speed #SSO100#
0x9A : Increase 10% #SSO+10#
0x9B : Decrease 10% #SSO-10#
0x9C : Increase 1% #SSO+1#
0x9D : Decrease 1% #SSO-1#

0x9E : Toggle Spindle Stop #T-SPINDLESTOP#
0xA0 : Toggle Flood Coolant #T-FLOODCOOLANT#
0xA1 : Toggle Mist Coolant #T-MISTCOOLANT#

[{name:"#SOFTRESET#", value:"\x18"},
{name:"#SAFETYDOOR#", value:"\x84"},
{name:"#JOGCANCEL#", value:"\x85"},
{name:"#FO100#", value:"\x90"},
{name:"#FO+10#", value:"\x91"},
{name:"#FO-10#", value:"\x92"},
{name:"#FO+1#", value:"\x93"},
{name:"#FO-1#", value:"\x94"},
{name:"#RO100#", value:"\x95"},
{name:"#RO50#", value:"\x96"},
{name:"#RO25#", value:"\x97"},
{name:"#SSO100#", value:"\x99"},
{name:"#SSO+10#", value:"\x9A"},
{name:"#SSO-10#", value:"\x9B"},
{name:"#SSO+1#", value:"\x9C"},
{name:"#SSO-1#", value:"\x9D"},
{name:"#T-SPINDLESTOP#", value:"\x9E"},
{name:"#T-FLOODCOOLANT#", value:"\xA0"},
{name:"#T-FLOODCOOLANT#", value:"\xA1"}
]
16 changes: 16 additions & 0 deletions Notes.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
* Fix dev websocket server cannot work under Linux
> sudo apt-get install libcap2-bin
> sudo setcap cap_net_bind_service=+ep `readlink -f \`which node\``

* Fix ‘ and “ need space to be displayed under Linux
> setxkbmap -layout us

* Fix for sass div warning
>npm install -g sass-migrator
>sass-migrator division **/*.scss
Note:
on windows need change script policy first:
> Get-ExecutionPolicy -List
>Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
then when done, put back default (the one got by initial Get-ExecutionPolicy -List)
>Set-ExecutionPolicy -ExecutionPolicy Restricted -Scope CurrentUser
63 changes: 24 additions & 39 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,69 +1,54 @@
# ESP3D-WEBUI 3.0
using Preact per @aganov suggestion

## In alpha stage - ready to test... but be noted it will soon be replaced by rewrited version : https://github.com/luc-github/ESP3D-WEBUI/tree/3.0-rewrite
using Preact per @aganov suggestion
Rewrite per @alxblog suggestion to use proper Preactjs API and lighter code: use spectre.css instead of bootstrap 4.x

## In development / pre-alpha stage - NOT ready to test...

Only compatible with [ESP3DLib v2](https://github.com/luc-github/ESP3DLib/tree/2-0) - which will be merged to [ESP3D 3.0](https://github.com/luc-github/ESP3D/tree/3.0) later

[Latest development version ![Development Version](https://img.shields.io/badge/Devt-v3.0-yellow?style=plastic)](https://github.com/luc-github/ESP3D-WEBUI/tree/3.0-rewrite) ![GitHub last commit (branch)](https://img.shields.io/github/last-commit/luc-github/ESP3D-WEBUI/3.0-rewrite?style=plastic) [![Travis (.org) branch](https://img.shields.io/travis/luc-github/ESP3D-WEBUI/3.0-rewrite?style=plastic)](https://travis-ci.org/github/luc-github/ESP3D-WEBUI)

[Latest development version ![Development Version](https://img.shields.io/badge/Devt-v3.0-yellow?style=plastic)](https://github.com/luc-github/ESP3D-WEBUI/tree/3.0) ![GitHub last commit (branch)](https://img.shields.io/github/last-commit/luc-github/ESP3D-WEBUI/3.0?style=plastic) ![Travis (.org) branch](https://img.shields.io/travis/luc-github/ESP3D-WEBUI/3.0?style=plastic)

### Setup development tools

1 - Install current nodejs LTS (currently using v12.18.3)
1 - Install current nodejs LTS (currently using v14.16.1)

```
node -v
v12.18.3
v14.16.1
npm -v
6.14.6
6.14.12
```

2 - Download all necessary packages in ESP3D-WEBUI directory (repository root)
```
npm install
```

### Start dev server
in ESP3D-WEBUI directory (repository root)
```
npm run dev
npm install
```
will open http://localhost:3000
Back end query server is localhost:8080, websocket server is localhost:81

### Build index.html.gz to /dist folder
in ESP3D-WEBUI directory (repository root)
```
npm run build
```
Will generate production and debug versions for grbl and printer
### Start dev server

in ESP3D-WEBUI directory (repository root)

```
npm run build-debug
npm run dev
```
Will generate debug versions for grbl and printer, which contain all console.log message.

will open http://localhost:8088

```
npm run build-prod
```
Will generate production versions for grbl and printer, cleaned from all `console.log` messages.

you can even go to more atomic level with : `npm run build-printer`, `npm run build-grbl`, `npm run build-printer-debug`, `npm run build-grbl-debug`, `npm run build-lang`
Back end query server is localhost:8080, websocket server is localhost:81

### Build index.html.gz to /dist folder

### Code beautify with prettier
use pluggin or cli
in ESP3D-WEBUI directory (repository root)

```
npm install --global prettier
npm run build
```

the config file is .prettierrc
a batch is available if you need : prettyfiles.bat, it is just automating the following commands:
prettier --config .prettierrc --write "{src/**/,webpack/**/}*.js"
prettier --config .prettierrc --write src/**/*.html"
Will generate production version

# Chat
ESP3D is now on [![Discord server](https://img.shields.io/discord/752822148795596940?color=blue&label=discord&logo=discord)](https://discord.gg/Z4ujTwE)

ESP3D is now on discord https://discord.gg/Z4ujTwE
Loading

0 comments on commit d9ad884

Please sign in to comment.