[#1] Internet przez ESP8266
Witam, czy ktoś może próbował łączyć się z siecią przez serial port za pomocą płytki ESP? W internecie jest trochę stron na ten temat. Jak to ma się z Amigą? Czy lepiej zbudować Plipbox?
[#2] Re: Internet przez ESP8266

@ryshard, post #1

Moduł ESP programowałem/konfigurowałem pod drukarki 3D, trochę się tym bawiłem z różnym skutkiem. Z Amigą nie próbowałem, ale wydaje się, że to jest możliwe do zrobienia. Na pewno wymiana plików przez kartę SD spiętą z modułem ESP jest do zrealizowania (nie przez port serial). Z braku czasu temat u mnie poległ. W najbliższym czasie będę próbował spiąć z Amigą gotowy moduł (bazujący na ESP) ale wpięty w miejsce karty SD w czytniku na porcie IDE (A600/A1200), ewentualnie w adapterze portu PCMCIA (wymiana plików z Amigą przez WiFi).
[#3] Re: Internet przez ESP8266

@Adinfo, post #2

Otóż to. W A600 dane mogę przenieść przez CF na PCMCIA, na A500 z TF536 brakuje mi czegoś do transferu danych, a ESP z Wifi to wygodna sprawa.
[#4] Re: Internet przez ESP8266

@ryshard, post #3

Mi brakuje bardziej samego przenoszenia plików bez wyjmowania kart z Amigi niż samego Internetu, może ktoś już próbował użycia ESP w Amidze.
[#5] Re: Internet przez ESP8266

@ryshard, post #1

Zestawiając Plipboksa z ESP:
* Plipbox będzie znacznie szybszy, bo łączy się po porcie równoległym.
* Plipbox od firmware bodaj 0.3 działa jak pełnoprawna karta ethernetowa, więc Ami będzie widoczna w sieci jako normalne urządzenie. Na ESP musisz zainstalować mostek z WiFi na SLIP, postawić serwer PPP lub zastosować inne rozwiązanie w tym stylu, więc Amiga nie będzie w tej samej podsieci. Choć praktycznie nie musi to być problemem jeśli nie chcesz z niej niczego serwować (no i musisz wtedy łączyć się z FTP w trybie PASV).
* Na ESP nie znam żadnego rozwiązania out-of-the box. Możesz zainstalować wyżej wspomniany firmware z mostkiem SLIP, albo spróbować odpalić serwer PPP. Nie znalazłem żadnego firmware z pppd więc zamiast tego zainstalowałem ESP-Link, a samo łącze udostępniałem z Maca na ESP po sockecie TCP (gdybyś był zainteresowany, mogę to rozpisać punkt po punkcie).

Finalnie odłożyłem zabawy z ESP na później, bo dużo łatwiej jest użyć Raspberry Pi, postawić tam małego Linuksa, skonfigurować pppd i tyle. Mam w planach, żeby kiedyś spróbować zmodyfikować firmware Plipboksa i wpiąć ESP8266 zamiast ENC28J60, albo – jako wersja minimum zmontować ESP z mostkiem WiFi - SLIP + Arduino z PLIP2SLIP. Jeśli uda mi się do tego zabrać – opiszę, co i jak.
[#6] Re: Internet przez ESP8266

@ryshard, post #3

Znalazłem jeszcze to rozwiązanie: http://eab.abime.net/showthread.php?t=93588
[#7] Re: Internet przez ESP8266

@Adinfo, post #4

Jeśli chodzi o samo przenoszenie plików, to ESP nadaje się do tego rewelacyjnie. Wygospodaruję chwilę dziś albo jutro i opiszę krok po kroku jak to ustawić, bo dość często korzystam z tego setupu.
[#8] Re: Internet przez ESP8266

@btr, post #7

tutaj wersja pod C64 : link
C64 ma RS232 w UserPort - czyli powinno to się łatwo przenieść też pod RS232 w Amidzie (DB25)
[#9] Re: Internet przez ESP8266

@btr, post #7

Coś cisza w temacie. Może chodzi o sdbox:
[#10] Re: Internet przez ESP8266

@ryshard, post #9

No dobra, średnio mi wyszło z tym "jutro albo pojutrze". W weekend robię podejście nr 2.
Co do rozwiązań podrzucanych przez @Adinfo i @ch0mik, oba symulują modemy BBS-owe. Dla modemu TCP generalnie używamy takiego samego hardware'u, czyli po prostu ESP8266 + MAX3232, ale setup jest odrobinę bardziej złożony.
[#11] Re: Internet przez ESP8266

@ryshard, post #9

W ten weekend się udało (-:

Poniżej opiszę jak podłączyć Amigę do internetu kombinacją ESP8266 i SLIP. Tak jak wspominałem, rozwiązanie ma swoje wady – przede wszystkim szybkość, ale ma zasadniczą zaletę: po wstępnym ustawieniu, Ami z ESP działa w pełni samodzielnie.
Jak znajdę kolejny wolny weekend, spróbuję dopiąć do tego ATMegę z plip2slip i powinniśmy dostać bieda-plipboksa z WiFi.

Ale do rzeczy.

Co będzie nam potrzebne:

• Oczywiście moduł ESP8266, wystarczy ESP-01
• Zasiacz 3,3V. Ja użyłem zaslania z USB i stabilizatora LD33V3
• Płytka stykowa, przewody połączeniowe, dwa rezystory 1 KΩ i (opcjonalnie) tact-switch
• Adapter USB-UART
• MAX3232, np. w postaci gotowego modułu (dostępny w cenie gruzu na popularnym serwisie aukcyjnym) plus adapter DB9 - DB25. Ja miałem akurat pod ręką hata do Raspberry Pi, który jest niepotrzebnie duży, ale robi co do niego należy.
• Preferowanie komputer z Linuksem (tylko do konfiguracji!). Najprawdopodobniej na Windowsie będzie dało się z pewnymi modyfikacjami powtórzyć wszystkie kroki, ale nie jestem tego w stanie zagwarantować, bo szczerze mówiąc, jestem mało biegły w tym OS-ie.
• Amiga z zainstalowanym stosem TCP. Poniżej opisuję jak skonfigurować Roadshow, ale jestem pewien, że da się to zrobić też pod AmiTCP, czy Miami.
• Coś do przeniesienia plików na Amigę, zanim podłączymy ją do internetu

Tak jak wcześniej wspominałem, gotowe moduły ESP, które podlinkowali wyżej Koledzy prawdopodobnie będą używalne w poniższym setupie i trzeba będzie je tylko przeflashować i odpowiednio skonfigurować.

Wgrywanie firmware dla ESP

1. Podłączamy ESP i adapter USB-UART do płytki systemowej. Ja skorzystałem z tego opisu.

Uwaga 1: autor ww. opisu wspomina o zewnętrznym zasilaniu, bo ESP zużywa sporo mocy. Większość adapterów USB-UART nie dostarcza wystarczającego prądu przy napięciu 3,3V, więc zewnętrzne zasilanie jest konieczne.

Uwaga 2: Zamiast używać tact switcha między GPIO0 i masą, wygodnie będzie po prostu zewrzeć pin przewodem, a po skończonym flashowaniu odpiąć go. Z kolei reset zdecydowanie wygodniej używa się z tact-switchem.

2. Na maszynie z Linuksem instalujemy esptool i net-tools
3. Pobieramy i rozpakowujemy firmware z Githuba
4. Przełączamy moduł ESP w tryb flashowania

• Upewniamy się, że GPIO0 jest zwarty do masy
• Wciskamy reset

5. Wgrywamy firmware.

• Przechodzimy do katalogu z binarkami firmware:
cd esp_slip_router-master/firmware

• Dla świętego spokoju warto najpierw wyzerować flash ESP. Zdarza się, że pozostałości z poprzedniego firmware doprowadzają do niedeterministycznego zachowania modułu:
esptool.py --port /dev/ttyUSB0 erase_flash

(oczywiście /dev/ttyUSB0 zastępujemy ścieżką odpowiednią dla naszego adaptera USB-UART)

• Wgrywamy właściwy firmware:
esptool.py --port /dev/ttyUSB0 write_flash -fs detect 0x00000 0x00000.bin 0x10000 0x10000.bin


6. Po skończonym flashowaniu wypinamy przewód zwierający GPIO0 z masą i wciskamy reset na naszej płytce stykowej



Konfiguracja modułu

Teoretycznie dałoby się skonfigurować moduł już z poziomu Amigi. Problem jest taki, że domyślny baudrate ustawiony jest na 115200 i nie ma szans, żeby wbudowany port szeregowy zadziałał z taką prędkością.

Alternatywnie możemy przekompilować obraz firmware z innymi domyślnymi wartościami, ale nie miałem czasu, żeby się w to bawić. I tak opisanie tego zajęło mi więcej niż myślałem.

Skonfigurujemy zatem moduł z poziomu Linuksa.

1. Włączamy interfejs SLIP-a:
slattach -L -p slip -s 115200 /dev/ttyUSB0


2. Nadajemy IP interfejsowi SLIP i łączymy się przez telnet do konsoli modułu:
ifconfig sl0 192.168.240.2 pointopoint 192.168.240.1 up mtu 1500
telnet 192.168.240.1 7777


3. Ustawiamy klienta WiFI i baudrate
CMD>set ssid SSID_MOJEJ_SIECI
SSID set
CMD>set password haslo-mojej-sieci
Password set
CMD>set use_ap 0
Using STA interface
CMD>set bitrate 57600
Bitrate will be 57600 after save & reset.
CMD>save
Config saved


I tu uwaga: 57600 baudów to maksimum, jakie mogłem wyciągnąć na A600 z Furią. Powyżej tego komunikacja po prostu nie działała. Przypuszczam, że dałoby się wydusić więcej używając sprzętowej kontroli przepływu (RTS/CTS), ale to ciągnie za sobą wymianę modułu ESP-01 na taki z dodatkowymi GPIO, przekompilowanie firmware, etc. Wolę więc poświęcić ten czas na ustawienie magplipa. Dla gołej Amigi z 68000 zaczynałbym od 9600 baudów i ewentualnie szedł w górę.

Uwaga 2: Bezpieczniej jest trzymać się standardowych wartości baudrate typu 9600, 19200, 38400, 57600. Jeśli ustawimy coś, czego nie obsłuży ESP lub moduł UART, będziemy musieli ponownie flashować urządzenie, bo obecna wersja firmware nie ma opcji sprzętowego resetu ustawień.

4. Jeśli wszystko poszło w porządku, maszyna z Linuksem nie będzie nam potrzebna.

Konfiguracja Amigi

1. Pobieramy cslip.device z Aminetu i kopiujemy go do DEVS:Networks
2. Tworzymy konfigurację interfejsu:

• Przechodzimy do SYS:Storage/NetInterfaces, kopiujemy któryś plik (potrzebujemy tylko ikonkę), przemianowujemy go na SLIP i zmieniamy jego zawartość na następującą:
# Configuration for SLIP connection.
device=cslip.device
unit=0
pointtopoint=yes
address=192.168.240.2
destination=192.168.240.1
mtu=1500
requiresinitdelay=no


Uwaga: jeśli chcemy, aby SLIP łączył się automatycznie, przenosimy plik SYS:Storage/NetInterfaces/SLIP do DEVS:NetInterfaces. Ja zostawiłem go w Storage i dwuklikam ikonkę, kiedy chcę się podłączyć do sieci.

• Tworzymy plik ENVARC:Sana2/slip0.config i wpisujemy następującą zawartość:
serial.device 0 57600 192.168.240.2

Jeszcze raz zwracam uwagę na baudrate!

• W DEVS:Internet/Routes dodajemy:
default 192.168.240.1


• W DEVS:Internet/name_resolution dodajemy swój ulubiony serwer DNS:
nameserver 8.8.8.8


Uwaga: oczywiście nic nie stoi na przeszkodzie, żeby wpisać dowolny inny DNS, np. z naszego domowego routera - z pewnością nieco przyspieszy to rozwiązywanie nazw hostów

Podłączamy

1. Wpinamy moduł MAX3232 w miejsce konwertera USB-UART, nie zapominając o podpięciu do niego zasilania 3,3V.
Tutaj uwaga: według konwencji standardowo terminal RS-232 ma gniazdo męskie, a modem – żeńskie. Zatem teoretycznie, jeśli nasz adapter ma gniazdo męskie, powinniśmy użyć krosowanego kabla do podłączenia go z Amigą. Ale w praktyce jest różnie i warto się upewnić, czy TX modemu prowadzi w linii prostej do RX Amigi i odwrotnie. Ja zwykle jestem leniwy i po prostu odpalam NCOMMa i patrzę, czy cokolwiek pojawia się na konsoli. Jeśli nie - zamieniam TX i RX i sprawdzam jeszcze raz.
2. Odpalamy SYS:Storage/NetInterfaces/SLIP (jeśli nie przenosiliśmy go ze Storage do Devs)
3. Sprawdzamy czy wszystko działa, np. wpisując w shellu
ping ppa.pl

4. Cieszymy się koszmarnie powolnym, ale działającym bezprzedowowym internetem na Amidze!



Poza zamieszczonymi w tekście odnośnikami opierałem się o:
• Dokumentację Roadshow
Skrypt instalacyjny napisany przez Terriblefire (zmodyfikowałem go nieco, żeby zgadzał się routing)
• Bloga Lallafa
• Własne doświadczenia (-;



Ostatnia aktualizacja: 26.04.2021 12:41:49 przez btr
10
[#12] Re: Internet przez ESP8266

@btr, post #11

Z ciekawostek: udało mi się spiąć ESP8266 z routerm SLIP i ATMegę z plip2slip.
Wymaga to trochę nagimnastykowania się:

  • SLIP router trzeba przekompilować z włączonym RTS/CTS, bo sprzętowa kontrola przepływu jest konieczna przy wysokich wartościach baudrate
  • Wymagany jest moduł ESP-12, bo ma wystawione odpowiednie piny dla RTS/CTS
  • Potrzebna jest konwersja poziomów logicznych, bo ATMega taktowana na 16MHz wymaga zasilania 5V, a ESP pracuje na 3.3V


Ale generalnie da się i dostajemy WiFi z prędkościami rzędu 15-20 kB/s, czyli coś na poziomie pierwszych wersji Plipboksa (dla porównania, ESP wpięty bezpośrednio dawał coś między 1 i 5 kB/s). W kolejnym kroku będę próbował przenieść plip2slip na ESP, bo w tym momencie ATMega jest wąskim gardłem i niepotrzebnie komplikuje całą konstrukcję.
[#13] Re: Internet przez ESP8266

@btr, post #12

u mnie impbox (z wifi) na golej amidze osiaga 30-32kb. na podkreconej amisi mialem duzo wiecej, do 90kb nawet

impbox to moje urzadzonko oparte o rpi0 z modulem wifi, podlaczane do parallera. na rpi0 jest moje oprogramowanei z wymyslonym protokolem. aktualnie pisze implementacje bsdsocket.library pod to, ale jzu bez tego imp sobie potrawi z tego skorzystac :)
[#14] Re: Internet przez ESP8266

@juen, post #13

u mnie impbox (z wifi) na golej amidze osiaga 30-32kb. na podkreconej amisi mialem duzo wiecej, do 90kb nawet


Nieźle! Wrzucałeś gdzieś może binarki/źródła, czy na razie tylko użytek prywatny?

aktualnie pisze implementacje bsdsocket.library pod to


Ja chcę docelowo skorzystać z protokołu Plipboksa i zrobić fork sterownika z obsługą sana2wireless, ale myślę, że jeszcze sporo wody upłynie w Odrze.
[#15] Re: Internet przez ESP8266

@btr, post #12

Zrobiłeś to na pająka?
Czy masz może plytke do tego ?
[#16] Re: Internet przez ESP8266

@btr, post #14

narazie uzytek prywatny, bo kombinuje na pare rozwiazan, zeby zejsc z kosztow bo pi0 wifi to jednak 50zl :)
[#17] Re: Internet przez ESP8266

@Kulamario, post #15

W tym momencie na pająka, ale pewnie będę składał coś sensowniejszego, bo mam takie spadki napięcia, że całość jest absolutnie niestabilna.
Jeśli znajdzie się jakaś grupka zainteresowanych, zagadnę zaprzyjaźnionego elektronika i możemy się pokusić o zrobienie projektu PCB, wrzucenie tego na Githuba i ewentualnie zamówienie płytek.
No i rzecz jasna, nie byłaby to ostateczna wersja płytki, bo tak jak wspominałem, w dłuższej perspektywie pozbyć się ATmegi.
[#18] Re: Internet przez ESP8266

@juen, post #16

Plus Pi jest taki, że łatwo zrobić coś niewymagającego żadnej konfiguracji po stronie Amigi, a przy Twoim rozwiązaniu z bsdsocket.library można zaoszczędzić na zakupie stosu TCP.
Wydaje mi się więc, że taka forma z Pi0, jaką masz teraz już byłaby godna uwagi, zwłaszcza, że to jest coś, czego można użyć na gołej A500.
[#19] Re: Internet przez ESP8266

@btr, post #17

Ja zrobiłem coś takiego bez atmegi ale transfer około 40kb/s na ESP po serialu z amigi to totalny bubel no i jeszcze mi połączenia zrywało więc temat porzuciłem
https://www.exxoshost.co.uk/forum/viewtopic.php?t=2641
[#20] Re: Internet przez ESP8266

@Kulamario, post #19

Tamta płytka nie ma RTS/CTS i stawiam, że z tego wynikały problemy. ESP-07 ma wyprowadzone odpowiednie GPIO, a MAX3232 – wolny kanał, więc brakuje tylko ścieżek na PCB (i przekompilowanego firmware).
[#21] Re: Internet przez ESP8266

@btr, post #20

Ale firmware jak przekompilujesz ?
Przeciez masz bin że by wgrać do ESP
Tu nie ma atmegi w tym układzie
Masz MAX3232 jako konwerter poziomów sygnału i ESP
[#22] Re: Internet przez ESP8266

@Kulamario, post #21

Skoro zrobiłeś to, to chyba masz kod żeby przekompilowac i zrobić obsługę tych pinów?
[#23] Re: Internet przez ESP8266

@MariuszK, post #22

Z tego co pamietam to byl bin w archiwum
[#24] Re: Internet przez ESP8266

@Kulamario, post #23

Mogę Ci podesłać archiwum, bo mam przekompilowane z obsługą handshakingu.
RTS jest wyprowadzony w ESP na GPIO15, a CTS – na GPIO13. Musiałbyś je poprowadzić odpowiednio do pinów 10 i 9 w MAX3232, a piny 8 i 7 do CST i RTS na wtyku DB-25. Dodatkowo, ESP będzie potrzebował rezystora ściągającego na GPIO15.
To powinno dość znacząco ustabilizować połączenie na wyższych baudratach, bo Amiga będzie w stanie poprosić ESP o przystopowanie, kiedy przestanie nadążać z przetwarzaniem przychodzących pakietów.
Tylko zaznaczam, że nie sprawdzałem tego u siebie, bo to co opisywałem w #9 jest w zasadzie identyczne z Twoją płytką i ja po prostu ustawiałem niskie baudrate, żeby transfery były stabilne, a teraz eksperymentuję z portem równoległym, bo potencjalne prędkości są o rząd wielkości większe.
[#25] Re: Internet przez ESP8266

@btr, post #24

Wiesz co na tą chwilę nie mam czasu na to ale chętnie mogę zmienić plytke na to może znalazł bym czas
Ja to się tym bawiłem dość dawno nawet linuxa nie mam że by ustawic wszystko w ESP
Bo pod Windows się nie da podobno tego SlipRouter ustawic tam z tego co pamiętam był jakiś skrypt który pod linuxem się uruchamiało
Naprawdę nie mam jak tego sprawdzic w najbliższym czasie
Ale będę obserwował temat może uda Ci się to poskromić
Ps
Ja sprawdzałem i na wolnym baudrate I na szybkim
Tak na wolnym bylo lepiej to fakt ale też mi zrywał połączenie tz nie zrywał połączenia tak że się rozłączył tylko przestawał ściągać plik
Jak plik ważył tak ze 100kb to było ok ściągną ale jak chialem ściągnąć coś co waży z 2mb to już się wieszał
[#26] Re: Internet przez ESP8266

@Kulamario, post #25

Ale będę obserwował temat może uda Ci się to poskromić

Dam zatem znać jak zrobię jakiś postęp

Jak plik ważył tak ze 100kb to było ok ściągną ale jak chialem ściągnąć coś co waży z 2mb to już się wieszał

Możliwe, że miałem to samo. AWeb przerywał mi pobieranie przy większych plikach (z jakiegoś powodu zwykle w okolicy 0.5MiB), więc pobierałem pliki wgetem, który automatycznie wznawia zerwany transfer.
[#27] Re: Internet przez ESP8266

@btr, post #26

Dokładnie tak jak mówisz do 0.5mb było mniej więcej ok
Ale większe pliki już lipton
[#28] Re: Internet przez ESP8266

@btr, post #11

Uwaga 1: autor ww. opisu wspomina o zewnętrznym zasilaniu, bo ESP zużywa sporo mocy. Większość adapterów USB-UART nie dostarcza wystarczającego prądu przy napięciu 3,3V, więc zewnętrzne zasilanie jest konieczne.


Dwa dni szukałem powodu dla którego nie mogę połączyć się z konsolą ESP8266. Samo programowanie szło pięknie ale ani amiga ani linux nie mogły wgrać ustawień. Podłączyłem flasz pod programator i okazało się że jest pusty! Programowałem używając FTDI i prawdopodobnie z tego powodu pomimo, że na ekranie wszystko wyglądało pięknie, tak naprawdę nic nie było zapisywane. Ostatecznie zaprogramowałem oba wsady używając TL866II zaczynając od adresów podanych w nazwie każdego pliku. Teraz się cieszę Wifi na TF330 :D
[#29] Re: Internet przez ESP8266

@juen, post #16

Już teraz koszt rpi0 z wifi to już nie 50 zł. W ogóle są one dostępne jeszcze?
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem