İçeriğe geç
Refix

Geliştiriciler

Sürüm yayınlama

Yeni bir firmware sürümünü yayınlama — bir etiket göndermek yeterli.

Firmware 1.2.2Son güncelleme: 7 Ekim 2026

Firmware kaynak kodu private bir GitHub deposunda durur. Bir sürüm etiketi gönderdiğinde GitHub Actions firmware'i derler ve bir Release oluşturur. Site Release'leri sunucu tarafında okur; Studio ve Firmware sürümleri sayfası yeni sürümü birkaç dakika içinde kendiliğinden gösterir. Siteyi yeniden yayınlaman gerekmez.

firmware deposu (private) ── git push --tags ──▶ GitHub Actions: derle + Release
                                                         │
site (Vercel) ◀── token ile Release'leri okur ───────────┘
   ├─ /api/firmware                      sürüm listesi
   ├─ /api/firmware/<sürüm>/manifest.json
   └─ /api/firmware/<sürüm>/<dosya>.bin  dosyalar sitenin kendi adresinden

Yeni sürüm yayınlama

  1. Sürüm numarasını yükselt

    Firmware'de Config.h → #define FW_VERSION "1.2.2". Protokol değiştiyse PROTO_VER'i de değiştir; bu durumda Studio'nun da güncellenmesi gerekir.
  2. Commit et

    git commit -am "1.2.2" ve git push. Her push'ta firmware otomatik derlenir; derlenmezse GitHub'da kırmızı ✗ görürsün.
  3. Etiketle

    git tag -a v1.2.2 -m "Sürüm notları". Mesaj, Studio'da ve sürüm listesinde gösterilen nottur.
  4. Gönder

    git push --tags. Birkaç dakika sonra GitHub'da Releases altında Refix 1.2.2 görünür.
  5. Kontrol et

    Studio'yu aç; sürüm listesinde 1.2.2 “En son” olarak görünür (önbellek nedeniyle en fazla 5 dakika sürebilir). Gerçek bir cihaza yükleyip ayarların korunduğunu doğrula.

Beta sürümü

Etikette - varsa sürüm beta olarak yayınlanır: FW_VERSION "1.2.2-beta.1" ve git tag -a v1.2.2-beta.1 -m "...". Betalar Studio'da yalnızca “Beta sürümlerini göster” işaretlenince listelenir; “En son” sürüm kararlı sürümler arasından seçilir.

Notu düzeltmek, sürümü geri çekmek

  • Notu düzeltmek: GitHub → Releases → sürüm → Edit. Site birkaç dakika içinde günceller.
  • Sorunlu sürümü gizlemek: Release'i silebilir ya da “Set as a pre-release” yapıp betaya çevirebilirsin. Kullanıcılar bir önceki sürüme Studio'dan dönebilir.

Otomatik derlemenin garantileri

Derleme ayarları firmware deposundaki .github/workflows/firmware.yml dosyasında sabittir, Arduino IDE'de neyin seçili olduğu önemli değildir:

AyarDeğerNeden
KartESP32C3 Dev Module
USB CDC On BootEnabledKapalıysa Studio cihaza bağlanamaz
Flash4MB
Partition SchemeDefault 4MB with spiffsNVS 0x9000'de kalır
ESP32 çekirdeği3.3.12
KütüphanelerAdafruit GFX 1.12.6, ST7735/ST7789 1.11.0, BusIO 1.17.4, ArduinoJson 7.4.3

Yayın şu durumlarda durdurulur:

  • Etiket (v1.2.2) ile FW_VERSION uyuşmuyorsa.
  • Bölüm tablosu ci/partitions.expected.bin ile aynı değilse. Bölüm tablosu değişirse NVS'nin yeri kayar ve kullanıcıların ayarları silinir.
  • Firmware USB CDC kapalı derlenmişse.

Çekirdeği ya da bir kütüphaneyi güncellemek istersen sürüm numarasını firmware.yml içinde değiştir.

Release dosyaları

DosyaAdresKullanım
bootloader.bin0x0Studio
partitions.bin0x8000Studio
boot_app0.bin0xE000Studio
app.bin0x10000Studio
full.bin0x0Elle yükleme (indirme)

Studio yalnızca ilk dördünü yazar. NVS bölümü (0x9000–0xE000) bu adreslerin dışında kaldığı için kullanıcının ayarları, kalibrasyonu ve rekorları korunur. full.bin tek parçalık tam görüntüdür ve NVS'yi siler; yalnızca elle yükleme için indirilir.

Sitenin ayarları

Vercel → Settings → Environment Variables:

DeğişkenDeğer
FIRMWARE_REPOkullanıcı/refix-firmware
FIRMWARE_GITHUB_TOKENYalnızca firmware deposuna Contents: Read-only izinli ince ayarlı (fine-grained) token

Token yalnızca sunucuda kullanılır; tarayıcıya hiç gönderilmez. Süresi dolunca yenisini oluşturup bu değişkeni güncelle ve Redeploy et. Yerelde denemek için aynı değişkenleri .env.local dosyasına yaz.