Aangezien er de voorbije tijd, toch wat ontwikkeling gedaan is, en ik eindelijk een manier gevonden heb om "echte" screenshots te nemen van mijn TFT schermpje, even een stand van zaken
(Some side-info voor de techneuten onder ons:
De ILI9488 (scherm dat ik gebruik), heeft blijkbaar een mogelijkheid op de MoSi pin, bi-directioneel te maken !
Daardoor is het mogelijk om elke pixel van het scherm ook terug uit te lezen. Ik heb een functie geschreven die ik gewoon in mijn code moet aanroepen op het moment dat ik een screenshot wil.
Deze begint vervolgens pixel per pixel uit te lezen, en de info via WiFi (want seriëel is echt not done voor 320x480 pixels, 24 bit per pixel) door te sturen naar zelfgeschreven software die op PC draait.
Deze zelfgeschreven PC software, fietst de bytes terug bij mekaar, om er zodoende een JPG van te kunnen maken)
Zo ziet het opstart-scherm eruit, zodra je het toestel aanzet worden er een deel checks uitgevoerd, alvorens het toestel "gebruiksklaar" is ...

- Batterij wordt gecontroleerd
- Er wordt gekeken of het gedefiniëerde WiFi-netwerk bereikbaar is
- Er wordt een connectie gemaakt met dat WiFi-netwerk, en er wordt een DHCP IP-configuratie opgehaald, of de ingesteld IP-configuratie wordt uitgevoerd.
- Er wordt online gekeken of er een nieuwe firmware beschikbaar is
- Er wordt een verbinding met de EcoS (II) gemaakt, en de lomocotieven en schakel-artikels worden opgehaald, net als de app/firmware/hardware versie
Deze checks en ophalen van data, duren slechts een paar seconden (tenzij er een automatische firmware mee gemoeid is, dan kan het iets meer dan een minuut duren, maar meer hierover later.
De betekenis van de icoontjes in de bovenste zwarte balk, van links naar rechts:
- sterretje = er is een verbinding met de EcoS
- power-icoontje = rood als EcoS in de "Stop" mode staat, en groen als de EcoS in de "Go" mode staat. (is bij de EcoS ook groen en rood, dus we volgen deze "standaard")
- blauwe icoontje geeft de sterkte van het WiFi signaal weer
- helemaal rechts, uiteindelijk het status-icoontje voor de batterij. Dit wordt niet alleen in streepjes weergegeven, maar wijzigt ook nog van kleur van groen/geel/orange/rood (er verschijnt een stekker icoontje tijdens het opladen)
Onder deze icoontjes, zie je doorheen de gehele opstartprocedure, de firmware-versie (links) en de firmware-datum (rechts)
Na (al dan niet automatische) updates, zal je merken dat deze informatie verschillend is ...
Als de automatische update aan staat (meer hierover in "captive portal" beschrijving), dan wordt er tijdens de opstart-procedure, naar mijn HTTPS-site gekeken, of de firmware versie en datum van het
toestel, overeen komen met de laatste versie op mijn site. Is dit niet het geval, dan wordt automatisch de nieuwste firmware gedownload en geïnstalleerd, waarna het toestel herstart. Dit duurt iets meer dan een minuutje.

Als de automatische update uit staat, of de LocoMotion controller, kan geen verbinding maken met het internet, wordt deze stap uiteraard overgeslagen.
Er is tevens dus een manier voorzien, om handmatig een update te doen. (voor diegene die geen automatische update willen, of geen internet hebben via de gebruikte WiFi.
Hiervoor dient een (verborgen, zodat je niet zomaar erop drukt)) kopje achteraan het toestel ingedrukt gehouden te worden, tijdens het opstarten.
Alle firmware versies zijn ten allen tijde te downloaden via
https://www.digitalplayground.be/locomotion.html
Bij het opstarten in manuele update mode, meldt het toestel zich gewoon aan op het WiFi netwerk, hetzij via DHCP, hetzij via een ingestelde IP configuratie.
Er verschijnt dan ook op het TFT schermpje de uitleg hoe je kan verbinden met het toestel, om een manuele update uit te voeren.

Als je een browser opent, krijg je een scherm te zien om een bin-file te selecteren (die je gedownload hebt van mijn website)

Linksboven dus het selectie-scherm in de browser, rechtsonder het eigenlijke selectie-scherm. (in windows zit dit er gewoon uit zoals een "file-open" dialoog, maar aangezien ik Linux Deepin 2.0 gebruik, ziet dit er dus anders uit.
Na selectie van het bin-bestand, en het drukken op de knop "update", start de update procedure.

Je kan de vooruitgang volgen (dit duurt veel minder dan een minuut), en na de update, wordt het toestel automatisch herstart, waarna je de laatste firmware op het toestel hebt.
Even een opmerking tussendoor:
Je ziet in de (meeste) screenshots, Nederlandstalige tekst. Je kan de taal van de handheld instellen ! (er zit een dictionary achter: Engels/Nederlands/Duits/Frans)
De schermen in een browser, zijn allemaal Engels uiteraard. Dit instellen heeft weinig zin.
Terug naar het beginscherm dus, Als er tijdens de opstartprocedure wat misloopt (verkeerde wifi / verkeerde IP configuratie / geen connectie met EcoS), dan gaat het toestel meteen in "Captive Portal" mode.
Dit is een speciale modus, die een configuratie-scherm naar boven brengt op een laptop/PC/tablet/smartphone. Die is vrij eenvoudig te benaderen. (je krijgt een melding op het TFT scherm.

Het enige wat je moet doen, is zoeken naar een WiFi-netwerk met de naam "AP_LocoMotion", en er een verbinding mee maken. (geen wachtwoord nodig !)

Vervolgens krijg je op een tablet of dergelijke, automatisch de captive portal te zien. Als dit niet zo is, is het voldoende om een browser te openen, waarna de captive portal tevoorschijn komt.
Mocht dit nog niet het geval zijn, is het voldoende om
http://192.168.4.1 in de browser te typen als URL. (zoals weergegeven op het TFT scherm)
Ondertussen is deze "captive portal", veel meer dan een schermpje om de "netwerk configuratie" aan te passen.
Men dient deze portal dus ten allen tijden te kunnen oproepen, ook bij geen problemen. Hiervoor is een 2de (verborgen) knop voorzien, net zoals de manuele update knop.
Deze brengt deze captive portal ook naar boven bij het opstarten van het toestel dus.

Bovenaan zie je alle beschikbare WiFi-netwerken (in't geel), het is voldoende op er op eentje te klikken, om de naam over te nemen in het SSID veld.
Daarna moet je uiteraard nog het WiFi password invoeren.
Daar onder, zie je de IP configuratie (IP / Subnet / Gateway / DNS 1 / DNS 2), voor diegene die hier niet vertrouwd mee zijn, vullen overal 0.0.0.0 in, het systeem zal dan voor een DHCP oplossing zorgen.
Het enige dat wel van belang is, is het EcoS IP adres. (ik verwijs je hiervoor door naar de EcoS handleiding) - anders kan de LocoMotion controller uiteraard niet communiceren met de EcoS (II)
(Op mijn todolist staat nog om gebruik te kunnen maken van een hostname i.p.v. IP adres van de EcoS trouwens)
Daar onder, kan je "steps for filter - multiples of 6) invoeren. Dit is voor mensen met véél locomotieven in het EcoS, zodoende kan je in grote sprongen door de lijst gaan.
Aangezien ik in het locscherm telkens 6 locomotieven kan tonen, dient dit een veelvoud van 6 te zijn)
Alle velden bevatten trouwens "checks", zodat je niet kan opslaan bij verkeerde waardes (geldige ip-addressen, steps=veelvoud van 6, paneelnamen max. 12 karakters enz ...)
Hieronder kan je opgeven of "orphan" locs in favoriet-lijst 1, 2 en/of 3 moeten getoond worden.
Ecos bevat namelijk in mijn ogen een fout (meer dan één, maarja):
Als je een loc bij aanmaken, niet toewijst aan minstens één van je 3 favoriete lijsten, krijg je die loc nergens meer te zien. Je kan die dan alleen oproepen door het adres in te voeren !
(en laat nu dat net iets zijn, waar ik vanaf wil)
Door één of meer van die vinkjes aan te zetten, verschijnen "orphan" locomotieven, toch op de LocoMotion in de gewenste favoriete lijst, ook al staat die op de EcoS niet zo ingesteld.
Hetzelfde geld voor de "miscellaneous" locomotieven. Je hebt op de EcoS alleen lijsten voor Stoom/Diesel/Electric, GEEN voor de miscellaneous. Hier kan je kiezen in welke lijst(en) deze miscellaneous locomotieven toch wil zien.
Daaronder plaats voor de omschrijving van 12 panelen (aantal wordt mogelijk nog uitgebreid), deze panelen dienen voor schakel-artikels op te plaatsen, meer hierover bij "schakel artikels".
Hieronder kan je dan de taal instellen van de LocoMotion controller. De gehele interface zal dus in de gekozen taal draaien !
Uiteindelijk nog een vinkje op de automatiesche update, al dan niet aan/uit te zetten.
En tenslotte nog de "Save" button. (Refresh, haalt de beschikbare draadloze netwerken opnieuw op)
Bij het opnieuw oproepen van de Captive Portal, staan alle waardes terug ingevuld met hun laatst opgeslagen waarden, zodat je niet alles opnieuw hoeft in te voeren

Na het klikken op "Save", krijg je dan uiteindelijk nog een summary op de TFT te zien, die blijft staan, totdat je het toestel herstart.
Uiteindelijk zijn we alle checks en update/configuratie schermen gepasseerd ! (OEF !)
Tijd voor het echte werk dus

We beginnen even met het "laatste" scherm (van de 6 interface-onderdelen)
Het info-scherm ...

Dit scherm toont gewoon een overzicht van alle instellingen. (altijd handig als je support nodig hebt)
Onderaan in het midden, zie je steeds de zelfde 6 iconen, dit vormt het hoofdmenu (tijdens reguliere werken met LocoMotion)
- eerste rij, links: power knop, dit brengt de EcoS in de Stop/Go modus.
- eerste rij, midden: locomotief knop, dit brengt de interface voor keuze/aansturing van locomotieven naar voren.
- eerste rijn, rechts: schakelartikels knops, dit brengt de interface voor keuze/aansturing van schakelartikels naar voren. (+beheer van panelen)
- onderste rij, links: S88, dit brengt het live-overzicht van S88 modules naar voren.
- onderste rij, midden: Syncroniseer loco-afbeeldingen wordt naar voren gebracht.
- onderse rij, rechts: Algemene informatie, het scherm wat we hier als laatste hebben besproken.
Een actief icoon, is lichter dan de rest van de iconen.

Dit is het locomotief-filter.
Aan de linkerkant kan je instellen "wat" je wil terugzien in de resultaat lijst.
- De eerste 3 iconen geven weer welk soort locomotief je wil zien. (Stoom/Diesel/Electrisch) + de miscellaneous locs (zoals ingesteld in de captive portal)
- Daaronder kan je aangeven welke favorieten-lijst dient aangeroepen te worden om locomotieven op te halen. (1,2 of 3)
- En linksonder geef je de sortering weer. ABC=alfabetisch / 123=op adres.
Op de screenshot zie je dus dat alleen stoomlocs "actief" is, uit de favorieten-lijst 1 & 2.
Wat ik zelf een pluspunt vind, is dat je met mijn systeem, combinaties kan maken.
(Je kan dus stoom EN diesel tegelijk tonen, uit de favorietenlijst 2 EN 3 bevoorbeeld, terwijl dit bij EcoS beperkt is tot één type en één favorieten-lijst)
Ook vind ik het belangrijk om "aantallen" weer te geven, terwijl dit bij EcoS niet het geval is.
Zo zie je linksonder in het geel, dat je "filter", 12 resultaten geeft, en dan je in totaal 16 locomotieven hebt gedefiniëerd in je EcoS.
Daaronder in het groen, zie je dat je de locs 1 t/m 6 (van de 12 resultaten) ziet.
Helemaal rechts tenslotte, kan je onderaan,"achteruit" en "vooruit" in de lijst "bewegen".
En de knoppen boven dit "vooruit" en "achteruit" (per 6 dus) zijn "step achteruit" en "step vooruit". (zoals ingesteld in de Captive Portal, om grote stappen te maken)
Je ziet van een loc:
- De afbeelding
- daaronder de naam, en rechts het type locomotief (stoom/diesel/elec/misc)
- Links van de afbeelding zie je in't wit, het adres, met daaronder het protocol
- Tenslotte, de oranje data er tussenin duidt aan op welke favoriete lijsten de loc staat.
(Momenteel staan ze allemaal alleen op favoriet-lijst 1, behalve de 2de loc, die staat op lijst 1 & 3)
Op mijn todolist staat nog een brainstorm sessie, om makkelijker een loc te kunnen terugvinden in een enorme lijst.
De EcoS kan namelijk 16384 locomotieven aan ! (Mijn LocoMotion ook, alle locs worden bij opstart in een buffer geladen in 4 MB PSRam, om snel te kunnen "verwerken")
Door vervolgens op de loc te klikken, wordt hij als actieve loc overgenomen, en kan je hem besturen.

- Links en rechts komen alle functies te staan van de actieve loc (deze in de afbeelding, heeft er maar 16, maar we hebben dus ondersteuning voor 32 functies)
- De lichtere functies, zijn geactiveerde functies.
- de iconen stemmen overeen met de definities van de functies in de EcoS. (en bij MFX of LocPilot/LocSound, worden die automatisch doorgegeven, zoals op een CS, MS enz ...)
- bovenaan uiteraard de afbeelding van de locomotief, met daaronder de naam, protocol en adres ...
Het enige wat hieraan nog ontbreekt, is de snelheidsregeling, hiervoor is in het midden nog ruimte genoeg. Ik zit jammergenoeg nogsteeds te wachten op mijn rotary encoders (uit het verre oosten) ...
Het volgende scherm, de schakelartikels, is nog volop in ontwikkeling.

De opbouw bestaat eruit dat je panelen kan "bouwen", en op elk paneel, 12 schakelartikels (6 langs elke kant van het scherm) kan toevoegen. (daarvoor dient het icoontje uiterst rechts beneden)
Voor de rest ga je kunnen "bewegen" door deze panelen (vooruit/achteruit), en kan je zodoende de 12 artikelen aansturen die zich op een paneel bevinden.
(de naam van het paneel, komt te staan, linksonder, waar het woord "PANEL" nu staat)
De iconen komen wel al 1-op1- overeen met wat er in de EcoS gedefiniëerd is. Ook artikels met 2/3/4 "mogelijkheden", zijn gewoon voorzien zoals in de EcoS.
Volgende in het rijtje, is de S88 live preview.
Uiteraard komt deze data ook uit de EcoS, deze haalt het totaal aantal modules op, en of een module een 8-poort of 16-poort is.
Rechts onderaan zie je bevoorbeeld dat ik 8 S88-modules heb gedefiniëerd in de EcoS. (en de 3de is een 8-poorts)

Zodra er één of meerdere melders bezet zijn, kleurt het overeenkomende vakje, oranje.
Dit is volledig live. Voorts kan je natuurlijk per 5 vooruit/achteruit scrollen, door de hele lijst met gedefiniëerde bezet-modules.
Boven een module zie je de module-nummer, en links-onderaan zie je de huidige selectie van modules die op het scherm staan.
Uiteindelijk, de voor-laatste in het rijtje (want de "laatste" hebben we eerst besproken)
Het ophalen van loco-afbeeldingen.
Deze leek eerst niet "haalbaar", althans, Esu is het niet gelukt met hun Mobile Controller II.
Daar moet je afzonderlijk van je EcoS, de loco-afbeeldingen opnieuw invoeren ...
(over dubbel werk gesproken, en de kans dat je ergens een fout begaat, wordt evenredig groter met het aantal locomotieven dat je hebt)
De afbeeldingen dien je in de EcoS in de voeren, via een web-browser, en je kan ze ook niet zelf zomaar terug "opvissen" uit de EcoS, de functionaliteit ontbreekt gewoon

Komt nog bij dat telkens je de lijst met loco-afbeeldingen in je browser opvraagt, deze elke keer een andere naam hebben ! (intern dan toch, om ze kunnen "op te vissen").
Deze tijdelijke afbeeldingen zijn effectief "tijdelijk", want na een tijdje zijn ze niet meer op te roepen onder de naam dat ze op je scherm staan !
Maar, met een beetje "slim programmeerwerk", slaag ik er toch in, om alle loco-afbeeldingen mooi binnen te halen, zowel de systeem-afbeeldingen alsook de gebruikers-afbeeldingen.
Dit is wel een process dat een 2 minuten in beslag neemt, maar het moet alleen maar uitgevoerd te worden als je wijzigingen hebt aangebracht aan je afbeeldingen, via de browser-functie van de EcoS.

Deze functionaliteit, zorgt ervoor dat je loco-afbeeldingen getoond kunnen worden op LocoMotion, zonder verdere manuele interventie. (zoals wel het geval is bij de eigen Mobile Controller II van Esu

1-0 voor mij !
Zo, dit was het even voor nu.
Wat staat er nog op mijn todo-lijst, voor een eerste officiële release ? (zonder planning uiteraard)
- trein-aansturing afwerken (snelheid & vooruit/achteruit) - zit nog te wachten op rotary-encoder
- afwerken schakelartikels: panelen aanmaken / panelen bedienen / aantal panelen uitbreiden (?)
- locomotief filter (?)
- Franse vertalingen in dictionary duwen (deze zitten er nog niet in, maar vormte geen probleem momenteel, alleen voor mijn Franse vrienden, haha)
- website uitbreiden/aanpassen (stilaan mag het grote publiek kennis maken met LocoMotion, hun honger wat aanwakkeren)
- eindelijk beginnen in SolidWorks aan de behuizing in 3D te tekenen (ik krijg in april voor mijn verjaardag een "grotere" 3D Resin printer)
Maar zoals gezegd, ik wacht nog op de rotary encoder, en ook op de "joystick module", dus dit moet nog even uitgesteld worden ...
- doordat ik nu OTA updates (Over-The-Air) gebruik, ik plots het beschikbare programma geheugen, maar de helft meer !
(immers, je hebt geheugen nodig om je programma te draaien, en geheugen om de update binnen te halen in tussentijd (en te controleren alvorens effectief te installeren)
Met 4 MB Flash, had ik maar 30% in gebruik, na overschakelen op OTA, is dat gebruik dus 60%
Ik weet niet of ik dat haal. Daarom heb ik bij tinytronics, de WEmos Lolin D32 Pro V2 besteld, deze heeft 16 MB i.p.v. 4MB.
Deze komen vandaag toe, iets zegt me dat dit niet zomaar gaat werken, dus dat wordt weer een boel uitzoekwerk.
- 2 draadjes solderen op de nieuwe module (klinkt belachelijk, maar deze zijn nodig om te zien om het toestel aan de oplader hangt of niet, bij de LilyGo module was dit niet nodig)
TO BE CONTINUED ...
groeten,
Kris