maemo.org - Talk

maemo.org - Talk (https://talk.maemo.org/index.php)
-   Applications (https://talk.maemo.org/forumdisplay.php?f=41)
-   -   Blink Notification led on Battery Low (https://talk.maemo.org/showthread.php?t=46363)

cehteh 2010-03-03 09:29

Blink Notification led on Battery Low
 
Since i disabled system sounds, I often miss when the battery goes low. Unfortunately Nokia missed the opportunity to signal this with the notification LED. So here is a small hack, I may turn this into a proper daemon written in C someday, but thinking about it there is no much need for it. Note that it gets extremely rare waken up (only when battery gets low or you plug in the charger) so, by itself it needs very minimal resources, blinking the LED does not consume much power either just in case you thik about that.

I posting this here, maybe someone has use for it or may even package it (or implement it in C). There is currently one small problem that it leaves a stale process around when one stops it (busybox problem?) But since it should be started at startup and never be stopped this doesn't hurt much. Anyways If anyone fixes this, please notify me.

You need to hack some upstart and/or init.d scripts to start it on boot, I don't post these here and leave that as exercise to the reader. I've also defined my own 'PatternBatteryLow' in /etc/mce/mce.ini, if you are too lazy to define your own, you may just use the error pattern which blinks red at very high priority.


Code:

#!/bin/sh

# copy this to /usr/sbin/batlow.sh
# start it with:
# start-stop-daemon -b -p /var/run/batlow.pid -a /usr/sbin/batlow.sh -S

# Default error pattern is always present bit may be inapprobiate
#BATTERYLOW_PATTERN=PatternError

# When you defined your own pattern:
BATTERYLOW_PATTERN=PatternBatteryLow

dbus-monitor --system \
        "type='signal',member='charger_connected'" \
        "type='signal',member='battery_low'" | \
while read signal; do
        case "$signal" in
        *charger_connected*)
                echo "charger connected"
                dbus-send --system --dest="com.nokia.mce" --type=method_call \
                        "/com/nokia/mce/request" "com.nokia.mce.request.req_led_pattern_deactivate" \
                        "string:$BATTERYLOW_PATTERN"
                ;;
        *battery_low*)
                echo "battery low"
                dbus-send --system --dest="com.nokia.mce" --type=method_call \
                        "/com/nokia/mce/request" "com.nokia.mce.request.req_led_pattern_activate" \
                        "string:$BATTERYLOW_PATTERN"
                ;;
        esac
done


ossipena 2010-03-03 09:36

Re: Blink Notification led on Battery Low
 
http://wiki.maemo.org/Template:Danger

maemo.it 2011-01-15 02:25

Re: Blink Notification led on Battery Low
 
thank you cehteh for your script. I'll use it, really useful. but more important for me is to understand. please, can you explain your script? what means each code line?
eg:
1.what means com.nokia.mce, is it a web address?
2.why you didn't use a simpler one-line command like PatternbatteryLow=(code) in /etc/mce/mce.ini instead of script? we need both?
what I've to write in /init.d directory? a new file or I've to modify existing mce file?
please, don't forget to the newbies too and help them to understand.
thank you cehteh
:)

figaro 2011-02-10 10:20

Re: Blink Notification led on Battery Low
 
Quote:

Originally Posted by ossipena (Post 553586)

could you tell me what danger might be caused by this script? since I don't find anything dangerous other than IF YOU DECIDED TO deal with /etc/mce/mce.ini with your own LED pattern
otherwise this should be safe. or am I wrong?

Quote:

Originally Posted by maemo.it (Post 920632)
thank you cehteh for your script. I'll use it, really useful. but more important for me is to understand. please, can you explain your script? what means each code line?
eg:
1.what means com.nokia.mce, is it a web address?
2.why you didn't use a simpler one-line command like PatternbatteryLow=(code) in /etc/mce/mce.ini instead of script? we need both?
what I've to write in /init.d directory? a new file or I've to modify existing mce file?
please, don't forget to the newbies too and help them to understand.
thank you cehteh
:)

1) no. please go http://dbus.freedesktop.org/doc/dbus-tutorial.html or http://linux.die.net/man/1/dbus-monitor for details
2) you can make as many as LED pattern in mce.ini, but if nothing ever triggered it (such as "scripts"), then it'll do nothing

