sábado, 13 de febrero de 2010

Salicru UPS y NUT en FreeBSD

Recientemente he jubilado mi antiguo sai un MGE Ellipse 600 por un SAI Salicru SPS ONE 900VA



en la caja pone que es compatible con Linux, con su desastroso e infumable programa de gestion Winpower, asi que el reto en cuestion es hacerlo funcionar en Unix con el daemon NUT de http://www.networkupstools.org/

En principio la poca informacion que se puede encontrar sobre el SAI es que es compatible con el protocolo megatec_usb, en principio asi es pero se conoce que hay otro driver que usa ese mismo protocolo mas actualizado y compatible con este SAI, el protocolo blazer_usb que funciona decentemente, aqui unas capturas del funcionamiento:

  • Salida del comando upsc salicru

freenas#
battery.voltage: 13.60
battery.voltage.nominal: 12.0
beeper.status: enabled
driver.name: blazer_usb
driver.parameter.pollinterval: 2
driver.parameter.port: /dev/uhid0
driver.version: 2.4.1
driver.version.internal: 0.03
input.current.nominal: 3.0
input.frequency: 50.1
input.frequency.nominal: 50
input.voltage: 229.1
input.voltage.fault: 229.1
input.voltage.nominal: 230
output.voltage: 229.6
ups.delay.shutdown: 30
ups.delay.start: 180
ups.load: 42
ups.productid: 5161
ups.status: OL
ups.type: offline / line interactive
ups.vendorid: 0665

  • Captura del interface cgi del NUT

Ahora vamos con la configuracion del nut para que funcione el SAI:
  • Configuracion de ups.conf
[salicru]
        driver = blazer_usb
        desc = "FreeBSD NAS"
        port=/dev/uhid0
Los demas ficheros de configuracion estan bien documentados, asi que toca leer.

Para FreeBSD un paso importante para que el usuario por efecto que corre el daemon pueda leer el dispositivo es configurar los siguientes ficheros:

  • Fichero /etc/devfs.rules
[nut_usb=10]
add path 'uhid0' group wheel user uucp mode 0660
  • Fichero /etc/devfs.conf
perm    /dev/usb/*      0660
own     /dev/usb/*      root:uucp
  •  Mensajes al arrancar el daemon
Network UPS Tools - UPS driver controller 2.4.1
Network UPS Tools - Megatec/Q1 protocol USB driver 0.03 (2.4.1)
Supported UPS detected with mustek protocol
Vendor information unavailable
Battery runtime will not be calculated (runtimecal not set)
Starting nut.
Network UPS Tools upsd 2.4.1
listening on port 3493
Connected to UPS [salicru]: blazer_usb-salicru

sábado, 9 de enero de 2010

Usando el chip FT232

Harto del engorro que supone andar con los conectores DB9, montar la conversion TTL 12-5 con el max232, he buscado la solucion definitiva para conseguir una conexion serie PC-MCU estable y con funcionalidades integradas utiles.

La solucion viene en un diminuto integrado denominado FT232 de la casa FTDI, este integrado es usado en las placas de Arduino y en gran mayoria de conversores USB-Serie, entre las caracteristicas más destacadas del integrado estan:
  • Conexion USB, datos y voltaje +5 en el mismo cable son impagables
  • Reducido tamaño SMD SSOP-28, se necesitan pocos componentes adicionales para funcionar
  • Salida de reloj interno 12Mhz para MCU ahorra componentes extra y espacio
  • Salidas para estado de leds TX, RX
Este es un esquema basico del diseño:


Esta basado en el datasheet y por temas de prototipo he pasado de algunos condensadores para filtrar ruido como se puede apreciar.

Luego de exportarlo con Eagle he eliminado las patillas que no se usan para facilitar la soldadura ( hasta que no mejore la tecnica de soldadura )

Este seria el aspecto de la PCB montada:





El sistema de conector USB hecho con la propia PCB es bastante util, aunque el resultado final tiene un indice gañan elevado, funciona perfectamente al conectarlo al PC, un poco de cinta adhesiva para hacer que encaje mejor es conveniente.

Puenteando TX y RX se puede comprobar el funcionamiento con un terminal

A mejorar:
  • Añadir Leds de estado ON, TX, RX
  • Añadir un conector USB de verdad
  • Perfeccionar la tecnica de soldadura SMD
Referencias: