Emolevyn ohjain¶
HALPI2:n emolevyllä on RP2040-mikro-ohjain, joka hallitsee virransyöttöä, valvoo järjestelmää ja ohjaa etupaneelin LEDejä. Ohjain toimii Compute Modulesta riippumatta: se on toiminnassa siitä hetkestä, kun syöttöjännite kytketään — ennen käyttöjärjestelmän käynnistymistä ja sen sammumisen jälkeen. Compute Module keskustelee ohjaimen kanssa I2C-väylän kautta (väylä 1, osoite 0x6d) HALPI-daemonin välityksellä.
Tällä sivulla kuvataan ohjaimen toimintatilat, tilasiirtymät ja asetukset. Sivu dokumentoi firmware-version 3.3.x. Päivittäisessä käytössä mitään tästä ei tarvitse lukea — katso sen sijaan Päivittäinen käyttö.
Toimintatilat¶
Ohjain toimii kahdessa tilassa sen mukaan, onko HALPI-daemon yhteydessä siihen.
Co-op-tila¶
Co-op-tila on normaali toimintatila. Se on käytössä, kun HALPI-daemon (halpid) on käynnissä ja yhteydessä ohjaimeen. Esiasennettu HaLOS-levykuva ja kaikki Hat Labsin käyttöjärjestelmälevykuvat sisältävät daemonin.
Co-op-tilassa:
- Ohjain ja daemon vaihtavat tietoa reaaliajassa: jännitteet, virran, lämpötilat ja tilan.
- Jännitteen menetykset välitetään daemonille, joka käynnistää käyttöjärjestelmän hallitun sammutuksen.
- Vahtikoira-ajastin suojaa käyttöjärjestelmän jumiutumiselta (katso Vahtikoirasuojaus).
- Asetuksia voi lukea ja muuttaa
halpi-komentorivityökalulla.
Solo-tila¶
Solo-tila on varatila. Ohjain siirtyy siihen, kun daemon-yhteyttä ei ole:
- käynnistyksen aikana, ennen kuin daemon on käynnistynyt
- jos daemonia ei ole asennettu, se on poistettu käytöstä tai se on kaatunut
- käyttöjärjestelmissä, joissa ei ole HALPI2-tukea
Solo-tilassa ohjain suojaa edelleen jännitteen menetykseltä, mutta karkeammalla mekanismilla: se pyytää sammutusta simuloimalla virtapainikkeen painalluksia, eikä se voi tietää, saiko käyttöjärjestelmä sammutuksen vietyä hallitusti loppuun.
Solo-tilan luotettavuus
Solo-tila tarjoaa välttämättömän suojauksen, mutta on co-op-tilaa epävarmempi. Simuloidut painikkeen painallukset eivät toimi, jos käyttöjärjestelmä on jumissa. Jos käytät omaa käyttöjärjestelmää, asenna HALPI-daemon — katso Muut Debian-jakelut.
Jännitteen menetys ja sammutusjärjestykset¶
Ohjain valvoo syöttöjännitettä jatkuvasti. Syöttöjännite katsotaan menetetyksi, kun se laskee alle 9,0 V:n. Katkoajastin (oletuksena 5 sekuntia) erottaa lyhyet häiriöt todellisista katkoista: superkondensaattorit siltaavat katkon, ja jos virta palaa ajastimen kuluessa, mitään muuta ei tapahdu.
Sammutusjärjestys co-op-tilassa¶
- Daemon havaitsee jännitteen menetyksen ohjaimen jännitemittauksista.
- Daemon odottaa, että katkoajan raja (oletuksena 5 sekuntia) ylittyy.
- Daemon suorittaa asetetun sammutuskomennon (oletuksena
/sbin/poweroff). - Käyttöjärjestelmä sammuu hallitusti superkondensaattorien virralla.
- Ohjain havaitsee Compute Modulen sammuneen ja katkaisee 5 V:n jännitteen.
- Jos sammutus ei valmistu 60 sekunnissa, ohjain katkaisee virran pakolla.
- Järjestelmä pysyy pois päältä, kunnes syöttöjännite palaa, ja käynnistyy sitten automaattisesti uudelleen.
Sammutusjärjestys solo-tilassa¶
- Ohjain havaitsee jännitteen menetyksen ja käynnistää katkoajastimen (oletuksena 5 sekuntia).
- Kun ajastin umpeutuu, ohjain simuloi virtapainikkeen kaksoispainalluksen.
- Käyttöjärjestelmä reagoi ja aloittaa hallitun sammutuksen superkondensaattorien virralla.
- Jos sammutus ei valmistu 60 sekunnissa, ohjain katkaisee virran pakolla.
- Järjestelmä pysyy pois päältä, kunnes syöttöjännite palaa, ja käynnistyy sitten automaattisesti uudelleen.
Uudelleenkäynnistys ohjelmallisen sammutuksen jälkeen¶
Ohjelmallisesti käynnistetty sammutus syöttöjännitteen ollessa kytkettynä (esimerkiksi shutdown-komennolla tai työpöydän valikosta) päättyy sammutettu-tilaan. Jatko riippuu auto_restart-asetuksesta:
auto_restartpois käytöstä (tehdasasetus vuoden 2026 alusta alkaen valmistetuissa laitteissa): järjestelmä pysyy pois päältä, kunnes syöttöjännite katkaistaan ja kytketään uudelleen tai virtapainiketta painetaan.auto_restartkäytössä (firmwaren oletusarvo ja tehdasasetus aiemmissa laitteissa): ohjain käynnistää järjestelmän uudelleen 5 sekunnin kuluttua, jotta valvomaton järjestelmä ei jää pois päältä vahingossa annetun sammutuskomennon takia.
Muuta asetusta komennolla halpi config set auto_restart <true|false>.
Virtapainikkeen painallus tai syöttöjännitteen katkaisu ja uudelleenkytkentä käynnistää järjestelmän aina auto_restart-asetuksesta riippumatta.
Vahtikoirasuojaus¶
Co-op-tilassa vahtikoira-ajastin (watchdog) suojaa käyttöjärjestelmän jumiutumiselta:
- Daemonin on lähetettävä ohjaimelle vahtikoiraviesti säännöllisin väliajoin.
- Jos viestiä ei saavu vahtikoiran aikakatkaisun kuluessa (oletuksena 10 sekuntia), ohjain toteaa isäntäjärjestelmän vastaamattomaksi, näyttää hälytyskuvion (kaikki LEDit palavat punaisina) ja katkaisee ja kytkee Compute Modulen virran palauttaakseen järjestelmän toimintaan.
- Aikakatkaisun voi asettaa komennolla
halpi config set watchdog_timeout <seconds>.
Valmiustila¶
Valmiustilassa Compute Modulen virta katkaistaan, mutta ohjain jää toimintaan odottamaan ajastettua herätystä:
# Enter standby, wake up after a delay (seconds)
halpi shutdown --standby --time 3600
# Enter standby, wake up at a given time (local time; append Z or an offset for UTC)
halpi shutdown --standby --time "2026-08-13 06:00:00"
Siirtymän aikana kaikki LEDit palavat sinisinä; valmiustilassa ne palavat himmeän punaisina. Ohjain käynnistää järjestelmän ajastettuna ajankohtana, virtapainikkeen painalluksesta tai kun syöttöjännite katkaistaan ja kytketään uudelleen.
Tila-LEDien kuviot¶
Etupaneelin viisi RGB-LEDiä heijastavat ohjaimen tilaa. Tämä taulukko on ohjaimen tilojen ja LED-kuvioiden virallinen vastaavuus; Päivittäinen käyttö -sivulla on yksinkertaistettu versio.
| Ohjaimen tila | LED-kuvio |
|---|---|
| PowerOff (ei käyttökelpoista syöttöjännitettä; ohjain toimii jäännösvarauksella) | LED 5 palaa punaisena |
| OffCharging | Punainen palkki täyttyy superkondensaattorien latautuessa |
| SystemStartup | Sateenkaaripyyhkäisy, sitten tasaisten värien kierto |
| OperationalSolo | Keltainen varaustasopalkki |
| OperationalCoOp | Vihreä varaustasopalkki |
| BlackoutSolo | Oranssi varaustasopalkki |
| BlackoutCoOp | Tummanvihreä varaustasopalkki |
| BlackoutShutdown, ManualShutdown | Violetti varaustasopalkki |
| PoweredDownBlackout, PoweredDownManual | Kaikki sammuneet |
| HostUnresponsive (vahtikoiran aikakatkaisu) | Kaikki palavat punaisina |
| EnteringStandby | Kaikki palavat sinisinä |
| Standby | Kaikki himmeän punaisina |
| Superkondensaattorien ylijännitehälytys | Kaikki LEDit vilkkuvat punaisina |
Varaustasopalkkien kuvioissa kukin palava LED vastaa yhtä volttia superkondensaattorien jännitettä:
| LED | Jännitealue |
|---|---|
| LED 1 | 5,0–6,0 V |
| LED 2 | 6,0–7,0 V |
| LED 3 | 7,0–8,0 V |
| LED 4 | 8,0–9,0 V |
| LED 5 | 9,0–10,0 V |
Asetusparametrit¶
Asetukset tallennetaan ohjaimen flash-muistiin, ja ne säilyvät virtakatkojen yli. Lue ja muuta niitä halpi config -komennolla — katso Ohjelmisto-opas.
| Parametri | Oletusarvo | Kuvaus |
|---|---|---|
auto_restart |
false nykyisissä laitteissa (asetetaan tuotantotestissä); firmwaren oletusarvo true |
Käynnistä automaattisesti uudelleen 5 s ohjelmallisen sammutuksen jälkeen, kun syöttöjännite on kytkettynä |
watchdog_timeout |
10 s | Co-op-tilan vahtikoiran aikakatkaisu |
power_on_threshold |
8,0 V | Superkondensaattorien jännite, joka vaaditaan ennen Compute Modulen käynnistämistä |
solo_power_off_threshold |
5,5 V | Superkondensaattorien jännite, jossa ohjain katkaisee virran pakolla solo-tilassa |
solo_depleting_timeout |
5 s | Solo-tilan katkoajastin |
led_brightness |
48 | Etupaneelin LEDien kirkkaus (0–255) |
Co-op-tilan katkoajastin ja sammutuskomento ovat daemonin asetuksia, jotka määritellään tiedostossa /etc/halpid/halpid.conf (blackout-time-limit, oletuksena 5 s; poweroff, oletuksena /sbin/poweroff).
Aiheeseen liittyvää
- Päivittäinen käyttö: katso Päivittäinen käyttö
- Virransyöttöjärjestelmän tiedot: katso Virtalähde tarkemmin
- Firmware-päivitykset: katso Ohjelmisto-opas
- Firmwaren lähdekoodi ja I2C-protokolla: katso HALPI2-firmware-repositorio