2026
Python
Reverse engineering
Digital piano

SPRZĘT MUZYCZNY / INŻYNIERIA WSTECZNA

NUX NEK-100: nux-dsp-mod

Nowe funkcje pianina cyfrowego dokładane jako poprawki do oficjalnego pliku firmware'u, który już masz

15
Poprawek w patcherze
0
Rozpowszechnianych plików NUX
0,5 W
W uśpieniu, wobec ok. 2 W po włączeniu
500
Nazw brzmień po polsku
Funkcje, których mi brakowało, bez udostępniania firmware'u producenta

NUX NEK-100 to pianino cyfrowe, w którym brzmieniami, menu i ekranem steruje firmware układu DSP. Zacząłem zmieniać jego firmware 1 października 2026, bo chciałem rzeczy, których fabryczny firmware nie robi: startu z moim presetem, polskiego interfejsu, wyłączania głośnika, gdy nic nie gra, i własnych instrumentów. Potem doszedł DOOM, dla zabawy, a na końcu pedał sustain wysyłany do bezprzewodowego dongla.

nux-dsp-mod to zestaw poprawek i narzędzi do ich nakładania. Nie rozpowszechnia kodu NUX. Bierzesz plik DSP z oficjalnej paczki aktualizacji NUX, patcher sprawdza jego SHA-256, odrzuca każdy inny plik i oddaje wersję z poprawkami. Wgranie oficjalnego pliku z powrotem przywraca fabryczny firmware.

UKŁAD

Nauka listy rozkazów, której nikt nie opisał

DSP w NEK-100 to układ Dream SAM5xxx. Jego procesor sterujący wykonuje 16-bitową listę rozkazów adresowaną słowami, podobną do P16 firmy Dream, bez publicznej dokumentacji. Wywnioskowałem ją z firmware'u i każdą instrukcję oznaczyłem jako potwierdzoną, gdy poprawka używająca dokładnie tej postaci zachowała się na instrumencie zgodnie z przewidywaniem, albo jako hipotezę.

Disasembler i asembler odtwarzają firmware bajt w bajt, niezależnie od tego, czego jeszcze nie wiadomo. Dzięki temu poprawki można bezpiecznie iterować: działający eksperyment staje się małym plikiem poprawki z moimi instrukcjami i krótkimi sprawdzeniami oczekiwanych bajtów, a nie kodem producenta.

NA CO DZIEŃ

Drobne zmiany, które mają znaczenie przy codziennym graniu

Większość poprawek wzięła się z grania. Po włączeniu może ładować się preset użytkownika zamiast ustawień fabrycznych. Touch dostaje tryb OFF ze stałą siłą uderzenia i opcjonalną krzywą CUSTOM. Każda partia ma własną oktawę, więc lewa ręka w splicie sięga najniższych basów. Z sustain_midi_out CC64 pedału trafia też do bezprzewodowego dongla NUX, co fabryczny firmware robi tylko dla przycisku Sustain na panelu.

  • Osobne czasy automatycznego wyłączenia na baterii i na kablu
  • Start z ustawieniami sprzed wyłączenia
  • Wygaszanie podświetlenia ekranu i opcjonalny dziennik użycia do pomiarów baterii

ZASILANIE

Zmierzone watomierzem w gniazdku

NEK-100 z naładowaną baterią: około 2,0–2,1 W po włączeniu z głośnikiem, około 1 W z wyłączonym głośnikiem i około 0,5 W w uśpieniu. Wzmacniacz głośnika pobiera mniej więcej połowę mocy, więc najwięcej daje wyłączanie go po ciszy. Uśpienie zwalnia zegar układu i zmniejsza resztę o połowę. Podświetlenie nie dawało mierzalnej różnicy.

BRZMIENIA

Własne instrumenty w miejsce fabrycznych brzmień

Do czterech instrumentów z plików SoundFont 2 może zastąpić dowolne z 500 brzmień. Narzędzia przenoszą zakresy klawiszy, strojenie i pętle, a resztę budują z brzmienia-szablonu Twojego soundbanku, więc wynik nie zawiera danych NUX. W repozytorium jest jeden instrument: miauczące Kocie piano z nagrania na licencji CC0.

