Garage ShoutBox
Tylko zalogowani użytkownicy mogą wejść do czatu
lub Zarejestruj aby założyć posty i tematy.

ESP32 + czytnik kart micro SD

Podłączyłem czytnik kart micro SD (link) do ESP32 poprzez  magistralę SPI. Do ESP32 wgrane oprogramowanie Grbl_ESP32 (v. 1.3a). Niestety wynikły pewne kłopoty z odczytem kart. Otóż wysyłając (poprzez monitor szeregowy Arduinio IDE) polecenie "$SD/Status" powinienem otrzymać w odpowiedzi wyświetlenie nazwy plików zawartych na karcie, otrzymuję jedynie komunikat "SD card detected". Po wysłaniu polecenia "$SD/Run=/nazwa.gcode" ESP prawidłowo czyta plik i ploter (midTbot -link)wykonuje zapisany kod!!! Dlaczego nie jest wyświetlana zawartość karty choć jest prawidłowo odczytywana???

Proszę o pomoc w rozwiązaniu problemu.

 

Jeśli się za to zabrałeś to pewnie czytałeś ten opis z githuba ( w załączniku ) Zwróć uwagę, że SD Status powtarza się dwa razy ( sądzę że jest to błąd edycji dokumentu )  SD Status powie ci czy karta jest czy nie jest widziana przez urządzenie. Nie mam jak sprawdzić obecnie ESP32, ale idąc tropem powiedziałbym że prawidłowa komenda to będzie $SD/CardContent lub $SD/Content. Sprawdź 🙂

 

Dodane pliki:
  • Aby przesyłać pliki musisz się zalogować.

Przeanalizowałem kod i znalazłem odpowiednie wpisy. Web interface jest importem firmware'u WIFI od Luca ESP3D ( którego my też używamy ) Luc co prawda opisuje w dokumentacji komendy kodami [ESP200] i [ESP210] ale to wystarczy by kontynuować poszukiwania. Nie myliłem się co do błędu, a tylko co do komendy, która nawiasem mówiąc jest tak naturalna dla odczytu pliku jak tylko być może, bo używana jeszcze w zwykłym Basic'u w latach 80 wyślij $SD/List 

Daj znać czy poszło i czy problem rozwiązany. Miłego dnia.

W załączonym screenie masz wyjaśnienie z kodem oznaczonym na czerwono - to Status. Zielony do List

P.S. Nie mam jak tego w tej chwili sprawdzić ale sądzę, że możesz zamiennie dla komend pisanych używać kodów Luca Czyli  ESP200 lub ESP210. Tych komend jest dużo więcej, wszystkie znajdziesz w dokumentacji w pliku tekstowym w oryginalnej paczce z Githuba /doc/Commands.txt

Dodane pliki:
  • Aby przesyłać pliki musisz się zalogować.

Bardzo dziękuję za pomoc.

Obsługa kart SD za pomocą wysyłania poleceń $SD/Status, $SD/List, $SD/Run, a także odpowiednich komend Luca jest prawidłowa i działa bez problemu!

Mam jednak kłopot z wykorzystaniem panelu obsługi kart SD w "Interfejsie sieciowym ESP3D dla Grbl_ESP32" (ESP3D Web UI for Grbl_ESP32) - karta nie jest odczytywana!

Po kliknięciu "Refresh" kilka sekund szuka, po czym wyświetla komunikat "No connection"  (jak na załączonym screen-ie).

Nie wiem na czym polega problem.

Dodane pliki:
  • Aby przesyłać pliki musisz się zalogować.

Moze to byc spowodowana zbyt dlugimi nazwami plikow na karcie dopuszczalne to 8 znakow . 3 znaki jesli dobze pamietam

Tak, o tym wiem i nazwy plików na karcie mają mniej niż 8 znaków! Użyłem kart 8GB i 2GB - bez rezultatu! Coś chyba musi być nie tak w konfiguracji ESP32.

Wypróbowałem na Win7 i Win10 - ten sam skutek!  Zauważyłem, że próba odczytu kart SD w panelu powoduje przerwanie połączenia WiFi z ESP32 w momencie wyświetlenia komunikatu "No connection". Chyba komunikat odnosi się do braku połączenia WiFi.

Dodano 25.08.2021r.

Zauważyłem, że na schemacie mojego kontrolera jest jedno dodatkowe połączenie do czytnika kart SD oznaczone jako SD_CD (Pin 9) połączone z GPIO17 (Pin 28) ESP32. Takiego połączenie nie ma na module kart micro SD, który zastosowałem (patrz dołączony rysunek). Czy to może być przyczyną problemów z odczytem kart?

Dodane pliki:
  • Aby przesyłać pliki musisz się zalogować.

Czy nikt nie ma pomysłu na rozwiązanie problemu?

Zgodnie ze schematem na pinie 9 czytnika w momencie włożenia karty pojawia się GND i jest podane na GPIO17 ESP32 . Po co nie wiem! Do próby dodałem to połączenie do mojego  układu ale nic to nie zmieniło i w dalszym ciągu nie jet wyświetlana zawartość karty SD w panelu ESP3D Web UI.

Poradziłem sobie! Wystarczyło w menedżerze płyt w Arduino IDE zainstalować bibliotekę ESP32 w wersji 1.0.3 . Pierwotnie miałem zainstalowaną wersję nowszą 1.0.6 ale okazało się, że zawiera błędy! Teraz już wszystko działa dobrze!