# HMSensor

Das HMSensor Projekt (opens new window) stammt von pa-pa und versucht eine universelle Hardware-Basis für AskSin++ Sensoren und Aktoren zu sein. Die Größe der Platine ist dabei nur 40x20mm und damit nur geringfügig größer als ein Pro-Mini.

Die Platine gibt es in der StepUp und CR2032 Variante. Die jeweiligen Bauteillisten sind auf Github hinterlegt.

PS: Keine Angst vor SMD, mit etwas Übung lassen sich HMSensor Platinen mit einem normalen Lötkolben bestücken. Mit einer guten Pinzette, Flux und Entlötlitze sowie einer Lupe oder Mikroskop hat man eine gute Grundausstattung. Youtube bietet einige gute Videos die den Einstieg erleichtern. Hat man den Dreh erst mal raus, dann will man keine Beinchen mehr abknipsen nach dem Löten 🙂

# HMSensor-StepUp

Durch den StepUp Wandler erreicht man eine möglichst gute Ausnutzung der Batteriekapazität.

Zusätzlich ist eine externe Messung der Batteriespannung möglich. Dazu muss der Spannungsteiler über R4 und R5 bestückt werden. Der Sensor Pin ist A3, der Activation Pin ist 7 und die Referenzspannung beträgt 3V.

Beide Varianten können mit einem 32kHz Quarz ausgestattet werden wenn man genauere Timings benötigt. Zusätzlich kann er den Ruhestrom weiter senken, siehe Ruhestrom Arduino Pro Mini (opens new window) von Tom Major.

HMSensor StepUp HMSensor StepUp

Will man auf den externen Quarz verzichten, dann bleiben C4, C5 und Y1 unbestückt.

HMSensor StepUp Oberseite Teile

Benötigt man keinen StepUp Wandler kann der Jumper J1 geschlossen werden. Die Bauteile L1, C6, C7 und IC3 bleiben unbestückt. Zudem kann man ohne StepUp die Batteriemessugn am AVR-VCC nutzen und benötigt den Spannungsteiler über R4 und R5 nicht.

HMSensor StepUp Oberseite Teile

# HMSensor-CR2032

Hat man keinen Platz für große Batterien greift man auf eine CR2032-Zelle zurück. Sie wird in einen Halter auf der Oberseite gesteckt, der ATmega328P sitzt bei dieser Variante auf der Rückseite. Da Knopfzellen andere Entlade-Eigenschaften haben kann hier auf einen StepUp Wandler verzichtet werden.

HMSensor CR2032 Oberseite HMSensor CR2032 Rückseite HMSensor CR2032 Oberseite Teile HMSensor CR2032 Rückseite Teile

TIP

Wird die Antenne am Lötauge ANT der HMSensor verbaut, beträgt die Länge nur noch 72mm.

Auf die mittlere Kontaktfläche für die Knopfzelle sollte etwas Zinn aufgetragen werden damit die Erhöhung einen besseren Kontakt zu ermöglicht.

# Addons

Für die HMSensor gibt es diverse Addon-Platinen (opens new window).

# Software

Beide Varianten führen die ISP sowie die UART Pins nach außen.

Anschluss über Pin-Header Anschluss über Pogos auf FlashStation

# Bootloader und Fuses

Da der ATmega328P ohne Bootloader kommt, wird dieser per ISP-Programmer aufgespielt. Es empfiehlt sich die Verwendung des Diamex (opens new window) Programmers, da dieser auch auf dem SPI-Interface 3,3V liefert => DIP-Schalterstellung prüfen!

WARNING

Bei Verwendung eins USBasp sollte das CC1101 Funkmodul noch nicht bestückt sein, da es keine 5V verträgt.

Der Anschluss des ISP erfolgt nach Beschriftung. ISP Pinout

Der Arudino Bootloader (opens new window) dient zum späteren Flashen der Sketches per UART (FTDI) Adapter.

Es ist auch möglich einen OTA-Bootloader aufzuspielen, siehe dazu OTA-Firmware (opens new window) im FEHM Wiki. Der OTA-Bootloader benöigt etwas mehr Platz weshalb als High-Fuse 0xD0 verwendet wird.

Für den Arduino-Bootloader mit deaktiviertem BOD können folgende Fuses gesetzt werden.
Siehe auch Babbling Idiot.

# Fuses setzen
avrdude -p m328p -P /dev/ttyACM3 -c avrisp2 -B 10 -U lfuse:w:0xE2:m -U hfuse:w:0xD2:m -U efuse:w:0xFF:m -U lock:w:0xFF:m

# Upload des Arudino Bootloaders
avrdude -p m328p -P /dev/ttyACM3 -c avrisp2 -V -U flash:w:ATmegaBOOT_168_atmega328_pro_8MHz.hex

# Bootloader verifizieren
avrdude -p m328p -P /dev/ttyACM3 -c avrisp2 -U flash:v:ATmegaBOOT_168_atmega328_pro_8MHz.hex
1
2
3
4
5
6
7
8

Es ist darauf zu achten, dass die Memory-Operation (-U) keine Leerzeichen enthalten darf. Die Parameter für den Port -P und den Programmer -c müssen an die jeweilige Umgebung angepasst werden. Beispielsweise -P usb -c usbasp für den USBasp unter Windows.

# Sketche

Sketche werden wie gewohnt über den UART (FTDI) geflasht.

Alternativ könnte man den Bootloader auch weglassen und den Sketch direkt per ISP aufspielen. Der FTDI würde dann nur noch zur Anzeige des seriellen Monitors benötigt.

Anschluss des FTDI an die HMSensor:

HMSensor FTDI
VCC VCC 3.3V
GND GND
TX RX
RX TX
RESET DTR 100nF Kondensator in Reihe schalten!

# Ruhestrom

Den Ruhestrom kann man mit den SleepTest Sketches von Tom überprüfen: Infos zum Ruhestrom (opens new window)

Es sind schon Fälle aufgetreten, bei denen der Ruhestrom bei ~15mA lag. Schuld waren "defekte" CC1101 Module.