You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* feat: local server for development without board
* fix (server): add logging and timing
* redacted the api specs (mostly)
* updated api config endpoint
* Got rid of AsyncElegantOTA, lost some weight, temporary cheap ui for file input testing (web ota)
* Added description of the replica control api (not implemented yet)
* Added version api ressource, little refactor of configuration module, rearanged build flow (yes, not the right branch for that, meh)
* Added the handlers for replica components API
* refactored components to use only static methods and members
* replica component apis now working
* Fixed some hhtp return codes end reinforced selector state api
* Added unlimited wifi capability, and updated api readme
* feat (server): Update local server specification
* feat: UI v2.0.1
* fix: remove unused files
* feat: REAME V2
* Fix (readme): add developers
* style (readme): add escape tags
* fix (readme): use svg to diplay advanced html
* Implemented "enable precocking" and "uncock after x seconds"
* fixed a little bug on saving config
* Add node_modules to .gitignore
* added missing api ressources in readme
Co-authored-by: Zao Soula <[email protected]>
<li><a href="#install-and-serve">Install and serve</a></li>
55
+
</ul>
56
+
</li>
57
+
</ul>
58
+
</li>
59
+
<li><a href="#usage">Development</a></li>
60
+
<li><a href="#roadmap">Roadmap</a></li>
61
+
<li><a href="#contributing">Contributing</a></li>
62
+
<li><a href="#todo">To-Do</a></li>
63
+
</ol>
64
+
</details>
65
+
66
+
## About the project
67
+
68
+
69
+
OpenMosfet is an high quality open source airsoft mosfet based on arduino (currently esp32 board).
4
70
5
71
The software is meant to be modular and to allow different sensors configurations.
6
72
7
73
The hardware provides all the electronics needed and allows different boards to be created.
8
74
9
-
## the current team
10
-
The team is composed of a programmer ([Simon](https://github.com/simonjamain)) and two electronitians (Romain & Marcellin), all french airsofters.
75
+
The web dashboard allows full and easy controls over every settings as well an update manager.
11
76
12
-
## installation and build
77
+

78
+
79
+
### The team
80
+
81
+
82
+
The team is composed of two developers ([Simon](https://github.com/simonjamain) and [Zao Soula](https://github.com/zaosoula)) and two electronitians (Romain and Marcellin), all french airsofters.
-*Note : `ui.h` is recompiled by running the command `npm run build` inside the `ui` folder. this is done automaticaly before each platformio build (see platformio.ini and build_ui.py)*
19
-
- OTA upload is enabled by default, if your board hasnt ota enabled or you want to upload with serial, uncomment that following parameters in `platformio.ini`
97
+
- OTA upload is enabled by default, if your board hasn't ota enabled or you want to upload with serial, comment that following parameters in `platformio.ini`
20
98
-`upload_protocol`
21
99
-`upload_port`
100
+
- default password for access point is "password"
22
101
- I think thats about it...
23
102
24
-
### replica interface types
103
+
### Replica interface types
25
104
Depending on your replica and the way you connect the mosfet, the signals received are not the same.
26
105
27
106
ex : the original input plate on the G&G TR 16 can be used but the signals are very specific.
@@ -36,7 +115,7 @@ Here is a table (work in progress) listing the different configuration available
1 | `OM_DEFAULT_FIRINGGROUP_PIN` grounded when : trigger is pressed AND safety is off AND mag is not empty<br>`OM_DEFAULT_CUTOFF_PIN` grounded when cutoff is pressed<br>`OM_DEFAULT_SELECTOR_PIN` grounded when selector is on full auto position | G&G tr16 original input plate
38
117
39
-
### custom replica interface pinout
118
+
### Custom replica interface pinout
40
119
For developpement reasons or other, you can change the default settings for the replica interface with the following flags :
41
120
42
121
-`OM_DEFAULT_MOTOR_PIN`
@@ -47,26 +126,25 @@ For developpement reasons or other, you can change the default settings for the
47
126
*Note: it is not recommended that you change this value in the source file, but rather as a build flag in platformio.ini for example.*
48
127
*Note: for example, the ESP32DEVKIT V1 doesnt have the pin 10 exposed, which is the default pin used on the board for the selector input.*
49
128
50
-
## hardware
129
+
### http rest-like API
130
+
131
+
Got to the [API documentation](/doc/api).
132
+
133
+
## Development
134
+
135
+
### Local UI (without board)
136
+
To serve the UI locally on your computer, we provide a fake server to simulate the board behavior.
137
+
138
+
#### Install and serve
139
+
- inside the `/src/ui/` folder, run `npm install`
140
+
- run `npm run serve-dev`
141
+
- open http://localhost:3000/ in your browser
142
+
- you can now edit ``src/`` without having to re-launch the server
143
+
144
+
*Note: The configuration is loaded from ``defaultConf.json`` and can be updated as long as the server is running.
145
+
Once it stops the updated configuration is lost*
51
146
52
-
## contribute
147
+
## Contributing
53
148
Don't hesitate to contact us via github, or your can come and talk with us on our [discord server](https://discord.gg/XuzSSbgE).
54
-
We are french but we can chat in english no prob.
55
-
56
-
## TODO
57
-
-~~launch in AP mode when wifi router is not available~~
58
-
-~~implement sleep modes to prevent battery over-discharge~~
59
-
-~~ability to cut wifi off after X sec to save power~~
60
-
-~~deep sleep when inactive for two long~~
61
-
- add buzzer ?
62
-
- implement motor vibration
63
-
- create an example module
64
-
- implement all battery protection types :
65
-
- auto
66
-
- predefined
67
-
- manual
68
-
- none
69
-
-~~change max ssid and password length to 32 chars instead of 16 : https://serverfault.com/questions/45439/what-is-the-maximum-length-of-a-wifi-access-points-ssid~~
70
-
- add "try to connect now" button next to external wifi settings
71
-
- check if wifi cutoff current saving is reliable
72
149
150
+
We are french but we can chat in english without problems.
normal burstmode : Number of shot fired when trigger pulled
42
+
interruptible burstmode : Maximum number of shot fired during trigger pull
43
+
extendible burstmode : Minimum number of shot fired when trigger pulled
44
+
-`precockDuration_ms`*int* : Amount of precocking time after cycle in milliseconds (may be replaced with a %)
45
+
-`motorPower`*float [0-1]* : Percentage of battery power delivered to the motor (with pwm)
46
+
-`timeBetweenShots_ms` : Time between each shots, can be used for RoF control or dmr setup
47
+
-`decockAfter_s`*float* : If the trigger is maintained pressed for set ammount of time after end of burst, cycle and decock ⚠this fires a bb⚠. (0 = no decocking)
48
+
-`POST` : Set the global configuration and retrieve the saved values in response
49
+
- parameters *application/json*
50
+
same data format as `GET`
51
+
52
+
### Replica
53
+
54
+
This is closely linked to [components.h](/src/components.h)
0 commit comments