Dag beste modelspoor-collega's,
Even verder in mijn eigen topic, in plaats van diverse discussies met deze info te "vervuilen"

Aangezien door ziekte bij mij alles enige jaren heeft stil gelegen, en er ondertussen zowel in de modelspoorwereld alsook hier thuis, het één en ander is "ge-evolueerd", toch maar de beslissing genomen om een "andere centrale" aan te schaffen. (mede doordat ik op een "koopje" gestoten was ...)
Ik heb reeds een hele evolutie meegemaakt qua centrales:1. Een delta controller (wat meteen ook aangeeft hoe lang ik al met modelspoor bezig ben)
2. MrDirect (na enkele dagen de Deltra controller gebruikt te hebben, hem meteen wat "omgebouwd" om hem met MrDirect te kunnen gebruiken)
3. Een zelfbouw centrale (die alleen DCC, M-I en M-II aan kon)
4. Een Tams MasterControl
Om dan nu te komen tot een Ecos II van Esu ...
Ik rij wel met Rocrail, maar vind het "omslachtig" om telkens een (nieuwe) MFX loc in gebruik te nemen.
Met de Ecos II is het zowieso kinderlijk eenvoudig

- Loc op de rails plaatsen
- Loc wordt herkent door de Ecos II, met al zijn functies en pracht en praal
- Info stroomt lekker door naar Rocrail
- Klaar, rijden maar ! (eenvoudiger kan haast niet)
Tegelijkertijd was ik ook op zoek naar een "handregelaar". Al gauw kwam ik bij een Mobile Control II uit. Niet echt mijn ding, want meteen bij aankoop, heb je een stuk "antiek" in de hand. (beetje grof uitgedrukt, maar het is wel zo !)
Immers, de Android-versie op dat toestel is gewoonweg verouderd, niet één, twee of 3 versies, nee, het ding loopt al 6 versies achter, en we zitten nu met de laatste versie van Android aan 10 ofzo denk ik. (maar misschien is deze info ook al verouderd, lol)
Volgende stap was een WlanMaus van Roco, deze kan je ZONDER z21 gebruiken in combinatie met Rocrail. (En volgens mij ook met de DR5000 van DigiKeijs, en waarschijnlijk nog anderen ook)
Een andere optie was een smartphone, maar daar mis ik zowieso het "tactile" gedeelte op, ik wil kunnen "voelen" aan mijn knoppen, zonder naar het scherm te hoeven kijken, de baan is belangrijker dan het scherm natuurlijk !
Toen maar even gaan zitten, en de tijd genomen om eens na te denken, en om dit (al veel te) lange verhaal korter te maken: De beslissing genomen om iets zelf te gaan bouwen.
(Een mooie uitdaging, voor iemand die 3 jaar serieuze gezondheidsproblemen heeft gehad, vooral met de hersens, en zelfs niet meer kon lezen/schrijven, bijna geen motoriek meer had, en amper kon praten ...)
Eisen voor dit zelf te bouwen systeempje:- (verlicht) kleurenschermpje. (zoals een smartphone)
- Effectieve draaiknop voor snelheid te regelen
- Echte drukknopjes om F-toetsen te bedienen (tot F32 !)
- Klaar zijn voor de toekomst, bijkomende functionaliteit moet in no-time in de software kunnen zitten
- draadloos (uiteraard)
- zo goed als niks te configureren, alle dat moet "vanzelf" uit de centrale vloeien naar de handregelaar
- kinderlijk eenvoudig qua bediening
- zowel voor de doorwinterde "toetsendrukker" alsook voor de "touchscreen verslaafde" bruikbaar zijn.
Waar staan we momenteel in dit project ?
Om eerlijk te zijn, nog niet zo ver als ik zelf zou willen, maarja, er moet tussendoor nog gewerkt worden,
onderdelen moeten uit het "verre Oosten" geleverd worden, en af en toe moeten er toch nog keuzes gemaakt worden.
Wat hebben we al qua onderdelen ?
- een ILI9488 touch-scherm, een aanraak-schermpje met een resolutie van 320x480 pixels met een effectieve scherm-oppervlakte van 49mm x 74 mm
- een Lilygo TTGO T8 module, het "hart" van de schakeling, 4 MB PSRAM en een ESP32 dualcore die op 240Mhz draait, en wifi "onboard" heeft uiteraard.
- een lipo batterij, 2500 mAH uiteindelijk, waarmee het "ding" het meer dan 30 uur volhoudt ! (reeds getest, batterij was nog niet leeg, raak makkelijk aan 40u, later meer testen)
- een AnyCubic Photon S 3D resin printer
- enkele liters resin
- een dosis doorzettingsvermogen en een immense honger op het project tot een goed einde te brengen
Wat moet er nog geleverd worden ?
- Enkele PCF8575 modules, dit zijn 16-bit I/O I2C expanders.
Dit wil zeggen, IC's die je doormiddel van 2 IO lijnen op een microcontroller aansluit, en waar je 16 ingangen of uitgangen mee kan inlezen/aansturen.
Deze IC kan over 8 adressen beschikken, je kan dus 8 van die IC's op dezelfde 2 draden van je microcontroller aansluiten, waardoor je door deze 2 draadjes,
in totaal 128 ingangen of uitgangen (eender welke combinatie, totaal aantal mag 128 zijn) kan inlezen/aansturen.
Immers, zo'n microcontroller heeft maar een beperkt aantal ingangen/uitgangen, en zonder deze I2C expanders, had ik niet genoeg poorten.
Deze praktijk wordt meer toegepast dan je zou denken !
- Een mini-joystick controller. (wel zo handig voor manuele navigatie) (gekocht per 10, waren goedkoper per 10 dan per stuk, LOL)
Dit model werkt met potentiometers in X en Y richting. Je kan dus niet alleen uitlezen of er naar links/rechts/boven/onder bewogen wordt, maar ook hoeveel kracht je uitoefent.
(of je dus hard of zacht drukt, met andere woorden) Deze bevat ook een "drukknop functie".
- WS2812 5MM RGB LEDs. Dit zijn LEDs die er op het eerste zicht gewoon uitzien, doch zonder microcontroller kan je ze niet laten oplichten.
de LEDs werken op 5V, hebben 5 pootjes, en verwachten op één pin, een digitaal signaal om de LED te vertellen hoeveel rood, groen en blauw (RGB dus) ze moeten oplichten,
8-bits per kleur, dus in weze kan je 16,7 miljoen kleuren creëren met deze LEDs. de 4de pin stuurt het signaal gewoon verder naar een volgende LED.
Zodoende kan je de LEDs gewoon "achter mekaar" hangen, en ze via je microcontroller gewoon elk individueel aansturen.
- tactile switches (gekocht per 200), dit zijn gewoon kleine drukknopjes, waar je een "klik" geluid/gevoel terug krijg, bij het indrukken/loslaten.
- Een rotary encoder. Een draaischakelaar die elk stapje dje je draait, een "puls" teruggeeft. Zo kan je mooi in je microcontroller de "draaipositie" uitlezen.
Tevens bevat deze een "drukknop".
De rest van de onderdeeltjes zoals condensators en weerstanden, noem ik hier bewust niet. (die dingen heb ik her en der genoeg op stock, LOL)
Buiten het allemaal "aan mekaar" knopen van de onderdeeltjes, komt er natuurlijk ook nog software bij kijken, véél software. (vooral als je met microcontrollers werkt, dat vraag veel meer eigen code dan zomaar PC software schrijven ...)
Waar staan we op gebied van software al ?Wel, we zijn momenteel bezig met het schrijven van het framework, code die het makkelijker maakt om minder code te moeten schrijven. (klinkt gek, maar dit is "common practice")
Dit werkt er dus al:
- Wifi en IP communicatie, zowel de TCP/IP stack alsook de wifi communicatie werkt.
de controller maakt verbinding met mijn ecnrypted Wifi accesspoint, krijgt een IP-adres via DHCP, en reageert op ping-commandos.
zelfs de Wifi signaalsterkte (RSSI) kan al opgevraagd worden. (zodat we het aantal "streepjes" van de verbindingskwaliteit kunnen tonen)
- Uitlezen van batterij-status. (hoeveel procent is de batterij nog geladen)
- Laden van de batterij zelf. (batterij blijft in het toestel zitten, en wordt via USB opgeladen, zoals een smartphone eigenlijk)
- Aansturing van het display. (basis-elementen zoals tekst en lijnen en cirkels tonen zijn klaar, op basis hiervan kunnen we dan weer verder functies bouwen)
- Uitlezen van het aanraak-gedeelte van het display. (ik kan netjes de X- en Y-coördinaten uitlezen van aanrakingen, hier kunnen we dus ook weer verder op borduren)
- data lezen en schrijven van/naar SPIFFs. (dit is een intern file-gedeelte van de microcontroller zelf, 1 MB maar, maar genoeg om iconen en symbolen enzo permanent op te slaan, en van daaruit te gebruiken)
- lezen van afbeeldingen (JPG en BMP) uit deze SPIFFs, en deze afbeeldingen tonen op het scherm, op X,Y positie die meegegeven wordt in de software
- Alle functie-symbolen zoals bedacht door Esu, zijn al uit de Ecos II uitgelezen, en zijn ondertussen al omgezet met Gimps en opgeslagen in de SPIFFs.
- Communicatie met de Ecos II zelf (via telnet, volgens de specificaties die vrijgegeven zijn door ESU)
Het gehele protocol is nog niet geïmplementeerd, maar de communicatie zelf werkt al (request & response), we krijgen al protocolversie/applicatieversie & hardwareversie binnen van de Ecos II
Stappen voor de komende dagen/weken (in volgorde):- uitlezen/schrijven van SD-kaart.
Aangezien de SPIFFs maar 1 MB is, en de ingebouwde Loc-afbeeldingen van de Ecos II hier niet in passen, moeten we dus extra opslagruimte voorzien.
Op de achterkant van het scherm, zit een SD-kaart aansluiting. Deze heeft 4 pinnen nodig (SPI, dus: Miso / Mosi / Clk / CS) Ik ga proberen deze pinnen grotendeels te delen met de display zelf. (scheelt weer een aantal aansluitpinnen)
- uitlezen van de loc-afbeeldingen uit de Ecos (zowel de system afbeeldingen als de user afbeeldingen)
Hier schuilt nog een uitdaging