please correct me if I'm wrong

xxxxts 2011-02-10 12:37

Re: Blink Notification led on Battery Low
 
This is not working for me...

figaro 2011-02-10 13:29

Re: Blink Notification led on Battery Low
 
Quote:

Originally Posted by xxxxts (Post 940890)
This is not working for me...

above code is meant for those who've had PatternBatteryLow in their mce.ini
have you set PatternBatteryLow in yours?
if you haven't, and you don't wish to hassle with your mce.ini, change the code like below

Code:

# Default error pattern is always present bit may be inapprobiate
BATTERYLOW_PATTERN=PatternError

# When you defined your own pattern:
#BATTERYLOW_PATTERN=PatternBatteryLow


xxxxts 2011-02-10 14:21

Re: Blink Notification led on Battery Low
 
I inserted PatternBatteryLow in mce.ini, no luck - I also tried changing to PatternError but still no go...

figaro 2011-02-10 14:36

Re: Blink Notification led on Battery Low
 
try move the script to /home/user, and run it using X-Term and see if it works

it should not print anything unless triggered by battery low notification or changer being connected. if you see some lines while running the script, there might be an error while copying the code

please also make sure that "/com/nokia/mce/request" and "com.nokia.mce.request.req_led_pattern_activat e/deactivate" are in the same line (the code on my browser, it looked as if they're on different lines). or add trailing backslash after "/com/nokia/mce/request" (there are 2 of them, change both)

Code:

                dbus-send --system --dest="com.nokia.mce" --type=method_call \
                        "/com/nokia/mce/request" \
                        "com.nokia.mce.request.req_led_pattern_deactivate" \
                        "string:$BATTERYLOW_PATTERN"


pH5 2011-02-10 16:43

Re: Blink Notification led on Battery Low
 
Quote:

Originally Posted by cehteh (Post 553577)
I posting this here, maybe someone has use for it or may even package it (or implement it in C).

I've implemented the script in Vala and packaged it as Low Battery LED (lowbatled).
If there is no PatternBatteryLow in mce.ini, the package postinst will add it using mceledpattern and restart MCE.

hawaii 2011-02-10 17:02

Re: Blink Notification led on Battery Low
 
A lot of these small daemons can be translated into scripts that run on dbuscron, it would be a lot easier to manage and might reduce ticks.

Just an observation.

Creamy Goodness 2011-02-10 17:46

Re: Blink Notification led on Battery Low
 
oohh very useful app, thanks hawaii. I wanted to laugh at these guys with "low battery scripts" that cause a low battery...

dr_frost_dk 2011-02-10 17:53

Re: Blink Notification led on Battery Low
 
thanks, i added the dbus send to my battery script from my battery test thread, now i can really see when battery is LOW!!! :)
but mine is of course more accurate that relaying on the BME that sometimes goes nuts on my phone since i externally charge my battery while in the phone (again see first posts on the battery thread)
When disabling the battery icon on the desktop area you don't get any warning off low battery so this helps that i blinks to "patternerror" when my battery meter hits the low REAL 5%

hawaii 2011-02-10 19:14

Re: Blink Notification led on Battery Low
 
Ideally, like mentioned before - we could use 'breathing' to show levels of battery. This would also be better useful than advising when the device has such a low battery, that's is almost useless. 5% and you're screwed anyways.

White to a white yellow, then to a white red fading would be fine, trigger only when the device is locked and updated every 30 minutes. Easily achievable with EITHER dbuscron on camped triggers or using fcron on intervals.

figaro 2011-02-11 01:29

Re: Blink Notification led on Battery Low
 
Quote:

Originally Posted by hawaii (Post 941092)
A lot of these small daemons can be translated into scripts that run on dbuscron, it would be a lot easier to manage and might reduce ticks.

Just an observation.

Quote:

Originally Posted by Creamy Goodness (Post 941129)
oohh very useful app, thanks hawaii. I wanted to laugh at these guys with "low battery scripts" that cause a low battery...

oops, uh, yeah you're right
didn't notice it until you said it :D

xxxxts 2011-02-11 06:39

Re: Blink Notification led on Battery Low
 
Quote:

Originally Posted by hawaii (Post 941092)
A lot of these small daemons can be translated into scripts that run on dbuscron, it would be a lot easier to manage and might reduce ticks.

Just an observation.

