Git Product home page Git Product logo

universalscientifictechnologies / airdos04 Goto Github PK

View Code? Open in Web Editor NEW
0.0 5.0 1.0 50.55 MB

Airborne cosmic radiation dosimeter designed for airliners dosimetry.

Home Page: https://docs.dos.ust.cz/airdos/AIRDOS04/quickstart

License: GNU General Public License v3.0

C++ 24.06% C 0.24% OpenSCAD 2.31% Jupyter Notebook 71.33% Python 2.06%
airdos cosmic-rays dosimeter dosimetry ionising-radiation ionizing-radiation

airdos04's Introduction

AIRDOS04 - Specialized Cosmic Radiation Dosimeter for Airliners

AIRDOS04

The upgraded version of AIRDOS02 airborne detector. The instrument is designed primarily for the dosimetry of cabin crew and flight attendants of commercial flights. A detailed description of the use is in the user manual.

Design features

  • Rechargeable accumulators integrated with data storage in the hot-swap module called BATDATUNIT01
    • The changeable module allows new possible features in the future like GNSS-based position logging with a revised module
  • One month of continuous logging for a single accumulator charge
  • Easy activation by insertion of BATDATUNIT module into the device
  • Data download without special software (Mass storage media)
  • Continuously incrementing time marks (Unique logging time from every measurement)

Where to get it?

Purchase AIRDOS04, the open-source device designed for versatility, from Universal Scientific Technologies s.r.o.. For sales inquiries, contact [email protected]. Developed and maintained by UST, it comes with full commercial availability and dedicated technical support. The device is released under the GPLv3 license.

Technical parameters

  • Silicon PIN diode detector with 44 mm³ detection volume
  • The effective number of energy channels is 886 ± 3
  • Deposited energy ranges from 36 keV to 7 MeV
  • Energy measurement resolution 15 ± 2 keV
  • Service interface: USB-C connector (charging and data download)
  • Energy source: 18650 Li-ion cells conforms with ≤ 100 Wh / 2g restrictions
  • Radiation spectra integration time 10 s
  • Maintenance interval (data download, battery recharge) 30 days
  • Maintenance duration under 5 minutes
  • Approx size LxWxH 166 mm x 107 mm x 57 mm (two of these should fit to Aircraft printed manual bay)
  • Weight is 0.88 kg (With five accumulator cells in BATDATUNIT01)
  • Environmental operational conditions
    • Device protection: IP30 rating (fully assembled)
    • Operation temperature range: 0°C to 50°C (32°F to 122°F)
    • Operation humidity conditions: non-condensing, 20% to 80% RH

Example data

AIRDOS04 radiation spectra measurement

AIRDOS04 flight dose rate measurement

The detailed documentation of the used Hardware components

airdos04's People

Contributors

fluktuacia avatar kakl avatar kaklik avatar oploc avatar roman-dvorak avatar slimonslimon avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

odz-ujf-av-cr

airdos04's Issues

Uknown cause of SDcard failure

Během vývoje odešla v zařízení SLC SDkarta, která předtím na HIMACu a v CERFu.
Zničení SDkarty se projevuje takhle:

image

Dead-time recorded in the log file

Hodilo by se, kdyby v logu byla zaznamenána přesně délka expozice spektra. Nyní je interval v logu expeziční doba+dead-time a nelze přesně zjistit, kdy integrace spektra proběhla.

Production quality checks

Je potřeba vytvořit popis ověřovacích postupů pro kontrolu kvality. Tato úloha souvisí i s vytvořením servisního software zřejmě na způsob Gamma-MCA.

Accidental firmware corruption

Firmware dovede sám sebe poškodit tím, že spustí bootloader a ten pak smaže jednu stránku flash paměti. Situace je vidět na následujícím screenshotu:

Screenshot from 2024-04-16 22-52-01

Ten byl získán porovnáním obsahu paměti v rozbitém AIRDOS04 s Intel hex souborem, který by do flash měl být vypálen. K porovnání byl použit diff v ImHex
Ke spuštění bootloaderu dojde skokem na adresu nula.

Mechanical durability

