pa-pa / AskSinPP

104 stars 71 forks source link

Support for Sparkfun Pro Micro Board #192

Open RainerMinixhofer opened 4 years ago

RainerMinixhofer commented 4 years ago

Great Library!

I started to implement a Glass Breakage Detection Sensor from Abus by connecting it to an Sparkfun Pro Micro 3.3V Board (VID 1B4F, PID 9204). When starting to use the AskSinPP library I got stuck with the missing support of this hardware (at least I suppose this is the root cause) in th AskSinPP library. When compiling some example sketches from the AskSinPP library (e.g. HM-SEC-SD, which I plan to use) within Arduino IDE I get the attached error messages which point into this direction. When I deliberately change the Board definition from "Sparkfun Pro Micro" to e.g. "Arduino Mini" the compile runs through without any error message. I noticed that the same errors occur with the Board setting to "Arduino Micro" btw.

I'm rather new to Arduino programming, thus help would be appreciated here.

Best regards,

Rainer error_log.txt

jp112sdl commented 4 years ago

Hi,

error_log.txt:

Board: "SparkFun Pro Micro, ATmega32U4 (3.3V, 8 MHz)"

the AskSinPP library does not support the 32U4 microcontroller. The 32U4 has a completely different usage of the internal timers.

You need one of the controllers mentioned in the README: https://github.com/pa-pa/AskSinPP#asksin--

RainerMinixhofer commented 4 years ago

Hi Jerome,

I noticed the missing support for the 32U4 microcontroller after I have wired up the hardware already. Any plans to add this support in future?

Rainer

TomMajor commented 4 years ago

Der 32U4 wurde u.a. auch hier schon mal diskutiert: https://homematic-forum.de/forum/viewtopic.php?f=76&t=53864&p=536675&hilit=32u4#p536675

RainerMinixhofer commented 4 years ago

Danke für den Link Tom,

aufgrund der Kompilerfehler sieht es nach ein paar (überschaubaren) Problemen in "AlarmClock.h" "Activity.h" und "Lowpower.h" aufgrund der klarerweise verschiedenen Registerdefinitionen aus. Das Errorlog schlägt ja sogar schon Register vor die beim ATmega32U4 vorhanden sind. Mir ist nur nicht klar ob es hier nicht Hardwareinkompatibiliäten zwischen den ATmega32U4 und z.B. dem ATmega328B gibt oder ob ich in den entsprechenden Headerfiles der AskSinPP einfach die Register über #if includes für den ATmega32U4 anpassen kann?

pa-pa commented 4 years ago

Probier doch erst mal - wenn es läuft, können wir immer noch sehen, wie wir das am Besten integrieren.

TomMajor commented 4 years ago

Bei Änderungen/Anpassungen der Regs würde ich grundsätzlich prüfen ob dabei die Belegung der U4 Regs denen des 328P entsprechen. Außerdem gibt es keinen Timer2 beim U4, dafür aber Timer 3 und 4.

RainerMinixhofer commented 4 years ago

Habe die Unterschiede in der Timerbelegung schon bemerkt. Es tauchen in der Fehlermeldung aber auch noch Fehler mit dem UART Registern auf. Aber das scheint es auch schon gewesen sein. Ich schaue mir an ob ich einen Pull Request in den nächsten Tagen zusammenkriege, nachdem ich die Library auf dem ATmega32U4 zum Laufen bekomme...

codmpm commented 2 years ago

Currently also trying to get something to work together with @psi-4ward on the 32U4/8MHz/3.3V to ditch the otherwise needed UART bridge and level shifters.

@RainerMinixhofer did you got anything to work? Saw the comit in your fork... https://github.com/RainerMinixhofer/AskSinPP/commit/d9c0fa023a497c3a75031afa63e2a247503eab5b