That's what I wanted to try out in this thread;

http://talk.maemo.org/showthread.php?p=940892

xxxxts 2011-02-11 09:44

Re: Blink Notification led on Battery Low
 
Quote:

Originally Posted by pH5 (Post 941074)
I've implemented the script in Vala and packaged it as Low Battery LED (lowbatled).
If there is no PatternBatteryLow in mce.ini, the package postinst will add it using mceledpattern and restart MCE.

Well after dealing with the script and it not working, I have installed Low Battery LED - and so far it seems to be working perfectly.

A few questions though;

Is this the most efficient way of doing this?
Is this way more efficient than the script (or is it exactly the same)?
Does the daemon only activate when triggered by the low battery or is it always running?

Thanks.

J4ZZ 2011-02-11 10:21

Re: Blink Notification led on Battery Low
 
Quote:

Originally Posted by pH5 (Post 941074)
I've implemented the script in Vala and packaged it as Low Battery LED (lowbatled).
If there is no PatternBatteryLow in mce.ini, the package postinst will add it using mceledpattern and restart MCE.

Besten Dank,

works brilliant. ;)

Greetz,

..::J4ZZ::..

pH5 2011-02-12 18:16

Re: Blink Notification led on Battery Low
 
Quote:

Originally Posted by xxxxts (Post 941856)
Is this the most efficient way of doing this?

No. The most efficient way would be to add this to the libbattery.so module of the mce daemon because this is running anyway. And guess what, mce is now open source!
After downloading the MeeGo mce from http://meego.gitorious.org/meego-middleware/mce and applying the patch below, I ran "make modules/libbattery.so" and put the result into /usr/lib/mce/modules. It seems to work, but I'm still waiting for the next battery_low signal to verify.

Code:

diff --git a/modules/battery.c b/modules/battery.c
index cec3f0d..a1ab114 100644
--- a/modules/battery.c
+++ b/modules/battery.c
@@ -129,7 +129,7 @@ static gboolean battery_ok_dbus_cb(DBusMessage *const msg)
        mce_log(LL_DEBUG,
                "Received battery ok signal");
 
