openshock / firmware Goto Github PK
View Code? Open in Web Editor NEWEspressif Firmware for OpenShock, Controlling shock collars via Reverse engineered proprietary Sub-1 GHz Protocols.
License: GNU Affero General Public License v3.0
Espressif Firmware for OpenShock, Controlling shock collars via Reverse engineered proprietary Sub-1 GHz Protocols.
License: GNU Affero General Public License v3.0
Pressing the "rescan" button doesn't seem to do anything.
If using a PCB/pre-existing design, there should be a placeholder pin set in the RMT pin input on the Setup page.
If not, it should fall back to a known good pin for the board.
Maybe in Wiki, we can have a listing of recommended RMT pins? Mark out which pins are recommended? (Not used by SPI flash, aren't input-only, etc)
They're somewhat broken right now.
This repo currently has no README.
Firmware bins compiled by github actions dont seem to work at all
Version: 0.0.0-develop
Build: debug
Commit: 70803fb5a1df141dc72d46cd868c40c5c0b4cfc3
Board: Pishock-2023
Chip: esp32
Title.
On my PCB, it is possible to show a more complex current state of the software.
Possibly using normal LED like other boards do, except commands sent to shockers are displayed on the RGB LED?
I'll likely be tackling a big part of this, as well as merging in the RGB library I have soon.
Not board specific
1.0.0-rc.1
ESP Tool JS
Serial commands (networks, authtoken) dont seem to work at all.
I cant figure out how to save networks, even after looking into the code I cannot get it to work. The validation also seems to not work since i can just give it bogus data and it will say its okay.
For the commands to work properly as to be expected.
[{"ssid": "myNetworkName", "password": "myNetworkPassword"}]
No response
I connected to the network successfully as I confirmed this via the serial monitor, but there is zero visual feedback in the captive portal that the connection was established.
Title
I'm in possession of some knockoff ESP32-S3's that I want to add support for.
I want serial commands to manage WiFi.
Example list (not exhaustive):
wifistatus
wificonnect <ssid> <password>
wifidisconnect
Currently, there is no feedback when providing a pair code or RMT pin in the setup page.
There should be either a toast or a modal confirming the action, successful or otherwise.
No response
D1 Mini
1.0.0-rc.3
esptool.exe write_flash 0x0 path
When saving the networks of the device via the serial command, it saves perfectly fine, however even after restarting it does not try to connect to the saved network.
For it to connect to the network i saved on restart.
serial into the esp.
use the networks command properly
[{"ssid":"LucsNet","password":"MyNetworkPasswordLalala"}]
No response
For boards like PiShock Lite/2023 or my own PCBs, a user changing the RF TX pin should be discouraged/warned against.
Currently the only relevant information is on the Wiki, and having the pins pre-set in the UI during setup.
I think the only thing that's missing at this point is a warning stating that the pin has already been set by their choice of firmware, and that changing it is not recommended.
For generic WEMOS, Seeed, etc dev boards, leaving the RF pin undefined in the platformio.ini
could be used as a way to suppress that warning, letting the user enter their chosen pin.
No response
We need a checklist for testing release candidates.
Cofiguring the OpenShock server that the firmware connects to should be modifiable at runtime, not compile time.
No response
(Marking this as Firmware 1.2)
Add central config manager for basic settings that dont get changed that often.
This would be needed because having one file per options is VERY inefficient, each file created takes up 4k bytes in LittleFS so this would clog up the file system fast.
We can implement this when Flatbuffers gets merged into develop because it makes all of this really easy
Wemos Lolin S3
1.0.0-rc1
I flashed via platformIO using the correct board config.
Certain logs never appeared.
Logs appearing from CommandHandler.cpp telling me what was the reason for it failing
Run and monitor the uploaded firmware, look at the logs.
This can be fixed by having a "Logging.h" or similar file where you implement this:
#pragma once
#include <esp32-hal.h>
#include <esp_log.h>
then replace all instances of #include <esp_log.h>
with this and remove any references to #include <HardwareSerial.h>
and #include <esp32-hal.h>
[ 12255][V][WiFiGeneric.cpp:421] _arduino_event_cb(): AP Station IP Assigned:10.10.10.11
[ 12256][D][WiFiGeneric.cpp:1035] _eventCallback(): Arduino Event: 14 - AP_STAIPASSIGNED
[ 23051][E][vfs_api.cpp:105] open(): /littlefs/www/fa/fa-all.css does not exist, no permits for creation
[ 23098][E][vfs_api.cpp:105] open(): /littlefs/www/_app/immutable/assets/1.css does not exist, no permits for
creation
[ 23191][E][vfs_api.cpp:105] open(): /littlefs/www/_app/immutable/assets/0.css does not exist, no permits for
creation
[ 23282][E][vfs_api.cpp:105] open(): /littlefs/www/_app/immutable/entry/4.js does not exist, no permits for creation
[ 23368][E][vfs_api.cpp:105] open(): /littlefs/www/_app/immutable/chunks/9.js does not exist, no permits for creation
[ 23657][W][AsyncTCP.cpp:930] _poll(): pcb is NULL
[ 23658][W][AsyncTCP.cpp:930] _poll(): pcb is NULL
[ 23658][W][AsyncTCP.cpp:930] _poll(): pcb is NULL
[ 23660][W][AsyncTCP.cpp:930] _poll(): pcb is NULL
[ 24080][W][AsyncTCP.cpp:930] _poll(): pcb is NULL
[ 24083][W][AsyncTCP.cpp:930] _poll(): pcb is NULL
[ 24084][W][AsyncTCP.cpp:930] _poll(): pcb is NULL
[ 24084][W][AsyncTCP.cpp:930] _poll(): pcb is NULL
[ 24136][D][CaptivePortalInstance.cpp:37] handleWebSocketClientConnected(): [CaptivePortalInstance] WebSocket
client #0 connected from 10.10.10.11
This only accounts for a single chip, it should take all chips into account
No response
Shockers (XC) seem to fall asleep quickly if no command is received. We should atleast once a minute send a vibrate cmd with 0 intensity.
With 1.1.0 the naming scheme for the firmware merged bin's has changed. It does NOT include the version anymore. This leads to not knowing what firmware version a certain bin is.
This was previously different, dont exactly know why it was changed.
E.g. currently: OpenShock_Wemos-D1-Mini-ESP32_stable
What it should really be is something like: OpenShock_Wemos-D1-Mini-ESP32_stable_1.1.1
for beta this would be OpenShock_Wemos-D1-Mini-ESP32_beta_1.1.1-rc.1
being able to see in build logs something that stands out to someone who is compiling a project indicating that LED pin will not have a preset default.
No response
This would require specifying the BSSID in the connect command and requires some way to store these in the config together with normal network credentials
Make issue template that people can use to request we add support for currently unsupported boards.
Pishock 2023
1.0.0-rc.2
I used esptool write_flash 0x0 <image>
When connecting to the captive wifi network and trying to load the captive portal, the board crashes, and the page doesn't finish loading:
Then, reconnecting to the wifi network (since it crashed), trying to load it again:
The board crashes again.
Serial monitor logs:
Captive portal should load without the board crashing and the wifi connection dropping as a result.
No response
For debugging purposes.
Wemos-D1-Mini-ESP32
1.0.0-rc.4
Built and uploaded via PlatformIO
The ESP connected to a wifi network and connected to the gateway.
The network shut down and the ESP crashed and restarted.
It to gracefully release the resources it had allocated and re-launch the captive portal.
This is not a important bug to solve as the esp returns to the captive portal after reboot, its just an annoying issue.
Pishock 2023
1.0.0-rc.4
Instructions per RELEASE.md
UI (these were taken right after each other):
Logs:
[106470][V][WiFiManager.cpp:289] Save(): [WiFiManager] Authenticating to network ...
[106568][V][WiFiManager.cpp:126] _connectImpl(): [WiFiManager] Connecting to network ... (...)
[106592][V][WiFiGeneric.cpp:97] set_esp_interface_ip(): Configuring Station static IP: 0.0.0.0, MASK: 0.0.0.0, GW: 0.0.0.0
[107951][V][WiFiGeneric.cpp:355] _arduino_event_cb(): STA Connected: SSID: ..., BSSID: ..., Channel: 6, Auth: WPA2_PSK
[107953][D][WiFiGeneric.cpp:1035] _eventCallback(): Arduino Event: 4 - STA_CONNECTED
[107960][I][WiFiManager.cpp:194] _evWiFiConnected(): [WiFiManager] Connected to network ... (...)
Gateway pairing should succeed, since internet connection is established
No response
Happens when connecting to a WiFi network trough the Cative Portal
Guru Meditation Error: Core 1 panic'ed (StoreProhibited). Exception was unhandled.
Core 1 register dump:
PC : 0x420c3779 PS : 0x00060b30 A0 : 0x820bc734 A1 : 0x3fceb0f0
A2 : 0x3fceb2f0 A3 : 0x00000001 A4 : 0x3fceb2f0 A5 : 0x3fceb0f2
A6 : 0x000000ca A7 : 0x3fceb0f0 A8 : 0x00000000 A9 : 0x00000008
A10 : 0x000000a5 A11 : 0x00000001 A12 : 0x00000000 A13 : 0x00000010
A14 : 0x00000068 A15 : 0x3fceb480 SAR : 0x00000018 EXCCAUSE: 0x0000001d
EXCVADDR: 0x000000a5 LBEG : 0x400556d5 LEND : 0x400556e5 LCOUNT : 0xfffffffb
Backtrace: 0x420c3776:0x3fceb0f0 0x420bc731:0x3fceb480 0x42007d51:0x3fceb540 0x42008edd:0x3fceb9c0 0x420d0e89:0x3fcebb20 0x42030025:0x3fcebb50 0x42030051:0x3fcebb80 0x420d1ab9:0x3fcebba0 0x420306ab:0x3fcebbc0 0x420d1b8f:0x3fcebbf0 0x420309d9:0x3fcebc20 0x42030aa6:0x3fcebc50 0x42030c2e:0x3fcebc70 0x42030d62:0x3fcebcd0 0x420309d9:0x3fcebcf0 0x42030aa6:0x3fcebd20 0x42030b19:0x3fcebd40 0x42030cd1:0x3fcebd80 0x42030d62:0x3fcebde0 0x420309d9:0x3fcebe00 0x42030aa6:0x3fcebe30 0x42030b19:0x3fcebe50 0x42030b8e:0x3fcebe90 0x42030d46:0x3fcebef0 0x4202ff2d:0x3fcebf10 0x4202ffe2:0x3fcebf50 0x42030001:0x3fcebf70 0x4200ad5e:0x3fcebf90 0x420205d2:0x3fcebfb0 0x42037779:0x3fcebfd0
ELF file SHA256: bd2a1aecfa708864
OPENSHOCK_FW_VERSION
should report something SemVer compliant so the backend can handle it.
Related:
D1 Mini
1.0.0
xxx
Tried to connect the ESP to a open wifi network.
Open networks should be able to be connected to
[642589][E][WiFiNetworkSaveCommand.cpp:26] HandleWiFiNetworkSaveCommand(): [LocalMessageHandlers] WiFi message is missing required properties
Pishock 2023
1.0.0-rc.4
esptool via powershell
RTMPIN setting does not change on runtime, only saves and gets applied after restart
should apply on runtime without the need of a restart
setup esp and change rtm pin setting without restart
nope thanks for listening to my ted talk
See: https://discord.com/channels/1078124408775901204/1157221049281302538
Add UI toast message to show when the ESP has been given an IP address by the DHCP server, if this never happens it can be very confusing to the user or developer.
adresses #111
No response
Its not.
No response
We need to be able to read out the current network configuration and rmt pin. Auth Token is not needed and can be write only to strengthen security a bit.
Reason for this need is the flash tool, for it to auto copy wifi and rmt pin config values when updating the firmware for a better user experience.
No response
ESP32-S3 'Dorx'
develop
I used PlatformIO with S3 Platform configured for 8MB flash
Connect to captive portal, esp reports scan_done, then if you try to scan again, it will report scan already in progress, which is false.
It to begin scanning.
Unclear, rare bug.
No response
Pishock 2023
1.0.0-rc.4
See RELEASE.md
After you connect to a WiFi network, the network list does not accurately show that the network you connected to is now a known network.
Until you reboot the board, it keeps showing as unknown network.
The reverse is also true when pressing the Forget Network button.
Network list should accurately show whether a network is known or not, after you change that fact
Option 1:
Option 2:
No response
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.