Ik ben momemteel de actiefste developer van het OLF project.
OLF richt zich voornamelijk op de volgende drie aspecten:
modulariteit, specificaties en portabiliteit van software.
Elke functie binnen het systeem krijgt een eigen module. In de basis uitrusting van OLF onderscheiden we drie modules: Personal unit (hierna PU genoemd), sensor controller en het wapen. Deze modules zullen met elkaar in verbinding staan via een RS-485 bussysteem. De personal unit is de centrale module die de communicatie tussen de andere modules regelt. Doordat we met modules werken kunnen we in de toekomst het systeem gemakkelijk uitbreiden (in tegenstelling tot bijvoorbeeld MilesTAG).
We richten ons niet zozeer op een microcontroller architectuur waarop we ons systeem gaan implementeren.
We zijn continue bezig met het opstellen van specificaties. Aan de hand van de specificaties bouwen we een referentie ontwerp (in ons geval gebaseerd op de Atmel AVR architectuur). Gebruikers kunnen ons referentie ontwerp overnemen maar worden ook aangemoedigd om de specificaties te implementeren op hun eigen favoriete architectuur. De laatste versie van de specificaties is hier (PDF) te downloaden.
We proberen onze code verder zo portable als mogelijk te schrijven. Dit gaan we doen door de code in twee delen te scheiden: een portable gedeelte wat voornamelijk de logica zal bevatten. En een gedeelte wat geport zal moeten worden (low level functies die vaak direct met registers werken). Op dit moment is de code nog niet erg portable maar daar zal in de toekomst verandering in komen.
Wat hebben we momenteel geimplementeerd van het referentieontwerp?
Ons uiteindelijke systeem zal een RS-485 bus gebruiken.
We hebben besloten om de allereerste versie zonder een RS-485 bus te maken maar met twee one-way seriele data lijnen op UART level. Tussen de PU en de sensor controller ligt een datalijn waarbij de sensor controller de zendende partij is. Tussen het wapen en de PU ligt ook een datalijn waarbij de PU de zendende partij is. Dit hebben we gedaan omdat het minder complex is en de behoefte aan bidirectionele communicatie voor het meest simpele speelbare systeem er niet is. Dit systeem is momenteel geimplementeerd en bevat de basis voor spelsituaties. Als een speler geraakt wordt zal deze speler voor een vooraf ingestelde tijd niet meer mee kunnen spelen. Zijn wapen zal gedurende die tijd uitgeschakeld zijn. High level ontwerp van dit systeem is hier te zien. Een filmpje van mijn firmware test is hier te zien.
Momenteel ben ik bezig met RS-485 te implementeren in het systeem wat we nu hebben. Als dat af is zullen er nog wat features toegevoegd worden en zal de code meer portable gemaakt worden. Tegen die tijd zal onze eerste release zijn en PCB's worden aangemaakt. Pas dan zal het tijd worden om na te gaan denken over casings en dergelijke.