-//        execute_datapipe_output_triggers(&led_pattern_deactivate_pipe, MCE_LED_PATTERN_BATTERY_LOW, USE_INDATA);
+        execute_datapipe_output_triggers(&led_pattern_deactivate_pipe, MCE_LED_PATTERN_BATTERY_LOW, USE_INDATA);
 
        execute_datapipe(&battery_status_pipe,
                          GINT_TO_POINTER(BATTERY_STATUS_OK),
@@ -156,7 +156,7 @@ static gboolean battery_low_dbus_cb(DBusMessage *const msg)
        mce_log(LL_DEBUG,
                "Received battery low signal");
 
-//        execute_datapipe_output_triggers(&led_pattern_activate_pipe, MCE_LED_PATTERN_BATTERY_LOW, USE_INDATA);
+        execute_datapipe_output_triggers(&led_pattern_activate_pipe, MCE_LED_PATTERN_BATTERY_LOW, USE_INDATA);
 
        execute_datapipe(&battery_status_pipe,
                          GINT_TO_POINTER(BATTERY_STATUS_LOW),
@@ -263,7 +263,7 @@ static gboolean charger_charging_on_dbus_cb(DBusMessage *const msg)
 
        /* In case these are active; there's no harm to call them anyway */
        execute_datapipe_output_triggers(&led_pattern_deactivate_pipe, MCE_LED_PATTERN_BATTERY_FULL, USE_INDATA);
-//        execute_datapipe_output_triggers(&led_pattern_deactivate_pipe, MCE_LED_PATTERN_BATTERY_LOW, USE_INDATA);
+        execute_datapipe_output_triggers(&led_pattern_deactivate_pipe, MCE_LED_PATTERN_BATTERY_LOW, USE_INDATA);
 
        execute_datapipe_output_triggers(&led_pattern_activate_pipe, MCE_LED_PATTERN_BATTERY_CHARGING, USE_INDATA);

Quote:

Originally Posted by xxxxts (Post 941856)
Is this way more efficient than the script (or is it exactly the same)?
Does the daemon only activate when triggered by the low battery or is it always running?

The daemon is sleeping most of the time, it is only woken up by the D-Bus signals. And so is the script. Of course the daemon is way more efficient once the signal comes in, but given the expected frequency of battery_low signals this isn't worth all that much. It occupies less memory though.

xxxxts 2011-02-13 15:25

Re: Blink Notification led on Battery Low
 
Quote:

Originally Posted by pH5 (Post 944233)
No. The most efficient way would be to add this to the libbattery.so module of the mce daemon because this is running anyway. And guess what, mce is now open source!
After downloading the MeeGo mce from http://meego.gitorious.org/meego-middleware/mce and applying the patch below, I ran "make modules/libbattery.so" and put the result into /usr/lib/mce/modules. It seems to work, but I'm still waiting for the next battery_low signal to verify.

Code:

diff --git a/modules/battery.c b/modules/battery.c
index cec3f0d..a1ab114 100644
--- a/modules/battery.c
+++ b/modules/battery.c
@@ -129,7 +129,7 @@ static gboolean battery_ok_dbus_cb(DBusMessage *const msg)
        mce_log(LL_DEBUG,
                "Received battery ok signal");
 
-//        execute_datapipe_output_triggers(&led_pattern_deactivate_pipe, MCE_LED_PATTERN_BATTERY_LOW, USE_INDATA);
+        execute_datapipe_output_triggers(&led_pattern_deactivate_pipe, MCE_LED_PATTERN_BATTERY_LOW, USE_INDATA);
 
        execute_datapipe(&battery_status_pipe,
                          GINT_TO_POINTER(BATTERY_STATUS_OK),
@@ -156,7 +156,7 @@ static gboolean battery_low_dbus_cb(DBusMessage *const msg)
        mce_log(LL_DEBUG,
                "Received battery low signal");
 
-//        execute_datapipe_output_triggers(&led_pattern_activate_pipe, MCE_LED_PATTERN_BATTERY_LOW, USE_INDATA);
+        execute_datapipe_output_triggers(&led_pattern_activate_pipe, MCE_LED_PATTERN_BATTERY_LOW, USE_INDATA);
 
        execute_datapipe(&battery_status_pipe,
                          GINT_TO_POINTER(BATTERY_STATUS_LOW),
@@ -263,7 +263,7 @@ static gboolean charger_charging_on_dbus_cb(DBusMessage *const msg)
 
        /* In case these are active; there's no harm to call them anyway */
        execute_datapipe_output_triggers(&led_pattern_deactivate_pipe, MCE_LED_PATTERN_BATTERY_FULL, USE_INDATA);
-//        execute_datapipe_output_triggers(&led_pattern_deactivate_pipe, MCE_LED_PATTERN_BATTERY_LOW, USE_INDATA);
+        execute_datapipe_output_triggers(&led_pattern_deactivate_pipe, MCE_LED_PATTERN_BATTERY_LOW, USE_INDATA);
 
        execute_datapipe_output_triggers(&led_pattern_activate_pipe, MCE_LED_PATTERN_BATTERY_CHARGING, USE_INDATA);


The daemon is sleeping most of the time, it is only woken up by the D-Bus signals. And so is the script. Of course the daemon is way more efficient once the signal comes in, but given the expected frequency of battery_low signals this isn't worth all that much. It occupies less memory though.

I don't quite know what to do with this... a little confused and tired. Could you please put it into laymens terms.

xxxxts 2011-02-15 10:57

Re: Blink Notification led on Battery Low
 
bump on the question?:o

caco3 2011-02-15 14:42

Re: Blink Notification led on Battery Low
 
Great project!
I installed it, but couldnt test it yet as my battery ist still full.

caco3 2011-02-15 15:33

Re: Blink Notification led on Battery Low
 
Quote:

Originally Posted by sygys (Post 947071)
people around here are to damn lazy to write descent tutorials.

Have you ever written a tutorial or documentation?
Then you would know that it is hard work!

BTW: Don't expect help if you don't get nicer!
People writing software invest a big part of their free time for it.

hawaii 2011-02-15 17:44

Re: Blink Notification led on Battery Low
 
Quote:

Originally Posted by sygys (Post 947071)
people around here are to damn lazy to write descent tutorials. they think people know this ****. Even worse is the comments i get about if you dont know how then you shouldnt. well hell if i could never try how the hell do i learn it? I reflashes my device over 20 times after bricking it. if i want to try it why dont you people write descent tutorials so that we DONT have to brick our devices while trying!

Oh sorry. We're too busy writing software, patches or hacks that you use for completely free.

xxxxts 2011-02-15 18:10

Re: Blink Notification led on Battery Low
 
Quote:

Originally Posted by sygys (Post 947071)
people around here are to damn lazy to write descent tutorials. they think people know this ****. Even worse is the comments i get about if you dont know how then you shouldnt. well hell if i could never try how the hell do i learn it? I reflashes my device over 20 times after bricking it. if i want to try it why dont you people write descent tutorials so that we DONT have to brick our devices while trying!

You need to clam down and appreciate all the work developers have done, FOR FREE. I have had my phone since it was released and NEVER reflashed. I find everything to be well documented, and if it is not I ask and I get an answer. Cool it man.

rantom 2011-02-15 18:37

Re: Blink Notification led on Battery Low
 
Quite nice idea, I quickly went through the thread. Has anyone contacted the host of LED Patterns and/or Community SSU, since those two, as far as I know, are both doing minor mods to the notification lights? I'd recon, that the first one (LED Patterns) could have this implemented on it, right?

pH5 2011-02-16 19:45

Re: Blink Notification led on Battery Low
 
Quote:

Originally Posted by xxxxts (Post 945044)
I don't quite know what to do with this... a little confused and tired. Could you please put it into laymens terms.

MCE (Mode Control Entity) is the daemon that handles display brightness, notification leds etc. via several plugins. One of the plugins, libbattery.so is responsible for enabling the BatteryCharging and BatteryFull patterns. The patch also makes it enable the BatteryLow pattern, exactly the same way as the lowbatled daemon and the original script do.
In the long term, we should (in the Community SSU) replace the whole MCE daemon with the open source version from MeeGo. Short term, I guess I could put a modified libbattery.so module in the lowbatled package instead of the daemon, if that makes any sense.

cutehunk04 2011-02-16 19:48

Re: Blink Notification led on Battery Low
 
its working grt...thanks needed a lot as it helps to let know when i need to charge...!!!

dr_frost_dk 2011-02-16 19:56

Re: Blink Notification led on Battery Low
 
Quote:

Originally Posted by pH5 (Post 948298)
MCE (Mode Control Entity) is the daemon that handles display brightness, notification leds etc. via several plugins. One of the plugins, libbattery.so is responsible for enabling the BatteryCharging and BatteryFull patterns. The patch also makes it enable the BatteryLow pattern, exactly the same way as the lowbatled daemon and the original script do.
In the long term, we should (in the Community SSU) replace the whole MCE daemon with the open source version from MeeGo. Short term, I guess I could put a modified libbattery.so module in the lowbatled package instead of the daemon, if that makes any sense.

i have been thinking about this myself, looked at the meego files earlier to try to sniff out the 5 brightness values.

p00ltergeist 2011-03-03 20:07

Re: Blink Notification led on Battery Low
 
The idea of this extra notification is great but I'd prefer if you could modify the blinking pattern to begin at a choosen percentage other than that , its great !!

p00ltergeist 2011-03-03 20:21

Re: Blink Notification led on Battery Low
 
Quote:

Originally Posted by rantom (Post 947277)
Quite nice idea, I quickly went through the thread. Has anyone contacted the host of LED Patterns and/or Community SSU, since those two, as far as I know, are both doing minor mods to the notification lights? I'd recon, that the first one (LED Patterns) could have this implemented on it, right?

correct, if you have both of them istalled the low bat led is implented and editable in led patterns editor.

rantom 2011-03-03 21:19

Re: Blink Notification led on Battery Low
 
Quote:

Originally Posted by p00ltergeist (Post 959949)
correct, if you have both of them istalled the low bat led is implented and editable in led patterns editor.

Hmm? As far as I know, no ones implemented this to a 3rd party software yet? It's not mentioned in LED Pattern Editor's package overview and I've yet to encounter a mention of this hack in CSSU-thread.

I've posted a link to this thread in CSSU-thread now.

p00ltergeist 2011-03-03 21:33

Re: Blink Notification led on Battery Low
 
1 Attachment(s)
Quote:

Originally Posted by rantom (Post 960011)
Hmm? As far as I know, no ones implemented this to a 3rd party software yet? It's not mentioned in LED Pattern Editor's package overview and I've yet to encounter a mention of this hack in CSSU-thread.

I've posted a link to this thread in CSSU-thread now.

Quoted from my-maemo.org "This package installs a new LED notification pattern to signal low battery via the notification LED.

You can use LED Pattern Editor to modify it to your liking (blinking pattern, colour)."

Good enough for you ?

rantom 2011-03-03 22:01

Re: Blink Notification led on Battery Low
 
Quote:

Originally Posted by p00ltergeist (Post 960021)
Quoted from my-maemo.org "This package installs a new LED notification pattern to signal low battery via the notification LED.

You can use LED Pattern Editor to modify it to your liking (blinking pattern, colour)."

Good enough for you ?

Ah, now I understand. Please quote correctly, you completely lost me there. You meant this post, did you not?

Quote:

Originally Posted by pH5 (Post 941074)
I've implemented the script in Vala and packaged it as Low Battery LED (lowbatled).
If there is no PatternBatteryLow in mce.ini, the package postinst will add it using mceledpattern and restart MCE.

Since it is in -Devel I'll stay away from it and wait for the original developer/CSSU-member to add it to the configurations.

p00ltergeist 2011-03-03 22:11

Re: Blink Notification led on Battery Low
 
Quote:

Originally Posted by rantom (Post 960036)
Ah, now I understand. Yes, once it is implemented to the software. Isn't it now so, that this hack, once applied, does show up in the LED Pattern Editor? I've yet to find this package that you're speaking of.

It might be implemented in the newest -Devel-version but I'm staying in the Extras so I don't know about that. Package overview, as I said before, did not show it in the changes so I assume it's not implemented, yet.


Well it doesnt really say if its from devel or extras , wierd. I cant really tell you as i have both enabled.

anyway.. im still not 100% happy with it cuz of the lack of possibility to manually set it to start blinking in say 20% percent..

rantom 2011-03-03 22:16

Re: Blink Notification led on Battery Low
 
Quote:

Originally Posted by p00ltergeist (Post 960043)
Well it doesnt really say if its from devel or extras , wierd. I cant really tell you as i have both enabled.

anyway.. im still not 100% happy with it cuz of the lack of possibility to manually set it to start blinking in say 20% percent..

Yes, it does, not in the Hildon Applications Manager though. Screenshot attached.

Alright, so this seems to either implement itself (the "patch") to the CSSU-settings (and as far as I know, that's a FOSS-clone so that would explain it) or it just happens to work with it.

But I think that's enough about it while waiting for the feature to be implemented for end-users.

p00ltergeist 2011-03-03 22:17

Re: Blink Notification led on Battery Low
 
Quote:

Originally Posted by rantom (Post 960036)
Ah, now I understand. Please quote correctly, you completely lost me there. You meant this post, did you not?


Since it is in -Devel I'll stay away from it and wait for the original developer/CSSU-member to add it to the configurations.


sorry about that... anyway , yes, you do that.

Char 2011-03-04 09:16

Re: Blink Notification led on Battery Low
 
Quote:

Originally Posted by p00ltergeist (Post 960043)
Well it doesnt really say if its from devel or extras , wierd. I cant really tell you as i have both enabled.

anyway.. im still not 100% happy with it cuz of the lack of possibility to manually set it to start blinking in say 20% percent..

since MCE is open source it would of course probably be possible to change the "low battery" threshold from 5% to 20%

p00ltergeist 2011-03-04 10:06

Re: Blink Notification led on Battery Low
 
Quote:

Originally Posted by Char (Post 960345)
since MCE is open source it would of course probably be possible to change the "low battery" threshold from 5% to 20%

of course, ive realized that although I dont have the skills or the knowledge to do so.

Any ideas?

caco3 2011-03-07 21:05

Re: Blink Notification led on Battery Low
 
Thank you for this great app!
It is really useful.
Sometimes when I plug the phone onto my PC, it for some reasons does not start charging. Last time it happened, the low bat indication continued indicating, so it made me aware of it *thumbs up*

However, something I miss is to be able to set a threshhold.
Or at least a info when it will start.

xxxxts 2011-09-25 22:56

Re: Blink Notification led on Battery Low
 
Is this in CSSU yet??? I have it installed... and it works pretty well.


All times are GMT. The time now is 11:34.

vBulletin® Version 3.8.8