@jjlmoya/utils-hardware 1.25.0 → 1.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/category/index.ts +2 -1
- package/src/entries.ts +4 -1
- package/src/index.ts +1 -0
- package/src/tests/locale_completeness.test.ts +1 -1
- package/src/tests/tool_validation.test.ts +1 -1
- package/src/tool/webUsbSerialMonitor/bibliography.astro +15 -0
- package/src/tool/webUsbSerialMonitor/bibliography.ts +18 -0
- package/src/tool/webUsbSerialMonitor/component.astro +356 -0
- package/src/tool/webUsbSerialMonitor/entry.ts +30 -0
- package/src/tool/webUsbSerialMonitor/i18n/de.ts +241 -0
- package/src/tool/webUsbSerialMonitor/i18n/en.ts +241 -0
- package/src/tool/webUsbSerialMonitor/i18n/es.ts +241 -0
- package/src/tool/webUsbSerialMonitor/i18n/fr.ts +241 -0
- package/src/tool/webUsbSerialMonitor/i18n/id.ts +241 -0
- package/src/tool/webUsbSerialMonitor/i18n/it.ts +241 -0
- package/src/tool/webUsbSerialMonitor/i18n/ja.ts +241 -0
- package/src/tool/webUsbSerialMonitor/i18n/ko.ts +241 -0
- package/src/tool/webUsbSerialMonitor/i18n/nl.ts +241 -0
- package/src/tool/webUsbSerialMonitor/i18n/pl.ts +241 -0
- package/src/tool/webUsbSerialMonitor/i18n/pt.ts +241 -0
- package/src/tool/webUsbSerialMonitor/i18n/ru.ts +241 -0
- package/src/tool/webUsbSerialMonitor/i18n/sv.ts +241 -0
- package/src/tool/webUsbSerialMonitor/i18n/tr.ts +241 -0
- package/src/tool/webUsbSerialMonitor/i18n/zh.ts +241 -0
- package/src/tool/webUsbSerialMonitor/index.ts +12 -0
- package/src/tool/webUsbSerialMonitor/logic.ts +44 -0
- package/src/tool/webUsbSerialMonitor/seo.astro +16 -0
- package/src/tool/webUsbSerialMonitor/ui.ts +51 -0
- package/src/tool/webUsbSerialMonitor/web-usb-serial-monitor.css +415 -0
- package/src/tools.ts +2 -1
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { WebUsbSerialMonitorUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
5
|
+
|
|
6
|
+
const slug = 'web-usb-serieller-monitor';
|
|
7
|
+
const title = 'WebUSB Serieller Monitor';
|
|
8
|
+
const description = 'Verbinden Sie sich vom Browser aus mit USB-Seriell-Hardware, lesen Sie Live-Terminalausgaben, senden Sie Befehle und debuggen Sie Arduino, ESP32, RP2040 und Maker-Boards ohne Installation eines Desktop-Terminals.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Funktioniert dieser serielle Monitor mit Arduino, ESP32 und Raspberry Pi Pico Boards?',
|
|
13
|
+
answer: 'Ja, wenn das Board eine von Web Serial unterstützte USB-Seriell-Schnittstelle bereitstellt und der Browser Chromium-basiert ist. Gängige Arduino, ESP32, RP2040, CH340, CP210x und FTDI Adapter funktionieren in der Regel, nachdem der Benutzer die Berechtigung erteilt hat.',
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
question: 'Warum heißt das WebUSB, wenn es Web Serial verwendet?',
|
|
17
|
+
answer: 'Die meisten Maker-Boards verbinden sich über USB, aber der Browser-Terminalzugriff wird von der Web Serial API bereitgestellt. WebUSB ist niedriger angesiedelt und nicht die richtige Abstraktion für ein einfaches UART-Terminal.',
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
question: 'Kann eine Website ohne Erlaubnis auf meine seriellen Geräte zugreifen?',
|
|
21
|
+
answer: 'Nein. Der Browser erfordert einen Benutzerklick und eine native Geräteauswahl, bevor eine Seite einen seriellen Port öffnen kann. Dieses Tool speichert keine Terminalprotokolle oder Gerätekennungen.',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
question: 'Welchen Browser sollte ich für ein Web-Seriell-Terminal verwenden?',
|
|
25
|
+
answer: 'Verwenden Sie Chrome, Edge oder einen anderen Chromium-basierten Browser über HTTPS oder localhost. Firefox, Safari und viele iOS-Browser stellen die Web Serial API nicht zur Verfügung.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Welche Baudrate sollte ich wählen?',
|
|
29
|
+
answer: 'Wählen Sie die in Ihrer Firmware konfigurierte Baudrate. Arduino-Beispiele verwenden oft 9600 oder 115200, während schnellere Protokolle, Bootloader und hochratige Sensorstreams 230400, 460800 oder 921600 verwenden können.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Das USB-Seriell-Gerät anschließen',
|
|
36
|
+
text: 'Schließen Sie das Board oder den Adapter an und schließen Sie alle anderen seriellen Terminals, die den Port möglicherweise bereits geöffnet haben.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Die Baudrate auswählen',
|
|
40
|
+
text: 'Wählen Sie dieselbe Baudrate, die von der Firmware verwendet wird, z. B. 115200 für viele Arduino, ESP32 und RP2040 Sketche.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Browser-Berechtigung erteilen',
|
|
44
|
+
text: 'Drücken Sie Verbinden, wählen Sie das serielle Gerät im Browser-Auswahldialog und erlauben Sie der Seite, den Port zu öffnen.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'Terminaldaten lesen und senden',
|
|
48
|
+
text: 'Beobachten Sie eingehende Protokolle im Terminal, senden Sie Befehle mit optionalen CRLF-Zeilenenden und löschen oder pausieren Sie die Live-Ausgabe bei Bedarf.',
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
|
|
52
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
53
|
+
'@context': 'https://schema.org',
|
|
54
|
+
'@type': 'FAQPage',
|
|
55
|
+
mainEntity: faqData.map((item) => ({
|
|
56
|
+
'@type': 'Question',
|
|
57
|
+
name: item.question,
|
|
58
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
59
|
+
})),
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const howToSchema: WithContext<HowTo> = {
|
|
63
|
+
'@context': 'https://schema.org',
|
|
64
|
+
'@type': 'HowTo',
|
|
65
|
+
name: title,
|
|
66
|
+
description,
|
|
67
|
+
step: howToData.map((step, i) => ({
|
|
68
|
+
'@type': 'HowToStep',
|
|
69
|
+
position: i + 1,
|
|
70
|
+
name: step.name,
|
|
71
|
+
text: step.text,
|
|
72
|
+
})),
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
76
|
+
'@context': 'https://schema.org',
|
|
77
|
+
'@type': 'SoftwareApplication',
|
|
78
|
+
name: title,
|
|
79
|
+
description,
|
|
80
|
+
applicationCategory: 'DeveloperApplication',
|
|
81
|
+
operatingSystem: 'All',
|
|
82
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD' },
|
|
83
|
+
inLanguage: 'de',
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
export const content: ToolLocaleContent<WebUsbSerialMonitorUI> = {
|
|
87
|
+
slug,
|
|
88
|
+
title,
|
|
89
|
+
description,
|
|
90
|
+
faq: faqData,
|
|
91
|
+
bibliography,
|
|
92
|
+
howTo: howToData,
|
|
93
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
94
|
+
seo: [
|
|
95
|
+
{
|
|
96
|
+
type: 'title',
|
|
97
|
+
text: 'Online Serieller Monitor für USB Maker Hardware',
|
|
98
|
+
level: 2,
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
type: 'paragraph',
|
|
102
|
+
html: 'Dieser Browser-Seriell-Monitor öffnet einen USB-Seriell-Port direkt aus Chrome oder Edge und streamt dann Text von Mikrocontrollern, USB-UART-Brücken, Entwicklungsboards, Bootloadern, Testvorrichtungen, Sensoren und Laborhardware. Er ist für schnelle Diagnosen konzipiert, wenn Sie eine serielle Konsole benötigen, aber keine Desktop-IDE oder Terminalanwendung installieren möchten.',
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
type: 'message',
|
|
106
|
+
title: 'Browser Berechtigungsgrenze',
|
|
107
|
+
html: 'Die Seite kann Ihre seriellen Geräte nicht stillschweigend auflisten oder öffnen. Der Zugriff beginnt erst, nachdem Sie Verbinden drücken und einen Port im Browser-Auswahldialog auswählen. Terminaldaten bleiben im aktuellen Tab, es sei denn, Sie kopieren sie selbst.',
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
type: 'stats',
|
|
111
|
+
items: [
|
|
112
|
+
{ value: '9600-921600', label: 'übliche Baud-Voreinstellungen' },
|
|
113
|
+
{ value: 'CRLF', label: 'optionaler Befehlsabschluss' },
|
|
114
|
+
{ value: 'lokal', label: 'Terminalsitzung' },
|
|
115
|
+
],
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
type: 'title',
|
|
119
|
+
text: 'Wann ein Web-Seriell-Terminal nützlich ist',
|
|
120
|
+
level: 3,
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'list',
|
|
124
|
+
items: [
|
|
125
|
+
'Überprüfen von Boot-Meldungen von Arduino, ESP32, ESP8266, RP2040, STM32 oder benutzerdefinierter Firmware.',
|
|
126
|
+
'Senden von AT-Befehlen an Modem, GPS, LoRa, Wi-Fi, Bluetooth oder Mobilfunkmodule über einen USB-UART-Adapter.',
|
|
127
|
+
'Lesen von Sensorausgaben von einem Werksprüfstand, Klassenraumlabor, Robotik-Controller oder Tischprototyp.',
|
|
128
|
+
'Überprüfen, ob ein USB-Seriell-Brückentreiber, Kabel, Board-Stromversorgung und Firmware-Baudrate alle zusammen funktionieren.',
|
|
129
|
+
'Sammeln eines schnellen Fehlerprotokolls vor dem Einreichen eines Bugs oder der Anfrage von Hardware-Support.',
|
|
130
|
+
],
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'comparative',
|
|
134
|
+
items: [
|
|
135
|
+
{
|
|
136
|
+
title: 'Web Seriell Monitor',
|
|
137
|
+
description: 'Am besten für schnellen Support, Unterrichtsanleitungen, Felddiagnosen und Maker-Workflows, bei denen das Öffnen einer URL schneller ist als die Installation einer IDE.',
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
title: 'Desktop Terminal',
|
|
141
|
+
description: 'Besser für Binärprotokolle, lange Aufzeichnungssitzungen, Skripterstellung, Hardware-Flusskontrolle, Makros und Umgebungen, in denen Browser-APIs blockiert sind.',
|
|
142
|
+
},
|
|
143
|
+
],
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'title',
|
|
147
|
+
text: 'Baudrate und Zeilenende Checkliste',
|
|
148
|
+
level: 3,
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
type: 'table',
|
|
152
|
+
headers: ['Einstellung', 'Typische Wahl', 'Was schief geht, wenn es falsch ist'],
|
|
153
|
+
rows: [
|
|
154
|
+
['Baudrate', '115200 für viele moderne Boards, 9600 für ältere Beispiele.', 'Lesbarer Text wird zu zufälligen Symbolen oder es erscheint kein nützliches Protokoll.'],
|
|
155
|
+
['Zeilenende', 'CRLF für viele Befehlsparser, kein Ende für rohe Zeichenprotokolle.', 'Befehle werden ignoriert, weil die Firmware auf einen Abschluss wartet.'],
|
|
156
|
+
['Exklusiver Portzugriff', 'Arduino Serial Monitor, PuTTY, screen, minicom oder Herstellertools schließen.', 'Der Browser-Auswahldialog öffnet den Port, aber Lesen oder Schreiben schlägt fehl.'],
|
|
157
|
+
['Sicherer Kontext', 'HTTPS oder localhost.', 'Die Serial API fehlt selbst in einem unterstützten Browser.'],
|
|
158
|
+
],
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
type: 'diagnostic',
|
|
162
|
+
variant: 'warning',
|
|
163
|
+
title: 'Keine serielle Ausgabe?',
|
|
164
|
+
html: 'Stellen Sie sicher, dass das Board mit Strom versorgt wird und das USB-Kabel Daten unterstützt, nicht nur Laden. Versuchen Sie 9600, 57600 und 115200, wenn Sie die Firmware-Baudrate nicht kennen. Drücken Sie nach dem Verbinden Reset, da viele Boards Boot-Protokolle nur beim Start ausgeben. Schließen Sie andere Software, die den seriellen Port noch besitzen könnte, und installieren Sie den Betriebssystemtreiber für CH340, CP210x, FTDI oder den Board-Hersteller, wenn das Gerät nie erscheint.',
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
type: 'title',
|
|
168
|
+
text: 'Datenschutz, Sicherheit und Grenzen',
|
|
169
|
+
level: 3,
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
type: 'proscons',
|
|
173
|
+
title: 'Web Serial Stärken und Grenzen',
|
|
174
|
+
items: [
|
|
175
|
+
{
|
|
176
|
+
pro: 'Keine Desktop-Installation für einfache serielle Textdiagnosen.',
|
|
177
|
+
con: 'Erfordert einen Chromium-basierten Browser und einen sicheren Kontext.',
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
pro: 'Browser-Auswahldialog beschränkt den Zugriff auf den von Ihnen gewählten Port.',
|
|
181
|
+
con: 'Nicht für binäre Protokollanalysatoren oder lange unbeaufsichtigte Aufzeichnungen gedacht.',
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
pro: 'Funktioniert gut für Textprotokolle, Eingabeaufforderungen und schnelle Hardwareprüfungen.',
|
|
185
|
+
con: 'Einige Unternehmensrichtlinien, mobile Browser und Betriebssysteme blockieren Web Serial.',
|
|
186
|
+
},
|
|
187
|
+
],
|
|
188
|
+
},
|
|
189
|
+
],
|
|
190
|
+
ui: {
|
|
191
|
+
unsupportedTitle: 'Web Serial ist nicht verfügbar',
|
|
192
|
+
unsupportedBody: 'Verwenden Sie Chrome oder Edge über HTTPS oder localhost und stellen Sie sicher, dass Ihr Gerät eine USB-Seriell-Schnittstelle bereitstellt.',
|
|
193
|
+
secureContext: 'Web Serial erfordert HTTPS oder localhost. Laden Sie diese Seite von einer sicheren Herkunft neu und versuchen Sie es erneut.',
|
|
194
|
+
statusIdle: 'Wählen Sie eine Baudrate und verbinden Sie dann ein USB-Seriell-Gerät',
|
|
195
|
+
statusPermission: 'Warten auf den Browser-Seriell-Port-Auswahldialog',
|
|
196
|
+
statusOpening: 'Seriellen Port öffnen',
|
|
197
|
+
statusConnected: 'Serieller Port verbunden',
|
|
198
|
+
statusDisconnected: 'Serieller Port getrennt',
|
|
199
|
+
statusError: 'Serielle Verbindung fehlgeschlagen',
|
|
200
|
+
connect: 'Seriell verbinden',
|
|
201
|
+
disconnect: 'Trennen',
|
|
202
|
+
send: 'Senden',
|
|
203
|
+
clear: 'Löschen',
|
|
204
|
+
pause: 'Pause',
|
|
205
|
+
resume: 'Fortsetzen',
|
|
206
|
+
baudRate: 'Baudrate',
|
|
207
|
+
newline: 'CRLF anhängen',
|
|
208
|
+
inputPlaceholder: 'Befehl eingeben, dann Enter drücken',
|
|
209
|
+
portFallback: 'Kein Port ausgewählt',
|
|
210
|
+
portLabel: 'Port-Identität',
|
|
211
|
+
connectedDeviceLabel: 'Verbundenes Gerät',
|
|
212
|
+
deviceNameFallback: 'USB-Seriell-Gerät',
|
|
213
|
+
transportLabel: 'Web Serial Verbindung',
|
|
214
|
+
bytesLabel: 'Bytes',
|
|
215
|
+
linesLabel: 'Zeilen',
|
|
216
|
+
privacyTitle: 'Berechtigungsgesteuert',
|
|
217
|
+
privacyBody: 'Der Browser zeigt nur das von Ihnen ausgewählte serielle Gerät an. Protokolle bleiben in diesem Tab, es sei denn, Sie kopieren sie.',
|
|
218
|
+
emptyLog: 'Die Terminalausgabe erscheint hier, nachdem Sie ein serielles Gerät verbunden haben.',
|
|
219
|
+
copied: 'Kopiert',
|
|
220
|
+
copyLog: 'Kopieren',
|
|
221
|
+
presetSlow: '9600',
|
|
222
|
+
presetArduino: '115200',
|
|
223
|
+
presetFast: '921600',
|
|
224
|
+
terminalLabel: 'Live-Terminal',
|
|
225
|
+
unknownUsbId: 'N/A',
|
|
226
|
+
logDirectionRx: 'rx',
|
|
227
|
+
logDirectionTx: 'tx',
|
|
228
|
+
logDirectionSys: 'sys',
|
|
229
|
+
vidPrefix: 'VID ',
|
|
230
|
+
pidSeparator: ' / PID ',
|
|
231
|
+
baudUnit: ' Baud',
|
|
232
|
+
vendorFtdi: 'FTDI USB Serial',
|
|
233
|
+
vendorSilabs: 'Silicon Labs CP210x',
|
|
234
|
+
vendorCh340: 'CH340 USB Serial',
|
|
235
|
+
vendorArduinoUsb: 'Arduino USB Serial',
|
|
236
|
+
vendorAdafruit: 'Adafruit USB Serial',
|
|
237
|
+
vendorRp2040: 'Raspberry Pi RP2040',
|
|
238
|
+
vendorEspressif: 'Espressif USB Serial',
|
|
239
|
+
vendorOpenSource: 'Open Source USB Serial',
|
|
240
|
+
},
|
|
241
|
+
};
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { WebUsbSerialMonitorUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
5
|
+
|
|
6
|
+
const slug = 'web-usb-serial-monitor';
|
|
7
|
+
const title = 'WebUSB Serial Monitor';
|
|
8
|
+
const description = 'Connect to USB serial hardware from the browser, read live terminal output, send commands, and debug Arduino, ESP32, RP2040, and maker boards without installing a desktop terminal.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Does this serial monitor work with Arduino, ESP32, and Raspberry Pi Pico boards?',
|
|
13
|
+
answer: 'Yes, when the board exposes a USB serial interface supported by Web Serial and the browser is Chromium-based. Common Arduino, ESP32, RP2040, CH340, CP210x, and FTDI adapters usually work after the user grants permission.',
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
question: 'Why is this called WebUSB if it uses Web Serial?',
|
|
17
|
+
answer: 'Most maker boards connect over USB, but browser terminal access is provided by the Web Serial API. WebUSB is lower-level and is not the right abstraction for a simple UART-style terminal.',
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
question: 'Can a website access my serial devices without permission?',
|
|
21
|
+
answer: 'No. The browser requires a user click and a native device picker before a site can open a serial port. This tool does not store terminal logs or device identifiers.',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
question: 'Which browser should I use for a web serial terminal?',
|
|
25
|
+
answer: 'Use Chrome, Edge, or another Chromium-based browser over HTTPS or localhost. Firefox, Safari, and many iOS browsers do not expose the Web Serial API.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'What baud rate should I choose?',
|
|
29
|
+
answer: 'Choose the baud rate configured in your firmware. Arduino examples often use 9600 or 115200, while faster logs, bootloaders, and high-rate sensor streams may use 230400, 460800, or 921600.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Connect the USB serial device',
|
|
36
|
+
text: 'Plug in the board or adapter and close any other serial terminal that may already have the port open.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Select the baud rate',
|
|
40
|
+
text: 'Pick the same baud rate used by the firmware, such as 115200 for many Arduino, ESP32, and RP2040 sketches.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Grant browser permission',
|
|
44
|
+
text: 'Press Connect, choose the serial device in the browser picker, and allow the page to open the port.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'Read and send terminal data',
|
|
48
|
+
text: 'Watch incoming logs in the terminal, send commands with optional CRLF line endings, and clear or pause the live output when needed.',
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
|
|
52
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
53
|
+
'@context': 'https://schema.org',
|
|
54
|
+
'@type': 'FAQPage',
|
|
55
|
+
mainEntity: faqData.map((item) => ({
|
|
56
|
+
'@type': 'Question',
|
|
57
|
+
name: item.question,
|
|
58
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
59
|
+
})),
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const howToSchema: WithContext<HowTo> = {
|
|
63
|
+
'@context': 'https://schema.org',
|
|
64
|
+
'@type': 'HowTo',
|
|
65
|
+
name: title,
|
|
66
|
+
description,
|
|
67
|
+
step: howToData.map((step, i) => ({
|
|
68
|
+
'@type': 'HowToStep',
|
|
69
|
+
position: i + 1,
|
|
70
|
+
name: step.name,
|
|
71
|
+
text: step.text,
|
|
72
|
+
})),
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
76
|
+
'@context': 'https://schema.org',
|
|
77
|
+
'@type': 'SoftwareApplication',
|
|
78
|
+
name: title,
|
|
79
|
+
description,
|
|
80
|
+
applicationCategory: 'DeveloperApplication',
|
|
81
|
+
operatingSystem: 'All',
|
|
82
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD' },
|
|
83
|
+
inLanguage: 'en',
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
export const content: ToolLocaleContent<WebUsbSerialMonitorUI> = {
|
|
87
|
+
slug,
|
|
88
|
+
title,
|
|
89
|
+
description,
|
|
90
|
+
faq: faqData,
|
|
91
|
+
bibliography,
|
|
92
|
+
howTo: howToData,
|
|
93
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
94
|
+
seo: [
|
|
95
|
+
{
|
|
96
|
+
type: 'title',
|
|
97
|
+
text: 'Online Serial Monitor for USB Maker Hardware',
|
|
98
|
+
level: 2,
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
type: 'paragraph',
|
|
102
|
+
html: 'This browser serial monitor opens a USB serial port directly from Chrome or Edge, then streams text from microcontrollers, USB UART bridges, development boards, bootloaders, test fixtures, sensors, and lab hardware. It is designed for quick diagnostics when you need a serial console but do not want to install a desktop IDE or terminal application.',
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
type: 'message',
|
|
106
|
+
title: 'Browser permission boundary',
|
|
107
|
+
html: 'The page cannot silently enumerate or open your serial devices. Access starts only after you press Connect and choose a port in the browser picker. Terminal data stays in the current tab unless you copy it yourself.',
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
type: 'stats',
|
|
111
|
+
items: [
|
|
112
|
+
{ value: '9600-921600', label: 'common baud presets' },
|
|
113
|
+
{ value: 'CRLF', label: 'optional command ending' },
|
|
114
|
+
{ value: 'local', label: 'terminal session' },
|
|
115
|
+
],
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
type: 'title',
|
|
119
|
+
text: 'When a Web Serial Terminal Is Useful',
|
|
120
|
+
level: 3,
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'list',
|
|
124
|
+
items: [
|
|
125
|
+
'Checking boot messages from Arduino, ESP32, ESP8266, RP2040, STM32, or custom firmware.',
|
|
126
|
+
'Sending AT commands to modem, GPS, LoRa, Wi-Fi, Bluetooth, or cellular modules through a USB UART adapter.',
|
|
127
|
+
'Reading sensor output from a factory test jig, classroom lab, robotics controller, or bench prototype.',
|
|
128
|
+
'Verifying that a USB serial bridge driver, cable, board power, and firmware baud rate are all working together.',
|
|
129
|
+
'Collecting a quick error log before filing a bug or asking for hardware support.',
|
|
130
|
+
],
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'comparative',
|
|
134
|
+
items: [
|
|
135
|
+
{
|
|
136
|
+
title: 'Web serial monitor',
|
|
137
|
+
description: 'Best for quick support, classroom instructions, field diagnostics, and maker workflows where opening a URL is faster than installing an IDE.',
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
title: 'Desktop terminal',
|
|
141
|
+
description: 'Better for binary protocols, long capture sessions, scripting, hardware flow control, macros, and environments where browser APIs are blocked.',
|
|
142
|
+
},
|
|
143
|
+
],
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'title',
|
|
147
|
+
text: 'Baud Rate and Line Ending Checklist',
|
|
148
|
+
level: 3,
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
type: 'table',
|
|
152
|
+
headers: ['Setting', 'Typical choice', 'What goes wrong when it is wrong'],
|
|
153
|
+
rows: [
|
|
154
|
+
['Baud rate', '115200 for many modern boards, 9600 for older examples.', 'Readable text turns into random symbols or no useful log appears.'],
|
|
155
|
+
['Line ending', 'CRLF for many command parsers, no ending for raw character protocols.', 'Commands are ignored because the firmware is waiting for a terminator.'],
|
|
156
|
+
['Exclusive port access', 'Close Arduino Serial Monitor, PuTTY, screen, minicom, or vendor tools.', 'The browser picker opens the port but reading or writing fails.'],
|
|
157
|
+
['Secure context', 'HTTPS or localhost.', 'The Serial API is missing even in a supported browser.'],
|
|
158
|
+
],
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
type: 'diagnostic',
|
|
162
|
+
variant: 'warning',
|
|
163
|
+
title: 'No serial output?',
|
|
164
|
+
html: 'Confirm the board is powered and the USB cable supports data, not charging only. Try 9600, 57600, and 115200 if you do not know the firmware baud rate. Press reset after connecting because many boards print boot logs only during startup. Close other software that may still own the serial port, and install the operating system driver for CH340, CP210x, FTDI, or the board vendor if the device never appears.',
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
type: 'title',
|
|
168
|
+
text: 'Privacy, Security, and Limits',
|
|
169
|
+
level: 3,
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
type: 'proscons',
|
|
173
|
+
title: 'Web Serial strengths and limits',
|
|
174
|
+
items: [
|
|
175
|
+
{
|
|
176
|
+
pro: 'No desktop installation for basic serial text diagnostics.',
|
|
177
|
+
con: 'Requires a Chromium-based browser and a secure context.',
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
pro: 'Browser picker limits access to the specific port you choose.',
|
|
181
|
+
con: 'Not intended for binary protocol analyzers or long unattended captures.',
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
pro: 'Works well for text logs, command prompts, and quick hardware checks.',
|
|
185
|
+
con: 'Some corporate policies, mobile browsers, and operating systems block Web Serial.',
|
|
186
|
+
},
|
|
187
|
+
],
|
|
188
|
+
},
|
|
189
|
+
],
|
|
190
|
+
ui: {
|
|
191
|
+
unsupportedTitle: 'Web Serial is not available',
|
|
192
|
+
unsupportedBody: 'Use Chrome or Edge over HTTPS or localhost, and make sure your device exposes a USB serial interface.',
|
|
193
|
+
secureContext: 'Web Serial requires HTTPS or localhost. Reload this page from a secure origin and try again.',
|
|
194
|
+
statusIdle: 'Choose a baud rate, then connect a USB serial device',
|
|
195
|
+
statusPermission: 'Waiting for the browser serial port picker',
|
|
196
|
+
statusOpening: 'Opening serial port',
|
|
197
|
+
statusConnected: 'Serial port connected',
|
|
198
|
+
statusDisconnected: 'Serial port disconnected',
|
|
199
|
+
statusError: 'Serial connection failed',
|
|
200
|
+
connect: 'Connect Serial',
|
|
201
|
+
disconnect: 'Disconnect',
|
|
202
|
+
send: 'Send',
|
|
203
|
+
clear: 'Clear',
|
|
204
|
+
pause: 'Pause',
|
|
205
|
+
resume: 'Resume',
|
|
206
|
+
baudRate: 'Baud rate',
|
|
207
|
+
newline: 'Append CRLF',
|
|
208
|
+
inputPlaceholder: 'Type a command, then press Enter',
|
|
209
|
+
portFallback: 'No port selected',
|
|
210
|
+
portLabel: 'Port identity',
|
|
211
|
+
connectedDeviceLabel: 'Connected device',
|
|
212
|
+
deviceNameFallback: 'USB serial device',
|
|
213
|
+
transportLabel: 'Web Serial link',
|
|
214
|
+
bytesLabel: 'Bytes',
|
|
215
|
+
linesLabel: 'Lines',
|
|
216
|
+
privacyTitle: 'Permission gated',
|
|
217
|
+
privacyBody: 'The browser only exposes the serial device you select. Logs stay in this tab unless you copy them.',
|
|
218
|
+
emptyLog: 'Terminal output will appear here after you connect a serial device.',
|
|
219
|
+
copied: 'Copied',
|
|
220
|
+
copyLog: 'Copy',
|
|
221
|
+
presetSlow: '9600',
|
|
222
|
+
presetArduino: '115200',
|
|
223
|
+
presetFast: '921600',
|
|
224
|
+
terminalLabel: 'Live terminal',
|
|
225
|
+
unknownUsbId: 'N/A',
|
|
226
|
+
logDirectionRx: 'rx',
|
|
227
|
+
logDirectionTx: 'tx',
|
|
228
|
+
logDirectionSys: 'sys',
|
|
229
|
+
vidPrefix: 'VID ',
|
|
230
|
+
pidSeparator: ' / PID ',
|
|
231
|
+
baudUnit: ' baud',
|
|
232
|
+
vendorFtdi: 'FTDI USB Serial',
|
|
233
|
+
vendorSilabs: 'Silicon Labs CP210x',
|
|
234
|
+
vendorCh340: 'CH340 USB Serial',
|
|
235
|
+
vendorArduinoUsb: 'Arduino USB Serial',
|
|
236
|
+
vendorAdafruit: 'Adafruit USB Serial',
|
|
237
|
+
vendorRp2040: 'Raspberry Pi RP2040',
|
|
238
|
+
vendorEspressif: 'Espressif USB Serial',
|
|
239
|
+
vendorOpenSource: 'Open source USB Serial',
|
|
240
|
+
},
|
|
241
|
+
};
|