Syksyllä vaihtelin jyrsimiin ohjainkoneet ja hyllyyn jäi kolme Asrock Q1900B-ITX emoa. Uusien emojen mukana hankin samalla autokäyttöön soveltuvia powereita (tulo 8-30VDC) joista osa jäi hyllyyn. Sain sitten idean että yhdestä ylijääneestä voisi tehdä mökille lämpötilavahdin/home assistant tai mitä keksiikin.
Koneessahan pitää tietysti olla UPS ja kun löytyy poweri joka syö laajaa jännitealuetta (= voi käyttää suoraan 12V akusta) niin päätin yrittää tehdä pienen DC-UPSin tähän käyttöön.
Tavoitteena oli ettei tarvitsisi ohjelmoida PC:lle mitään vaan tekeleen pitäisi siis "näyttää" joltakin oikealta upsilta ja käyttää olemassa olevaa protokollaa. Jokunen ilta meni lukiessa NUTin dokumentaatiota ja ensimmäisen yrityksen versioksi valikoitui Phoenixtec- protokolla ja SOLA/Best Power ajuri.
Viimeinen hieno idea oli yrittää kasata systeemi niistä osista joita löytyy jo valmiiksi (paitsi akku, se pitää olla uusi).
Testikytkentä rakentui hiljalleen koekytkentälevyille
- laturi (virta+jänniterajoitettu)
- latausvirran mittaus
- latauksen kytkentä
- syötön katkaisu (= voi simuloida verkkokatkoa)
- lähdön kytkentä
- lähtövirran mittaus
- akun kytkentä
- testikuorman kytkentä
- tulojännitteen mittaus
- lähtöjännitteen mittaus
- lämpötilan mittaus
Ohjaimeksi löytyi laatikon pohjalta arduino nano- klooni, normaali M328P 16MHz + FT232 usb-sarjapiiri
AVR koodastuksen jälkeen ensimmäisten testien tuloksia:
Harmittavasti ajuri vaatii että ups kertoo juuri oikean mallinumeron (jälkeenpäin selvitettynä eri malleilla on vähän eri ominaisuudet) => ajuri vaihtoon.
Korvaajaksi löytyi Megatec- protokolla jota ilmeisesti käyttää monet vanhemmat upsit, ei ollut kovin iso homma muuttaa kunovat sen verran samanlaisia.
Tarpeeksi toimivalla ups- koodilla uskalsin sitten viimein suunnitella levyn komponenteille. Pari virhettä pääsi mukaan mutta ne sai onneksi helposti korjattua (latausvirran mittaus ei toiminut). Matkan varrella lisäsin vielä kytkentään mahdollisuuden ohjata pwm- tuuletinta (on/off + pwm) ja liittimen jonka kautta kierrosluvun saa pc:lle.
Testikytkennän osat + lisäykset mahtui aika hyvin n. 8x12cm levylle, vain muutama hyppylanka 1- puoleisena.
Lämpöanturille pitää vielä keksiä sopiva paikka.
Lisäksi pitää vielä tehdä pieni lisäkortti johon tulee vain max232 ettei tarvitse käyttää usb- sarjaporttia. Näin siksi että testien aikana tuo usb- laite ei koskaan tunnistu niin kauan kuin korttia syötetään Vin kautta => ei toimi koska bootissa ups ei koskaan löydy. Myös erillisellä usb-sarjakortilla toimii oikein mutta hyllyssä pitäisi olla myös max232 jossain kotelossa niin sellainen mieluummin, toimiipahan varmasti.
Vielä puuttuu jäähdytyslevyn kiinnitys (pienet korokepalat ja kierteet alumiiniin), jokunen johto ja sitten setupin voi kasata pöydälle vähän pidempään testiin, sittenhän sen näkee toimiiko kaikki kuten pitääkin.
Lopullisen koonnin voisi ehkä tehdä pitkän malliseen koteloon. Ensin emo 17x17cm, seuraavaksi viereen poweri 16x5cm, sitten akku pituussuuntaan 15x6.5cm. Akun viereen mahtuu 90x90 puhallin ja 8x12cm ups- kytkentä jolloin akun viereen muodostuu sopiva tuulitunneli. Syötöksi löytyy pieni vanha läppärin 18.5V 65W poweri, sille pitää keksiä joku sopiva paikka ilmavirran matkalle. Vanha puhallinkin löytyy mutta se päätyy ehkä ostoslistalle äänen ja kestoiän vuoksi.
Yhdellä ssd- levyllä koneen normaali kulutus on ~700mA @18V tai ~800mA @12V (suoraan akusta diodin kautta). Eli 10-12W, pitää tietysti vielä mitata paljonko menee 100% cpulla. J1900 TDP on 10W eli maksimikaan ei pitäisi olla kovin paha. Kytkentä kestää komponenttien puolesta 7A jatkuvaa, diodi MBR1535 on heikoin lenkki 7.5A ja kytkinfetit IRF9530 8A. Todennäköisesti kuparia on liian vähän noille virroille mutta 1-2A pitäisi onnistua ihan hyvin ja se varmasti riittää tähän.
Pitää vielä miettia riittäisikö powerilta emolle vain yhdet johdot näillä kuormilla... helpottaisi tekemistä ja asennusta jos nipussa ei tarvita kaikkia 18 kappaletta (powerissa on vain 20pin liitin).
Aloitin suunnittelun joululomalla ja nyt ollaan kuvien osoittamassa vaiheessa. Ja kuten harrasteprojekteissa kuuluu, en ole mitannut paljonko aikaa ja kahvia on kulunut. Osa komponenteista on uusia, osa purettu jostain ja osa saatu. Rahaa on nyt käytetty vain akun ostoon. Kiitokset @Lassivv pintaliitosfeteistä, nyt niille löytyi järkevää käyttöä.
Koneessahan pitää tietysti olla UPS ja kun löytyy poweri joka syö laajaa jännitealuetta (= voi käyttää suoraan 12V akusta) niin päätin yrittää tehdä pienen DC-UPSin tähän käyttöön.
Tavoitteena oli ettei tarvitsisi ohjelmoida PC:lle mitään vaan tekeleen pitäisi siis "näyttää" joltakin oikealta upsilta ja käyttää olemassa olevaa protokollaa. Jokunen ilta meni lukiessa NUTin dokumentaatiota ja ensimmäisen yrityksen versioksi valikoitui Phoenixtec- protokolla ja SOLA/Best Power ajuri.
Viimeinen hieno idea oli yrittää kasata systeemi niistä osista joita löytyy jo valmiiksi (paitsi akku, se pitää olla uusi).
Testikytkentä rakentui hiljalleen koekytkentälevyille
- laturi (virta+jänniterajoitettu)
- latausvirran mittaus
- latauksen kytkentä
- syötön katkaisu (= voi simuloida verkkokatkoa)
- lähdön kytkentä
- lähtövirran mittaus
- akun kytkentä
- testikuorman kytkentä
- tulojännitteen mittaus
- lähtöjännitteen mittaus
- lämpötilan mittaus
Ohjaimeksi löytyi laatikon pohjalta arduino nano- klooni, normaali M328P 16MHz + FT232 usb-sarjapiiri
AVR koodastuksen jälkeen ensimmäisten testien tuloksia:
Koodi:
root@a:/etc/nut# /lib/nut/bestups -a UPS -D -D -D
Network UPS Tools - Best UPS driver 1.06 (2.7.4)
0.000000 debug level is '3'
0.755157 get_ident: got [ISS,0050,019,018,11.7,13.7]
Unknown model detected - please report this ID: 'ISS'
Detected Unknown Unknown ISS (0050) on /dev/ttyUSB0
1.258746 dstate_init: sock /run/nut/bestups-UPS open on fd 5
1.661537 new connection on fd 6
root@a:/etc/nut# systemctl start nut-server.service
syslog:
Jan 13 23:51:05 a systemd[1]: Starting Network UPS Tools - power device driver controller...
Jan 13 23:51:06 a upsdrvctl[1235]: Network UPS Tools - UPS driver controller 2.7.4
Jan 13 23:51:06 a systemd[1]: Started Network UPS Tools - power device driver controller.
Jan 13 23:51:06 a bestups[1237]: Startup successful
Jan 13 23:51:06 a systemd[1]: Starting Network UPS Tools - power devices information server...
Jan 13 23:51:06 a upsd[1238]: fopen /run/nut/upsd.pid: No such file or directory
Jan 13 23:51:06 a upsd[1238]: listening on 127.0.0.1 port 3493
Jan 13 23:51:06 a upsd[1238]: listening on ::1 port 3493
Jan 13 23:51:06 a upsd[1238]: listening on 127.0.0.1 port 3493
Jan 13 23:51:06 a upsd[1238]: listening on ::1 port 3493
Jan 13 23:51:06 a upsd[1238]: Connected to UPS [UPS]: bestups-UPS
Jan 13 23:51:06 a upsd[1238]: Connected to UPS [UPS]: bestups-UPS
Jan 13 23:51:06 a upsd[1239]: Startup successful
Jan 13 23:51:06 a systemd[1]: Started Network UPS Tools - power devices information server.
Jan 13 23:51:07 a upsd[1239]: User monmaster@::1 logged into UPS [UPS]
Jan 13 23:51:07 a upsmon[1088]: COMMOK:S_UPS_COMMUNICATION_OK
Jan 13 23:52:02 a upsmon[1088]: ONBATT:S_UPS_ON_BATTERY
root@a:/etc/nut# upsc UPS
Init SSL without certificate database
battery.charge: 35.0
battery.voltage: 12.4
battery.voltage.nominal: 12
device.mfr: Unknown
device.model: Unknown ISS (0050)
device.type: ups
driver.name: bestups
driver.parameter.pollinterval: 2
driver.parameter.port: /dev/ttyUSB0
driver.parameter.synchronous: no
driver.version: 2.7.4
driver.version.internal: 1.06
input.frequency: 00.0
input.voltage: 000.0
input.voltage.nominal: 19
output.voltage: 011.8
output.voltage.nominal: 18
ups.load: 238
ups.mfr: Unknown
ups.model: Unknown ISS (0050)
ups.status: OB
ups.temperature: 27.8
Harmittavasti ajuri vaatii että ups kertoo juuri oikean mallinumeron (jälkeenpäin selvitettynä eri malleilla on vähän eri ominaisuudet) => ajuri vaihtoon.
Korvaajaksi löytyi Megatec- protokolla jota ilmeisesti käyttää monet vanhemmat upsit, ei ollut kovin iso homma muuttaa kunovat sen verran samanlaisia.
Tarpeeksi toimivalla ups- koodilla uskalsin sitten viimein suunnitella levyn komponenteille. Pari virhettä pääsi mukaan mutta ne sai onneksi helposti korjattua (latausvirran mittaus ei toiminut). Matkan varrella lisäsin vielä kytkentään mahdollisuuden ohjata pwm- tuuletinta (on/off + pwm) ja liittimen jonka kautta kierrosluvun saa pc:lle.
Testikytkennän osat + lisäykset mahtui aika hyvin n. 8x12cm levylle, vain muutama hyppylanka 1- puoleisena.
Lämpöanturille pitää vielä keksiä sopiva paikka.
Lisäksi pitää vielä tehdä pieni lisäkortti johon tulee vain max232 ettei tarvitse käyttää usb- sarjaporttia. Näin siksi että testien aikana tuo usb- laite ei koskaan tunnistu niin kauan kuin korttia syötetään Vin kautta => ei toimi koska bootissa ups ei koskaan löydy. Myös erillisellä usb-sarjakortilla toimii oikein mutta hyllyssä pitäisi olla myös max232 jossain kotelossa niin sellainen mieluummin, toimiipahan varmasti.
Vielä puuttuu jäähdytyslevyn kiinnitys (pienet korokepalat ja kierteet alumiiniin), jokunen johto ja sitten setupin voi kasata pöydälle vähän pidempään testiin, sittenhän sen näkee toimiiko kaikki kuten pitääkin.
Lopullisen koonnin voisi ehkä tehdä pitkän malliseen koteloon. Ensin emo 17x17cm, seuraavaksi viereen poweri 16x5cm, sitten akku pituussuuntaan 15x6.5cm. Akun viereen mahtuu 90x90 puhallin ja 8x12cm ups- kytkentä jolloin akun viereen muodostuu sopiva tuulitunneli. Syötöksi löytyy pieni vanha läppärin 18.5V 65W poweri, sille pitää keksiä joku sopiva paikka ilmavirran matkalle. Vanha puhallinkin löytyy mutta se päätyy ehkä ostoslistalle äänen ja kestoiän vuoksi.
Yhdellä ssd- levyllä koneen normaali kulutus on ~700mA @18V tai ~800mA @12V (suoraan akusta diodin kautta). Eli 10-12W, pitää tietysti vielä mitata paljonko menee 100% cpulla. J1900 TDP on 10W eli maksimikaan ei pitäisi olla kovin paha. Kytkentä kestää komponenttien puolesta 7A jatkuvaa, diodi MBR1535 on heikoin lenkki 7.5A ja kytkinfetit IRF9530 8A. Todennäköisesti kuparia on liian vähän noille virroille mutta 1-2A pitäisi onnistua ihan hyvin ja se varmasti riittää tähän.
Pitää vielä miettia riittäisikö powerilta emolle vain yhdet johdot näillä kuormilla... helpottaisi tekemistä ja asennusta jos nipussa ei tarvita kaikkia 18 kappaletta (powerissa on vain 20pin liitin).
Aloitin suunnittelun joululomalla ja nyt ollaan kuvien osoittamassa vaiheessa. Ja kuten harrasteprojekteissa kuuluu, en ole mitannut paljonko aikaa ja kahvia on kulunut. Osa komponenteista on uusia, osa purettu jostain ja osa saatu. Rahaa on nyt käytetty vain akun ostoon. Kiitokset @Lassivv pintaliitosfeteistä, nyt niille löytyi järkevää käyttöä.