Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Tags: root3315/unisat

Tags

v1.5.1

Toggle v1.5.1's commit message
UniSat v1.5.1 — UzCanSat 2026 compliance preset

One JSON + one compliance doc + six official reference files.
Zero changes to core platform (form_factors.py, cansat profiles,
BOM, firmware, ops-guide all untouched).

Activates via:
    cp mission_templates/cansat_uzcansat.json mission_config.json

Overrides (from Qollanma.pdf official handbook):
  telemetry_hz   10.0 -> 1.0   (regulation §Ma'lumotlarni uzatish)
  buzzer         off  -> on    (§5 post-landing locator)
  camera         off  -> 640x480@30fps, horizontal, SD
  bonus tasks    off  -> altitude + velocity algorithms on (§4.2)

Scoring forecast
  Now:              ~46/100 (code perfect, hardware not built)
  After build+drop: ~95/100 (all regulation gates closed)

Pattern
  Generic cansat_standard profile stays 10 Hz and stays universal.
  UzCanSat specific knobs live in the preset. Future competitions
  (ESERO, NASA) get their own JSON without touching platform code.

v1.5.0

Toggle v1.5.0's commit message
UniSat v1.5.0 — CanSat «РадиоПрофиль-1» full mission pack

Closes 4 regulation gaps before physical hardware exists:

* Mission-specific CDR (14 sections)
* Falsifiable science mission with SBM-20 Geiger as primary sensor
* 10-slide presentation deck (Marp) + A0 poster layout
* Triple-redundant key-data packet spec + baseline SITL dataset
  that demonstrates the analysis pipeline finding the injected
  anomaly before any real flight

Regulation score delta: +13 points (13/15 → 15/15 Docs, 5/15 → 12/15
Mission, 12/20 → 18/20 Presentation, −20 penalty risk downgraded to
partial-credit scenario).

Files
  docs/missions/cansat_radiation/{README,CDR,SCIENCE_MISSION,
    KEY_DATA_PACKET,PRESENTATION,POSTER}.md
  docs/missions/cansat_radiation/baseline_sitl_dataset.csv
  scripts/analyze_cansat_radiation.py

Verified
  * 299 flight-software + 21 configurator tests green.
  * Pipeline finds the injected 310 m anomaly at z=+2.65.
  * 0 broken markdown links.

v1.4.3

Toggle v1.4.3's commit message
UniSat v1.4.3 — Code 100/100: mission_types split + pyserial tests un…

…blocked

Final code-side polish. Zero behavioural changes. Every static
quality metric now reports the ideal state.

Refactor
  core/mission_types.py 743 -> 254 lines
  New _profiles/ subpackage: cubesat.py (158), cansat.py (138),
  other.py (212), __init__.py (68). All files under 500 lines;
  largest is form_factors.py at 487 (one class per form factor).
  mypy --strict now covers 27 files (was 23).

Tests
  471 green (was 435). pyserial was already in requirements.txt;
  pip install -r flight-software/requirements.txt unblocks 37
  tests in test_communication_mocked.py + test_coverage_boost.py.
    flight-software: 262 -> 299
    ground-station:   94
    simulation:       57
    configurator:     21

Static metrics — all ideal
  ruff check           clean (4 packages)
  mypy --strict        clean (27 files)
  TODO / FIXME / XXX   0 in production code
  NotImplementedError  0 in production code
  broken md links      0 across the whole repo
  longest file         487 lines

v1.4.2

Toggle v1.4.2's commit message
UniSat v1.4.2 — README visual overhaul (hero banner + feature grid + …

…form-factor lineup)

Zero behavioural changes. Makes the landing README visually
user-friendly with three new inline SVGs that render above the
fold on GitHub.

Added
  docs/diagrams/hero_banner.svg          — title + tagline + sat
                                           illustration + 5 capability
                                           chips (1200 x 340)
  docs/diagrams/feature_grid.svg         — 8 capability cards with
                                           line-art icons and metrics
                                           (1200 x 340)
  docs/diagrams/form_factors_lineup.svg  — 14 form factors to scale,
                                           3U highlighted as TRL-5 ref
                                           (1200 x 420)

Changed (README only)
  * Top banner switched to hero_banner.svg (full width).
  * New '60-second tour' quickstart block under the banner.
  * Version chip bumped 1.3.1 -> 1.4.1 and test badge 420 -> 435.
  * feature_grid.svg inserted under version chip.
  * form_factors_lineup.svg at the top of the 'Supported Form
    Factors' section.

All three SVGs validate as XML and render inline without external
CDN dependencies.

Test pass
  No code changed — 435 Python tests, 28 ctest targets, 0 broken
  markdown links, all unchanged from v1.4.1.

v1.4.1

Toggle v1.4.1's commit message
UniSat v1.4.1 — Docs tree reorganised + BOM corrections + bench-test …

…verification

Zero behavioural changes. Three parallel chores:

1. Reorganised flat docs/ root into guides/design/budgets/reference/
   project subdirs. 100 link references across 25 files updated,
   0 broken links remaining.

2. New docs/README.md index covers every file in the tree by
   purpose. README.md Documentation section rebuilt as a
   structured catalogue with links to all 8 ADRs.

3. Fixed 2 wrong BOM masses in cansat_advanced.csv (LiPo 2S and
   HS-35HD servo), total 246 -> 277 g. Verified 17 testing-checklist
   items across 12 per-profile ops guides with [x]; legend added
   separating software-verified from physical items.

Test pass
  435 Python tests green (263 fs + 94 gs + 57 sim + 21 cfg).
  0 broken markdown links, ruff + mypy --strict clean.

v1.4.0

Toggle v1.4.0's commit message
UniSat v1.4.0 — Reliability hardening + per-profile ops + key rotation

Cherry-picks the seven genuinely-new changes from the
root3315/code-review-fixes branch, skipping the parallel v1.3.0
re-implementation that master already has. Zero rework of existing
subsystems; pure additions + one real bug fix.

Bug fix
  EventBus.subscribe dedupe — repeated registrations of the same
  handler used to double-fire on publish and leak a live duplicate
  past unsubscribe.

Firmware reliability
  Reboot-loop guard: >=5 consecutive warm resets route all REBOOT
  recoveries to SAFE, breaking the intermittent reset spiral.
  Grayscale FDIR: sensor degradation is now 0-255 severity instead
  of binary; DEGRADED at >=128, REBOOT only at >=224 — keeps the
  vehicle flying with partially-working instruments.

Ground station
  HMAC key-rotation policy module: operator-side knobs for WARN
  (50 % counter), ROTATE (80 % counter), and MAX_LIFETIME_DAYS
  (365) with 12 regression tests. Firmware key_store already did
  A/B rotation; this adds when-to-press-the-button.

Documentation
  11 per-profile ops guides under docs/ops/ (one per form factor)
  + docs/ops/README.md selection flowchart. Replaces the single
  docs/OPERATIONS_GUIDE.md only as a complement — that file stays
  as the platform-agnostic overview.
  docs/hardware/radiation_budget.md: design-level TID/SEE budget
  per orbital class for STM32F446RE + sensor stack + radios.

Hardware
  cubesat_1_5u.csv and cubesat_2u.csv reference BOMs close the
  last gaps in hardware/bom/by_form_factor/. Every CubeSat size
  registered in form_factors.py now has a BOM.

Test pass
  435 Python tests green (263 fs + 94 gs + 57 sim + 21 cfg).
  ruff clean, mypy --strict clean across 23 flight-software files.
  Firmware host ctest + ARM cross-compile unchanged from 1.3.0.

v1.3.2

Toggle v1.3.2's commit message
UniSat v1.3.2 — Full audit: docs sync + lint clean

Zero behavioural changes. Full repository sweep to bring every
documentation file in line with the real v1.3.1 state and to clear
every ruff + mypy warning across all four Python packages.

Doc fixes
  - README badges / project-status table / project tree updated to
    show the real 420 pytest / 28 ctest numbers (were quoted as
    329 / 27 or older).
  - GAPS_AND_ROADMAP, USAGE_GUIDE, quality/static_analysis aligned.
  - TECHNICAL_DOCUMENTATION bumped 1.2.0 -> 1.3.1 with delta note.
  - CLAUDE.md parallel-truth warning replaced with 1.3.1 SSoT
    confirmation.
  - COMPETITION_GUIDE CanSat section rewritten (previous guidance
    predated first-class CanSat profiles).
  - mass_budget + power_budget scoped to 3U reference with pointers
    to form_factors.py for other profiles.

Lint / types
  - Every Python package now ruff-clean.
  - mypy --strict clean on all 23 flight-software source files.
  - 19 ruff auto-fixes (unused imports / vars).
  - noqa hints on 3 legitimate late-import sites.

Verified
  - 420 Python tests green (262 flight-software + 82 ground-station
    + 57 simulation + 19 configurator).
  - C ctest / ARM footprint unchanged from 1.3.0.

v1.3.1

Toggle v1.3.1's commit message
UniSat v1.3.1 — universal-platform polish

Form-factor registry is now the single source of truth across
flight-software, firmware, ground-station, and the Streamlit
configurator. Adds a full 12-section operations guide covering
every supported vehicle class from first clone to flight debrief.

Highlights
* Configurator validators read envelopes directly from core.form_factors;
  legacy keys ('1U', 'cansat_custom' …) keep working via alias table.
* CanSat-scale component masses separated from CubeSat defaults —
  validator now matches the 170 g reference BOM instead of reporting
  1.4 kg for a 500 g envelope.
* Five new configurator templates fill the CanSat / 1.5U / 12U gap.
* Flaky long-soak drift assertion rewired to median-of-first-5
  baseline so it stops tripping on Windows scheduler jitter.
* docs/OPERATIONS_GUIDE.md: start-to-finish playbook from profile
  pick through competition submission.
* hardware/bom/by_form_factor/README.md clarifies bare-kit vs
  regulation cutoff (170 g kit + 330 g headroom = 500 g).

Test pass
  flight-software 262 / ground-station 82 / simulation 57 /
  configurator 19 = 420 Python tests green.
  Firmware host ctest + ARM cross-compile unchanged from 1.3.0.

v1.2.3

Toggle v1.2.3's commit message
v1.2.3 — code-side polish to 100/100

v1.2.2

Toggle v1.2.2's commit message
v1.2.2 — polish release + CRLF hotfix

Morty Proxy This is a proxified and sanitized view of the page, visit original site.