Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Karta dźwiękowa USB na STM32F103 + TDA1543 by piotr_go

piotr_go 06 Jun 2020 18:07 8364 31
  • Karta dźwiękowa USB na STM32F103 + TDA1543 by piotr_go

    Witam.
    W oczekiwaniu na płytki do innego projektu postanowiłem zacząć coś nowego - kartę dźwiękową USB na STM32F103C8T6 (blue pill) i przetworniku cyfrowo-analogowym TDA1543 który akurat miałem.
    Nie żeby mi taka kombinacja była potrzebna, chciałem po prostu zobaczyć jak wygląda komunikacja audio po USB a "blue pill" był akurat pod ręką. Docelowo całość będzie prawdopodobnie na STM32F4 i wzmacniaczu z wejściem cyfrowym wbudowana w głośniki.
    Soft łącznie ze stosem USB napisałem sam. Całość zajmuje 1884 bajtów flasha :D
    Częstotliwość próbkowania wynosi 96kHz, stereo, 16bit.
    Układ przetestowałem pod Linuxem i W10.





    Podłączenie TDA1543 do "blue pill":
    PA7 = DATA
    PA6 = WS
    PA5 = BCLK

    Karta dźwiękowa USB na STM32F103 + TDA1543 by piotr_go


    ================ update 28.08.2020 ================
    v0.4 pracuje w trybie asynchronicznym

    Cool? Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    piotr_go
    DIY electronics designer
    Offline 
    Has specialization in: technika cyfrowa
    piotr_go wrote 2450 posts with rating 2651, helped 88 times. Been with us since 2003 year.
  • #2
    ArturAVS
    Moderator HP/Truck/Electric
    A w drugą stronę się da? Tzn. ADC -> BluePill->USB PC.
  • #3
    piotr_go
    DIY electronics designer
    ArturAVS wrote:
    A w drugą stronę się da? Tzn. ADC -> BluePill->USB PC.

    Powinno się dać. Tylko lepiej na STM32F4, bo obecnie I2S generuję softwarowo i z innymi przetwornikami może nie działać (mam przerwy w generowaniu zegara).
  • #4
    khoam
    Level 41  
    piotr_go wrote:
    Soft łącznie ze stosem USB napisałem sam. Całość zajmuje 1888 bajtów flasha

    W czym to pisałeś? :)
  • #7
    piotr_go
    DIY electronics designer
    fotomh-s wrote:
    Z czego wynika 44k100 16bit?

    Standardowe parametry muzyki na CD.
    Próbowałem 96kHz ale USB w procku się chyba nie wyrabia.
    Jak nazbieram nowych chęci :) to przetestuję na F4. Na razie mam dość.
  • #8
    Marcin15357
    Level 10  
    Jeśli pisałeś w C to jak wyglądała optymalizacja pamięci programu? Chodzi mi tu głównie o ograniczanie wielkości bibliotek standardowych, pisanie skryptu linkera itp. Znasz jakieś ciekawe sposoby albo możesz podrzucić parę linków czy tytuł książki?
  • #9
    piotr_go
    DIY electronics designer
    Marcin15357 wrote:
    Chodzi mi tu głównie o ograniczanie wielkości bibliotek standardowych

    Nie używam. Operacje bezpośrednio na rejestrach. Startup, konfiguracja taktowania własne. Jedynie *.h z rejestrami od producenta.
    Jest z tym trochę roboty, ale całość działa szybko i tak jak chcę.
    Książki nie polecę bo żadnej (poza tymi o assemblerze c51) na oczy nie widziałem.
    Grzebię głównie w PDFach i przykładach producentów. Czasem szukam po necie jak utknę.
  • #10
    lechoo
    Level 39  
    Czy ten STM32F103 ma wystarczająco mocy aby w tej karcie dźwiękowej zaimplementować prosty filtr nadpróbkujący, chociażby z liniową interpolacją?
  • #11
    simw
    Level 26  
    Mnie tym razem forma i treści od Kolegi Piotra nie satysfakcjonuje - szczególnie w kontekście innych wpisów na elektrodzie. Nie mogę zrozumieć czemu ta prezentacja miałaby służyć. Brakuje ewidentnie konkretnych walorów edukacyjnych, na pewno dla takiego amatora jak ja, być może jest to dobra inspiracja zaawansowanych użytkowników, ale szczerze wątpię. No i na koniec jeszcze te punkty za hexy i biny - niby komu te pliki mają się przydać?
    Ponarzekałem sobie, być może słabszy dzień :), ale żeby nie było całkiem niemerytorycznie:

    Marcin15357 wrote:
    Jeśli pisałeś w C to jak wyglądała optymalizacja pamięci programu?

    piotr_go wrote:
    C. Sam się zdziwiłem. Bootloader USB który kiedyś napisałem zajmował prawie 2*tyle.

    Cóż w tym dziwnego, że tak mało skoro "większość stosu" jest zawarta właśnie w rejestrach i tylko należy je "odpowiednio poukładać". "Tylko" to oczywiście figura retoryczna, bo jednak działanie USB oraz implementacje w STM32 trzeba dobrze znać i mieć odpowiednią wiedzę w programowaniu, a stosy w HAL to ponoć same zło. Sam niestety nie mam aż takich umiejętności jednak w ostateczności potrafiłem spożytkować prace innych, żeby stworzyć urządzenie HID na stm32f042, które razem z resztą projektu zajmuje 2.4KB flash, przy optymalizacji Os. Mogę się mylić, ale zrobienie z tego karty dźwiękowej to tylko odpowiednia modyfikacja deskryptorów i klasy urządzenia oraz oprogramowanie endpoitów, działania te nie powinny zwiększyć znacznie tego kodu. Zresztą użycie F042F6P to chyba najtańsze, najmniejsze urządzenie ze sprzętowym USB dostępne dla "zwykłego śmiertelnika - programisty".

    To jest chyba dobra pora, żeby odmitologizować szczególną trudność programowania STM32 w trybie USB device. Żeby to zrobić to warto spojrzeć na pewien nienajgorszy opis jak to zrobić:
    https://forum.lothar-team.pl/viewtopic.php?f=9&t=520 (potrzebna rejestracja na forum).

    Opis składa się z 5 części, dzięki którym wypociłem takie coś jak w załączniku. Jest to proste urządzenie klasy HID - klawiatura, trzon oparty na szablonach z CubeIDE_1.3.0. Oczywiście nie należy oczekiwać, że znajdziecie tam jakiś wypasiony kod, szczególnie po moich modyfikacjach, dodatkowo to tylko pewien pogląd na projekt tego typu, ale może komuś pomoże to wraz z opisem, do którego odnośnik pokazałem.

    Jeśli potrzebujecie dojrzalszej implementacji stosu USB napisanej na rejestrach to zobaczcie ten oto projekt:
    https://github.com/dmitrystu/libusb_stm32

    Jak robić prosty przykład urządzenia audio z zewnętrznymi przetwornikami DAC oraz ADC po interfejsie I2S, wraz z implementacją filtrów FIR można znaleźć tu:
    https://www.youtube.com/watch?v=lNBrGOk0XzE
    Są kody, schematy blokowe, tłumaczenia, wszystko co prawda na HAL, ale konfiguracja jest prosta. Łatwo wygenerować kod LL, żeby mieć pogląd jak to zrobić na rejestrach.

    Mam nadzieję, że walor edukacyjny wpisu się podniósł, Piotra przepraszam za wcinanie się "z butami" do wątku :), ale raczej to rozszerzenie nie zasługuje na nowy wątek.
  • #12
    piotr_go
    DIY electronics designer
    simw wrote:
    hexy i biny - niby komu te pliki mają się przydać

    Wystarczą do powielenia projektu.

    simw wrote:
    Brakuje ewidentnie konkretnych walorów edukacyjnych

    Nie udostępniam bardziej skomplikowanego kodu.
    Jak ktoś lubi pracować za darmo to poproszę namiary. Chętnie coś zlecę. :)

    simw wrote:
    "większość stosu" jest zawarta właśnie w rejestrach i tylko należy je "odpowiednio poukładać"

    Odbiór/wysłanie pakietu to nie stos.

    simw wrote:
    urządzenie HID na stm32f042, które razem z resztą projektu zajmuje 2.4KB flash

    Jak kilka lat temu próbowałem zrobić USB MSC na bibliotekach ST to na dzień dobry zeżarło 8KB.

    simw wrote:
    https://forum.lothar-team.pl/viewtopic.php?f=9&t=520

    "You do not have access to the posts in this forum."
  • #13
    simw
    Level 26  
    piotr_go wrote:
    simw napisał:
    https://forum.lothar-team.pl/viewtopic.php?f=9&t=520

    "You do not have access to the posts in this forum."

    Przepraszam nie wiedziałem, że to nie jest ogólnodostępne, ale wystarczy zarejestrować się na forum (to zresztą dawne sunduino.pl) by mieć dostęp - tak mi się wydaje - dodam adnotację do mojego postu oraz zapytam admina, czy to tak specjalnie czy błąd na forum.
  • #14
    piotr_go
    DIY electronics designer
    Przetestowałem pod Windows 10. Soft wymagał drobnej poprawki więc uaktualniłem binarki na początku tematu.
    Teraz działa pod Linuxem i pod W10. Nie wymaga dodatkowych sterowników.
  • #15
    l0ud
    Level 14  
    Od siebie polecam ChibiOS i jego hala z implementacją USB. Całość mozna bardzo mocno odchudzić wyłączając zbędne rzeczy. a API jest proste w użyciu. Gratuluję obsługi i2s bez sprzetowego i2s, ale obawiam się że jednak jakość dźwięku na tym słyszalnie ucierpiała (jitter).
  • #16
    piotr_go
    DIY electronics designer
    l0ud wrote:
    Gratuluję obsługi i2s bez sprzetowego i2s, ale obawiam się że jednak jakość dźwięku na tym słyszalnie ucierpiała (jitter).

    Samo wysyłanie nie powinno być problemem. Obecnie transmisję inicjuję timerem przez DMA, tak że częstotliwość próbek powinna być stała.
    Jedynie różnica zegarów między PC a STMem jest problemem. Obecnie w ciągu 1ms na kilkadziesiąt lekko modyfikuję taktowanie DACa.
    Wynik wydaje mi się fatalny, pewnie tandetny kwarc. Muszę zmienić i sprawdzić. Oczekiwałem różnicy na poziomie modyfikacji 1ms na sekundę.
    (nie chodzi o +- 1ms a o odchyłkę częstotliwości tylko przez 1ms)
    Przerobię to później na feedback, wtedy STM będzie ustalał częstotliwość.

    Dodałem wersję v0.3.
    Udało mi się zwiększyć częstotliwość do 96kHz. Poprawiłem buforowanie. Dodałem DMA do wysyłania danych i zmiany stanu pinu WS.
  • #17
    drzasiek
    CNC specialists
    piotr_go wrote:

    Soft łącznie ze stosem USB napisałem sam. Całość zajmuje 1884 bajtów flasha :D

    Gratuluję podejścia. Kiedyś też zawzięcie uważałem, że nie należy korzystać z gotowców a pisać od nowa. Pisałem na rejestrach, nie wspomagałem się standardowymi bibliotekami z błędami. Ale mi przeszło :) Tzn, jeśli mam coś prostego, piszę z ręki, po swojemu, na rejestrach, jednak od kiedy przestałem mieć czas na zabawę a każdy projekt który robię to moja praca, przeliczam każdą godzinę na pieniądze i wogóle się to nie opłaca siedzieć dłużej tylko po to, aby mieć więcej satysfakcji :) Nie mniej jednak nie namawiam do takiego podejścia, ponieważ po takim projekcie w którym się pewne elementy napisało od zera samemu, zostaje pewna wiedza która może się w przyszłości przydać.
  • #18
    piotr_go
    DIY electronics designer
    Z gotowymi bibliotekami bywa różnie. Zwykle jak coś chcę zrobić inaczej to okazuje się że szybciej napiszę od nowa jak uda mi się dowiedzieć o co chodzi i zmodyfikować gotowca.
    Bywa też że gotowiec nie chce wcale działać. Miałem tak ostatnio z bibliotekami USB do CH554. Niby coś się "ruszało", ale finalnie żadnego efektu. Żaden z hubów który podłączałem nie chciał działać.
    A właśnie, huby... Pamiętam że jak próbowałem z gotowcem na STMa to nie było ich obsługi.
    Wolę jednak wiedzieć co i jak, i zazwyczaj korzystam tylko z własnych bibliotek.
    Zdarza mi się użyć fatFS czy dekodera MP3 (na mp3 się nie planuję porywać :D), ale to jak na razie było tyle.

    Aaaaaa, wymieniłem kwarc i kondensatory w bluepill, odchyłka spadła do spodziewanego poziomu (96000Hz +- 1...2Hz).
  • #19
    drzasiek
    CNC specialists
    Owszem, z bibliotekami bywa różnie, ale jak nie ma czasu to warto spróbować. Ja ostatnio potrzebowałem zrobić urządzenie które podłączam do kompa i zgłasza się jako port szeregowy, wysyłasz do niego komendy a urządzenie wykonuje pewne działania na pinach. Niby proste, ale napisać od początku na pichotę mimo wszystko troszkę czasu zajmie (zależy jakie się rozwiązanie przyjmie). Wziąłem BluePill, odpaliłem CUBE, wyklikałem port szeregowy na USB, dopisałem parę linijek kodu i po 5 minutach urządzenie gotowe. Czasami się opłaca. Zależy co komu sprawia więcej satysfakcji, zdobyta wiedza podczas pracy czy zarobiony pieniądz w krótkim czasie. Etap ze zdobytą wiedzą już przerabiałem, teraz przerabiam ten drugi :) Może później wrócę do pierwszego, albo odkryję jeszcze inny :)
  • #20
    krisRaba
    Level 31  
    Czasami warto brać też pod uwagę powtarzalność. Jeśli wiesz że dany kawałek wykorzystasz wiele razy i dużo pracujesz z daną rodziną, to warto pogrzebać. Jak to jednorazówka, to czasem i tak trzeba, a czasem nie warto kopać się z koniem ;-)
  • #21
    katakrowa
    Level 22  
    Równie dobrze mogło by tego tematu nie być bo każdy ogarnięty i tak wie, że technicznie wykonanie takiego urządzenia jest możliwe więc nikt tu Ameryki nie odkrywa. Ja osobiście nie rozumiem celu prezentacji tego typu konstrukcji nie udostępniając kodu źródłowego. Cały post i temat z mojego punktu widzenia nie mają żadnego sensu skoro nie mam możliwości podejrzeć istoty rozwiązania. Chyba, że autor jedynie chce się pochwalić, że coś zrobił ... Gdyby nie wpisy kolegi SIMW to przeczytanie tematu byłoby zwykłą stratą czasu.
    Tłumaczenie się "pracą za darmo" jest dziecinne bo przecież i tak nawet grosza na tej konstrukcji nie zarobisz.
  • #22
    piotr_go
    DIY electronics designer
    katakrowa wrote:
    Równie dobrze mogło by tego tematu nie być bo każdy ogarnięty i tak wie, że to da się to zrobić.

    Hehe, i potem powstaje projekt gdzie kupiona karta dźwiękowa albo chiński moduł zostaje przyklejony termoglutem w jakimś pudełku. (tak wiem, użyłem chińskiego modułu, i nawet bez pudełka :D )

    katakrowa wrote:
    Chyba, że autor jedynie chce się pochwalić, że coś zrobił

    Tak, dokładnie, masz coś przeciwko?
    Nie wiem jak ty, ale ja jak czytam o jakimś projekcie to się zastanawiam jak bym sam to zrobił.
    Nigdy nie używałem żadnego kodu który ludzie tu zamieszczają. Wystarcza mi inspiracja.
  • #23
    katakrowa
    Level 22  
    piotr_go wrote:
    Hehe, i potem powstaje projekt gdzie kupiona karta dźwiękowa albo chiński moduł zostaje przyklejony termoglutem w jakimś pudełku. (tak wiem, użyłem chińskiego modułu, i nawet bez pudełka )

    Tak już widzę te tłumy czychające na Twój kod z polskojęzycznej strony.
    Wskaż mi tylko jeden taki przykład w którym ktoś uruchomił produkcję jakiegokolwiek urządzenia bazując na kodzie użytkownika z elektrody... Do tego w Chinach.
  • #24
    piotr_go
    DIY electronics designer
    katakrowa wrote:
    Tak już widzę te tłumy czychające na Twój kod z polskojęzycznej strony.

    Jak poszukasz to znajdziesz np. tłumaczenia na rosyjski.
    Jeden z przykładów:
    https://radioparty.ru/device/stm/693-clock-alarm-stm8sx03 z tego tematu: https://www.elektroda.pl/rtvforum/topic3384033.html
    Autor ze schematu usunięty.

    katakrowa wrote:
    Wskaż mi tylko jeden taki przykład w którym ktoś uruchomił produkcję jakiegokolwiek urządzenia bazując na kodzie użytkownika z elektrody... Do tego w Chinach.

    Aliexpress, słowo klucz: "remzibi"
  • #25
    katakrowa
    Level 22  
    Przecież tam linkują do Twojego filmy na YT. Ja raczej bym się cieszył, że ktoś skorzystał z mojego rozwiązania zamiast robić z siebie ofiarę za kilka euro - bo pewnie taka jest skala tego procederu ale to oczywiście kwestia osobistego podejścia i nie mam zamiaru wymuszać na Tobie jakiejkolwiek zmiany.
    Od lat śledzę Twoje projekty i wiem, że masz wiedzę i umiejętności, którymi warto podzielić się z innymi (nie każdy to złodziej) z drugiej strony obiektywnie na nie patrząc nie robisz nic odkrywczego aby popadać w paranoję. Dlatego podtrzymuję swoje zdanie, że wartość Twoich postów jest dużo mniejsza właśnie z powodu braku kodów. Np taka implementacja VGA na 8051 - sam jak jeszcze bardziej byłem związany z elektroniką chciałem takie coś zrobić. Dziś taki projekt poza tym, że jest ciekawostką nie ma żadnej wartości ... po co to "chronić" jednocześnie odbierając temu całą wartość edukacyjną i merytoryczną. Ja bym sobie to chętnie pooglądał z ciekawości a nie chęci okradania kogokolwiek.

    Sam żyję z wytwarzania Oprogramowania i nawet w swoich rozwiązaniach nie ukrywamy przed klientami kodu "oczywistego" (jak np. wspomniany zegarek). Daleki też jestem od propagowania idei open-source bo także uważam, że praca kosztuje ... Spójrz jednak na to wszystko z innej strony. Nie jestem elektronikiem a zajmuję się tym jedynie hobbystycznie, Jestem natomiast analitykiem systemów i także programuję ale na zupełnie innym poziomie abstrakcji niż dzieje się to w elektronice. Język C nie jest moim ulubionym nie umiem go a do tego nie lubię. Na co dzień programuję w innych językach. Hobbystycznie zajmuję się różnymi projektami audio, którymi dzielę się także na tym forum. Od dwóch lat pracuję nad systemem przetwarzania dźwięku w czasie rzeczywistym bazującym na algorytmach genetycznych i sieciach neuronowych i co ciekawe z tą częścią nie mam problemów bo na tym akurat się znam ... Mam natomiast dużo problemów z samym wdrożeniem się w STM ( bo właśnie to uC wybrałem jako docelową platformę ). Wchodząc w Twój temat niezmiernie się ucieszyłem bo poniekąd mógł on być pomocą w rozwiązaniu kilku upierdliwych problemów, które muszę rozwiązać aby wszystko połączyć w całość ... a tu kicha nie ma kodu. Z Twoim kodem czy bez i tak to zrobię - pewnie zajmie mi to więcej czasu, który wolałbym poświęcić na dopracowanie części analizującej dane ale trudno. Finalnym rozwiązaniem i kodem na 100% podzielę się ze społecznością i obojętne jest mi to w jaki sposób i czy zostanie to dalej wykorzystane bo to tylko DIY i hobby, któremu do sensownych komercyjnych rozwiązań i tak bardzo daleko ... Gdybym uważał, że to co robię jest tak bardzo wyjątkowe, że trzeba to chronić to bym zrobił z tego produkt i nawet HEX`a nie udostępniał a skoro już udostępniam to wszystko.
    Zauważ, że Ci co "ukradli" Twój HEX zegarka są na tyle słabi i bezczelni, że pewnie nawet jak byś udostępnił kod to by z niego nie skorzystali bo ich interesował włąśnie ten HEX. Gdyby mieli pojęcie o programowaniu to by raczej napisali to sami po swojemu.

    Także podsumowując myślę, że więcej dobrego byś dla świata i ogólnego rozwoju elektroniki wniósł udostępniając to co piszesz bo te faktyczne straty finansowe chyba nie są tak ogromne by warte były Twoich nerwów czy nawet uwagi - złodzieje na świecie byli są i będą. Około 20 lat temu mi też bezczelnie ukradli skompilowany program, podmienili w exe dane autora i sprzedawali taniej a to tego jeszcze do allegro zgłosili mnie jako oszusta co skutkowało zablokowaniem mojego konta :-) Jak widać nie miało znaczenia czy bym kod udostępnił czy nie. Zanim się przed allegro wytłumaczyłem to już legalna konkurencja napisała swoje rozwiązanie po swojemu ... Program kosztował 25 zł a w ciągu 3 dni zarobiłem na nim 4000zł ... Pewnie zarobiłbym 3 albo 4 razy tyle gdyby nie wspomniany incydent. Był to gotowy program do podziału łącza internetowego SDI - wówczas bardzo popularnego. Sama jego idea była jednak prosta a liczył się pomysł więc mądra konkurencja szybko to zrobiła po swojemu. Trochę jak z tym zegarkiem ... To nie są produkty czy rozwiązania na których będziesz zarabiał latami ...
  • #26
    piotr_go
    DIY electronics designer
    katakrowa wrote:
    Przecież tam linkują do Twojego filmy na YT

    Nie lubię YT. Trzymam tam tylko filmy. Działają lepiej niż te z serwerów elektrody.

    katakrowa wrote:
    Sam żyję z wytwarzania Oprogramowania i nawet w swoich rozwiązaniach nie ukrywamy przed klientami kodu

    No widzisz, mnie za to nie płacą więc kodu nie ma i nie będzie.

    katakrowa wrote:
    myślę, że więcej dobrego byś dla świata i ogólnego rozwoju elektroniki wniósł udostępniając

    :D ...i wszyscy byli by szczęśliwi, a na świecie zapanował by pokój i dobrobyt.
  • #27
    katakrowa
    Level 22  
    piotr_go wrote:
    No widzisz, mnie za to nie płacą więc kodu nie ma i nie będzie.

    No cóż szkoda. Mnie uczyli żeby nie być jak "pies ogrodnika" co sam nie zje ale drugiemu nie da. Niestety jak widać moje argumenty Cię nie przekonują czego nie rozumiem tym bardziej, że w przypadku prezentacji własnej pracy sam odbierasz jej ogromy walor edukacyjny.
    Dla bezpieczeństwa sugeruję też nie rozdawać skompilowanych wsadów bo to one a nie kod źródłowy są celem potencjalnych "złodziei" ( przynajmniej tych, z którymi miałeś do czynienia ).

    Poza tym życzę kolejnych udanych projektów i dobrej zabawy podczas ich tworzenia.
  • #28
    remzibi
    Level 24  
    katakrowa wrote:
    piotr_go wrote:
    Hehe, i potem powstaje projekt gdzie kupiona karta dźwiękowa albo chiński moduł zostaje przyklejony termoglutem w jakimś pudełku. (tak wiem, użyłem chińskiego modułu, i nawet bez pudełka )

    Tak już widzę te tłumy czychające na Twój kod z polskojęzycznej strony.
    Wskaż mi tylko jeden taki przykład w którym ktoś uruchomił produkcję jakiegokolwiek urządzenia bazując na kodzie użytkownika z elektrody... Do tego w Chinach.


    Proszę bardzo, ja byłem ofiarą takiego działania
    nauka drogo kosztowała, niech inni się uczą na moich błędach i nie popełniają swoich.


    BTW piotr_go - bardzo fajny i zgrabny projekcik, gratuluję :)

    EDIT teraz dopiero doczytałem, że już podałeś mój przykład :) - czyli nie ma co się tu za dużo ani tłumaczyć ani rozwijać, po prostu mądrze jest chronic swoją własność i tyle :)
  • #29
    katakrowa
    Level 22  
    remzibi wrote:
    EDIT teraz dopiero doczytałem, że już podałeś mój przykład - czyli nie ma co się tu za dużo ani tłumaczyć ani rozwijać, po prostu mądrze chronic swoją własność i tyle


    W takim razie w kontekście podanych przykładów udostępnianie HEX'ów i PCB mądre nie jest. Dla własnego bezpieczeństwa i spokoju ducha nie powinniście udostępniać nic bo przecież mogą Wam ukraść. Poza tym wg mnie to "kradzieże mienia" na poziomie Jasia, który w piaskownicy zabrał łopatkę Zosi ... Ale oczywiście macie prawo nawet takie coś chronić. Dla mnie to jednak śmieszne.
    To tak jakby zaprezentować wzmacniacz nie pokazując jego środka a jedynie mówić, że jest zrobiony super i gra doskonale.
  • #30
    jankomuzykant
    Level 14  
    katakrowa wrote:
    Tak już widzę te tłumy czychające na Twój kod z polskojęzycznej strony. Wskaż mi tylko jeden taki przykład w którym ktoś uruchomił produkcję jakiegokolwiek urządzenia bazując na kodzie użytkownika z elektrody... Do tego w Chinach.

    Mój, ale w Polsce i mam to gdzieś, bo to śladowy biznes.