Wat een ontzettend leuk en ambitieus project! Alle commentaren hierboven kun je negeren want die had je al ondervangen door het in- en uitschakelen van de "top-off apparaten" overridebaar te maken. Ik begrijp dat je dit leuk vind en dit als hobby voor onderweg ziet. Daar is niets mis mee: aan zeilen kom je toch wel toe en gedurende je tocht kun je mooi ervaring op doen met de "top-off" strategie.
Misschien is het project wel klaar als je terug bent!
Zou je eens een blok-diagram willen tekenen van hoe je het ontwerp nu niet? Ik zie niet goed hoe je voor ogen hebt welk dataprotocol je op welke plek wilt gebruiken.
Je schrijft iets als "op termijn afschaffen van de N2K gateway". Betekent dit dat je alles in N2K wilt gaan laten communiceren of juist in NMEA0183? Beide opties hebben voor- en nadelen.
Wat ik niet zou doen is van de Actisense gateway gebruik maken, omdat die, zoals je al zegt, filtert. "CAN shield" noem je immers al. Die actisense module laat slechts een aantal berichten (filtert!) door richting bus. Juist dáár heb je veel meer vrijheid als je dit zélf onder controle houdt. N2K is al black-box genoeg en ik zou niet zo'n Actisense module laten filteren zonder dat je 1:1 kunt mee-sniffen wat er precies op de bus gezet wordt (Actisense filtert beide kanten op voor zover ik weet).
Ik zou van de PiCAN2 interface gebruik maken; die is universeel en filtert helemaal niets als jij dat niet wilt. Je kunt de libraries uit het CANboat project gebruiken: alle (of bijna alle) datagrammen/definities die Actisense gekocht heeft zijn opgenomen in de pgn.h files daar.
Ben er zelf ook mee aan het stoeien (alleen lezen vooralsnog), zie
hier hoe eenvoudig het uitlezen gaat (board kost <40 euro en je kunt alles doen in eigen beheer zodat je exact weet wat er wel (en niet) gebeurt van en naar bus.
Jouw project is vele malen ingewikkelder dan het mijne, en wat ik wel geleerd heb, is dat een goed ontwerp essentieel is. Het wordt heel snel onoverzichtelijk als je niet gestruktureerd tewerk gaat (en als je aan het implementeren bent is het erg tijdrovend het basis-ontwerp aan te passen). Dus ik zou je de volgende (voor vakmensen een open deur natuurlijk) volgorde willen aanraden:
- Specificaties (wát moet het gaan doen)
- Functioneel ontwerp (functionele blokken)
- Keuze interfacing en signalen / technologie (waarom Arduino?)
- Detail ontwerp
- Implementatie
Bij een geschikt modulair ontwerp kun je de laatste 2 punten gefaseerd uitvoeren en uitgaande vanuit een robuuste basis uitbereiden. Module per module dus.
Ik ben nu een jaar (op een erg laag pitje) met mijn projectje bezig en zoals je kunt lezen later pas (met het "professionaliseringsteam") gaan nadenken over puntje 1 en 2 hierboven. Dat is "te laat" eigenlijk, ben daarin inmiddels van "onbewust onbekwaam" naar "bewust onbekwaam" gegroeid. Ook prima en geen schande. Is een hobby dus alles mag, vind ik! En gezien je uberbaubt dit draadje gestart bent, ben je niet van plan zomaar wat te gaan pielen
Zoals ik lees ben je al een eind met punt (1) maar bent wellicht te vroeg met (3) begonen. Probeer in ieder geval niet meteen te gaan bouwen, hoe verleidelijk dat ook is!
Leuk, ik ga dit volgen!