So - ich kann dann den ersten Erfolg melden. Habe heute eine Paltine bestückt und es läuft. Hier mal der erste Versuch, die Arbeitsschritte zu beschreiben.
Als erstes ist der ATMega und R1, C1 und C2 zu bestücken. Das reicht aus, um den Bootloader per ISP zu flashen. Doch bevor das erfolgen kann, muss der Bootloader mit der GeräteID und Serial bestückt werden. Hierzu dient das angehängte "makeota.html". Zuerst den ebenfalls angehängten "Bootloader-OTA-atmega328.hex" laden. Dann die ModelID 0030 und beliebige GeräteID und Serial eingeben. Nach drücken der Taste "Create" erscheint ein Link"Save Bootloader", mit welchen der angepasste Boorloader gespeichert werden kann (siehe auch angehängten ScreenShot). Es wird hierzu kein Netzzugang benötigt. Alles erfolgt per Javascript im Browser.
Jetzt ist der Bootloader zu flashen. Ich benutzte einen USBasp dafür. Als Stecker zur Platine dient eine "normale" 2-reihiger Buchse, deren Pins soweit zusammengeborgen wurden, dass sie die Platine fest einklemmen - siehe Foto.
Zum Flashen des Bootloader sind dann folgende Befehle nötig:
avrdude -p m328p -P usb -c usbasp -B 3 -U lfuse:w:0xE2:m -U hfuse:w:0xD0:m -U efuse:w:0x06:m -U lock:w:0x2F:m
avrdude -p m328p -P usb -c usbasp -V -U flash:w:bootloader.hex
Falls es Probleme gibt, bitte mal den Slow-Mode des USBasp probieren und prüfen, ob die Pins des Mega alle ordentlich verlötet sind.
Nach Flashen des Bootloader kann der Rest bestückt werden. Der Quarz und die zugehörigen Kondensatoren werden nicht benötigt. Ich habe noch 2 Bilder vom fertigen Aufbau angehängt.
Wenn jetzt die Platine mit Spannung versorgt wird (bitte Hinweis ganz am Ende beachten), sollte die rote LED 7x blinken. Das signalisiert, dass der Bootloader erfolgreich gestartet wurde. Er wartet jetzt darauf, dass die Fimrware übertragen wird. Hierzu wird
flash-ota benötigt. Für einen HM-CFG-USB sieht der Aufruf wie folgt aus:
flash-ota -f avr_HM_SEC_RHS_201705271601.eq3 -s RHS0000000
Falls Fehler während der Übertragung auftreten, muss der Flashvorgang nochaml wiederholt werden. Der Bottloader startet dann die Firmware nicht.
Wenn die Firmware erfolgreich übertragen werde konnte, kann der Sensor gepairt werden und sollte den Status entsprechend der Zustände an A0 & A1 melden. Derzeit ist folgende Logic implementiert:
A0 & A1 offen - PosA -> CLOSED
A0 geschlossen - PosB -> OPEN
A1 geschlossen - PosC -> TILTED
Die Bedeutung der Positionen kann mittels der entsprechenden Regsiter eingestellt werden. Ebenfalls kann die CyclicInfoMsg aktiviert werden. Der Sensor meldet sich dann alle 24 Stunden mit dem aktuellen Status.
Die Sabotage-Erkennung an A2 scheint noch nicht richtig zu funktionieren.
ACHTUNG: Die Platine enthält leider einen Fehler. VCC & GND sind n der Pinleiste verkehrt beschriftet.