Author Topic: IO4 Bricklet und Dual-Button Bricklet Firmware zusammenfuegen?  (Read 2579 times)

Loetkolben

  • Hero Member
  • *****
  • Posts: 1.178
    • View Profile
Edit:
Originalbetreff: "Wer kann Firmware fuer _neue_ Bricklets compilieren?"

Hallo zusammen,

wie an einigen Stellen zu lesen ist, wird es (bald) neue Bricklets geben.  :D
Es scheint aber so, dass die Firmware wohl schon im Betastadium verfuegbar ist. Leider habe ich es noch nicht geschafft mir eine Compilerumgebung aufzusetzen und wuerde mich freuen, wenn jemand fuer mich diese Firmware mal uebersetzten koennte: Dual Button Bricklet

Danke.


Der Loetkolben
« Last Edit: September 05, 2013, 21:51:34 by Loetkolben »

borg

  • Tinkerforge Staff
  • Administrator
  • Hero Member
  • *****
  • Posts: 3.142
    • View Profile
Re: Wer kann Firmware fuer _neue_ Bricklets compilieren?
« Reply #1 on: September 05, 2013, 19:08:23 »
Siehe Anhang.
Wir sind die Borg, Widerstand ist Spannung durch Stromstärke!

Loetkolben

  • Hero Member
  • *****
  • Posts: 1.178
    • View Profile
Re: Wer kann Firmware fuer _neue_ Bricklets compilieren?
« Reply #2 on: September 05, 2013, 21:50:33 »
Hallo borg,

vielen Dank!  :D

Es funktioniert wie erwartet. Toll. Wie schonmal geschrieben moechte ich eine LED per Tastendruck "lokal" anmachen, diesen Zustand dann ohne Callback abfragen und die LED dann loeschen.

Beim io4 Bricklet kann ich den (Tasten-)Zaehler >1 abfragen und auch loeschen, aber es wird lokal keine LED angemacht.

Bei Dual-Button Bricklet macht der Taster eine LED an. Den Zustand kann ich auch abfragen aber die LED nicht einzeln loeschen. Ich muesste den Status der 2. LED abfragen und dann mitsetzen. Warum gibt es keine Bitmaske?

Weiterhin waere ein Modus schoen der die LED setzt egal wie oft gedrueckt wird. Wie der "Flankenzaehler"  ;)

Auf jeden Fall finde ich das ein sehr sinnvolles Bricklet! Sind dort auch Loetpads fuer externe LED/Taster drauf?  ;D

Mein Fazit: Koennte man nicht "eine" Firmware machen die die Moeglichkeiten beider Bricklets vereint (Weniger Wartungsaufwand und mehr Moeglichkeiten)? Als "einzigen" Unterschied koennte man den Namen aendern und den Init anders setzen (io4: 4*input) (Dual-Button:Toggle, 2*in + 2*out)

Der Loetkolben



Loetkolben

  • Hero Member
  • *****
  • Posts: 1.178
    • View Profile
Re: IO4 Bricklet und Dual-Button Bricklet Firmware zusammenfuegen?
« Reply #3 on: October 17, 2013, 16:51:06 »
Hallo zusammen,

da darf ich nochmals einhaken, da nun die Schematics verfuegbar sind..  :)

Warum werden die LED gegen VCC geschaltet und nicht gegen GND? Was hat das fuer einen Vorteil, bzw. was ist der Sinn dahinter? Schont das die Portausgaenge oder kann auf diesem Weg ein hoeherer Strom fliessen?

Nach einem HW Reset muessten die LED an sein. Die Buttons werden (typischerweise) gegen GND getastet.


Danke.

Der Loetkolben

batti

  • Tinkerforge Staff
  • Administrator
  • Hero Member
  • *****
  • Posts: 984
    • View Profile
Re: IO4 Bricklet und Dual-Button Bricklet Firmware zusammenfuegen?
« Reply #4 on: October 17, 2013, 17:08:42 »
Hallo Lötkolben,