Grander Piano to fabryczny fortepian z pętlą dodaną do sampli od F#4 w górę, które fabrycznie cichną o 30 dB w ciągu sekundy nawet przy trzymanym klawiszu lub pedale. Filtrów, LFO i chorusa z plików SoundFont jeszcze nie obsługujemy.

DLA ZABAWY

Can it run DOOM?

Tak. Demo DOOM-a działa na samym NEK-100, na jego jednobitowym ekranie 128×64, a muzykę gra wbudowany syntezator pianina. To mój własny silnik w stylu DOOM-a, a nie kod Dooma od id, który potrzebuje 32-bitowej arytmetyki i dużo więcej RAM-u, niż ma pianino. Silnik jest napisany w C, renderuje mapy BSP w formacie Dooma i jest budowany p16cc, małym kompilatorem C, który napisałem dla procesora sterującego układu DSP Dream w pianinie.

Szło to krokami. Najpierw obraz testowy i pętla gry w 20 klatkach na sekundę na prawdziwym pianinie: skopiowanie całej klatki trwa około 0,2 ms, a odświeżenie LCD około 0,8 ms. Potem był raycaster, a po nim silnik BSP. Przy pracy ten sam skompilowany kod uruchamia emulator w przeglądarce, ale jego szybkość nic nie mówi o pianinie, więc nie podaję liczby klatek dema.

Do zainstalowania jest demo, a nie pełna gra: jedna moja mapa, Hangar, z teksturami, sprite'ami i muzyką Freedoom na licencji BSD, cztery miejsca na przeciwników, pistolet i strzelba, drzwi, winda i przełącznik wyjścia. Mapa i zasoby są wolne, więc build można udostępniać; trafia do patchera w przeglądarce jako opcjonalna poprawka doom_demo.

  • C3/E3 obrót, C#3 lub D#3 naprzód, D3 w tył
  • Intro Freedoom na ekranie tytułowym, E4M8 w pętli w poziomie
  • Start z Dodatki > DOOM, dowolny przycisk panelu wychodzi

Jak się tego używa

Patcher w przeglądarce

Strona rozpoznaje model i wersję oficjalnego pliku, pokazuje poprawki i oddaje gotowy plik. Działa offline, a plik nie opuszcza przeglądarki.

Linia poleceń

Te same narzędzia w Pythonie 3.8 lub nowszym, bez zależności: weryfikacja, lista, budowanie oraz disasemblacja i asemblacja do pisania nowych poprawek.

Wgrywanie bez Windowsa

nuxdsp flash mówi protokołem aktualizacji instrumentu przez USB pod Linuksem albo macOS. Sprawdzone z firmware'em DSP.

Sprawdzone na instrumencie

Każda poprawka była testowana na prawdziwym NEK-100, a presety zapisane na fabrycznym firmware dalej działają.

Czy mogę tu pobrać zmodyfikowany firmware?

Nie. Projekt rozpowszechnia tylko własne narzędzia, mapy adresów i poprawki. Potrzebny jest oficjalny plik DSP z paczki aktualizacji NUX, a narzędzia przyjmują wyłącznie ten konkretny plik.

A inne pianina NUX?

Inne modele, na przykład NEK-110, mają ten sam DSP i podobny firmware. Repozytorium opisuje, jak dodać kolejny model, ale obecnie obsługiwany jest tylko NEK-100 z firmware'em DSP 1.0.7.

Czy to bezpieczne?

To nieoficjalny projekt i używasz go na własne ryzyko, a zmodyfikowany firmware może naruszać warunki gwarancji. Zachowaj oryginalny plik: wgranie go z powrotem przywraca fabryczny firmware.

NUX, NEK-100 i Dream są znakami towarowymi swoich właścicieli i służą tu tylko do wskazania urządzenia i układu, z którymi to działa. nux-dsp-mod nie jest powiązany z NUX ani Dream, nie jest przez nie autoryzowany ani wspierany. DOOM jest znakiem towarowym id Software; port jest nieoficjalny i niezwiązany z id.

KONTAKT

Pytania o poprawki?

Zgłoszenia błędów i prośby o inne modele najlepiej zostawić w repozytorium. W pozostałych sprawach napisz do mnie.

Napisz do mnie