================================================================================
  FOR THE WEBSITE — P2-PSC OPEN-SOURCE SOURCE ARCHIVE
  Prepared 2026-08-13.  Four files in this folder go on facts-eng.com.
================================================================================

THE FOLDER NAME WE ARE ASKING FOR
---------------------------------

    https://facts-eng.com/software/p2-psc/open-source/

Please create that path and put the four files in it, exactly as named.


WHY THAT NAME, IN ONE LINE EACH
-------------------------------

  /software/        Ron named this location on 2026-08-13.

  /p2-psc/          Product-scoped, so the P1FE-200 and anything after it get
                    their own sibling folder later without disturbing this one.

  /open-source/     Says what it is to anyone who lands on it, including an
                    auditor who was given no other context.

  NO VERSION NUMBER ANYWHERE IN THE PATH.  This is the important one.  The
  archive is re-cut and re-posted with every firmware release, and the folder
  address must stay identical forever.  The version lives in the FILE names,
  which is where it belongs.  A path like /open-source-v1/ guarantees a second
  path next year and a dead link to the first.


THE FOUR FILES
--------------

  open62541-v1.5.5-3bdeed5dfe83-source.tar.gz      8,258,922 bytes   <- the main one
  open62541-v1.5.5-3bdeed5dfe83-source.tar        24,801,280 bytes
  open62541-v1.5.5-3bdeed5dfe83-source.MANIFEST.json  609,055 bytes
  SHA256SUMS.txt                                          334 bytes

Publish ALL FOUR.  SHA256SUMS.txt lists the other three by name and checksum,
so leaving one out makes the checksum file point at something that is not
there — which looks exactly like tampering to anyone checking.


FOUR THINGS THAT WOULD BREAK IT
-------------------------------

  1. DO NOT RENAME THE FILES.  The checksums in SHA256SUMS.txt are keyed to
     these exact names.

  2. DO NOT PUT IT BEHIND A LOGIN, a form, or "contact us to download".  It has
     to be fetchable by an anonymous visitor.  A page that works when YOU are
     logged in and 403s for everyone else is the most common way this fails,
     and it fails silently.

  3. DO NOT LET THE SERVER REWRITE THE FILES.  Some hosts gzip, minify or
     re-encode uploads.  These are compressed archives; a byte-level change
     breaks every checksum.  If the host offers "optimise downloads", turn it
     off for this folder.

  4. DO NOT DELETE OLD VERSIONS when a new release is posted.  Someone may hold
     a module running last year's firmware, and the source that matches THAT
     firmware is what they are entitled to.  New files go alongside, not
     instead.


WHAT WE WILL DO ONCE IT IS UP
-----------------------------

Tell us the folder is live and we will fetch it as an anonymous visitor and
compare the bytes against these checksums.  That single check confirms three
things at once: the link resolves, it is publicly readable, and it is serving
the current archive rather than a stale copy.

That check is the whole point.  Confirming that WE can upload proves only that
our own door works; it says nothing about the customer's.  And a link that
merely returns "200 OK" proves even less — measured on 2026-08-13, the
/software/ page already returned 200 with no archive on it whatsoever, so a
liveness check that only tests reachability would have reported green forever.


WHAT IS IN THE ARCHIVE, PLAINLY
-------------------------------

The complete source of open62541 v1.5.5, the OPC UA library, at the exact
commit our firmware builds against (3bdeed5dfe83).  2,086 files.

It is the ONLY third-party component whose licence requires us to publish
source.  The others in the firmware — lwIP, Mbed TLS, FatFs, the PROFINET
stack, the Pico SDK and the rest — require attribution only, and that is
handled by the third-party notices published with the product documentation,
not here.

One honesty note that travels inside the archive itself: four optional
open62541 sub-components are not included, and the file
P2PSC-UNRESOLVED-SUBMODULES.txt inside the archive says so and names them.
They are not part of what our firmware compiles, so they are not source we owe.
This is stated rather than quietly omitted.


NOT A DECISION FOR THE WEBSITE
------------------------------

Who owns this page staying alive across future releases, and what tells us if
it stops working, is still open and is Ron's call.  Publishing these files does
not settle it.

================================================================================
