Veri, Veritabanı, Lab Defteri, Reçete ve Betik
Bu bölüm, Mikrofab yarıiletken / TFT / PV ölçüm ve analiz yazılımının veriyle çalışan tüm katmanlarını eksiksiz anlatır: ölçüm özetlerinin tutulduğu SQLite veritabanı ve onu filtreleyen Veri & Arama paneli, numune-merkezli Lab Defteri (Journal / ELN), otomatik ölçüm sıraları üreten Reçete (Recipe) araçları, arayüzsüz (headless) çalışma ile yerel REST API, Python Script / Konsol çalışma alanı ve son olarak preset / yapılandırma / favoriler / kullanıcı modları. Amaç; tek bir ölçümden yüzlerce ölçümlük bir arşive, oradan da gece boyu çalışan otomasyona ve uzaktan kontrole kadar tüm veri akışını yönetebilmenizdir.
Vds/Vgs/Ids/Igs değerleri) her zaman dosya sisteminde (CSV / TXT / XLSX / HDF5 / JSON) tutulur; veritabanına yalnızca özet (metadata + çıkarılan metrikler + ilgili dosyanın yolu) yazılır. Böylece veritabanı küçük ve hızlı kalır, "100+ ölçümde en yüksek Ion/Ioff hangi TFT'de?" gibi sorular anında yanıtlanır.Bir ölçüm aldıktan sonra iş bitmez: o veriyi güvenle saklamak, aylar sonra bulup tekrar çizmek, hangi aygıtın en iyi olduğunu sorgulamak ve aynı testi geceleri kendiliğinden tekrarlamak gerekir. Bu bölüm yazılımın "deftere yazma ve otomasyon" tarafını anlatır: ölçümleri bir kütüphane gibi raflayan veritabanı, numunelerin üretim öyküsünü tutan laboratuvar defteri, kendi kendine çalışan reçeteler ve ekran açmadan komutla iş gören headless mod.
- Neden yapılır: tek tek ölçümleri, kaybolmayan ve aranabilen bir arşive ve insan eli değmeden çalışan otomasyona dönüştürmek için.
- Ne öğretir / ne ölçer: verinin nerede/nasıl saklandığını, nasıl filtrelenip karşılaştırıldığını ve nasıl otomatik üretildiğini.
- Nerede kullanılır: çok sayıda aygıtın ölçüldüğü araştırma, kalite kontrol ve uzun süreli kararlılık çalışmaları.
1. Veri Mimarisine Genel Bakış
Yazılım kullanıcı verisini üç ayrı SQLite veritabanı + dosya sisteminde dağıtılmış ham çıktılarla yönetir. Hepsi kullanıcı-veri kökünüzün (user_data_root) altındadır ve hiçbiri kurulum dizinine yazılmaz.
| Depo | Dosya | İçerik | Erişim katmanı |
|---|---|---|---|
| Ölçüm özet DB | measurements.db | Tamamlanan her ölçümün özeti + analiz sonuçları | MeasurementDatabase |
| Lab Defteri DB | journal.db | Numune başlıkları + süreç-adımı kartları | JournalDatabase |
| Ham ölçüm dosyaları | measurements/<koşu-klasörü>/… | CSV / TXT / XLSX / JSON / HDF5 / rapor | DataWriter |
| Ekler | journal/sample_<id>/attachments/ | Numuneye eklenen görseller | dosya sistemi |
| Yapılandırma | config/user_config.json | Kullanıcı ayarları, görünüm profilleri | ConfigManager |
| Preset'ler | presets/<panel>/<ad>.json | İsimli parametre setleri | PresetManager |
Tüm veritabanları aynı veritabanı standardına uyar: tek-kapı veri erişimi (tüm sorgular parametreli — SQL enjeksiyonu yok), şema sürümleme + ileri-yön göç (göç öncesi otomatik yedek), ekle-sadece + yumuşak-silme (deleted_at), tam denetim izi (audit_log), WAL günlük kipi ve backup() / check_integrity() bakım fonksiyonları.

2. Ölçüm Veritabanı (measurements.db)
Ölçüm veritabanı, tamamlanan her ölçümün bir kütüphane kataloğu kartı gibi özetini tutan küçük ve hızlı bir defterdir. Ham sayıların tamamı dosyalarda kalır; veritabanına yalnızca "kim, ne zaman, hangi mod, hangi sonuç" özeti ve ilgili dosyanın yolu yazılır. Böylece yüzlerce ölçüm arasında saniyeler içinde arama ve sıralama yapabilirsiniz.
- Neden yapılır: "en yüksek Ion/Ioff hangi TFT'de?" gibi soruları yüzlerce dosyayı tek tek açmadan yanıtlamak için.
- Ne öğretir / ne ölçer: her ölçümün çıkarılmış metriklerini (Vth, mobilite, SS, On/Off …) ve bağlamını (geometri, cihaz, zaman) bir arada gösterir.
- Nerede kullanılır: çok ölçümlü arşivlerde en iyi aygıtı bulma, sonuçları karşılaştırma ve raporlama.
2.1 Hangi alanlar yazılır?
Bir ölçüm başarıyla tamamlanıp dosyaları kaydedildiğinde, yazılım otomatik olarak bir özet satırı ekler (MeasurementDatabase.record). Geometri ve ölçüm koşulları, çıkarılan tüm metrikler ve cihaz kimliği bu satıra düşer; ayrıca şemada karşılığı olmayan her şey params_json / summary_json kolonlarında tam-yakalama olarak saklanır (hiçbir veri kaybolmaz).
Tanımlayıcı ve bağlam alanları
| Kolon | Tip | Açıklama |
|---|---|---|
id | INTEGER | Otomatik birincil anahtar |
recorded_at | TEXT | Kaydedilme zamanı (yerel ISO) |
started_at | TEXT | Ölçümün başlangıç zamanı |
tft_id | TEXT | Numune / aygıt kimliği (Lab Defteri köprüsü) |
mode | TEXT | Ölçüm modu (TRANSFER, IV, DIODE, PV_JV …) |
software_version | TEXT | Ölçümü alan yazılım sürümü |
point_count | INTEGER | Toplam veri noktası sayısı |
csv_path | TEXT | İlgili ham CSV dosyasının yolu (çift-tık ile yüklenir) |
user_comment / note | TEXT | Kullanıcı yorumu / analiz notu |
TFT / On-Off metrikleri (Transfer modu)
| Kolon | Birim | Açıklama |
|---|---|---|
ion, ioff | A | Açık / kapalı durum akımı |
ion_ioff | — | Açık/kapalı oranı |
ion_ioff_robust, ioff_robust, ioff_std | —, A, A | Gürbüz (robust) Ioff tahmini + saçılım |
vth | V | Eşik gerilimi (extraction_method ile yöntem) |
vth_y_v, mu0_y_cm2_vs, y_r2 | V, cm²/Vs, — | Y-fonksiyonu yöntemi sonuçları |
mu_fe | cm²/Vs | Alan-etkili mobilite |
ss | mV/dec | Eşik-altı eğim (subthreshold swing) |
ss_r2 | — | SS doğrusal uyum kalitesi |
gm_max, gm_max_vgs | S, V | En büyük geçiş iletkenliği + oluştuğu Vgs |
dit_cm2_ev | cm⁻²eV⁻¹ | Arayüz tuzak yoğunluğu |
vth_fwd_v, vth_bwd_v, delta_vth_v | V | İleri/geri Vth + histerezis kayması |
hysteresis_window_v | V | Histerezis penceresi |
Çıkış (IV / Output) metrikleri
| Kolon | Birim | Açıklama |
|---|---|---|
ron_ohm | Ω | Açık-durum direnci |
output_resistance_ohm | Ω | Çıkış direnci (rₒ) |
lambda_per_v | 1/V | Kanal-boyu modülasyonu (λ) |
vth_sat_v, mu_sat_cm2_vs, mu_sat_r2 | V, cm²/Vs, — | Doygunluktan Vth / mobilite |
Diyot / Schottky metrikleri
| Kolon | Birim | Açıklama |
|---|---|---|
forward_current | A | İleri akım |
reverse_leakage | A | Ters kaçak akım |
turn_on_voltage | V | Açılma gerilimi |
rectification_ratio | — | Doğrultma oranı |
series_resistance_ohm | Ω | Seri direnç |
ideality_factor | — | İdeallik faktörü (n) |
Geometri ve cihaz koşulları: w_um, l_um (µm), cox_nf_cm2 (nF/cm²), nplc, averages, sweep_direction, keithley_idn, visa_resource, drain_channel, gate_channel, relay_enabled.
µ_sat = (2L / (W·Cox)) · (∂√Ids/∂Vgs)² ile hesaplanıp mu_sat_cm2_vs kolonuna; ilgili uyum kalitesi mu_sat_r2'ye düşer. Veritabanı bu değerleri yalnızca saklar ve arar.2.2 Şema sürümü, göç ve dayanıklılık
Veritabanı şeması sürümlüdür (schema_version); güncel sürüm 4'tür. Eski bir veritabanı ilk açılışta tek adımda en güncel sürüme veri kaybetmeden yükseltilir (v1 → v2 → v3 → v4). Göç adımları:
- v1 → v2: Yumuşak-silme kolonu (
deleted_at) +audit_logtablosu + indeksler. - v2 → v3: Toplanan/hesaplanan tüm metrik kolonları (yukarıdaki tablolar) +
params_json/summary_jsontam-yakalama kolonları. - v3 → v4: Analiz sonuçları için ayrı
analysis_resultstablosu.
db_backups/measurements.pre_migration_vN.<zaman>.db). WAL (Write-Ahead Logging) günlük kipi sayesinde uygulama çökse bile kayıtlar tutarlı kalır.2.3 Veri & Arama Paneli — filtreleme, sıralama, sütun seçici
Bu panel, veritabanını canlı sorgulayan, arama motoru ile elektronik tablo karışımı bir ekrandır: numune/mod filtreleri, serbest metin araması ve metriğe göre sıralamayla aradığınız kaydı hızla bulursunuz. Hangi sütunların görüneceğini seçip bu düzeni "görünüm profili" olarak kaydedebilirsiniz.
- Neden yapılır: büyük bir ölçüm yığınını anında süzüp en iyi/ilgili kayıtları öne çıkarmak için.
- Ne öğretir / ne ölçer: kayıtları seçtiğiniz metriğe (örn. Ion/Ioff, µFE) göre sıralı ve karşılaştırılabilir bir tablo hâlinde sunar.
- Nerede kullanılır: aygıt eleme, parti karşılaştırması ve hızlı kalite kontrol taraması.
Veri çalışma alanındaki panel (DatabasePanel) veritabanını canlı sorgular. Üstte üç filtre + bir sıralama vardır:
| Denetim | İşlev |
|---|---|
| TFT açılır listesi | Yalnızca seçili numune/aygıtın kayıtları (veritabanından otomatik dolar) |
| Mod açılır listesi | Yalnızca seçili ölçüm modu |
| Arama kutusu | Serbest metin; user_comment, note ve csv_path içinde LIKE araması |
| Sırala açılır listesi | Veritabanı sorgu düzeni (aşağıdaki tablo) |
Üstteki "Sırala" listesi sorgunun ORDER BY düzenini belirler; boş (NULL) değerler her zaman sona atılır, böylece "en yüksek metrik" sorgularında boş satırlar tepeye çıkmaz:
| Etiket | Kolon | Yön |
|---|---|---|
| Tarih | recorded_at | Azalan |
| Ion/Ioff | ion_ioff | Azalan |
| µFE | mu_fe | Azalan |
| SS | ss | Artan (küçük iyi) |
| Vth | vth | Artan |
| Ron | ron_ohm | Artan |
| µ_sat | mu_sat_cm2_vs | Azalan |
| Nokta sayısı | point_count | Azalan |
İki katmanlı sıralama: Sorgu düzenine ek olarak, herhangi bir sütun başlığına tıklayarak yüklü satırları istemci tarafında o değere göre (sayısal/metinsel) yeniden sıralayabilirsiniz. Sayısal sütunlar "3.832e+05" gibi metinler dahil gerçek sayısal sıralanır.
Sütun seçici ve görünüm profilleri: "Sütunlar…" düğmesi (veya başlık sağ-tık menüsü) ile hangi sütunların görüneceğini ve sırasını seçersiniz. Sütunlar sürükle-bırak ile veya En Üste / Yukarı / Aşağı / En Alta düğmeleriyle taşınır. Bir düzeni isimli görünüm profili olarak kaydedebilirsiniz; profil yalnızca sütunları değil, üstteki sıralama seçimini ve filtreleri de saklar — seçildiğinde tümü birlikte geri yüklenir. Seçim yapılandırmaya (db_view_profiles, db_visible_columns, db_column_order, db_active_profile) yazılır.
2.4 Sonuca çift-tık ile grafiğe yükleme
Tablo satırına çift-tıkladığınızda, o kaydın csv_path alanındaki ham ölçüm dosyası sinyalle (file_activated) açılır ve ölçüm grafiğine geri yüklenir — eğri yeniden çizilir. Böylece haftalar önce alınmış bir taramayı tek tıkla görsel olarak inceleyebilirsiniz. Dosya okuma DataWriter.read_points_csv ile yapılır (kolonlar birebir eşleşir).
csv_path dolu kayıtlar için iş görür. Elle eklenen kayıtlarda bu alanı boş bırakırsanız çift-tık bir şey yapmaz; isterseniz bir dosya yolunu elle girebilirsiniz.2.5 Elle ekleme / düzenleme / silme / geri alma
Panel salt-okuma değildir; tüm yazma işlemleri veri-erişim katmanından geçer ve denetim izine yazılır:
- Ekle: Boş bir form açar; sayısal alanlar parse edilir, boşlar
Noneolur.recorded_atboşsa otomatik atanır (add_manual, denetim:create). - Düzenle: Seçili kaydı aynı formda açar; yalnız beyaz-liste kolonlar yazılır, eski hâli
before_jsonile denetime kaydedilir (update_measurement). - Sil (yumuşak): Varsayılan silme. Kayıt
deleted_atile işaretlenir, sorgularda gizlenir ama veri durur (soft_delete). Ctrl/Shift ile çoklu seçip topluca silinebilir. - Geri Al: Yumuşak-silinmiş kaydı geri yükler (
restore). - Kalıcı Sil: İstisnai; önce otomatik dosya yedeği alır, sonra satırı tamamen siler (
hard_delete, denetim zorunlu). - Silinenleri göster kutusu işaretlenince yumuşak-silinmiş kayıtlar gri ve üstü çizili görünür.
2.6 Analiz sonuçları tablosu (analysis_results)
Şema v4 ile gelen ayrı tablo, Analiz bölümünün ürettiği sonuçları (osiloskop I-t / V-t, spektral, gürültü, PV metrikleri vb.) tutar. Kolonlar: recorded_at, title, analysis_type, source_file, source_kind, tft_id, user_comment, note, point_count, result_json, series_json, params_json. Hesaplanan sonuçlar ve parametreler JSON kolonlarında saklanır; listeleme/filtreleme analysis_type, tft_id ve serbest metinle yapılır (list_analyses). Ölçüm tablosuyla aynı yumuşak-silme + denetim desenini paylaşır.
3. Numune Günlüğü (Lab Defteri / ELN)
Lab Defteri, her numunenin üretiminden ölçümüne kadar tüm geçmişini kartlar hâlinde tutan dijital bir numune kimlik dosyasıdır. Temizleme, ince-film, litografi, tavlama gibi her adımı, fotoğraflarını ve elde edilen ölçümleri tek numune altında toplar.
- Neden yapılır: "bu aygıt neden böyle çıktı?" sorusunu, üretim adımlarını sonuçlarla ilişkilendirerek yanıtlamak için.
- Ne öğretir / ne ölçer: bir numunenin süreç geçmişini ve ona bağlı elektriksel sonuçları (
tft_idköprüsü) tek yerde gösterir. - Nerede kullanılır: süreç geliştirme, tekrarlanabilirlik takibi ve izlenebilir/akredite laboratuvar kaydı.
Lab Defteri, numune-merkezli bir elektronik laboratuvar defteridir (ELN). Bir malzeme/numune ürettiğinizde, üretim adımlarını (ince-film, litografi, aşındırma, tavlama, ölçüm, not …) kartlar hâlinde kaydeder, görsel ekler ve bu uygulamanın ölçümlerini (tft_id köprüsüyle) bağlarsınız.

