acme-camera: component summaries up front, types with blurbs on vertical slides

85ae7b2 · Gabriel Morell · 2026-10-13 18:50

3 files +47 -7

Files changed

modified content/presentations/acme-camera.md
+47 −7
@@ -155,6 +155,17 @@ TODO: topic layout and which components publish/subscribe
155 155
156 156 # Component : MCUctl
157 157
158 +Owns the MCU link: motion sensing and lighting
159 +
160 +Note:
161 +Talks to MCU and sets/gets the motion detection and light settings
162 +
163 +--
164 +
165 +## Motion
166 +
167 +Which sensors watch for motion
168 +
158 169 ```rust
159 170 enum MotionDetectionMode {
160 171 OnlyPIR,
@@ -164,6 +175,12 @@ enum MotionDetectionMode {
164 175 }
165 176 ```
166 177
178 +--
179 +
180 +## Lighting
181 +
182 +When the visible and IR spots come on
183 +
167 184 ```rust
168 185 enum LightControlMode {
169 186 DuskDawn,
@@ -172,13 +189,21 @@ enum LightControlMode {
172 189 }
173 190 ```
174 191
175 −Note:
176 −Talks to MCU and sets/gets the motion detection and light settings
177 −
178 192 ---
179 193
180 194 # Component: Powerctl
181 195
196 +Power modes, schedules and PMIC telemetry
197 +
198 +Note:
199 +Collects power usage data, rundown and fuel gauge from the PMIC
200 +
201 +--
202 +
203 +## Power Modes
204 +
205 +Awake on detection, or on a schedule
206 +
182 207 ```rust
183 208 enum PowerCtlMode {
184 209 Detection{cooldown: u32},
@@ -195,13 +220,12 @@ struct TimerConfig {
195 220 enum Weekday { M, T, W, R, F, S, U }
196 221 ```
197 222
198 −Note:
199 −Collects power usage data, rundown and fuel gauge from the PMIC
200 −
201 223 --
202 224
203 225 ## Power Readings
204 226
227 +One sample from the PMIC
228 +
205 229 ```rust
206 230 enum PowerSource { Battery, External }
207 231
@@ -219,6 +243,17 @@ struct PowerReading {
219 243
220 244 # Component: Portalctl
221 245
246 +First-boot setup, then a status portal
247 +
248 +Note:
249 +Interactive wireless authentication and cloud configuration
250 +
251 +--
252 +
253 +## Modes
254 +
255 +Which portal is up, and setup progress
256 +
222 257 ```rust
223 258 enum PortalMode {
224 259 Setup { ap_ssid: String, ap_psk: String },
@@ -236,13 +271,14 @@ enum ProvisioningState {
236 271 ```
237 272
238 273 Note:
239 −Interactive wireless authentication and cloud configuration
240 274 Setup is a soft-AP on first boot / factory reset, Status once on the home network, Off once cloud-managed
241 275
242 276 --
243 277
244 278 ## Credentials
245 279
280 +What setup collects from the user
281 +
246 282 ```rust
247 283 enum WifiSecurity { Open, Wpa2Psk, Wpa3Sae }
248 284
@@ -265,6 +301,8 @@ claim_token comes from a QR code or the app and is exchanged for device certs
265 301
266 302 ## Config Requests
267 303
304 +Changes sent to configctl via the broker
305 +
268 306 ```rust
269 307 enum ConfigRequest {
270 308 Network(WifiCredentials),
@@ -280,6 +318,8 @@ portalctl publishes these over the broker; configctl validates and applies them
280 318
281 319 ## Status Portal
282 320
321 +The status portal's read-only view
322 +
283 323 ```rust
284 324 enum BootSlot { A, B }
285 325

Parents: 2d71f1a