Quote
Warum werden die LED gegen VCC geschaltet und nicht gegen GND? Was hat das fuer einen Vorteil, bzw. was ist der Sinn dahinter? Schont das die Portausgaenge oder kann auf diesem Weg ein hoeherer Strom fliessen?
Damit die LED leuchtet muss der Port gegen GND geschalten werden. Somit ist sichergestellt, dass die LED nicht leuchtet auch wenn der Prozessorpin auf Input Pullup steht (Default, auch wenn der Pullup meist sehr hochohmig ist). Man schaltet LEDs meist aber auch gegen GND weil viele Treiber mehr Strom nach GND abführen können als gegen VCC.

Grüße,

Bastian

Loetkolben

  • Hero Member
  • *****
  • Posts: 1.178
    • View Profile
Re: IO4 Bricklet und Dual-Button Bricklet Firmware zusammenfuegen?
« Reply #5 on: October 17, 2013, 17:28:38 »
Hallo batti,

vielen Dank fuer die schnelle Antwort. Das macht ja wirklich Sinn und passt ja zu meinen Vermutungen. Dann haette ich aber noch eine Bitte:

Wenn ich das richtig verstehe, dann ist der IO Pin nach dem HW Reset (Power off/on) auf Input gestellt. Waehrend des Initialisierens der Bricklet FW wird er dann auf Output gestellt.
Koenntet ihr bitte die FW so anpassen, dass nach dem HW Reset und nach der Bricklet Initialisierungsphase die LEDs am Anfang AUS sind.
Aus meiner Sicht verwirrt es, wenn nach dem Einschalten der Hardware erstmal alles LED an sind. (Oder habe ich hier eine alte FW?)

Nachtrag: Von mir aus koennen die LED zum Funktionstest gerne 500ms angehen oder blinken, aber sie sollten nach der Initialisierungphase defaultmaessig AUS sein.  ;)

Danke.

Der Loetkolben
« Last Edit: October 17, 2013, 17:48:42 by Loetkolben »

photron

  • Tinkerforge Staff
  • Administrator
  • Hero Member
  • *****
  • Posts: 2.475
    • View Profile
Re: Re: Wer kann Firmware fuer _neue_ Bricklets compilieren?
« Reply #6 on: October 17, 2013, 17:34:48 »
Bei Dual-Button Bricklet macht der Taster eine LED an. Den Zustand kann ich auch abfragen aber die LED nicht einzeln loeschen. Ich muesste den Status der 2. LED abfragen und dann mitsetzen. Warum gibt es keine Bitmaske?

Richtiger Hinweis, ist vermerkt :)

Sind dort auch Loetpads fuer externe LED/Taster drauf?  ;D

Die Taster sind bedrahtete Bauteile, du kannst also an deren Pins was anlöten.

Mein Fazit: Koennte man nicht "eine" Firmware machen die die Moeglichkeiten beider Bricklets vereint (Weniger Wartungsaufwand und mehr Moeglichkeiten)? Als "einzigen" Unterschied koennte man den Namen aendern und den Init anders setzen (io4: 4*input) (Dual-Button:Toggle, 2*in + 2*out)

Das wird nicht passieren, dafür sind die beiden zu verschieden. Im Endeffekt würde ein Zusammenlegen höchstwahrscheinlich mehr Arbeit machen als es sparen könnte.

Wenn ich das richtig verstehe, dann ist der IO Pin nach dem HW Reset (Power off/on) auf Input gestellt. Waehrend des Initialisierens der Bricklet FW wird er dann auf Output gestellt.
Koenntet ihr bitte die FW so anpassen, dass nach dem HW Reset und nach der Bricklet Initialisierungsphase die LEDs am Anfang AUS sind.
Aus meiner Sicht verwirrt es, wenn nach dem Einschalten der Hardware erstmal alles LED an sind. (Oder habe ich hier eine alte FW?)

Die LEDs sind nach dem Reset aus.

Nach dem Reset sind alle Pins im Input Pull-Up Modus. Input heißt, dass sie nicht aktiv getrieben werden (das wäre Output). Pull-Up heißt, dass sie über einen internen (Pull-Up) Widerstand gegen VCC geschaltet sind. Dadurch sind die LEDs initial aus, weil sie an beiden Enden an VCC hängen.
« Last Edit: October 17, 2013, 17:37:06 by photron »