3.1 İki tablo: samples + sample_steps
| Tablo | Satır anlamı | Önemli alanlar |
|---|---|---|
samples | Bir üretilen örnek / wafer / die | sample_id (benzersiz), title, status, operator, facility, batch_lot, parent_wafer_id, substrate_material, active_material, ambient_temp_c, ambient_rh_pct, cleanroom_class, tags, notes |
sample_steps | O numuneye ait süreç-adımı kartı | ordinal (sıra), step_type, title, params_json, attachments_json, linked_measurement_id, note |
sample_id numunenin kullanıcı-görür kimliğidir ve ölçümlerin tft_id alanına karşılık gelir — Lab Defteri ile ölçüm veritabanı arasındaki köprü budur. Ham görseller veritabanında değil, journal/sample_<id>/attachments/ altındadır; veritabanı yalnızca yolu tutar.
3.2 Hızlı-ekle ve birleşik Numune Kimliği
Liste sayfasının üstünde dört alan vardır: Numune Kimliği (yaz ya da listeden seç), isteğe bağlı Tarih, Yorum ve Operatör. Bunlar canlı olarak tek bir DB-güvenli kimliğe birleştirilir:
Örneğin taban TFT-ZnO, tarih işaretli, yorum rev1 → TFT-ZnO-2026-06-22-rev1. Parçalardaki boşluklar _ olur, geçersiz karakterler atılır. Numune Kimliği boşken galeri kartları devre dışıdır; üst kısımda birleşik kimliğin canlı önizlemesi (→ …) görünür.
3.3 Kart galerisi ve adım tipleri
Sol sütundaki galeri, Ölçüm sayfasındaki gibi kategorilere ayrılmış, sürükle-bırakla genişliğe saran (FlowLayout) tıklanabilir kartlardan oluşur. Bir karta tıkladığınızda: birleşik kimlikle numune bul-ya-da-oluştur, ilgili step_type kartı eklenir ve numune detayı açılır.
Desteklenen adım (kart) tipleri (kategorilere göre):
| Grup | Adım tipleri |
|---|---|
| Çekirdek süreç | cleaning, materials, thinfilm, tempprofile, anneal, litho, etch, process, checklist, diagram, measurement, note |
| Ar-Ge genişletme | aim, bom, equipment, contact, timeline, wiring, reference, document, xrd, microscopy, spectroscopy, test, standard, safety, protocol, signoff, result, statistics |
3.4 Numune detayı ve ölçüm köprüsü
Detay sayfası, başlık alanlarını mantıklı bölümlere ayırır: Kimlik (sample_id, başlık, durum, operatör, tesis, parti/lot, ana-wafer, konum, revizyon), Altlık (malzeme, tedarikçi, boyut, kalınlık, yönelim, katkı tipi/yoğunluğu, aktif malzeme), Ortam (sıcaklık, bağıl nem, temiz-oda sınıfı) ve Notlar (etiketler, serbest not). Her başlık değişikliği denetim izine yazılır. Adım kartları ordinal sırasıyla, ekran genişliğine göre 1–3 sütunluk ızgarada dizilir. Bir measurement kartı linked_measurement_id ile ölçüm veritabanındaki bir kaydı bağlayabilir; böylece numunenin süreç geçmişi ile elektriksel sonuçları tek yerde birleşir.
UNIQUE indekslidir; aynı kimlikle iki numune oluşturulamaz. Bir numuneyi yumuşak-silerseniz adımları da birlikte gizlenir; geri yüklerken adımları elle geri getirmeniz gerekebilir.3.5 Örnek Lab Defterleri — 10 dolu demo numune
Yazılım, boş bir Lab Defteri (ELN) ile gelir; ancak "dolu bir defterin nasıl göründüğünü" görmeden çoğu özelliğin değeri anlaşılmaz. Bu nedenle uygulamayla birlikte, on farklı çalışma alanını temsil eden 10 örnek numune sevk edilir. Her numune gerçek bir laboratuvar senaryosunu (mikrofabrikasyon, proje planlama, analiz, ölçüm kampanyası, güneş gözesi, RRAM, piezoelektrik, dielektrik, kalite/kalibrasyon ve malzeme karakterizasyonu) baştan sona izler: süreç adımları, ölçüm bağları, sonuç kartları ve tek tıkla açılan Türkçe HTML raporlarıyla.
Bu demolar bir "öğretici vitrin"dir: defteri kendiniz doldurmadan önce, iyi tutulmuş bir elektronik lab defterinin (ELN) neye benzediğini gösterirler.
- İzlenebilirlik — altlık/malzeme künyesi, operatör, tesis, parti-lot ve her adımın zaman damgasıyla numunenin tüm geçmişi tek yerde toplanır.
- Süreç adımı kartları — temizlik, ince-film, litografi, aşındırma, sıcaklık profili, ölçüm, istatistik, sonuç, onay gibi her kart ailesinin nasıl doldurulduğunu canlı örnekle gösterir.
- Sonuç → rapor zinciri — defterdeki veriden tek tıkla üretilen, yazdırılabilir/e-posta'lanabilir Türkçe HTML raporun nasıl göründüğünü gösterir.
- Farklı çalışma türleri — sadece ölçüm değil; proje planlama ve kalite/kalibrasyon defterlerinin de aynı araçla nasıl tutulduğunu örnekler.
Demoyu yükleme
Demoyu canlı görmenin iki yolu vardır. Uygulama, Lab Defteri verisini kullanıcı-veri klasöründeki journal.db dosyasından okur; demo da bu dosyanın hazır-dolu bir kopyasıdır.
- Kendi defterinizi yedekleyin. Kullanıcı-veri klasöründeki mevcut
journal.dbdosyanızı güvenli bir yere kopyalayın (gösterim sonrası geri koymak için). - Demoyu kopyalayın.
examples/journal_demo/journal.dbdosyasını kullanıcı-veri klasörüne kopyalayın (var olanın üzerine). - Lab Defteri çalışma alanına geçin. Uygulamayı açın ve sol raydan
Lab Defterialanına geçin; 10 örnek numune galeride listelenir, her birine tıklayıp adımları ve raporları inceleyebilirsiniz. - Gösterim bitince yedeği geri koyun. 1. adımda aldığınız yedeği kullanıcı-veri klasörüne geri kopyalayın; kendi defteriniz aynen geri gelir.
Alternatif (uygulamasız): Yalnız raporları görmek istiyorsanız, examples/journal_demo/raporlar/ altındaki HTML dosyalarını (veya bu kılavuzdaki Aç bağlantılarını) doğrudan tarayıcıda açmanız yeterlidir; uygulamayı açmaya gerek yoktur.
journal.db dosyanıza dokunmaz; tüm demo çıktısı yalnız examples/journal_demo/ klasörüne yazılır. Yukarıdaki kopyalama adımını siz yaptığınız için, gösterim öncesi kendi defterinizi yedeklemeniz tek önemli adımdır.
On numune — özet
| Numune ID | Konu | Çalışma alanı / odak | Durum | Adım | Rapor |
|---|---|---|---|---|---|
IGZO-TFT-2026-014 | Cam üstü a-IGZO ince-film transistör | Mikrofabrikasyon + ölçüm (tam akış) | ✓ Tamamlandı | 11 | Aç |
PROJ-RRAM-2026-DOE | HfOₓ memristör malzeme taraması | Proje planlama (DOE) | ⌛ Sürüyor | 7 | Aç |
PD-aSi-2026-007 | a-Si:H fotodetektör | Analiz (responsivity / EQE / bant) | ✓ Tamamlandı | 5 | Aç |
TFT-ARRAY-2026-022 | 5'li ortak-kapı OFET dizisi | Ölçüm kampanyası (transfer/çıkış) | ✓ Tamamlandı | 7 | Aç |
PV-PSC-2026-031 | Perovskit güneş hücresi (n-i-p) | Güneş gözesi (J-V, kararlılık) | ⌛ Sürüyor | 6 | Aç |
RRAM-HfO2-2026-018 | TiN/HfOₓ/Ti/Pt memristör | RRAM (anahtarlama / dayanıklılık) | ✓ Tamamlandı | 5 | Aç |
PIEZO-PZT-2026-005 | PZT-5H disk | Piezoelektrik (RPS / RUS) | ✓ Tamamlandı | 5 | Aç |
MOSCAP-Al2O3-2026-009 | Al₂O₃ MOS-kapasitör | Dielektrik (C-V / Mott-Schottky) | ✓ Tamamlandı | 4 | Aç |
QA-CAL-2026-Q2 | SMU kalibrasyon defteri | Kalite / kalibrasyon (ISO/IEC 17025) | ✓ Tamamlandı | 6 | Aç |
CHAR-ZnO-2026-013 | Sol-gel ZnO ince film | Karakterizasyon (XRD / SEM / Raman) | ✓ Tamamlandı | 6 | Aç |
1. IGZO-TFT-2026-014 — cam üstü a-IGZO ince-film transistör ✓ Tamamlandı
Defterin "amiral gemisi" örneği: alt-kapı / üst-kontak mimarili bir a-IGZO TFT'nin sıfırdan üretimini ve karakterizasyonunu 11 adımda uçtan uca belgeler. Adımlar tam bir mikrofabrikasyon zincirini izler: altlık temizliği (solvent + UV-Ozon) → Mo kapı metali sıçratma → kapı deseni (Maske 1) → ıslak aşındırma → PECVD SiO₂ kapı dielektriği → a-IGZO aktif tabaka sıçratma → aktif ada desenleme (Maske 2) → e-demet Ti/Au kaynak/akaç (W/L = 100/20 µm) → 300 °C / 1 sa son tavlama (post-anneal) sıcaklık profili → transfer karakterizasyonu (Id–Vg) → lot kapanış onayı. Düşük sıcaklık (≤350 °C) süreci, esnek altlığa taşıma için referans lot olarak tutulmuştur. Anahtar sonuç: µ_sat ≈ 11.4 cm²/Vs, Vth ≈ +0.8 V, SS ≈ 0.18 V/dec ve Ion/Ioff ≈ 2×10⁸.


2. PROJ-RRAM-2026-DOE — HfOₓ memristör malzeme taraması (planlama) ⌛ Sürüyor
Bu defter, bir ölçüm değil bir proje planlama örneğidir: aynı ELN aracının deneysel tasarımı (DOE) belgelemekte de kullanıldığını gösterir. 7 adım araştırma akışını kurar: araştırma sorusu ve hipotez (aim) → malzeme/satın-alma listesi (bom) → proje ekibi ve işbirlikçiler (contact) → anahtar cihaz: parametre analizörü (equipment) → proje kilometre taşları (timeline) → ölçüm düzeneği bağlantı şeması (wiring) → temel referans makale (reference). Tasarım, 3 oksijen oranı × 2 üst-elektrot = 6 koşul, her koşulda 8 aygıt şeklinde kurgulanmıştır. Hipotez: oksijen-fakir (sub-stoikiyometrik) HfOₓ daha çok oksijen boşluğu içerir → daha düşük forming gerilimi ama daha dar HRS/LRS penceresi; beklenen optimum orta oksijen oranındadır (≈%8 O₂). Bu defter, aşağıdaki 6 numaralı RRAM ölçüm defterinin (O₂ = %8 koşulu) doğduğu üst plandır.


3. PD-aSi-2026-007 — a-Si:H fotodetektör analizi ✓ Tamamlandı
Bir analiz defteri örneği: ITO kaplı cam üzerinde p-i-n hidrojenli amorf silisyum (a-Si:H) fotodetektörünün zamansal yanıtı ve duyarlılığı, uygulamanın Analiz modülüyle çıkarılan metriklerle 5 adımda belgelenir. Adımlar: aydınlık/karanlık I-V + zamansal yanıt ölçümü → spektral duyarlılık (UV-Vis spektroskopi) → yanıt-süresi istatistiği (10 ölçüm) → çıkarılan fotodetektör metrikleri (hedefe karşı sonuç kartı) → yorum / sonraki adım notu. Anahtar sonuç: karanlık akım ≈ 1.2 nA @ −2 V, aydınlık (1 mW/cm²) akımı ≈ 38 µA; tüm metrikler spesifikasyonu geçti ve aygıt 530 nm görünür-ışık algılaması için uygun bulundu. Sonraki adım notu, bant genişliğini ~2× artırmak için i-tabaka kalınlığını 500→350 nm düşürmeyi (duyarlılıkta hafif düşüş pahasına) önerir.


4. TFT-ARRAY-2026-022 — 5'li ortak-kapı OFET dizisi ✓ Tamamlandı
Bir ölçüm kampanyası örneği: termal SiO₂ / n⁺-Si ortak kapı üzerinde p-tipi pentasen OFET dizisinin (tek kapı + dielektrik, 5 kaynak-akaç kanalı, Ossila düşük-yoğunluk maskesi) transfer ve çıkış ölçümleri 7 adımda toplanır. Adımlar: ölçüm cihazı ve röle kartı (SwitchMatrix) → prob ve röle bağlantıları → Kanal 1 transfer (Id–Vg, doygunluk) → Kanal 1 çıkış (Id–Vd ailesi) → Kanallar 2–5 toplu transfer → dizi tekdüzelik istatistiği (5 kanal) → dizi kabul kriterleri (spesifikasyona karşı). Anahtar sonuç: µ_sat ≈ 0.42 cm²/Vs, Vth ≈ −8.5 V, histerezis ΔVth ≈ 1.2 V; çıkış eğrileri temiz doygunluk gösterir (kontak direnci kanıtı yok). Dizi kabul edildi; tekdüzelik (CV ~%10) pentasen için tipik bulundu.


5. PV-PSC-2026-031 — perovskit güneş hücresi (n-i-p) ⌛ Sürüyor
Bir güneş gözesi (PV) defteri: FTO kaplı cam üzerinde FA₀.₈₃MA₀.₁₇Pb(I₀.₉Br₀.₁)₃ perovskit n-i-p hücrenin J-V başarımı ve kararlılığı 6 adımda izlenir (tüm işlemler N₂ eldivenli kutuda). Adımlar: çözelti ve tabaka malzemeleri (materials) → perovskit tabaka spin-coat + anti-solvent (ince-film) → J-V tarama (ileri + geri) → PV başarım metrikleri (hedefe karşı) → kararlılık takibi (MPP, 200 sa) → kurşun (Pb) güvenlik notu. Film "ayna gibi yansıtıcı, koyu kahve" ve pinhole'suz olarak kaydedildi. Anahtar sonuç (geri tarama): Voc = 1.12 V, Jsc = 23.4 mA/cm², FF = 0.78, PCE = %20.4; histerezis indeksi HI ≈ 0.05 (düşük histerezis). Kararlılık takibi sürdüğü için defter "Sürüyor" durumundadır.


6. RRAM-HfO2-2026-018 — TiN/HfOₓ/Ti/Pt memristör ✓ Tamamlandı
Bir RRAM / direnç-anahtarlama defteri: 2 numaralı DOE planının O₂ = %8 koşulundan doğan, ALD ile büyütülmüş ≈10 nm sub-stoikiyometrik HfOₓ (50×50 µm) aygıtının anahtarlama davranışı ve dayanıklılığı 5 adımda belgelenir. Adımlar: HfOₓ aktif tabaka — ALD (ince-film) → elektroforming + DC anahtarlama (forming +3.2 V, akım sınırı 1 mA; Keysight B1500A) → dayanıklılık döngüsü (MikroFab Endurance modülü) → dayanıklılık metrikleri (hedefe karşı) → arıza analizi yorumu. Anahtar sonuç: V_SET ≈ +0.9 V, V_RESET ≈ −1.1 V, R_LRS ≈ 2.5 kΩ, R_HRS ≈ 180 kΩ (×72 pencere); >10⁴ döngü sonrası pencere kapanmaya başladı. Arıza analizi, kapanmayı filamentteki oksijen boşluklarının yeniden dağılımına bağlar ve üst-elektrot Ti kalınlığını (oksijen tutucu) artırmayı bir sonraki DOE turuna önerir.


