Geliştiriciler
Sürüm yayınlama
Yeni bir firmware sürümünü yayınlama — bir etiket göndermek yeterli.
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
Sürüm numarasını yükselt
Firmware'deConfig.h→#define FW_VERSION "1.2.2". Protokol değiştiysePROTO_VER'i de değiştir; bu durumda Studio'nun da güncellenmesi gerekir.Commit et
git commit -am "1.2.2"vegit push. Her push'ta firmware otomatik derlenir; derlenmezse GitHub'da kırmızı ✗ görürsün.Etiketle
git tag -a v1.2.2 -m "Sürüm notları". Mesaj, Studio'da ve sürüm listesinde gösterilen nottur.Gönder
git push --tags. Birkaç dakika sonra GitHub'da Releases altındaRefix 1.2.2görünür.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:
| Ayar | Değer | Neden |
|---|---|---|
| Kart | ESP32C3 Dev Module | |
| USB CDC On Boot | Enabled | Kapalıysa Studio cihaza bağlanamaz |
| Flash | 4MB | |
| Partition Scheme | Default 4MB with spiffs | NVS 0x9000'de kalır |
| ESP32 çekirdeği | 3.3.12 | |
| Kütüphaneler | Adafruit 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) ileFW_VERSIONuyuşmuyorsa. - Bölüm tablosu
ci/partitions.expected.binile 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ı
| Dosya | Adres | Kullanım |
|---|---|---|
bootloader.bin | 0x0 | Studio |
partitions.bin | 0x8000 | Studio |
boot_app0.bin | 0xE000 | Studio |
app.bin | 0x10000 | Studio |
full.bin | 0x0 | Elle 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şken | Değer |
|---|---|
FIRMWARE_REPO | kullanıcı/refix-firmware |
FIRMWARE_GITHUB_TOKEN | Yalnı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.