ASCOM Mount Dither
lsusb / USBTreeView / Device Manager for identifying the iOptron USB VID/PID and class.USB_HOST_PWR_EN until 3V3 is stable and firmware is logging over UART.GPIO19/20) and are not available for USB debug during host tests.BAT_PLUS on J3 P1 and GND on J3 P2.USB_HOST_DN.USB_HOST_DP.CHG_VBUS to GND and D3 protects HOST_VBUS to GND.USB_HOST_PWR_EN low so U4/U5 remain disabled during ESP32 reset.Table
| Check | Measure between | Expected result | Pass criteria |
|---|---|---|---|
| Charge VBUS short | CHG_VBUS to GND | Not shorted | >10 kΩ after capacitors settle |
| Battery short | BAT_PLUS to GND | Not shorted | >10 kΩ after capacitors settle |
| System rail short | SYS to GND | Not shorted | >1 kΩ after capacitors settle |
| 3.3 V short | 3V3 to GND | Not shorted | >1 kΩ after capacitors settle |
| 5 V pre-switch short | HOST_5V_PRE to GND | Not shorted | >1 kΩ after capacitors settle |
| Host VBUS short | HOST_VBUS to GND | Not shorted | >1 kΩ after capacitors settle |
| USB-C CC1 | J1 CC1 / USB_C_CC1 to GND | R1 pull-down | 4.8–5.4 kΩ |
| USB-C CC2 | J1 CC2 / USB_C_CC2 to GND | R2 pull-down | 4.8–5.4 kΩ |
| USB D+ to GND | USB_HOST_DP_CONN to GND | Not shorted | >100 kΩ |
| USB D- to GND | USB_HOST_DN_CONN to GND | Not shorted | >100 kΩ |
Table
| Rail | Source | Expected voltage | Tolerance | Measure at | Initial current limit | Pass criteria |
|---|---|---|---|---|---|---|
CHG_VBUS | J1 USB-C input | 5.0 V | 4.75–5.25 V | U2 IN / C18 P1 | 100–200 mA | Stable, no heating |
BAT_PLUS | J3 LiPo / U2 BAT | 3.0–4.2 V | cell dependent | J3 P1 / U2 BAT | battery simulator 200 mA | Correct polarity, no excessive current |
SYS | U2 OUT | ~battery/USB power-path output | 3.0–4.4 V typical | U2 OUT / C3 P1 | 200 mA | Feeds U3/U4 inputs |
3V3 | U3 TPS63020 | 3.3 V | ±5% | U1 3V3 / C10 P1 | 150–250 mA first boot | 3.135–3.465 V |
HOST_5V_PRE | U4 TPS61023 | 5.0 V | ±5% | U4 VOUT / C12 P1 | 50–100 mA first enable | 4.75–5.25 V, no overshoot >5.5 V |
HOST_VBUS | U5 TPS2051C OUT | 5.0 V when enabled | ±5% | J2 VUSB / C15 P1 | 50 mA first enable | 4.75–5.25 V, current limited on fault |
CHG_VBUS, then SYS, then 3V3.USB_HOST_PWR_EN remains LOW during reset and boot.3V3_PGOOD=1 before any host power testing.USB_HOST_PWR_EN in the starter firmware.HOST_5V_PRE and HOST_VBUS startup; abort if overshoot, heating, or USB_HOST_FAULT_N assertion occurs.Table
| Signal | Net | Expected idle state | Measure at | Notes |
|---|---|---|---|---|
| ESP32 enable | ESP_EN | HIGH, ~3.3 V | U1 EN / J4 RESET | S1 pulls low to reset. |
| ESP32 boot | ESP_BOOT | HIGH, ~3.3 V | U1 GPIO0 / J4 NJTRST | S2 pulls low for download mode. |
| GPIO45 strap | ESP_GPIO45_STRAP | LOW | U1 GPIO45 / R18 | Do not drive. |
| GPIO46 strap | ESP_GPIO46_STRAP | LOW | U1 GPIO46 / R19 | Do not drive. |
| 3.3 V PG | 3V3_PGOOD | HIGH after U3 valid | U1 GPIO8 | Firmware requires this before enabling host power. |
| Host power enable | USB_HOST_PWR_EN | LOW at reset | U1 GPIO7 / U4 EN / U5 EN | HIGH enables U4 and U5. |
| Host fault | USB_HOST_FAULT_N | HIGH if no fault | U1 GPIO5 / U5 ~FLT | LOW means overcurrent/thermal fault. |
| Charger input good | CHG_PGOOD_N | LOW with valid USB-C input | U1 GPIO15 / U2 ~PGOOD | Active-low. |
| Charging status | CHG_STATUS_N | LOW while charging | U1 GPIO16 / U2 ~CHG | Active-low. |
| User button | USER_BUTTON_N | HIGH idle, LOW pressed | U1 GPIO4 / S3 | Firmware toggles host session on press. |
| Sync input | SYNC_IN | LOW idle | U1 GPIO17 | J5 Pin 3 through R22; R24 pulldown. |
| Sync output | SYNC_OUT | LOW idle | U1 GPIO18 / J5 Pin 4 | 3.3 V output through R23. |
| USB D- | USB_HOST_DN | USB full-speed signaling | U1 GPIO19 / R25 | Check continuity only before enumeration. |
| USB D+ | USB_HOST_DP | USB full-speed signaling | U1 GPIO20 / R26 | Check continuity only before enumeration. |
Table
| Interface | Connector | Signals | Tool |
|---|---|---|---|
| UART bootloader/logging | J4 | 3V3, GND, ESP_TXD0, ESP_RXD0, ESP_BOOT, ESP_EN | USB-UART adapter + PlatformIO / esptool.py |
ESP_TXD0).ESP_RXD0).3V3 only as a voltage reference unless intentionally powering the board from a current-limited 3.3 V source.pio run -t upload from the firmware project.pio device monitor -b 115200.Table
| Test | Setup | Expected result | Pass criteria |
|---|---|---|---|
| Host off at reset | Power board, do not press user button | USB_HOST_PWR_EN LOW, HOST_VBUS 0 V | No 5 V at J2 VUSB |
| No-load enable | Press user button with no USB device | HOST_VBUS rises to 5 V | 4.75–5.25 V, no fault |
| 50 mA load | Dummy load on J2 VBUS | Stable 5 V | No USB_HOST_FAULT_N assertion |
| 100 mA load | Dummy load on J2 VBUS | Stable 5 V | No fault, no overheating |
| 250 mA load | Dummy load on J2 VBUS | Stable 5 V | No fault if within design target |
| Fault test | Controlled overload/short through current-limited setup | U5 asserts USB_HOST_FAULT_N low | Firmware disables GPIO7 and VBUS |
| Reverse/back-power check | Mount or external USB source powered, box off | No significant voltage on HOST_5V_PRE/SYS | No backfeeding through U5/ESD path |
MOUNT_USB_VID/MOUNT_USB_PID in firmware to a known CDC-ACM device.HOST_VBUS remains 4.75–5.25 V.USB_HOST_FAULT_N remains HIGH.lsusb and lsusb -v -d VID:PID.USB_HOST_FAULT_N goes LOW.HOST_VBUS collapses below 4.75 V.Table
| Step | Command type | Expected behavior | Pass criteria |
|---|---|---|---|
| 1 | Read-only version/info query | Mount replies with text/status | Valid response, no movement |
| 2 | Read-only state/status query | Mount reports tracking/slewing/park state | Response parsed correctly |
| 3 | Guide-rate or capability query/set, if supported | No unexpected motion | Setting acknowledged or safely rejected |
| 4 | Tiny Dec-only pulse | Very small controlled movement | Motion stops immediately, no fault |
| 5 | Tiny RA/Dec randomized dither | Controlled movement | Mount accepts command and resumes tracking |
Table
| Test | Components/nets | Input | Expected output | Pass criteria |
|---|---|---|---|---|
| Status LED | U1 GPIO21, R20, D4 | Firmware blink | D4 blinks | Visible blink and GPIO toggles 0/3.3 V |
| User button | S3, USER_BUTTON_N | Press/release | UART logs button press | HIGH idle, LOW pressed |
| Host enable | U1 GPIO7, U4, U5 | Firmware/user button | HOST_VBUS turns on/off | No fault, correct voltage |
| USB fault | U5 ~FLT, GPIO5 | Controlled overload | Firmware disables host power | Fault logged, GPIO7 LOW |
| Charger status | U2 ~PGOOD, ~CHG | USB-C in / battery charging | GPIO15/GPIO16 reflect state | Logs match charger state |
| Sync input | J5 Pin 3, R22/R24, GPIO17 | 0/3.3 V input | Firmware logs state | No floating when disconnected |
| Sync output | GPIO18, R23, J5 Pin 4 | Firmware toggle | 0/3.3 V output | Series resistor limits fault current |
| USB enumeration | J2, D1, R25/R26, GPIO19/20 | Known USB serial device | Device enumerates | No VBUS sag/fault |
Table
| Section | Result | Notes |
|---|---|---|
| Visual inspection | [ ] Pass / [ ] Fail | |
| Unpowered resistance checks | [ ] Pass / [ ] Fail | |
| Charger/power-path bring-up | [ ] Pass / [ ] Fail | |
| 3.3 V rail | [ ] Pass / [ ] Fail | |
| Firmware flashing/logging | [ ] Pass / [ ] Fail | |
| Host 5 V no-load | [ ] Pass / [ ] Fail | |
| Host 5 V dummy-load tests | [ ] Pass / [ ] Fail | |
| USB fault handling | [ ] Pass / [ ] Fail | |
| Known CDC-ACM enumeration | [ ] Pass / [ ] Fail | |
| 8409 VID/PID/class identified | [ ] Pass / [ ] Fail | |
| First mount read-only query | [ ] Pass / [ ] Fail | |
| First tiny movement/dither command | [ ] Pass / [ ] Fail |
GPIO19/20 are the ESP32-S3 native USB pins; UART debug is required during host-mode testing.USB_HOST_PWR_EN controls both the boost and the VBUS switch; confirm R14 keeps it off during reset.Purpose
Prerequisites
Equipment
Safety Rules
1. Visual Inspection
2. Unpowered Resistance Checks
3. Power Rail Verification
Procedure
4. Critical Signal Verification
5. Programming and Debug Interface
UART Flash Procedure
6. USB Host Power Validation Before Any Real Device
7. USB Device Compatibility Tests
Stage A — Known CDC-ACM Device
Stage B — Identify the 8409/HEM27EC USB Bridge
Stage C — First Mount Connection
8. Mount Protocol Validation
9. Functional Validation
10. Brownout / Hot-Plug Tests
11. Pass/Fail Summary
Key Risks to Keep Visible