7. PIEZO-PZT-2026-005 — PZT-5H disk (RPS/RUS) ✓ Tamamlandı
Bir piezoelektrik karakterizasyon defteri: serbest PZT-5H seramik disk (Ø10 × 1 mm) üzerinde rezonant piezoelektrik / ultrasonik spektroskopi (RPS/RUS) 5 adımda yürütülür. Adımlar: numune ve elektrot (materials) → kilitlemeli yükselteç + fırın (equipment) → RPS frekans süpürmesi → çıkarılan piezo/elastik parametreler (sonuç) → yöntem referansı (RUS). Süpürmede temel radyal mod ≈ 210 kHz, kalınlık modu ≈ 2.0 MHz; Lorentzian fit ile Q ≈ 420 ölçüldü. Tam elastik tensör Cᵢⱼ, ters elastik-tensör NLLS fit (Visscher çözücü) ile çıkarıldı. Anahtar sonuç: d₃₃ (bağıl) 590 ± 20 pC/N (≥550 ✓), elastik modül E (VRH) 62 ± 3 GPa, kayma modülü G 23 ± 1.5 GPa, Poisson oranı ν 0.31, mekanik kalite faktörü Q 420 (≥300 ✓); Zener anizotropisi ≈ 1.4. Yöntem, Migliori & Sarrao'nun RUS çalışmasına dayandırılmıştır.


8. MOSCAP-Al2O3-2026-009 — Al₂O₃ MOS-kapasitör ✓ Tamamlandı
Bir dielektrik karakterizasyon defteri: p-tipi Si (100) üzerinde ALD Al₂O₃ yüksek-k dielektrikli Al/Al₂O₃/p-Si MOS-kapasitörün C-V profillemesi ve Mott-Schottky analizi 4 adımda belgelenir. Adımlar: Al₂O₃ dielektrik — ALD (ince-film) → çoklu-frekans C-V (1 kHz, 10 kHz, 100 kHz ve 1 MHz; Vg −3→+3 V) → iletkenlik yöntemiyle Dit + Mott-Schottky → dielektrik/arayüz metrikleri (sonuç). Anahtar sonuç: C_ox ≈ 380 nF/cm² → k(Al₂O₃) ≈ 8.6 (frekans dağılımı düşük, iyi arayüz), EOT ≈ 9.0 nm, arayüz tuzak yoğunluğu Dit ≈ 2.3×10¹¹ eV⁻¹cm⁻² (≤5×10¹¹ ✓) ve Mott-Schottky eğiminden katkı yoğunluğu N_A ≈ 1.1×10¹⁵ cm⁻³ (nominal değerle uyumlu).


9. QA-CAL-2026-Q2 — SMU kalibrasyon defteri (ISO/IEC 17025) ✓ Tamamlandı
Bir kalite / kalibrasyon defteri: ELN'in yalnız aygıt değil, laboratuvar uyumluluk kayıtlarını da tutabildiğini gösterir. 2026 2. çeyrek periyodik SMU doğrulaması 6 adımda belgelenir. Adımlar: kalibre edilen birincil cihaz (equipment) → takip edilen standartlar (standard) → doğrulama test planı: kaynak/ölçüm (test) → laboratuvar elektriksel güvenlik notu (safety) → periyodik doğrulama prosedürü/SOP (protocol) → kalibrasyon onayı ve sertifika (signoff). Referans olarak izlenebilir Fluke 8588A (sertifika #FL-2026-0412) kullanıldı; takip edilen standartlar ISO/IEC 17025, JCGM 100:2008 (GUM) ve ASTM E2655'tir. Anahtar sonuç: cihaz tüm doğrulama testlerini geçti; sertifika #CAL-2026-0188 düzenlendi, sonraki doğrulama tarihi 2027-06-25.


10. CHAR-ZnO-2026-013 — sol-gel ZnO ince film karakterizasyonu ✓ Tamamlandı
Çok-teknikli bir malzeme karakterizasyonu defteri: Si (100) ve cam üzerine sol-gel spin-coat + 500 °C tavlama ile büyütülen c-ekseni yönelimli ZnO ince filmin yapısal ve morfolojik analizi 6 adımda toplanır. Adımlar: ZnO film — sol-gel spin-coat (ince-film) → XRD: faz ve kristalit boyutu → SEM + AFM: morfoloji ve pürüzlülük → Raman: titreşim modları → yapısal karakterizasyon özeti (sonuç) → tane boyutu istatistiği (SEM, n=120). Anahtar sonuç: XRD'de güçlü (002) c-ekseni dokusu, Scherrer denkleminden kristalit ≈ 28 nm ((100) 31.8° ve (101) 36.3° zayıf); SEM/AFM'de yoğun, çatlaksız taneli yüzey, ortalama tane ≈ 30–40 nm, AFM RMS pürüzlülüğü ≈ 4.2 nm; Raman'da baskın E₂(yüksek) 437 cm⁻¹ ve zayıf A₁(LO) 580 cm⁻¹ — keskin E₂(yüksek), iyi kristalliğe işaret eder.


4. Reçete (Recipe)
Reçete, birden çok ölçümü önceden tanımlı bir yemek tarifi gibi sırayla, başında durmadan çalıştırmanın yoludur. Bir kez kurarsınız; yazılım adımları sırayla, isterseniz birçok aygıt için tekrarlayarak kendi başına yürütür.
- Neden yapılır: tekrarlı ya da uzun ölçüm dizilerini elle tek tek başlatma yükünden kurtulmak için.
- Ne öğretir / ne ölçer: standart bir akışı (örn. stres öncesi/sonrası ya da ölçüm → analiz → rapor) tutarlı, tekrarlanabilir biçimde üretir.
- Nerede kullanılır: kararlılık/gece testleri, çok aygıtlı wafer taraması ve uçtan uca otomatik raporlama.
Reçete, birden çok ölçümü otomatik bir sıra hâlinde çalıştırmanın iki ayrı aracını kapsar: klasik "stres reçetesi" (kararlılık/gece testleri) ve yeni çapraz-alan "pipeline" (Ölçüm → Analiz → Hesap → Rapor).

