Service Module
PPSM
The PagePoint Service Module is the permanent installer workstation. It never performs operational paging.
Owns
- Phone provisioning, APK installation, phone configuration, and inventory.
- USB message import, validation, package deployment, and rollback planning.
- DNS/DHCP configuration, monitoring, and health reporting through OS-level services.
- Local PagePoint time authority: RTC-backed Linux time and chrony NTP service.
- Diagnostics, backup/restore, log collection, site notes, and service portal.
Touchscreen Rule
The touchscreen is for service, not administration. If it needs a keyboard, it belongs in the PagePoint Service Portal.
Network and Time Identity
- Normal PPSM operation is wired-only at
192.168.50.2. - The PagePoint Wi-Fi profile may remain on the PPSM for emergency access, but autoconnect should be disabled.
- Emergency Wi-Fi use is a deliberate service action and should be disabled again after recovery.
- Chrony is active and serves local NTP on
192.168.50.2. - DS3231 RTC is configured through
dtoverlay=i2c-rtc-gpio,ds3231,i2c_gpio_sda=21,i2c_gpio_scl=20. - Current DYY9 timezone policy is
America/New_York. Future regional deployments should make timezone site-configurable.
Milestone 1 Built
ppsm.serviceapp skeleton.- Express API shell with status endpoint and Socket.IO status push.
- JSON configuration/current-state approach, JSONL audit log, and JSON job tracking.
- PPOE client, network services manager, USB watcher, phone watcher, message manager, maintenance-mode, and diagnostics module boundaries.
- Touchscreen shell and browser-based PagePoint Service Portal shell.
Phone Count and OE Health Source
- PPOE is authoritative for live connected phone clients.
- PPOE exposes clients through
/health. - PPSM reads that health data and reports phones with source
PPOE_HEALTH. - Local PPSM phone watcher remains for future USB/provisioning detection, not live operator phone count.
- PPSM now broadcasts refreshed OE status automatically at startup and on the polling interval, so the home screen updates without requiring Diagnostics.
Phone Provisioning Work Completed
- Device Owner and kiosk completion verified on a non-Golden Armor X12 test phone.
- Provisioning order confirmed: install APK without launching, set Device Owner, launch PagePoint, apply Golden screen settings, then verify lock task and kiosk UI.
- Android health checks include Device Owner, Device Admin, BootReceiver, lock task, kiosk UI, rotation, screen timeout, keyguard, app, Wi-Fi, PPOE visibility, and now time source.
- Provisioning can configure phone time: NTP server
192.168.50.2, automatic network time enabled, automatic timezone disabled, timezoneAmerica/New_York. - Fourth-phone test confirmed the provisioning wizard can recover an intentionally wrong date/time and disabled NTP state.
Touchscreen Work Completed
- Installed and configured 3.5-inch SPI touchscreen on PPSM.
- Enabled touchscreen autostart through
ppsm-touchscreen.service. - Added boot-time detection for the active
fb_ili9486framebuffer before Xorg starts. - Resolved display rotation, framebuffer geometry, right-edge offset, and touch transform.
- Built compact service-appliance home screen with health, phone count, message package date, network status, Android validation status, uptime, and quick action buttons.
- Added modal framework for Messages, Phones, Network, Diagnostics, and About.
- Connected Find Phones button to PPOE with toggle-style start/stop.
- Revised Provision Phone layout for portrait-first installer use: narrower/taller animation panel, larger instructional text, animation extended lower on the screen, and BACK moved into the footer beside NEXT.
Future Work
- Real USB message package import and validation workflow.
- Continue phone provisioning polish and end-to-end factory-reset acceptance testing.
- Promote timezone from DYY9 hard-code to site configuration before non-Northeast deployments.
- Continue PPSM appliance boot diagnostics and service restart hardening.
- Backup/restore workflow and support bundle export.
- Maintenance mode handshake before disruptive PPOE updates.