Mám obavu, že současné řešení zasouvacího mechanismu s tenkými ližinami nalepenými na PCB nebude dostatečně odolné vzhledem k předpokládanému užití.

Myslím že vhodnější řešení by bylo zvolení masivnějších 3D tištěných kolejí do kterých se bude zasouvat 3D tištěný protikus sloužící zároveň jako kryt akumulátorů.

  • Vyzkoušet použití samojistných matic

MIC effect

PCB s diodou je treba upevnit na silenbloky, aby se omezily vibrace.

Návrh AIRDOS04

Kompletní návrh všech částí pro AIRDOS04. Zadání viz dokument Detektory ionizujícího záření jako produkty UST.

MISO/MOSI change of direction

Na PCB s diodou jsou spatne zapojeny prevodniky napetovych urovni. Pripojeni neodpovida smeru signalu MOSI a MISO.

Incorrect timestamp

V jednom z testovacích logů se stalo, že kontinuální čas přeskočil.

image

Je možné, že se jedná o nějakou chybu komunikace. Protože to nastalo na stejném řádku jako je "mikrofonní efekt".

11.TXT

LEDs on FTDI

Je treba zhasnout LEDky na FTDI, aby za provozu nezraly.

OPA power crossed

Na PCB s diodou je prohozeno napajeni u nabojoveho zesilovace s OPA.

Disable uneccesary LEDs during measurement

Není implementováno vypnutí všech nepotřebných LED.

V případě FT260 je zřejmě potřeba objednat programátor (to se vyřeší s následující objednávkou z mouseru).

Create a new file for every power-up

Pro parserování měření by se hodilo, kdyby nové měření bylo vždy v novém souboru. Aktuální implementace zapisuje doposledního souboru, dokud velikost souboru nepřekročí MAXFILESIZE. Následně vznikne další soubor až do MAXFILES (200) souborů. Do posledního souboru se zapisuje neustále.

Důvodem této implementace je, aby mrtvá doba detektoru způsobená zápisem na SDkartu byla udržena v únosných mezích.

Manufacturing procedure - mechanics

Při skládání jsem zjistil, že je velmi obtížné do současné konstrukce dostat oba plošné spoje, dostatečně dlouhé šrouby a vytištěné čelo krabičky najednou do požadovaného místa.
Při pokusu o složení mi vytištěné čelo prasklo.

Bylo by proto zřějmě vhodné konstrukci upravit tak, aby se vytištěné čelo šroubovalo na sestavu až jako poslední. Taková úprava by umožnila v klidu sestavit plošné spoje, hliníkovou desku a vložit všechny šrouby. Zároveň by to byl kompaktní celek, který lze otestovat a následně vložit do krabičky. Upevnění za čelo krabičky dvěma šrouby je myslím dostatečné. (S předpokladem že čelo bude uchyceno v krabičce šrouby v rozích)

Reduce capacitance of PIN anode

Aktuálně je integrační kapacita vytvořena kondenzátorem C25 k němu je ještě paralelně připojen rezistor R13. Na plošném spoji je to realizováno takto.

image

Cestičky, které k součástkám vedou vytvářejí parazitní kapacitu oproti zemi.

Zlepšit by to ještě šlo naletováním obou součástek na sebe.

Geiger like Sound output

Bylo by užitečné, kdyby detektor uměl vytvářet cvakání, podobně jako je známé z GM detektoru. Mělo by to tyhle výhody:

  • Jde snadno demonstrovat k čemu je detektor dobrý (je to forma výstupu, kterou zná hodně lidí)
  • Bylo by poznat, že detektor funguje správně. (Například když se k nemu přiblíží uranová sklenička)
  • Je to marketingově výhodná vlastnost

Takovou funkci by pravděpodobně mělo být možné nějakým způsobem zapnout a vypnout. Nepovažoval bych za praktické, kdyby to vyžadovalo úplně speciální firmware (je tu ale omezení, že cvakání určitě bude žrát procesorový čas a tím zřejmě ovlivňovat mrtvou dobu)
Vypínání, nebo zapínání takové vlastnosti by šlo například implementovat držením tlačítka na předním panelu. Nebo případně zápisem na nějakou adresu EEPROM, kde si toho procesor po zapnutí všimne.