4.1 Klasik Reçete — Transfer-Before / Bias / Transfer-After
Klasik reçete, bir TFT'nin zamanla ne kadar bozulduğunu ölçmenin standart yoludur: önce bir transfer eğrisi alır, sonra aygıtı bir süre gerilim stresine maruz bırakır, ardından yeni bir transfer eğrisi alıp eşik geriliminin ne kadar kaydığını (ΔVth) gösterir. Bir lastiği uzun yolda eskitip öncesi-sonrasını karşılaştırmak gibi.
- Neden yapılır: aygıtın kararlılığını/ömrünü ve bias altında eşik kaymasını ölçmek için.
- Ne öğretir / ne ölçer: stres sonrası eşik kayması (ΔVth) ve histerezisi; yani aygıtın güvenilirliğini.
- Nerede kullanılır: saatlerce/gece süren kararlılık testleri ve güvenilirlik nitelendirmesi.
Klasik reçete, TFT kararlılığını ölçmenin standart akışıdır: stres öncesi bir transfer eğrisi al, ardından bir süre bias-stres uygula, sonra stres sonrası transfer eğrisini al ve eşik kaymasını (ΔVth) gör. Reçete paneli (RecipePanel) şu kontrolleri sunar:
- TFT listesi gezme: Yapılandırmadaki
tft_mappinganahtarlarından onay kutuları oluşturulur; seçtiğiniz her TFT için reçete sırayla tekrarlanır. Bu, role/switch matrisli bir kurulumda bir wafer üzerindeki birçok aygıtı tek başlatmayla taramanızı sağlar. - Sıra adımları: "Transfer-Before", "Bias Stress", "Transfer-After" ve "İkili eksen" (dual-axis grafik) onay kutuları. Herhangi bir adımı kapatabilirsiniz (örn. yalnız stres).
- Rol otomasyonu (relay): Her TFT için akış başlamadan önce switch matrisi o aygıtın drain/gate kanallarına yönlendirilir; DIODE dışındaki modlarda
relay_enabledetkinse röle yapılandırması otomatik uygulanır. Operatörün kablo değiştirmesine gerek kalmaz.
Akış (RecipeMeasurementRunner) her seçili TFT için şunu yürütür:
for tft in seçili_tftler:
[Transfer-Before] → TransferSweep (Dual yön, log ölçek)
[Bias Stress] → BiasStress (Voltage Bias, süre + örnekleme aralığı)
[Transfer-After] → TransferSweep (Dual yön, log ölçek)
Transfer alt-taramaları çift yönlü (Dual) alınır ki histerezis ve ΔVth çıkarılabilsin; her adım kendi user_comment'iyla (recipe transfer before / recipe bias stress / recipe transfer after) işaretlenir.
Reçete parametreleri
| Parametre | Birim | Açıklama | Varsayılan |
|---|---|---|---|
selected_tfts | — | Reçetenin tekrarlanacağı TFT listesi | ["TFT 1"] |
run_transfer_before | — | Stres öncesi transfer al | True |
run_bias_stress | — | Bias-stres uygula | True |
run_transfer_after | — | Stres sonrası transfer al | True |
transfer_vds | V | Transfer alt-taraması sabit Vds | 1.0 |
transfer_vgs_start | V | Transfer Vgs başı | -10.0 |
transfer_vgs_stop | V | Transfer Vgs sonu | 10.0 |
transfer_vgs_step | V | Transfer Vgs adımı | 0.5 |
stress_vds | V | Stres sırasında Vds | 1.0 |
stress_vgs | V | Stres sırasında Vgs | 10.0 |
bias_duration_s | s | Toplam stres süresi | 3600.0 |
bias_sample_interval_s | s | Stres örnekleme aralığı | 10.0 |
bias_duration_s = 28800 ile 8 saat) ya da headless modda --repeat / --interval ile birleştirerek gece boyu süren kararlılık çalışmaları kurarsınız. Uzun ölçümler sırasında her nokta diske anında yazıldığı için (*_partial.csv), güç kesilse bile o ana kadarki veri korunur (bkz. §5.4).4.2 Yeni Reçete Pipeline (Ölçüm → Analiz → Hesap → Rapor)
Pipeline, tek bir tarif içinde yalnız ölçümü almakla kalmayıp sonucu otomatik analiz eden, hesaplayan ve bitmiş bir HTML rapora dönüştüren, bir montaj hattı gibi uçtan uca zincirdir. Adımlar isimle birbirine bağlanır; her adım bir öncekinin çıktısını girdi olarak alır.
- Neden yapılır: ham veriden bitmiş rapora kadar olan tüm yolu insan eli değmeden, tekrarlanabilir biçimde yürütmek için.
- Ne öğretir / ne ölçer: ölçüm + çıkarılan metrikler + raporu tek, denetlenebilir bir çıktı zinciri olarak verir.
- Nerede kullanılır: rutin karakterizasyonun standartlaştırılması ve otomatik raporlama (örn. TFT On/Off, PV Jsc/Voc/FF/PCE).
Reçete çalışma alanının ana görünümü, veriyi tek doğruluk kaynağı olarak ele alan modern pipeline'dır. Bir reçete; sırayla bağlı, adlandırılmış, tip-ayrımlı adımlardan oluşan JSON'dur ve insan-okur Python görünümü bundan üretilir (tek yön; reçeteyi düzenlemek JSON'u düzenler). Adım tipleri:
Adım (kind) | İşlev | Temel alanlar |
|---|---|---|
measure | Bir ölçüm modunu çalıştırır | name, mode, tft_id, params, required_capabilities |
analyze | Bir önceki ölçüme / dosyaya analiz modülü uygular | name, module, source veya path, params |
calc | Hesap modülünü açık girdilerle çalıştırır | name, module, inputs |
report | Üst adımlardan HTML rapor üretir | name, title, sources |
Adımlar isimle bağlanır: üreten her adımın benzersiz bir name'i vardır; alt adımlar bu isimle (source / sources) üstteki çıktıya başvurur. Yükleme sırasında validate_wiring kablolamayı denetler (tekil isim, analiz tam olarak bir kaynağa bağlı, rapor kaynakları önceki adımlardan). Reçete sayfası, paketle gelen örnek reçeteleri (examples/recipes/*.json) bir açılır listeyle sunar, "Dosya aç…" ile kendi reçetenizi yükleyebilirsiniz ve "Eski Reçete Sekmesi" düğmesi klasik reçete çalıştırıcısını açar.
Paketle gelen iki örnek:
tft_transfer_pipeline.json— TRANSFER ölç →analyze.tft_on_off(On/Off + Vth) → HTML rapor.pv_jv_pipeline.json— PV_JV ölç →analyze.pv_metrics(Jsc / Voc / FF / PCE) → rapor.

report adımı üst adımların çıktılarından bütünlük-mühürlü bir HTML rapor üretir.calc adımı yalnız bir modül kimliği + girdi taşır). Bu, güvenli ve denetlenebilir bir otomasyon zinciri sağlar.5. Headless (Arayüzsüz) Mod
Headless mod, yazılımı hiç pencere açmadan, komut satırından çalıştırmaktır — bir cihazı uzaktan kumandayla sürmek gibi. Bir görev dosyası (job) verirsiniz, yazılım ölçümleri tek başına yapar; isterseniz bir REST API ile başka programlardan kontrol edersiniz.
- Neden yapılır: ekran başında beklemeden, zamanlanmış ve tekrarlı otomasyon (özellikle gece koşuları) kurmak için.
- Ne öğretir / ne ölçer: aynı ölçümleri üretir, ama elle değil betikle/uzaktan tetiklenir ve döngülerle tekrarlanır.
- Nerede kullanılır: gece boyu kararlılık koşuları, sunucu/otomasyon hatları ve uzaktan kontrol.
Headless mod, GUI açmadan ölçüm/otomasyon çalıştırmanızı sağlar: gece boyu süren reçeteler, zamanlı tekrarlı ölçümler ve uzaktan kontrol için tasarlanmıştır. Giriş noktası main.py'nin --headless bayrağıdır.
python main.py --headless --job examples\job_example.json
python main.py --headless --job recipe.json --output C:\olcumler --repeat 3 --interval 7200
python main.py --headless --serve 8765 # yalnızca REST API sunucusu
5.1 Komut satırı bayrakları
| Bayrak | Argüman | Açıklama | Varsayılan |
|---|---|---|---|
--headless | — | GUI olmadan çalıştır | kapalı |
--job | DOSYA | Çalıştırılacak job JSON dosyası | — |
--output | KLASÖR | Çıktı klasörü (job içindekini ezer) | job / measurements |
--mock | — | Mock (donanımsız) sürücü kullan | job'a göre / True |
--real | — | Gerçek cihaz sürücüsü kullan | — |
--repeat | N | Toplam döngü sayısı (zamanlama) | job / 1 |
--interval | SANIYE | Döngüler arası bekleme | job / 0 |
--serve | [PORT] | Yerel REST API'yi başlat | port 8765 |
--host | ADRES | REST API host | 127.0.0.1 |
--smu-model | MODEL | Gerçek cihaz SMU model anahtarı (örn. 2614B) | — |
--smu-resource | VISA | VISA kaynağı (örn. GPIB0::26::INSTR) | — |
--formats | LISTE | Dışa aktarım biçimleri (csv,txt,xlsx,hdf5) | csv,txt,xlsx |
--sequence | DOSYA | Genel Sequence Builder JSON'unu headless koş | — |
--mock varsayılandır. Gerçek cihaza bağlanmak için --real (ya da job içinde "mock": false) ve SMU model/kaynak bilgisini vermeniz gerekir. Gerçek donanım yolunda da timeout + güvenli-durum + mock-eşdeğeri korunur (cihaz-haberleşme güvenlik kuralları).5.2 Job JSON şeması
Bir job JSON dosyası, GUI olmadan çalıştırılacak bir veya birden çok ölçümü tanımlar.
| Anahtar | Tip | Açıklama | Varsayılan |
|---|---|---|---|
mock | bool | Donanımsız simülasyon | true |
output_directory | str | Çıktı klasörü | "measurements" |
relay_enabled | bool | Switch matrisi otomasyonu (DIODE hariç uygulanır) | false |
schedule.interval_s | sayı | Döngüler arası saniye | 0 |
schedule.repeat | sayı | Toplam döngü sayısı | 1 |
measurements[] | dizi | Ölçüm tanımları (en az 1, zorunlu) | — |
measurements[].mode | str | Ölçüm modu (büyük harfe çevrilir) | — |
measurements[].tft_id | str | Numune/aygıt kimliği | "TFT 1" |
measurements[].user_comment | str | Kullanıcı yorumu | "" |
measurements[].params | nesne | Moda özgü parametreler (bilinmeyen alanlar yok sayılır) | {} |
smu | nesne | Gerçek donanım SMU bağlantısı (model, resource) | {} |
relay | nesne | Gerçek donanım röle bağlantısı | {} |
Geçerli mode değerleri: IV, TRANSFER, DIODE, BIAS_STRESS, HW_SWEEP, HW_TFT_SWEEP, PULSED_IV, PV_JV, PV_PULSED_JV, PV_DARK_JV, PV_HYST, PV_MPPT, PV_BIAS_DELTA, PV_SUNS_VOC, PV_INTENSITY, PV_SOAK, PV_DEGRAD, PV_THERMAL, PV_CV, PV_CI, RECIPE. Bilinmeyen mod hata verir; her mod için yalnız o dataclass'a ait parametre alanları kabul edilir, gerisi sessizce atılır.
Örnek (examples/job_example.json): İki saatte bir, üç döngü; bir TRANSFER + bir IV.
{
"mock": true,
"output_directory": "measurements",
"relay_enabled": false,
"schedule": { "interval_s": 7200, "repeat": 3 },
"measurements": [
{
"mode": "TRANSFER",
"tft_id": "TFT 1",
"user_comment": "Gece kararlilik testi",
"params": {
"fixed_vds": 1.0, "vgs_start": -5.0, "vgs_stop": 5.0, "vgs_step": 0.25,
"mobility_method": "Saturation", "w_um": 100.0, "l_um": 10.0, "cox_nf_cm2": 34.5
}
},
{
"mode": "IV",
"tft_id": "TFT 2",
"params": { "vds_start": 0.0, "vds_stop": 5.0, "vds_step": 0.5,
"vgs_start": 0.0, "vgs_stop": 5.0, "vgs_step": 1.0 }
}
]
}
5.3 Tekrar / aralık (gece testleri)
--repeat N --interval S (ya da job içinde schedule) ile job'daki ölçümler N döngü boyunca, döngüler arası S saniye beklemeyle tekrarlanır. Her döngü başında === Döngü k/N ===, her ölçümde başlangıç ve sonuç (nokta sayısı + yazılan dosyalar ya da hata) loglanır. Bekleme kesilebilir (interruptible) uykuyla yapılır; Ctrl+C ile temiz durdurabilirsiniz (güvenli durum tetiklenir). Dönüş değeri başarısız ölçüm sayısıdır (0 = hepsi başarılı); process çıkış kodu da buna göre 0/1 olur.

