{"id":6615,"date":"2009-09-12T14:21:42","date_gmt":"2009-09-12T07:21:42","guid":{"rendered":"http:\/\/www.kitty.in.th\/?page_id=6615"},"modified":"2011-09-21T14:20:28","modified_gmt":"2011-09-21T07:20:28","slug":"acer-ec","status":"publish","type":"page","link":"https:\/\/kitty.in.th\/index.php\/projects\/acer-ec\/","title":{"rendered":"Acer-EC: Acer Aspire One D150 Embedded Controller"},"content":{"rendered":"<h3>Introduction<\/h3>\n<p>Acer Aspire One has a built-in embedded controller. This EC provides interface to read\/write 256 control registers for various devices, e.g., bluetooth, touchpad, wireless, CPU temperature, brightness level, power status, battery. By reading\/writing these registers through the EC, ones can easily access or modify device status.<\/p>\n<p>Thanks to <a href=\"http:\/\/code.google.com\/p\/aceracpi\/wiki\/EmbeddedController\">http:\/\/code.google.com\/p\/aceracpi\/wiki\/EmbeddedController<\/a> for introducing acer_ec.pl as a basic tool to deal with the EC. However, it does not fully compatible with Aspire One D150 (AOD150), and &#8212; personally &#8212; I hate perl :P<\/p>\n<p>Anyway, <tt>acer.pl<\/tt> inspires me to develop Acer-EC from scratch in C, based on the DSDT (Differentiated System Description Table) decoded from my D150.<\/p>\n<h3>Download<\/h3>\n<ul>\n<li>Current version:\n<ul>\n<li>Source: <a href=\"ftp:\/\/ftp.kitty.in.th\/pub\/sources\/acer-ec\/acer-ec-0.0.3.tar.bz2\">ftp:\/\/ftp.kitty.in.th\/pub\/sources\/acer-ec\/acer-ec-0.0.3.tar.bz2<\/a><\/li>\n<li>deb: <a href=\"ftp:\/\/ftp.kitty.in.th\/pub\/ubuntu\/kitty\/pool\/karmic\/acer-ec\/acer-ec_0.0.3-0kitty1_i386.deb\">ftp:\/\/ftp.kitty.in.th\/pub\/ubuntu\/kitty\/pool\/karmic\/acer-ec\/acer-ec_0.0.3-0kitty1_i386.deb<\/a><\/li>\n<\/ul>\n<\/li>\n<li>Older version:\n<ul>\n<li>Source: <a href=\"ftp:\/\/ftp.kitty.in.th\/pub\/sources\/acer-ec\/acer-ec-0.0.2.tar.bz2\">ftp:\/\/ftp.kitty.in.th\/pub\/sources\/acer-ec\/acer-ec-0.0.2.tar.bz2<\/a><\/li>\n<li>deb: <a href=\"ftp:\/\/ftp.kitty.in.th\/pub\/ubuntu\/kitty\/pool\/jaunty\/acer-ec\/acer-ec_0.0.2-1kitty1_i386.deb\">ftp:\/\/ftp.kitty.in.th\/pub\/ubuntu\/kitty\/pool\/jaunty\/acer-ec\/acer-ec_0.0.2-1kitty1_i386.deb<\/a><\/li>\n<\/ul>\n<\/li>\n<li>Git repository: git:\/\/git.kitty.in.th\/acer-ec\/<\/li>\n<\/ul>\n<h3>Building Acer-EC<\/h3>\n<p>It&#8217;s GNU building system, so just<\/p>\n<pre>$ tar xjf acer-ec-x.y.z.tar.bz2\r\n$ cd acer-ec-x-y-z\r\n$ .\/autogen.sh\r\n$ .\/configure\r\n$ make\r\n$ sudo make install<\/pre>\n<p>The binary <tt>acer-ec<\/tt> should be installed in <tt>\/usr\/local\/bin\/<\/tt>. It requires root privilege to access EC ports, so you may need <tt>sudo<\/tt>, or set SUID bit.<\/p>\n<h3>Features<\/h3>\n<ul>\n<li>Show status:\n<ul>\n<li>Bluetooth, Touchpad, Wireless,<\/li>\n<li>Backlight (brightness) level<\/li>\n<li>CPU temperature<\/li>\n<li>Power status<\/li>\n<li>Battery status, and capacity<\/li>\n<\/ul>\n<\/li>\n<li>Toggle bluetooth, touchpad, wireless<\/li>\n<li>Set backlight level (0 &#8211; 9)<\/li>\n<li>Dump registers, known fields<\/li>\n<\/ul>\n<h3>Screenshots<\/h3>\n<pre>$ acer-ec\r\nWireless      : On\r\nBluetooth     : On\r\nTouchpad      : On\r\nBrightness    : [+++++----]\r\nCPU temp      : 50\\'C\r\nLid switch    : No\r\nPower adapter : Yes\r\nBatt. status  : Charged\r\nBatt. capacity: 2070 mAh (100 %)\r\nVoltage       : 12.559 V<\/pre>\n<pre>$ acer-ec -r\r\nDump registers (Decimal)\r\n\r\n   |   00   01   02   03   04   05   06   07   08   09   0a   0b   0c   0d   0e   0f\r\n---+--------------------------------------------------------------------------------\r\n00 |    0    0    0    0    0    0    0    0    1   97    0    0    0    0    0    0\r\n10 |    0    0    0    0    0    0    0    0    0   85   77   48   56   65   55   49\r\n20 |    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0\r\n30 |    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0\r\n40 |    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0\r\n50 |    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0\r\n60 |    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0\r\n70 |    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0\r\n80 |    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0\r\n90 |    0    0    0    0    0    0    0    0    0    0   17   16    0    0    0    0\r\na0 |    0    0    0  160  193    0    0   85   99    0    0    9   90   21    0    0\r\nb0 |   50   54    0    0    0    0    0    0    0    5    0   31   82    0    0    0\r\nc0 |  176  128   22    8   96    1   15   49   92   43  152    8   22    8  100   52\r\nd0 |    0    0    0    0    0  125  134   34    0    0    8    3    0    0  224   64\r\ne0 |    0    0  104    0    0    0    0    0    0    0    0    0    0    0    0    0\r\nf0 |  195   16    0    0  125   57   56   49   65    1  225    0    0    0    0    0<\/pre>\n<pre>$ acer-ec -d\r\nBATM 01 61\r\nBATD 55 4d 30 38 41 37 31\r\nSMPR 00\r\nSMST 00\r\nSMAD 00\r\nSMCM 00\r\n...\r\nBDAD 7d 39\r\nBACV 38 31\r\nBDFC 41 01<\/pre>\n<pre>$ acer-ec --help\r\nUsage: acer-ec [OPTION...] \r\n\r\n  -b, --blueooth             toggle bluetooth\r\n      --blueooth={on | off}  set bluetooth on \/ off\r\n  -t, --touchpad             toggle touchpad\r\n      --touchpad={on | off}  set touchpad on \/ off\r\n  -w, --wireless=on          toggle wireless\r\n      --wireless={on | off}  set wireless on \/ off\r\n  -l, --backlight n          set backlight to n (0 - 9)\r\n  -q, --quiet                quiet mode (specify before -b, -t, -w)\r\n  -g r                       get register value (0 - 255)\r\n  -d, --dump                 dump known fields\r\n  -r, --registers            dump registers\r\n  -s, --status               show status\r\n  -v, --version              show version\r\n  -h, -?, --help             print this help\r\n\r\nReport bugs to kitty@kitty.in.th<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Introduction Acer Aspire One has a built-in embedded controller. This EC provides interface to read\/write 256 control registers for various devices, e.g., bluetooth, touchpad, wireless, CPU temperature, brightness level, power status, battery. By reading\/writing these registers through the EC, ones can easily access or modify device status. Thanks to http:\/\/code.google.com\/p\/aceracpi\/wiki\/EmbeddedController for introducing acer_ec.pl as a &hellip; <a href=\"https:\/\/kitty.in.th\/index.php\/projects\/acer-ec\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Acer-EC: Acer Aspire One D150 Embedded Controller<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":4888,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-6615","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/kitty.in.th\/index.php\/wp-json\/wp\/v2\/pages\/6615","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kitty.in.th\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/kitty.in.th\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/kitty.in.th\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kitty.in.th\/index.php\/wp-json\/wp\/v2\/comments?post=6615"}],"version-history":[{"count":4,"href":"https:\/\/kitty.in.th\/index.php\/wp-json\/wp\/v2\/pages\/6615\/revisions"}],"predecessor-version":[{"id":6648,"href":"https:\/\/kitty.in.th\/index.php\/wp-json\/wp\/v2\/pages\/6615\/revisions\/6648"}],"up":[{"embeddable":true,"href":"https:\/\/kitty.in.th\/index.php\/wp-json\/wp\/v2\/pages\/4888"}],"wp:attachment":[{"href":"https:\/\/kitty.in.th\/index.php\/wp-json\/wp\/v2\/media?parent=6615"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}