Loetkolben

  • Hero Member
  • *****
  • Posts: 1.178
    • View Profile
Re: IO4 Bricklet und Dual-Button Bricklet Firmware zusammenfuegen?
« Reply #7 on: October 17, 2013, 17:59:10 »

Die LEDs sind nach dem Reset aus.

Nach dem Reset sind alle Pins im Input Pull-Up Modus. Input heißt, dass sie nicht aktiv getrieben werden (das wäre Output). Pull-Up heißt, dass sie über einen internen (Pull-Up) Widerstand gegen VCC geschaltet sind. Dadurch sind die LEDs initial aus, weil sie an beiden Enden an VCC hängen.

Hallo photron,

ja das stimmt ja. Das ist der Zustand nach dem HW Reset, aber was kommt dann?  ;)
Dann wird doch die Bricklet FW geladen/ausgefuehrt und die setzt die LED Ports auf Output und den Port selbst auf "Low". Und damit leuchten die LED. (Zumindest bei meiner FW. S.o.).
Hier muesste die Bricklet FW den Port auf Output und "High" setzen, damit die LED, auch nach starten der Bricklet FW, aus bleiben. Oder?  ::)


Der Loetkolben

photron

  • Tinkerforge Staff
  • Administrator
  • Hero Member
  • *****
  • Posts: 2.475
    • View Profile
Re: IO4 Bricklet und Dual-Button Bricklet Firmware zusammenfuegen?
« Reply #8 on: October 17, 2013, 18:30:17 »
Meine Annahme war, dass die LEDs nach dem Start aus sind. Ich hätte in den Code schauen sollen. In der Tat werden die LEDs beim Start eingeschaltet. Ich gebe dir Recht, initial aus ist nahe liegender, so ist es jetzt auch abgeändert.

Loetkolben

  • Hero Member
  • *****
  • Posts: 1.178
    • View Profile
Re: IO4 Bricklet und Dual-Button Bricklet Firmware zusammenfuegen?
« Reply #9 on: October 17, 2013, 18:41:49 »
Hallo photron,

so ist das eben mit invertierter Logik.  :D  Port "AN", damit die Led "AUS" bleibt.   ;)

Koenntest Du bitte nochmal eine compilierte FW hier anhaengen? Dann baue ich meine Hardware auch um.

Danke.

Der Loetkolben
« Last Edit: October 17, 2013, 18:49:13 by Loetkolben »

photron

  • Tinkerforge Staff
  • Administrator
  • Hero Member
  • *****
  • Posts: 2.475
    • View Profile
Re: IO4 Bricklet und Dual-Button Bricklet Firmware zusammenfuegen?
« Reply #10 on: October 17, 2013, 18:53:21 »
Hier ist sie.

Loetkolben

  • Hero Member
  • *****
  • Posts: 1.178
    • View Profile
Re: IO4 Bricklet und Dual-Button Bricklet Firmware zusammenfuegen?
« Reply #11 on: October 17, 2013, 19:55:02 »
Hallo photron.

VIELEN DANK!

Mit dem "aktuellen" Brickviewer sieht das schon sehr rund aus.  :)




Ich stelle mal eine Interessensfrage, aber da bewege ich mich auf duennem Eis, da ich die Callbacks nicht so ganz verstehe:

Wenn man auf dem Bricklet den Button drueckt wird ueber einen Callack (dem Brickviewer) mitgeteilt das der "Button pressed" ist und es wird der LED Status (On/Off) im Callback mitgeschickt. Soweit ok.

Wenn man nun aber die LED per Brickviewerbutton oder eigener Software ein-, bzw ausschaltet, wird kein Callback ausgeloest. D.h., dass der letzte per Callback empfangene Status nicht mehr dem aktuellen Anzeigezustand der LEDs wiedergibt.

Ist das so gewollt? Sollte nicht auch eine Aenderung des Schaltzustandes der LEDs auch einen Callback ausloesen damit der Status wieder stimmt?


Diese Frage hat im Moment fuer mich keine Relevanz und darf gerne nach hinten gestellt werden.  :)


Der Loetkolben