5.4 Çıktılar
Her koşu, çıktı klasörünüzün altında benzersiz bir alt klasöre yazılır: YYYY-AA-GG-<Gün>-<Tür>-<SSDDss> (örn. 2026-06-12-Wed-PV-103045). <Tür> ölçüm ailesinin kısaltmasıdır (TFT / Thin / PV / Gen). Sondaki saat-dakika-saniye her koşuyu benzersiz kılar, böylece OneDrive gibi senkron klasörlerde çok-makine çakışma kopyası oluşmaz.
Bir ölçümün ürettiği dosyalar:
| Dosya | İçerik |
|---|---|
<ad>.csv | Ham noktalar (virgül ayraçlı) |
<ad>.txt | Ham noktalar (sekme ayraçlı) |
<ad>.xlsx | Excel (ölçüm sayfası + ayrı "Özet" sayfası) |
<ad>_metadata.json | Tam künye (cihaz kimliği, parametreler, özet, nokta sayısı, erken-durdu) |
<ad>_report.json | Kanonik bütünlük-mühürlü rapor (checksum dahil) |
<ad>_report.csv | Yerel-bağımsız rapor CSV'si |
<ad>.h5 | (isteğe bağlı) Mühürlü HDF5 ikili çıktı |
<ad>_partial.csv | Ölçüm sırasında her noktada güncellenen çökmeye-dayanıklı dosya (başarıyla bitince silinir) |
metadata.json her zaman korunur. openpyxl kurulu değilse yazılım yine de standart kütüphaneyle minimal bir XLSX üretir.6. Yerel REST API
REST API, çalışan ölçüm denetleyicisini bir uzaktan kumanda gibi HTTP komutlarıyla yönetmenizi sağlar: ölçümü başlat/durdur, durumu ve canlı veriyi oku. Böylece başka bir program, betik ya da tarayıcı, ölçümü dışarıdan sürebilir.
- Neden yapılır: ölçümü başka yazılımlara/otomasyona ya da uzaktaki bir makineye açmak için.
- Ne öğretir / ne ölçer: anlık durumu (çalışıyor mu, kaç nokta, son hata) ve o ana kadarki canlı veriyi döner.
- Nerede kullanılır: laboratuvar otomasyon entegrasyonu, uzaktan izleme ve özel kontrol panelleri (yalnız güvenilir/yerel ağda).
--serve ile başlatılan REST API, çalışan bir denetleyiciyi (HeadlessController) HTTP üzerinden kontrol/izleme imkânı verir. Yalnızca Python standart kütüphanesi kullanılır (ek bağımlılık yok) ve varsayılan olarak yalnızca localhost'a (127.0.0.1) bağlanır.

6.1 Uç noktalar
| Yöntem | Yol | İşlev | Yanıt |
|---|---|---|---|
| GET | /health | Sağlık + sürüm | {"ok": true, "version": "…"} |
| GET | /status | Denetleyici durumu | aşağıdaki durum nesnesi |
| GET | /data/live (veya /measurement/data/live) | O ana kadarki tüm noktalar | {"points": [ … ]} |
| POST | /measurement/start | Ölçümü başlat | 200 başladı / 409 meşgul / 400 geçersiz parametre |
| POST | /measurement/stop | Ölçümü güvenle durdur | {"stopped": true} |
Bilinmeyen yollar 404 döner. /status nesnesi: running, mode, point_count, last_error, last_paths, son nokta için last_point (step_index, vds, vgs, ids, igs, elapsed_s) ve varsa summary.
6.2 İstek örnekleri
Ölçüm başlatma gövdesi: mode (zorunlu), tft_id (varsayılan "TFT 1"), params (moda özgü), relay_enabled (DIODE'da yok sayılır).
# Sağlık kontrolü
curl http://127.0.0.1:8765/health
# Transfer ölçümü başlat
curl -X POST http://127.0.0.1:8765/measurement/start \
-H "Content-Type: application/json" \
-d '{"mode":"TRANSFER","tft_id":"TFT 3",
"params":{"fixed_vds":1.0,"vgs_start":-5,"vgs_stop":5,"vgs_step":0.25}}'
# Canlı veriyi çek
curl http://127.0.0.1:8765/data/live
# Durdur
curl -X POST http://127.0.0.1:8765/measurement/stop
Zaten bir ölçüm sürerken start çağrısı 409 ("Ölçüm zaten devam ediyor") döner; parametreler geçersizse 400 ve hata metni döner.
--host ile açık adres verin ama mutlaka güvenilir bir ağ / VPN / ters-proxy arkasında tutun. Açık ağa doğrudan çıkarmayın.7. Python Script / Konsol
Script çalışma alanı, ölçüm motorunu hazır düğmeler yerine kendi cümlelerinizle — Python komutlarıyla — sürmenizi sağlar. Bir terminale yazar ya da küçük bir program yazıp çalıştırır, sonuçları aynı yerde çizip analiz edersiniz.
- Neden yapılır: hazır panellerin kapsamadığı özel ölçüm/analiz akışlarını esnekçe kurmak için.
- Ne öğretir / ne ölçer: ölçüm, SMU kontrolü, analiz ve grafiği tam programlanabilir bir API olarak açar.
- Nerede kullanılır: Ar-Ge, özel deney tasarımı ve tekrar eden işleri otomatikleştiren uzman kullanıcılar.
Script çalışma alanı, yazılımın ölçüm çekirdeğini bir Python betikleme API'si üzerinden sürer. Sol rail'deki "Script" kartından açılır; uzmanlara ve Ar-Ge'ye tam programlanabilirlik sunar. Qt'den bağımsız app.scripting çekirdeğine karşı çalışır.

