ESP32 CYD Personal Digital Assistant

Details

Voor het gebruik is geen extra hardware vereist; u heeft enkel een CYD nodig. Indien u beschikt over een speaker, kan het apparaat geluidssignalen (beeps) afgeven bij gebeurtenissen.

Wat betreft opslag maakt het systeem gebruik van het interne flashgeheugen met het FFat-bestandssysteem. Het is mogelijk om back-ups te maken van FFat naar een SD-kaart. Men kan er ook voor kiezen om de SD-kaart direct als primaire opslag te gebruiken.

Voor gebruikers die eigen interne applicaties willen toevoegen, is dit mogelijk door de Arduino-code aan te passen.

Installatie

Installatie via web flasher

De firmware kan direct worden geïnstalleerd via: https://sau412.github.io/esp32cydpda/flash

Installatie via Arduino IDE

Vereiste bibliotheken:

  • TFT_eSPI (installeren via de Arduino library manager)
  • XPT2046_Bitbang (installeren via de Arduino library manager)
  • ESPping
  • Ticker

Stappenplan:

  1. Installeer de Arduino IDE.
  2. Installeer de bovengenoemde vereiste bibliotheken.
  3. Vervang het bestand UserSetup.h door het bestand dat te vinden is op GitHub (witnessmenow).
  4. Voeg de ESP32-bibliotheken toe.
  5. Board Selectie: Ga in de Arduino IDE naar Tools > Board en selecteer ESP32-2432S028R.
  6. Partition Scheme: Stel onder Tools > Partition scheme de optie No OTA (2 MB APP/2 MB FATFS) in.
  7. Compileer en upload de code.

Indien er problemen optreden, kan worden teruggegrepen op de instructies van Random Nerd Tutorials.

Eerste gebruik

  1. Kalibreer het touchscreen. De kalibratiegegevens worden opgeslagen in /Settings/Calibration.
  2. Formatteer de interne opslag als FFat wanneer daarom wordt gevraagd.

Gebruik

  • Apps starten: Tik op de naam van de app om deze te openen.
  • Apps afsluiten: Houd de titel van de app langer dan één seconde ingedrukt om terug te keren.
  • Acties: Gebruik de knoppen binnen de applicaties om acties uit te voeren.
  • Screensavers: Houd overal op het scherm ingedrukt om de screensaver te verlaten.
  • Geforceerde kalibratie: Houd het touchscreen ingedrukt tijdens het herstarten om bij opstarten direct de kalibratie uit te voeren.
  • Beveiliging: In de 'Security'-app kan een wachtwoord worden ingesteld. Dit wachtwoord wordt gevraagd bij het inschakelen. Let op: het wachtwoord wordt in platte tekst opgeslagen zonder encryptie.

Symbolen in de statusbalk

  • Wekker: Alarm is ingeschakeld.
  • Wi-Fi symbool: Verbonden met Wi-Fi.
  • Klok met puntjes: Wachtend op synchronisatie met NTP.
  • SD-kaart: De hoofdopslag is de SD-kaart.
  • Chip: De hoofdopslag is FFat (intern geheugen).
  • Noot: Er wordt muziek afgespeeld.

Applicaties en functies

Systeem en hulpprogramma's

  • Bestandsbeheer (ondersteuning voor het bekijken van tekst, JPEG, PNG en het bewerken van tekst)
  • Kalibratie van de touchsensor
  • TFT-schermtest
  • Willekeurige getallengenerator
  • Systeeminformatie
  • Wachtwoordbeheer
  • LED-besturing
  • Stopwatch
  • Timer
  • Breathing timer
  • Life (cellular automaton)
  • Teller
  • I2C Scanner
  • Screenshots maken (via de BOOT-knop)
  • Gebruikershandleiding-applicatie
  • Terminal (met seriële poort, ping, telnet)
  • Backup via webinterface (downloaden is traag, ca. 40 minuten; uploaden is relatief snel)
  • Oscilloscoop
  • Screenshots bekijken
  • Back-up FFat naar SD en herstel van SD naar FFat
  • Voltmeter
  • Instellingen-app
  • Signaalgenerator
  • L-system fractal generator

PIM-apps (Personal Information Manager)

  • Calculator
  • Notities
  • Boeklezer
  • Contacten
  • To-do lijst
  • Uitgavenbeheer
  • Tekenen (met opslaan als BMP)
  • Agenda/Planning
  • Wachtwoorden (AES-256 versleutelde notities)
  • Flashcards
  • Tabel-editor (gegevens worden opgeslagen in CSV-formaat)
  • TOTP (vergelijkbaar met Google Authenticator)
  • Basis interpreter (voor geavanceerde berekeningen)
  • Barcode-generator (lineaire barcodes: EAN8, EAN13, Code128)

Games

  • Fifteen puzzle game
  • Lights Off puzzle game
  • Snake
  • Turkish Kerchief Solitaire
  • Memory Match
  • Hanoi Towers
  • Match Tree
  • Simon
  • N-back
  • Mental Math
  • 2048
  • CHIP-8 emulator
  • Sokoban
  • Minesweeper
  • Schaakbord (alleen bord en figuren, geen regels)
  • Tetris

Dashboards

  • Klok en Kalender
  • Fuzzy Clock
  • Unix Time
  • Internet Time
  • Analoge tijd
  • Weer
  • Netwerk
  • Wi-Fi Channels Monitor
  • Wereldtijd
  • Bitcoin (block, prijs, pending transactions)
  • Random Useless Fact