Too transparent PCB

PCB s diodou je prilis prusvitne. Pod diodu je treba dat neprusvitnou podlozku. Treba cernou elektrikarskou pasku.

Buttons manufacturing and reliability

Současné řešení tlačítek vytváří značné potíže při výrobě. Často se stává, že po dotažení předního panelu dojde k samovolnému zmáčknutí tlačítek panelem.

K vyřešení by zřejmě pomohlo:

  • Modré nástavce tlačítek by v předním panelu měly mít větší osovou vůli. Možná i mírně větší radiální vůli
  • Je potřeba ověřit, že zarážka na předním panelu, která se má opírat o PCB a vymezovat prosto pro tlačítka skutečně na PCB dosedá a není příliš nízká.

Logging of the each detected events

For the detection of TGFs on board of aircraft. It should be necessary to implement a recording of each radiation event because the TGF could be covered by other radiation events in 10s integration intervals. That could be implemented similarly to GEODOS, but in that implementation, there each event is recorded only in case of detection over some threshold.
The better implementation for TGF would be a recording of each pulse digitization, which is challenging to implement with the single-core MCU.

PCB remove detection

V souvislosti s dobijenim akumulatoru a prenosem dat je treba vyresit logiku detekce vysunuti PCB s procesorem z Molex konektoru.

Low pull-ups

Vsude jsou pouzity prilis male hodnoty pull-ups a pull-downs. Ted jsou osazeny odpory 1 k a temi tece zbytecne velky proud. Lepe treba 68 k. Take na I2C jsou odpory 1k. Podle specifikace by melo byt tusim 4 j nebo 10 k podle vzdalenosti a rychlosti.

Sticker design and production

Pro AIRDOS04 je potřeba navrhnout tři nové samolepky.

Samolepka na výměnném modulu

Bude nalepena na čele modulu, který se odpojuje z AIRDOS04 a vyměňuje se za jiný. Je potřeba aby tam bylo:

  • Popis jednotlivých LED
  • Popis tlačítek
  • Informace o tom jak do AIRDOSu má pasovat
  • Výřez pro zámek?

Samolepka na AIRDOS04

Bude nalepena na protilehlém čele, než samolepka na výměnném modulu. Měla by proto obsahovat:

  • Identifikaci zařízení
  • Něco jako základní návod k použití?
  • Požadavek na umístění detektoru
  • Otvory pro šrouby

Samolepka nad detekční diodu

Měla by informovat o umístění citlivé oblasti v detektoru. Bude nalepena z vrchní strany. Měla by:

  • Umožnit nějaké jednoduché nalepení nad diodu třeba i v kombinaci s nějakým vytišteným přípravkem.
  • Obsahovat informaci o tom kde je citlivá oblast.
  • Identifikaci přístroje a UST logo?

UART over HID

Nedari se cist data z UARTu pres HID. Z nejakeho duvodu zalezi na tom, kdy se zacne s HID zarizenim komunikovat.

Saturation of the analog front-end

V analogové části dochází zatím z neznámého důvodu k saturaci o více jak 100 kanálů dříve, než by mělo.

image

Vyřešení této nedokonalosti by umožnilo lépe využít dynamický rozsah ADC a tím i zvětšit měřený energetický rozsah.

Swapped pin numbers in base and adapter header connectors.

Na současných návrzích nejsou konzistentní čísla pinů na konektoru adaptéru k bateriovému modulu a analogové desce AIRDOS04.
Situace je viditelná na následujícím screenshotu:

image

Důvodem je fakt, že pinheader a pinsocket musí být vzájemně zrcadlové. Nyní je však na obou modulech použit footprint pinheaderu, které mají identické číslování pinů.
Správné řešení zřejmě je, že na modulu adaptéru bude pinsocket umístěný směrem dolů (strana back). Zatímco na AIRDOS 04 modulu bude pinheader na straně back.

Tohle řešení ale nelze přímo aplikovat bez vytvoření zmatku. Protože už existují adaptéry, které mají jedničku na konektoru označenou čtverečkem na místě, kde by pinsocket měl mít dvojku. Viz následující screenshot:

image

Nejlepším řešením tak zřejmě je otočení pinheaderu na AIRDOS04 na stranu front, navzdory nekompatibilitě s 3D modelem toto řešení zachová současné číslování pinů.
Následně bude potřeba vytvořit revizi B od obou modulů.

Molex geometry

Je treba upravit PCB s procesorem, aby do nej sel zastrcit Molex konektor. Musi se preroutovat cesty 5V a 3V3, aby na PCB mohl byt vyrez na konektor.

Programing through Molex

Aby slo programovat procesor pres Molex konektor, je treba na nej vyvest RESAT pres kondenzator. Asi druhy kondenzator pripojeny do stejneho bodu jako kondenzator od DTR FTDI.

I2C switch is not initialized by MCU

I2C switch je ve výchozím stavu přepnutý tak, že je průhledný ze strany MCU. Při interakci s I2C komponentami z počítače (USB) je nutné si switch přepnout.

Firmware by si měl sám, alespoň při startu, tento i2c přepínač přenastavit.

V obsluze i2c přepínače z počítače mám tento kód s komentáři:

        if usb_direction:
            # Do usb se to prepne tak, ze bit[0] a bit[2] mají rozdilne hodnoty, bit[1] a bit[3] jsou read-only
            self.ftdi.write_byte_data(self.addr_switch, 0x01, 0b011)
        else:
            # I2C do ATMEGA se to prepne tak, ze bit[0] a bit[2] maji stejne hodnoty hodnoty
            self.ftdi.write_byte_data(self.addr_switch, 0x01, 0b0000)

Automatic power on and power off in airplane

Uživatelům by se hodilo, aby se přístroj zapínal po vzletu sám a vypínal před přistáním také sám. Vedle faktu, že bezpečnostní autority mají obavu ze zapnutých přístrojů s bateriemi v prázdném letadle. Tak by takováto změna měla i další výhody:

  • Snadněji by se přefiltrovaly data jen na lety tím, že by bylo sníženo množství dat, které přístroj zbytečně zaznamenává na zemi.
  • Snížila by se tím spotřeba energie i datového prostoru, takže se efektivně prodlouží čas po který detektor může zůstat na palubě bez servisu.

Jak to udělat

V případě aktuálního HW jsou dvě možnosti jak detekovat let. Buď tokem částic, nebo tlakem v kabině. Detekce pomocí tlaku v kabině umožňuje snížit spotřebu uspáním všech částí detektoru, kromě barometru. Detekce letu pomocí radiačního toku, naopak zajišťuje, že se detektor vypne i na výše položených letištích, kde by jinak díky překročení tresholdu výšky zůstal zapnutý. Bude zde zároveň potřeba implementovat i nějakou hysterezi, nebo časové spoždění, aby nedocházelo k cyklickému vypínání a zapínání detektoru při pomalé změně tlaku, nebo radiačního toku v kabině.

Jako vhodé řešení mi proto připadá nejdříve implementovat spínání podle tlaku fixním tresholdem. např. 1000mnm. Vypínání detektoru podle radiačního toku následně implementovat až později.

Obecně aby toto vypínání šlo realizovat, tak je potřeba mít vyřešené #28
Dále vypínání samotné může být realizováno minimálně dvěma úrovněmi

  • Stand-by režim, kdy jsou vypnuté některé části AIRDOSu, detektor nijak nebliká, ale MCU a tlakoměr jsou stále napájeny.
  • Úplné vypnutí, kdy je MCU společně s velkou většinou elektroniky odpojen od napájení a musí počkat na zapnutí od RTC

V první implementaci stačí realizace stand-by režimu. Implementace vypnutí MCU je složitější, protože na stejném signálu je připojeno ještě tlačítko "power" a také vstup od aktivace indikátoru nabití akumulátorů.

Uživatelské rozhraní

Po zapnutí detektoru musí mít uživatel čas poznat, že detektor správně funguje. To znamená, že čerstvě aktivovaný detektor by se neměl hned vypnout na základě podprahových hodnot. Doba za kterou se vypne by měla být nejméně v minutách. Je zároveň na zvážení, zda by uživateli po tuto dobu neměl být poskytnut i nějaký diagnostický výstup jako třeba #27

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.