gabe /presentato-mf
public · Issues · Pulls · Labels · Forks · Compare · Actions success · Badges · Packages
⭐
Log in to mark this repository.
acme-camera: note fixes, broker/software-design placeholders, PowerReading fields, Weekday derives
e6cddda · Gabriel Morell · 2026-10-13 18:41
Files changed
modified
content/presentations/acme-camera.md
+20
−10
@@ -40,7 +40,7 @@ ultra-low power attached to motion sensors, lighting, and power control
| 40 | 40 | |
| 41 | 41 | ## SOC |
| 42 | 42 | |
| 43 | −attached to camera/storage and spends most of its' time in deep sleep | |
| 43 | +attached to camera/storage and spends most of its time in deep sleep | |
| 44 | 44 | |
| 45 | 45 | -- |
| 46 | 46 |
@@ -86,7 +86,7 @@ to support Infrared and Visible Spots for lighting areas for improved visibility
| 86 | 86 | |
| 87 | 87 | # Power Subsystem |
| 88 | 88 | |
| 89 | −- Battery Charge Controller & Guage | |
| 89 | +- Battery Charge Controller & Gauge | |
| 90 | 90 | |
| 91 | 91 | <iframe src="https://diogramos.neiam.co/embed/oUXMw7KPyT-jBwSnzi-s3QGE?mode=frame" |
| 92 | 92 | width="900" height="500" style="border:0" loading="lazy" |
@@ -96,7 +96,7 @@ to support Infrared and Visible Spots for lighting areas for improved visibility
| 96 | 96 | |
| 97 | 97 | ## What about solar? |
| 98 | 98 | |
| 99 | −Let us set an expectation that expect that any input power source provides 5v regulated power, | |
| 99 | +Let's set the expectation that any input power source provides regulated 5V, | |
| 100 | 100 | solar included <!-- .element: class="fragment" --> |
| 101 | 101 | |
| 102 | 102 | -- |
@@ -123,10 +123,12 @@ nPM1300 does not provide the MPP support for the solar cells so we need an exter
| 123 | 123 | |
| 124 | 124 | Note: |
| 125 | 125 | mcuctl sets the motion and light mode on the embedded mcu |
| 126 | −powerctl controls the power domain for the battery charger and reads the fuel guage | |
| 126 | +powerctl controls the power domain for the battery charger and reads the fuel gauge | |
| 127 | 127 | portalctl provides the initial configuration UI and subsequent status web portals |
| 128 | 128 | cameractl reads frames and dispatches them to whatever has been configured |
| 129 | 129 | configctl is the source of truth that gets configuration requests |
| 130 | +broker: TODO | |
| 131 | +infctl: TODO (bonus) | |
| 130 | 132 | |
| 131 | 133 | --- |
| 132 | 134 |
@@ -146,6 +148,8 @@ Uses an A+B boot that only changes the boot target once we've booted successfull
| 146 | 148 | - MQTT |
| 147 | 149 | |
| 148 | 150 | Note: on unix socket for the ability to have granular security |
| 151 | +TODO: why a unix socket over TCP (file permissions / peer credentials per component) | |
| 152 | +TODO: topic layout and which components publish/subscribe | |
| 149 | 153 | |
| 150 | 154 | --- |
| 151 | 155 |
@@ -187,21 +191,27 @@ struct TimerConfig {
| 187 | 191 | schedule_days: HashSet<Weekday> |
| 188 | 192 | } |
| 189 | 193 | |
| 194 | +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] | |
| 190 | 195 | enum Weekday { M, T, W, R, F, S, U } |
| 191 | 196 | ``` |
| 192 | 197 | |
| 193 | 198 | Note: |
| 194 | −Collects power usage data, rundown and fuel guage from the PMIC | |
| 199 | +Collects power usage data, rundown and fuel gauge from the PMIC | |
| 195 | 200 | |
| 196 | 201 | -- |
| 197 | 202 | |
| 198 | 203 | ## Power Readings |
| 199 | 204 | |
| 200 | 205 | ```rust |
| 206 | +enum PowerSource { Battery, External } | |
| 207 | + | |
| 201 | 208 | struct PowerReading { |
| 202 | − raw: u64, | |
| 203 | − calculated: f32, | |
| 204 | − display: String, | |
| 209 | + source: PowerSource, | |
| 210 | + timestamp: u64, | |
| 211 | + voltage_mv: u32, | |
| 212 | + current_ma: i32, // + charge / - drain | |
| 213 | + state_of_charge: Option<u8>, // fuel gauge, % | |
| 214 | + time_to_empty_s: Option<u32>, // rundown estimate | |
| 205 | 215 | } |
| 206 | 216 | ``` |
| 207 | 217 |
@@ -217,7 +227,7 @@ Interactive wireless authentication and cloud configuration
| 217 | 227 | # Component: Cameractl |
| 218 | 228 | |
| 219 | 229 | Note: |
| 220 | −Reads frames from the camera and decides to do further processing depending on Config | |
| 230 | +Reads frames from the camera and decides to do further processing depending on config | |
| 221 | 231 | |
| 222 | 232 | --- |
| 223 | 233 |
@@ -252,4 +262,4 @@ _leading to insights for better_ <!-- .element: class="fragment" -->
| 252 | 262 | |
| 253 | 263 | # Instrumentation |
| 254 | 264 | |
| 255 | −- Collection of combined environmental, fuel guage | |
| 265 | +- Collection of combined environmental, fuel gauge |
Parents: ee9fd58