Hi! Normally nut was just worked and worked for me! Not this time though! Distro is Gentoo withe latest nut-2.6.0 emerged today. Linux kernel version is 2.6.36 UPS is PowerCom BNT2000AT "Driver" is powercom ups.conf looks like this! Okay so APC1 is not and APC! [APC1] driver = powercom type = BNT port = /dev/ttyS1 numOfBytesFromUPS = 16 methodOfFlowControl = no_flow_control validationSequence = {{11,0x42},{8,0},{8,0}} shutdownArguments = {{1,30},y} modelname = BNT2000APT serialnumber = 2233445566 desc = Computer Room Small UPS I running /lib/nut/powercom -a APC1 -DDDDDDDDDD (Okay so the debugs are overboard!!!) Result is this! Network UPS Tools - PowerCom protocol UPS driver 0.12 (2.6.0) 0.000000 debug level is '10' 0.002058 Flow control disable 0.002408 Num of bytes requested for reading from UPS: 16 0.147226 Num of bytes received from UPS: 16 Raw data from UPS: 0 0x0f ( ) 1 0x64 (d) 2 0x6b (k) 3 0x6b (k) 4 0x32 (2) 5 0xff (?) 6 0x32 (2) 7 0x00 ( ) 8 0x00 ( ) 9 0x00 ( ) 10 0x00 ( ) 11 0x4b (K) 12 0x98 () 13 0x00 ( ) 14 0x00 ( ) 15 0x00 ( ) 0.147415 data receiving error (validation check) 0.147460 send_to_all: SETINFO device.type "ups" 0.147489 send_to_all: SETINFO driver.version "2.6.0" 0.147516 send_to_all: SETINFO driver.version.internal "0.12" 0.147543 send_to_all: SETINFO driver.name "powercom" 0.147570 send_to_all: SETINFO ups.mfr "PowerCom" 0.147596 send_to_all: SETINFO ups.model "BNT2000APT" 0.147622 send_to_all: SETINFO ups.serial "2233445566" 0.147649 send_to_all: SETINFO ups.model.type "BNT" 0.147675 send_to_all: SETINFO input.voltage.nominal "230" 0.147699 send_to_all: ADDCMD test.battery.start 0.147722 send_to_all: ADDCMD shutdown.return 0.147746 send_to_all: ADDCMD shutdown.stayoff 0.147833 Num of bytes requested for reading from UPS: 16 0.293224 Num of bytes received from UPS: 16 I did run an strace and saw this! Starting at sending the single char! ioctl(4, SNDCTL_TMR_START or TCSETS, {B1200 -opost -isig -icanon -echo ...}) = 0 write(4, "\1", 1) = 1 nanosleep({0, 0}, NULL) = 0 gettimeofday({1304946608, 723932}, NULL) = 0 write(2, " 0.013837\t", 12) = 12 write(2, "Num of bytes requested for readi"..., 48) = 48 select(5, [4], NULL, NULL, {3, 0}) = 1 (in [4], left {2, 982709}) read(4, "\17", 16) = 1 select(5, [4], NULL, NULL, {3, 0}) = 1 (in [4], left {2, 992263}) read(4, "d", 15) = 1 select(5, [4], NULL, NULL, {3, 0}) = 1 (in [4], left {2, 991229}) read(4, "l", 14) = 1 select(5, [4], NULL, NULL, {3, 0}) = 1 (in [4], left {2, 992217}) read(4, "l", 13) = 1 select(5, [4], NULL, NULL, {3, 0}) = 1 (in [4], left {2, 991206}) read(4, "2", 12) = 1 select(5, [4], NULL, NULL, {3, 0}) = 1 (in [4], left {2, 992220}) read(4, "\377", 11) = 1 select(5, [4], NULL, NULL, {3, 0}) = 1 (in [4], left {2, 991215}) read(4, "2", 10) = 1 select(5, [4], NULL, NULL, {3, 0}) = 1 (in [4], left {2, 992207}) read(4, "\0", 9) = 1 select(5, [4], NULL, NULL, {3, 0}) = 1 (in [4], left {2, 991206}) read(4, "\0", 8) = 1 select(5, [4], NULL, NULL, {3, 0}) = 1 (in [4], left {2, 992191}) read(4, "\0", 7) = 1 select(5, [4], NULL, NULL, {3, 0}) = 1 (in [4], left {2, 991224}) read(4, "\0", 6) = 1 select(5, [4], NULL, NULL, {3, 0}) = 1 (in [4], left {2, 991209}) read(4, "K", 5) = 1 select(5, [4], NULL, NULL, {3, 0}) = 1 (in [4], left {2, 992207}) read(4, "\230", 4) = 1 select(5, [4], NULL, NULL, {3, 0}) = 1 (in [4], left {2, 991207}) read(4, "\0", 3) = 1 select(5, [4], NULL, NULL, {3, 0}) = 1 (in [4], left {2, 992208}) read(4, "\0", 2) = 1 select(5, [4], NULL, NULL, {3, 0}) = 1 (in [4], left {2, 991208}) read(4, "\0", 1) gettimeofday({1304946608, 869751}, NULL) = 0 write(2, " 0.159656\t", 12) = 12 write(2, "Num of bytes received from UPS: "..., 35) = 35 write(1, "Raw data from UPS:\n", 19) = 19 write(1, " 0 0x0f ( )\n", 12) = 12 write(1, " 1 0x64 (d)\n", 12) = 12 write(1, " 2 0x6c (l)\n", 12) = 12 write(1, " 3 0x6c (l)\n", 12) = 12 write(1, " 4 0x32 (2)\n", 12) = 12 write(1, " 5 0xff (\377)\n", 12) = 12 write(1, " 6 0x32 (2)\n", 12) = 12 write(1, " 7 0x00 ( )\n", 12) = 12 write(1, " 8 0x00 ( )\n", 12) = 12 write(1, " 9 0x00 ( )\n", 12) = 12 write(1, "10 0x00 ( )\n", 12) = 12 write(1, "11 0x4b (K)\n", 12) = 12 write(1, "12 0x98 (\230)\n", 12) = 12 write(1, "13 0x00 ( )\n", 12) = 12 write(1, "14 0x00 ( )\n", 12) = 12 write(1, "15 0x00 ( )\n", 12) = 12 gettimeofday({1304946608, 871867}, NULL) = 0 write(2, " 0.161772\t", 12) write(2, " 0.161772\t", 12) = 12 write(2, "data receiving error (validation"..., 40) = 40 gettimeofday({1304946608, 872193}, NULL) = 0 write(2, " 0.162098\t", 12) Only strange think I could see is the label on the back of the ups proclaims it to be BNT 2000 APT. The lable lists both AP and APT but the APT version is the selected one! I'm not great c programmer otherwise I would have given it a go! So anyone any ideas? I have just had a scsi disk scribbled over in the /var filesystem thanks to poor power on the site and NUT not working! Cheers Ang -- Angela Williams angierfw at gmail dot com Linux/Networking Hacker Blog http://angierfw.wordpress.com Smile! Jesus Loves You!