Screensavers

  • Sterren
  • Gekleurde vierkanten
  • Lorenz attractor
  • Noise
  • Matrix
  • Forest Fire Simulator
  • Mood Lamp
  • Through the Universe

Wi-Fi en Netwerk

  • Wi-Fi verbinding
  • Gopher browser
  • Weer
  • Chat (eenvoudige chat voor CYD PDA gebruikers)
  • File Server (voor back-ups en bestandsuploads)
  • RSS Reader
  • IRC client
  • Translate (via onofficiële Google Translate API)
  • Wikipedia artikel reader

Geluid

  • Piano
  • Metronoom
  • Tunes (Nokia melodie speler)
  • MP3 speler
  • Web Radio Player

Terminal commando's

  • millis - Toon milliseconden sinds reboot
  • micros - Toon microseconden sinds reboot
  • date - Toon huidige datum
  • reset - Wis scherm, herinitialiseer terminal
  • reboot - Herstart de CYD
  • host - Los een domeinnaam op
  • ipconfig - Toon alle netwerkinformatie
  • ip - Toon huidig IP-adres
  • gateway - Toon huidige gateway
  • dns - Toon huidige DNS
  • netmask - Toon huidig netmasker
  • rssi - Toon huidige RSSI-waarde
  • hostname {hostname} - Stel hostname in
  • ping {host} - Ping een specifieke host continu (tik scherm om te stoppen)
  • serial [speed] - Verbind met seriële poort met opgegeven snelheid (standaard 115200)
  • telnet {host} [port] - Verbind via telnet met specifieke host en poort
  • telnets {host} [port] - Verbind via telnet met SSL naar specifieke host en poort
  • wget {url} [filename] - Download bestand via http/https en toon of sla op
  • tracert {host} - Traceroute naar host
  • ipinfo {ip} - Toon IP-informatie (via ipinfo.io)
  • translate {from} {to} {text} - Vertaal met Google Translate
  • weather [lat] [lon] - Toon weer op specifieke locatie
  • chat [{nick} {message}] - Toon chat of stuur bericht naar chat
  • sdtoffat {sdpath} {ffatpath} - Kopieer bestand van SD naar FFat
  • ffattosd {ffatpath} {sdpath} - Kopieer bestand van FFat naar SD
  • utf8tocp1251 {fromfile} {tofile} - Converteer bestandscodering van UTF-8 naar CP1251
  • beep - Geluidssignaal (beep)
  • tone - Start geluidstoon
  • notone - Stop geluidstoon
  • hexdump {path} - Bekijk bestanden in hex-codes
  • uuidgen - Genereer UUID
  • uptime - Toont uptime in dagen, uren, minuten, seconden
  • random [from] [to] - Willekeurig getal
  • cd {path} - Wijzig directory
  • pwd - Toon huidige directory
  • mkdir {path} - Maak directory aan
  • rmdir {path} - Verwijder lege directory
  • rm {path} - Verwijder bestand
  • file {path} - Toon bestandstype
  • touch {path} - Maak leeg bestand aan
  • ls {path} - Lijst bestanden in directory
  • cat {path} - Toon inhoud van bestand
  • more {path} - Toon bestand pagina per pagina
  • head {path} - Toon begin van het bestand
  • tail {path} - Toon einde van het bestand
  • grep {text} {path} - Zoek regels met specifieke tekst
  • append {path} {text} - Voeg tekst toe aan bestand
  • crc {path} - Bereken CRC van bestand
  • md5sum {path} - Bereken MD5 van bestand
  • sha256sum {path} - Bereken SHA256 van bestand
  • brainfuck {path} - Voer brainfuck code uit vanuit bestand
  • basic {path} - Voer BASIC code uit vanuit bestand
  • echo {text} - Toon tekst en verlaat
  • caesar {text} - Versleutel tekst met Caesar-encryptie
  • seq {from} {to} - Genereer getallenreeks
  • wc {path} - Bereken woorden, regels en bytes in bestand
  • lscpu - Informatie over CPU
  • lsmem - Informatie over geheugen
  • lsblk - Informatie over interne opslag
  • view {path} - Bekijk bestand (GUI viewer)
  • hexview {path} - Bekijk bestand in hex (GUI viewer)
  • edit {path} - Bewerk bestand (GUI editor)
  • csv {path} - Bewerk bestand in tabel-editor
  • cp1251toutf8 {path} {path} - Wijzig codering van cp1251 naar utf-8
  • base16encode {path} [path] - Codeer bestand naar base16
  • base16decode {path} [path] - Decodeer bestand van base16
  • base32encode {path} [path] - Codeer bestand naar base32
  • base32decode {path} [path] - Decodeer bestand van base32
  • base64encode {path} [path] - Codeer bestand naar base64
  • base64decode {path} [path] - Decodeer bestand van base64
  • aes_encrypt {password} {path} [path] - Versleutel bestand met AES-256
  • aes_decrypt {password} {path} [path] - Ontsleutel bestand met AES-256
  • app {app_name} - Start app op naam
  • Filename from /Terminal - Voer commando's uit een bestand één voor één uit

Gebruiksvoorwaarden

De code mag naar wens worden aangepast. Bugrapporten en pull requests worden gewaardeerd.

Links