Add ArtNetDMX Pico W firmware with dual DMX and docs.
Art-Net to two RS-485 outputs over Wi-Fi (AP or STA with SoftAP fallback), web UI, mDNS, and QLC+/ArtPoll notes for unicast on STA. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
Note: runtime serves embedded copies from src/http_server.c.
|
||||
Edit both places if you change the UI, or regenerate embeds from these files.
|
||||
@@ -0,0 +1,26 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<title>ArtNetDMX</title>
|
||||
<link rel="stylesheet" href="/style.css">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<h1>ArtNetDMX</h1>
|
||||
<nav><a href="/" class="active">Channels</a><a href="/wifi">WiFi</a></nav>
|
||||
<div id="status" class="status">…</div>
|
||||
</header>
|
||||
<main>
|
||||
<div class="tabs">
|
||||
<button type="button" id="tab0" class="active" data-u="0">Universe A</button>
|
||||
<button type="button" id="tab1" data-u="1">Universe B</button>
|
||||
<button type="button" id="clear">Clear</button>
|
||||
<button type="button" id="full">All 255</button>
|
||||
</div>
|
||||
<div id="grid" class="grid"></div>
|
||||
</main>
|
||||
<script src="/app.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,45 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<title>WiFi — ArtNetDMX</title>
|
||||
<link rel="stylesheet" href="/style.css">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<h1>ArtNetDMX</h1>
|
||||
<nav><a href="/">Channels</a><a href="/wifi" class="active">WiFi</a></nav>
|
||||
<div id="status" class="status">…</div>
|
||||
</header>
|
||||
<main class="form-wrap">
|
||||
<form id="wifiForm">
|
||||
<label>Mode
|
||||
<select name="mode" id="mode">
|
||||
<option value="0">Access Point</option>
|
||||
<option value="1">Station (AP fallback if join fails)</option>
|
||||
</select>
|
||||
</label>
|
||||
<p class="hint">Station joins your LAN only. If join fails, SoftAP starts for recovery.</p>
|
||||
<fieldset>
|
||||
<legend>Station</legend>
|
||||
<label>SSID<input name="sta_ssid" id="sta_ssid" maxlength="31"></label>
|
||||
<label>Password<input name="sta_pass" id="sta_pass" type="password" maxlength="63"></label>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>Access Point</legend>
|
||||
<label>SSID<input name="ap_ssid" id="ap_ssid" maxlength="31"></label>
|
||||
<label>Password<input name="ap_pass" id="ap_pass" type="password" maxlength="63"></label>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>Art-Net universes</legend>
|
||||
<label>Port A<input name="universe_a" id="universe_a" type="number" min="0" max="32767"></label>
|
||||
<label>Port B<input name="universe_b" id="universe_b" type="number" min="0" max="32767"></label>
|
||||
</fieldset>
|
||||
<button type="submit">Save & reboot</button>
|
||||
<p class="hint">After save the device reboots into the selected mode. AP default: ArtNetDMX / artnetdmx @ 192.168.4.1</p>
|
||||
</form>
|
||||
</main>
|
||||
<script src="/wifi.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user