gabe /presentato-mf
public · Issues · Pulls · Labels · Forks · Compare · Actions success · Badges · Packages
⭐
Log in to mark this repository.
acme-camera: component summaries up front, types with blurbs on vertical slides
85ae7b2 · Gabriel Morell · 2026-10-13 18:50
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