7.1 Düzen: Terminal + Editör, Plot + Diyagram
- Terminal (birincil yüzey): Gerçek bir terminal gibi
>>>girişini yankılar ve yanıtı satır içinde basar. Çok satırlı giriş: Enter çalıştırır, Shift+Enter yeni satır ekler, ↑/↓ geçmişi gezer, çok satırlı yapıştırma çalışır. Her gönderim, kalıcı (persistent) bir oturuma karşı bir işçi iş parçacığında çalışır; böylecewait(...)arayüzü dondurmaz ve değişkenler komutlar arası korunur. - Editör: 15–20 satırlık tam bir program. Araç çubuğundaki Çalıştır / Diyagram düğmeleri editör koduna etki eder; çıktı aynı Terminal'e akar.
- Plot:
plot()çağrıları I–V eğrilerini üst üste bindirir (bir koşu içinde yığılır). - Diyagram: Kaydedilen koşu izini akış şeması olarak çizer; Mermaid Kopyala ile taşınabilir metin olarak dışa aktarır (editörde yazdıkça arka planda debounce'lu otomatik çizilir).
7.2 API fonksiyonları (hızlı-erişim örnekleri)
Terminalin altındaki hızlı-eylem düğmeleri, sık kullanılan çağrıları girişe yerleştirir:
| Düğme | Örnek çağrı |
|---|---|
| run DIODE | run("DIODE", voltage_start=0.0, voltage_stop=2.0, voltage_step=0.05) |
| run TRANSFER | run("TRANSFER", fixed_vds=0.1, vgs_start=-10, vgs_stop=10, vgs_step=0.2) |
| smu | smu("drain").set_voltage(0.1, compliance_a=1e-3) |
| measure | measure("drain") |
| select_tft | select_tft(1) |
| plot | plot(res, title="IV") |
| analyze | analyze(res, "diode_iv") |
Tipik bir betik:
res = run("DIODE", voltage_start=0.0, voltage_stop=2.0, voltage_step=0.05)
extra = analyze(res, "diode_iv")
log(f"n={extra.ideality_factor} I0={extra.saturation_current}")
plot(res, title="Diode")
7.3 Simülasyon / Canlı rozeti ve güvenli durum
Araç çubuğundaki büyük renkli rozet çalışma kipini gösterir: yeşil = Simülasyon (Mock), kırmızı = Canlı (gerçek cihaz). Betikler varsayılan olarak simülasyonda çalışır (güvenli yazım, donanımsız). Rozete tıklayarak Canlı'ya geçersiniz. Kip değiştirildiğinde, "Durdur"a basıldığında, çalışma alanından çıkıldığında veya çıkışlar açıkken oturum atıldığında yazılım güvenli-duruma alır (çıkış OFF + röle OFF) — elle tutulan bir bias asla sayfadan uzun yaşamaz.
7.4 AI ve uzman için API dışa aktarımı
İçinde gömülü bir yapay zekâ veya ağ bağlantısı yoktur. Bunun yerine: API for AI tek-sayfa API tanımını panoya/Markdown'a kopyalar (kendi AI asistanınıza verirsiniz); API for Expert çok-dosyalı bir paketi (type stub .pyi + kopya-kâğıdı + örnekler ZIP) indirir. Böylece betiği dışarıda bir LLM ile yazıp buraya yapıştırabilirsiniz.
8. Preset, Yapılandırma, Favoriler ve Kullanıcı Modları

8.1 Yapılandırma (ConfigManager)
Ayarlar iki katmanlıdır: paketle gelen default_config.json ve kullanıcı user_config.json; ikincisi birincinin üzerine derin birleştirilir (_deep_update). Bazı anahtarlar bilinçli olarak kullanıcı tarafından ezilemez ve her zaman varsayılandan gelir:
- Güvenlik limitleri (
safety_limits): Müşteri talebi gereği yazılım yapay limit dayatmaz; sınır her zamandefault_config.json'dan okunur. Böylece eski biruser_config.json'daki düşük değer (örn. 60 V) takılı kalmaz, girdiğiniz yüksek değer ölçüm başında reddedilmez. - Özellik bayrakları (
ui_lcr_pv,ui_rps,ui_dmm…) da pinlenir: blanketsave()bayat birfalsedeğerini geri yazıp yeni varsayılanı sessizce ezmesin diye. Bunları kapatmak için ortam değişkenleri (MIKROFAB_LCR_PV=0,MIKROFAB_RPS=0,MIKROFAB_DMM=0) kullanılır.
8.2 Preset yöneticisi (PresetManager)
Preset, sık kullandığınız ölçüm ayarlarını bir isimle kaydedip tek tıkla geri çağırmaktır — telefonunuzdaki kayıtlı numaralar gibi. Farklı malzeme/teknolojiler çok farklı gerilim aralıkları istediğinden, her biri için ayrı bir preset tutarsınız.
- Neden yapılır: her ölçümde onlarca parametreyi elle yeniden girmemek ve hata yapmamak için.
- Ne öğretir / ne ölçer: bir panelin tüm parametre durumunu adlandırılmış, yeniden kullanılabilir bir set olarak saklar.
- Nerede kullanılır: a-Si / IGZO / organik gibi farklı teknolojiler arasında hızlı geçiş ve standart ölçüm kurulumları.
Her ölçüm paneli için isimli parametre setlerini diske kaydeder/yükler. Farklı TFT teknolojileri (a-Si, IGZO, organik) çok farklı parametre aralıkları ister; preset'ler bu setler arasında hızlı geçiş sağlar. Dizin yapısı:
<root>/presets/<panel_anahtarı>/<preset_adı>.json
| İşlem | Davranış |
|---|---|
list(panel) | Panelin preset adlarını alfabetik döner |
save(panel, ad, durum) | Durum sözlüğünü JSON olarak kaydeder (ad dosya-güvenli, ≤80 karakter) |
load(panel, ad) | Bir preset'i okuyup durum sözlüğünü döner |
delete(panel, ad) | Preset'i siler (yoksa sessiz geçer) |
8.3 Favoriler / son kullanılanlar ve kullanıcı modları
- Görünüm profilleri (Veri paneli): §2.3'te anlatılan isimli sütun/sıralama/filtre düzenleri, pratikte "favori görünümler" işlevi görür; sık kullanılan analiz açılarını tek tıkla geri getirirsiniz. Aktif profil yapılandırmada (
db_active_profile) saklanır, açılışta geri yüklenir. - Son kullanılan reçeteler: Reçete sayfası açılışta paketli reçetelerden ilkini otomatik yükler ve son seçimi dil değişiminde bile korur.
- Kullanıcı modları: Arayüzün karmaşıklığı Kullanıcı Modu (Operatör / Uzman / Geliştirici) ayarıyla rolünüze göre ölçeklenir; Script ve headless gibi ileri araçlar tipik olarak Uzman / Geliştirici modlarında öne çıkar (ayrıntı için Giriş bölümü §11).
9. Yedekleme ve Bütünlük
Bu araçlar, verinizin güvenliğini ve sağlamlığını bir sigorta poliçesi gibi korur: veritabanının tutarlı bir kopyasını alır, bozulup bozulmadığını sınar ve her değişikliğin kim/ne zaman/neden kaydını tutar.
- Neden yapılır: veri kaybına, bozulmaya ve "bu kaydı kim değiştirdi?" belirsizliğine karşı korunmak için.
- Ne öğretir / ne ölçer: yedeğin tutarlılığını, veritabanı bütünlüğünü ve tam bir denetim izini sağlar.
- Nerede kullanılır: rutin yedekleme ve akredite (ISO 17025 / 21 CFR Part 11) izlenebilirlik gerektiren laboratuvarlar.
Her veritabanı (ölçüm + Lab Defteri) kendi tutarlı yedeğini ve bütünlük kontrolünü sunar:
| İşlem | Açıklama |
|---|---|
backup(path=None) | SQLite çevrimiçi yedek API'siyle tutarlı bir kopya alır; yol verilmezse db_backups/…<zaman>.db |
| Göç öncesi yedek | Sürüm yükseltmeden önce otomatik (pre_migration_vN) |
| Kalıcı silme öncesi yedek | hard_delete öncesi otomatik (pre_hard_delete) |
check_integrity() | PRAGMA integrity_check; veritabanı sağlamsa True |
audit_trail(entity_id=None) | Denetim kayıtlarını (tümü veya tek kayıt için) listeler |
audit_log), yumuşak-silme ve göç-öncesi yedek bu uyumluluğun temelini hazır verir: her oluşturma/güncelleme/silme/geri-yükleme, kim (actor) ve neden (reason) bilgisiyle, değişiklik öncesi tam anlık görüntüyü (before_json) saklar.