Tot nu toe, doet niemand dit (nog) niet in zijn software. (tenzij de mobile control II van Esu zelf, maarja ...)
Aan deze afbeeldingen kan je niet zomaar aan, maar ik heb hier al een proof-of-concept voor gemaakt, maar dit moet natuurlijk nog in software-logica omgevormd worden.
(en omvat het onderscheppen van http-data, en het uitlezen van tmp-files op de Ecos II zelf, te doen, maar toch niet zo eenvoudig ...)
- Wat structuur in het framewerk brengen, want momenteel zitten er nogal veel debug-lijnen in

- Uitzoeken hoe ik van inkomende telnet data, triggerbare events kan maken
- Ecos II protocol verder uitwerken, en in aanroepbare functies gieten
Als dit allemaal achter de rug is, zijn ongetwijfeld de resterende onderdelen uit het verre Oosten toegekomen,
en kan ik weer even verder met hardware aansturing ...
Als alle hardware is aangesloten, kunnen we weer verder met programmatie, en in tussentijd bedenken hoe we de behuizing er gaan laten uitzien.
(Solidworks & 3D resin printen to the rescue, LOL)
Ik kan hier geen tijdslijn op plakken, aangezien mijn dagelijkse job tegenwoordig vrij veel aandacht nodig heeft.
(soms doe ik meer overuren dan reguliere uren !)
Maar het zou fijn zijn als dit project tegen midden dit jaar afgerond kan worden, en als er dan "animo" is, kan ik misschien zo'n handregelaar voor wat geïnteresseerden beginnen bouwen.
En als dit project "aanslaat" bij vrienden en kennissen, zit de kans er wel in dat ik firmware ga schrijven om de controller ook met andere centrales te kunnen gebruiken ...
(zaken zoals wifi/netwerk/communicatie/batterij/display aansturen/touch uitlezen enz ... blijven in grote lijnen toch hetzelfde, het is dan gewoon een kwestie om de software aan te passen om ook protocollen van andere centrales "te begrijpen")
Proof-of-concept:
- wifi klaar, IP-adres voorhanden, wifi signaalsterkte (RSSI)
- communicatie met de Ecos II OK (uitlezen van Ecos info)
- aansturing van scherm klaar
- batterij logica klaar
- zomaar willekeurig 6 functie-icoontjes uitgelezen uit SPIFFs en op scherm tonenGroeten,
Kris