Fórum témák

» Több friss téma
Lapozás: OK   139 / 139
(#) kameleon2 válasza TavIR-AVR hozzászólására (») Júl 28, 2025 /
 
Milyen gyári kódra gondolsz? Van erre minta? Ott hasal el, amikor le kellene tölteni Error 301, Error 404, vagy Error-1 a válasz. Nekem úgy tűnik - el sem jut oda, hogy lehessen bárhová letölteni. Ha van valakinek olyan mintakód részlete, ami segíthet és működik - érdekelne.
A hozzászólás módosítva: Júl 28, 2025
(#) kameleon2 válasza (Felhasználó 32034) hozzászólására (») Júl 30, 2025 /
 
Nem 1-es, hanem "-1" hibaüzenetet kaptam, ami a chatgpt szerint létező hibakód.
Idézet:
„Az httpCode == -1 pont ilyen rejtett SSL/TLS kudarcot jelez”
Van egy mintakódom, ebből talán jobban látszik a szándék:
  1. #include <WiFi.h>
  2. #include <HTTPClient.h>
  3. #include <unzipLIB.h>
  4. #include <Adafruit_GFX.h>
  5. #include <Adafruit_ST7735.h>
  6. #include <SPI.h>
  7.  
  8. // ----- PINOK -----
  9. #define TFT_CS     2
  10. #define TFT_RST    5
  11. #define TFT_DC     0
  12. #define TFT_SCLK   3
  13. #define TFT_MOSI   4
  14. #define EAR_PIN    6
  15.  
  16. // ----- WIFI -----
  17. const char* ssid = "xxxxx";
  18. const char* password = "yyyyy";
  19.  
  20. // ----- HARDVER -----
  21. SPIClass spi(FSPI);
  22. Adafruit_ST7735 tft = Adafruit_ST7735(&spi, TFT_CS, TFT_DC, TFT_RST);
  23.  
  24. // ----- AUDIO -----
  25. void playBlock(uint8_t* data, int len) {
  26.   for (int i = 0; i < len; i++) {
  27.     uint8_t b = data[i];
  28.     for (int j = 0; j < 8; j++) {
  29.       digitalWrite(EAR_PIN, (b & 0x80) ? HIGH : LOW);
  30.       delayMicroseconds(300);
  31.       b <<= 1;
  32.     }
  33.   }
  34.   digitalWrite(EAR_PIN, LOW);
  35.   delay(10);
  36. }
  37.  
  38. // ----- UNZIP + PLAY -----
  39. bool unzipAndPlay(uint8_t* zipBuf, int zipLen) {
  40.   UNZIP zip;
  41.   if (zip.openZIP(zipBuf, zipLen) != 0) return false;
  42.   if (zip.gotoFirstFile() != 0) return false;
  43.   if (zip.openCurrentFile() != 0) return false;
  44.  
  45.   const int MAX_LEN = 49152;
  46.   uint8_t* data = (uint8_t*)malloc(MAX_LEN);
  47.   if (!data) return false;
  48.  
  49.   int total = 0;
  50.   while (total < MAX_LEN) {
  51.     int r = zip.readCurrentFile(&data[total], MAX_LEN - total);
  52.     if (r <= 0) break;
  53.     total += r;
  54.   }
  55.   zip.closeCurrentFile();
  56.  
  57.   if (total < 3) {
  58.     free(data);
  59.     return false;
  60.   }
  61.  
  62.   if (data[0] == 0x13 && data[1] == 0x00) {
  63.     int ptr = 0;
  64.     while (ptr + 2 < total) {
  65.       uint16_t len = data[ptr] + (data[ptr + 1] << 8);
  66.       if (ptr + 2 + len > total) break;
  67.       playBlock(&data[ptr + 2], len);
  68.       ptr += 2 + len;
  69.     }
  70.   } else if (total > 10 && memcmp(data, "ZXTape!", 7) == 0) {
  71.     int ptr = 10;
  72.     while (ptr + 4 < total) {
  73.       if (data[ptr] == 0x10 && ptr + 4 <= total) {
  74.         uint16_t len = data[ptr + 2] + (data[ptr + 3] << 8);
  75.         if (ptr + 4 + len > total) break;
  76.         playBlock(&data[ptr + 4], len);
  77.         ptr += 4 + len;
  78.       } else {
  79.         break;
  80.       }
  81.     }
  82.   } else {
  83.     free(data);
  84.     return false;
  85.   }
  86.  
  87.   free(data);
  88.   return true;
  89. }
  90.  
  91. // ----- ZIP LETÖLTÉS IP + HOST fejléccel -----
  92. bool downloadAndPlayZIP() {
  93.   WiFi.begin(ssid, password);
  94.   tft.fillScreen(ST77XX_BLACK);
  95.   tft.setCursor(0, 0);
  96.   tft.println("WiFi kapcsolodas...");
  97.  
  98.   int tries = 0;
  99.   while (WiFi.status() != WL_CONNECTED && tries++ < 20) {
  100.     delay(500);
  101.   }
  102.  
  103.   if (WiFi.status() != WL_CONNECTED) {
  104.     tft.println("WiFi HIBA!");
  105.     return false;
  106.   }
  107.  
  108.   tft.println("Csatlakozva!");
  109.   delay(500);
  110.   tft.print("IP: ");
  111.   delay(500);
  112.   tft.println(WiFi.localIP());
  113.   delay(1000);
  114.  
  115.   // LETÖLTÉS IP + Host fejléc trükkel
  116.   tft.println("Letoltes inditasa...");
  117.   HTTPClient http;
  118.   http.begin("http://77.68.76.140/pub/sinclair/games/m/ManicMiner.tzx.zip");
  119.   http.setUserAgent("SpecPitty/1.0");
  120.   http.addHeader("Host", "worldofspectrum.org");
  121.   int httpCode = http.GET();
  122.  
  123.   if (httpCode != 200) {
  124.     tft.print("HTTP hiba: ");
  125.     delay(1000);
  126.     tft.println(httpCode);
  127.     delay(2000);
  128.     return false;
  129.   }
  130.  
  131.   int len = http.getSize();
  132.   tft.print("Meret: ");
  133.   tft.println(len);
  134.   delay(1000);
  135.  
  136.   uint8_t* buf = (uint8_t*)malloc(len);
  137.   if (!buf) {
  138.     tft.println("Memoria HIBA!");
  139.     return false;
  140.   }
  141.  
  142.   WiFiClient* stream = http.getStreamPtr();
  143.   int pos = 0;
  144.   tft.println("Letoltes...");
  145.   while (http.connected() && pos < len) {
  146.     if (stream->available()) {
  147.       buf[pos++] = stream->read();
  148.     }
  149.   }
  150.   http.end();
  151.  
  152.   tft.fillScreen(ST77XX_BLACK);
  153.   tft.setCursor(0, 0);
  154.   tft.println("Kicsomagolas...");
  155.   bool ok = unzipAndPlay(buf, len);
  156.   free(buf);
  157.  
  158.   if (!ok) {
  159.     tft.println("Kicsomagolasi hiba!");
  160.     delay(2000);
  161.   }
  162.  
  163.   return ok;
  164. }
  165.  
  166. // ----- SETUP -----
  167. void setup() {
  168.   pinMode(EAR_PIN, OUTPUT);
  169.   digitalWrite(EAR_PIN, LOW);
  170.  
  171.   spi.begin(TFT_SCLK, -1, TFT_MOSI, TFT_CS);
  172.   tft.initR(INITR_REDTAB);
  173.   tft.setRotation(1);
  174.   tft.fillScreen(ST77XX_BLACK);
  175.   tft.setTextColor(ST77XX_GREEN);
  176.   tft.setTextSize(1);
  177.   tft.setCursor(0, 0);
  178.   tft.println("SpecPitty v0");
  179.  
  180.   bool success = downloadAndPlayZIP();
  181.   tft.fillScreen(ST77XX_BLACK);
  182.   tft.setCursor(0, 0);
  183.   if (!success) {
  184.     tft.println("Letoltes/Kicsomag. hiba!");
  185.   } else {
  186.     tft.println("Betoltes kesz!");
  187.   }
  188. }
  189.  
  190. // ----- LOOP -----
  191. void loop() {
  192.   delay(1000);
  193. }
A hozzászólás módosítva: Júl 30, 2025
(#) TavIR-AVR válasza pajesz66 hozzászólására (») Aug 5, 2025 /
 
ESP programvédelem – röviden

ESP8266/ESP32 esetén van lehetőség a program kiolvasásának megnehezítésére, de
nem 100%-os a védelem. Az ESP32-ben hardveresen elérhető a
Flash Encryption és Secure Boot funkció – ezzel a program titkosítva kerül a flash-be,
és csak az adott chip képes futtatni. ESP8266-nál nincs teljes hardveres titkosítás,
ott csak firmware titkosítás + OTA jelszavas frissítés használható.
A védelem bekapcsolása után a soros kiolvasás és SPI-flash dump értelmetlen lesz,
de fizikai támadás ellen nem véd.

Részletes leírás:
ESP32 Flash Encryption dokumentáció
ESP8266 Secure OTA leírás


Tipp: Olyan chipre fejlessz, ami a tokozaton belül van a flash!
(#) kameleon2 válasza (Felhasználó 32034) hozzászólására (») Aug 7, 2025 /
 
Erről a linkről indultam: Eredeti link amiről PC-re lejött a fájl, de esp-re az említett hibákat kaptam.
(#) kameleon2 válasza (Felhasználó 32034) hozzászólására (») Aug 8, 2025 /
 
Leírtam... Több módon próbáltam nem csak IP címmel - ami akkor egyébként böngészőből még működött. hanem a linken szereplő https, http protokollokkal. Azaz nameserverrel és nélküle, de mindegyik alkalommal a mikrokontrolleres próbálkozásnál az említett hibákat kaptam, ami úgy tűnik a https miatt van és nincs tanúsítvány. De mivel látom a kérdést sem értik sokan, küzdök tovább, hgy egy egyszerű zipet ebben a nagy IT káoszban hogyan tudjak letölteni egy célhardverre, https protokollal, ha már az ftp-t is kinyírták.
(#) Gafly válasza kameleon2 hozzászólására (») Aug 8, 2025 /
 
Nekem az benne a furmány (mert én is nézegettem), hogy maga szerver elvileg nem (sem IP címmel, sem DNS-el) érhető el, de maga a fájl pedig letöltődik, és ránézésre teljesen ép.
Idézet:
„08/08/2025 08:43 AM <DIR> ManicMiner.tzx
08/08/2025 08:35 AM 14,220 ManicMiner.tzx.zip”

Belenézve is, bár ugye binárisról a fene mondja meg...
A hozzászólás módosítva: Aug 8, 2025
(#) majkimester válasza kameleon2 hozzászólására (») Aug 8, 2025 /
 
Probáltál valahogy* TCP dump-ot készíteni a forgalomról?
Wireshark-ba betöltve látni lehetne mi is folyik a vonalon.

* Anno én az ENC28j60-s fejlesztésnél egy buta hub-bal oldottam meg, hogy a PC is megkapja az összes csomagot, ami az ENC küldött és fogadott, és így tudtam rögzíteni, de manapság biztosan vannak szofisztikáltam megoldások. Pl. egy router ami támogatja a dump mentést, vagy linux alapu és ssh-n be lehet rá jelentkezni, stb.
(#) majkimester válasza (Felhasználó 32034) hozzászólására (») Aug 8, 2025 / 1
 
a 301-hez mondjuk tényleg nem kell, a -1 -re irtam.
(#) kameleon2 válasza (Felhasználó 32034) hozzászólására (») Aug 14, 2025 /
 
Kipróbáltam a linket. Böngészőből (firefox) lejön, a célhardver (ESP) nem tölti le. Hibát dob. Pedig kap IP-t kap netet.
(#) kameleon2 válasza (Felhasználó 32034) hozzászólására (») Aug 14, 2025 /
 
A link . Eredmény http hiba: 301. PC firefox meg letölti.
A hozzászólás módosítva: Aug 14, 2025
(#) B0nsh44 válasza kameleon2 hozzászólására (») Aug 15, 2025 /
 
Mi akadályoz abban, hogy feltöltsd egy olyan tárhelyre ezt a fájlt, ahonnan az esp -vel letudod húzni?
(#) lalca válasza kameleon2 hozzászólására (») Aug 15, 2025 /
 
Az org és a pub között miért van 2 perjel?
(#) kameleon2 válasza (Felhasználó 32034) hozzászólására (») Aug 20, 2025 /
 
Már reszelem jobbról, balról, de az alap probléma nem a per jelekkel van, vagy szintaktikai dolgokkal. A probléma az, hogy ahogyan változtatják a szabványokat egyre használhatatlanabb és lassabb lesz a hozzáférés egy user, vagy eszköz számára, a hackerek meg azt csinálnak, amit akarnak. megszüntették az ftp támogatását, de ha egy publikus ftp-ről akarnék leszedni adatot, akkor már nem is működik az, ami nemrég, gond nélkül ment. Ha http - azt nem támogatják, a https-hez meg tanúsítvány kell. Beáldoztam nem kevés memóriát a tanúsítványhoz, így legalább már az oldalak nem rúgnak ki, csak éppen kiválasztani nem tudom egyszerűen az általam letölteni kívánt fájlt. Igen - régebben én is vétettem olyan pont hibát, hogy egy napig kellett keresgélnem, mire meglett. De itt sajnos "Az új jobb!" szellemeivel kell megküzdenem, ha kifogástalanra akarom megírni a szoftvert. Az sem mindegy, milyen platformon. Arduino ide alól belefutottam 100 hibába, amihez - mint kiderül egyetlen kapcsolót kellett volna átkapcsolni az ide felületen. Ebben is próbálkozom, de mellékvágányként minipythonból is készítettem szoftvert, ami meg működött fél órán belül. Azaz nem a linkekkell, vagy a beállításokkal küzdök, hanem a hülye, túlspirált szabványokkal, amik a C-t egyre kevésbé kultiválják. Attól félek így- ha elkészül és működik is - jön egy újabb szabvány és mehet a kukába. Sebaj, született 3 új szabadalmam, hogy ne kelljen a sok hülye multira támaszkodni. Előbb-utóbb csak változik jó irányba is valami. Egy Senior soha nem adja fel!
(#) kameleon2 válasza B0nsh44 hozzászólására (») Aug 20, 2025 /
 
A kihívás... Meg is lett az eredménye. 4 órám ráment, de kiderült, hogy a tanúsítvány csak akkor tud jó lenni, ha time szerverrel is hitelesített idő van hozzá. Egye meg a radai rosseb...
(#) kameleon2 válasza (Felhasználó 32034) hozzászólására (») Aug 22, 2025 /
 
Válaszokat nem kaptam, csak nagyívű kioktatást. Lassan ezért nem is fórumozok. Leírtam pontosan, hogy mi a célom és ehhez kerestem megoldást, bármilyet. Akár mintakódot, amivel el lehet indulni. De az nem segítség, ha lenézed a másikat. Nem varázsszavakra van szükségem, meg rövidítésekre. 88 óta programozok vagy 100 nyelven, csak ezt a mikrokontrollert nem ismerem. Nem Linux szervert akarok használni, nem repülőgép anyahajót szeretnék készíteni, csak egy nyamvadt zip fájlt letölteni és kicsomagolni. Szerintem a kód elég konkrétum volt. Részemről itt a vége.
(#) dara válasza (Felhasználó 32034) hozzászólására (») Okt 14, 2025 /
 
Vettem 3Db ESP32 C3 super minit és ha rádugom a pc re, soros usb eszközként kapcsolódik,eldobja és ezt ismétli folyamatosan mind a három.Mi lehet a probléma?
Következő: »»   139 / 139
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem