aboutsummaryrefslogtreecommitdiffstats
path: root/two_hosts_auto_powerswitch
diff options
context:
space:
mode:
Diffstat (limited to 'two_hosts_auto_powerswitch')
-rw-r--r--two_hosts_auto_powerswitch/readme.rst111
1 files changed, 62 insertions, 49 deletions
diff --git a/two_hosts_auto_powerswitch/readme.rst b/two_hosts_auto_powerswitch/readme.rst
index 5d98a1a..c0b6216 100644
--- a/two_hosts_auto_powerswitch/readme.rst
+++ b/two_hosts_auto_powerswitch/readme.rst
@@ -5,81 +5,94 @@ General principle
=================
This project detects up to two host power state through the their usb port and
-switch on their associated devices (screen, sound amplifier, printer, etc).
+switch on their associated devices' mains outlets (screen, sound amplifier,
+printer, etc).
+
Devices might be shared (the same printer is used by both computers), in this
-case, the device is switched on by whatever computer is on.
+case, the device is switched on by whatever computer is detected on.
Flowchart
=========
When detecting a host state change, the following happen::
- .------------------. .-------------------. .--------------.
- | Host state | | Skip filter input | | Switch relay |
- | change detection | | (usb control) | '--------------'
- '------------------' '-------------------' ^
- | .-------------. | |
- '-->| Skip filter |<--' |
- '-------------' .--------------. |
- | | Start timers | |
- v | Stop plugs |-----'
- .---------------. '--------------'
- | Update target | ^
- | table |--------------'
+
+ .------------------. .-------------------.
+ | Host state | | Skip filter input |
+ | change detection | | (usb control) |
+ '------------------' '-------------------' .--------------.
+ | .-------------. | .------>| Switch relay |
+ '-->| Skip filter |<--' | '--------------'
+ '-------------' |
+ | .---------------------.
+ v | Start on/off timers |
+ .---------------. '---------------------'
+ | Update target | ^
+ | table |-------------'
'---------------'
+
Feature list
============
-* Detect when one of the host is up (not in standby)
+* Detect when one of the host is up (not in standby), switching on its
+ associated devices (mains outlet).
+* Each computer has its own set of associated outlets to switch on.
+* An outlet may be shared between computers, if at least one of the computers
+ is on the outlet is on (logical OR).
------
+* Each outlet have an optional delay before it switch on or off. Delay for on
+ and off may be different.
+* Configuration for outlet associations and for the switch delay is saved in
+ non-volatile memory.
-* la détection d'un ordi on, allume certaines prises, chaque ordi peut avoir
- un ensemble de prises dédiées ou partagées (OR logic), configuration
- enregistrée en nvm.
+* Computer standby detection is isolated and done by a mini-usb plug
+ (calibrated for standard 5 volts supply, but you might change the input
+ tension according to the optical coupler and input resistor, see schematic
+ for more details). Molex to usb cable might be done if all usb ports of the
+ computer are always on and its standby is never detected.
-* délai possible sur l'allumage de certaines prises au changement d'état
- off=>on, configuration enregistrée en nvm.
+* There is one button for each computer to toggle its state (thus overriding
+ its current state). The override is reset at the next computer state change.
+ If the override reset is the same as the current state, you will see no
+ change: if an override set the state to on, and the computer is switched on,
+ the state change will not be seen until computer is in standby or off again
+ or if another override is done.
-* la détection d'allumage d'un ordi se fait via une prise mini-usb
- (utilisation uniquement du 5v), circuit isolé. Si un ordi a tous ses ports
- usb en always-on, soit régler pour que ça ne soit pas le cas, soit brancher
- un adaptateur molex-usb.
+* There is one button for each outlet so it can be toggled off or on. This
+ toggle bypass the configured delay. The outlet can be toggled again normally
+ according to the associated computer(s) state change.
-* bouton qui toggle manuellement (override) l'état d'un ordi.
+* If at least one of the computers is on, global led is on. An individual led
+ indicate the state of each outlet.
-* bouton qui toggle chaque prise (off-forcé/on-forcé/reset, resetted auto
- quand un ordi change d'état).
+* Very low power then no outlet nor computer is on: the MCU will sleep and
+ consume near nothing and all led will be off.
-* power converter super basse conso, avec mcu en mode standby, je devrais être
- à zero sur le kill-a-watt (pas assez précis pour mesurer le niveau, en
- fabriquer un plus précis pour comparer avec un chargeur de tél à vide). -ou-
- alimentation via le port usb (si usb, pas ethernet) de contrôle (yui).
- L'avantage d'une alimentation à part, c'est que l'on éteint pas les prises
- en depluggant le port usb de contrôle (mais sur un projet de ce type, cette
- extinction est acceptable). L'autre aventage c'est qu'on isole le bruit d'un
- switch de port (je ne sais pas dans quelle mesure on peut faire reset yui
- avec les relays, à mesurer).
+* Instead of pressing button, the dedicated control usb connection can be used
+ to toggle state of things and to set a detection skip for the next off to on
+ detection of a computer.
-* leds d'état pour chaque prise quand au moins un des deux ordi est allumé, et
- au global pour dire que le système est "on", en "off" le mcu en est standby
- et aucune led n'est allumé
+* A low consumption power converter (near 0 watt in full standby) is used to
+ power the MCU. Advantages compared to being powered by control port include
+ being autonomous, not using control port to switch relay (might induce
+ little current spikes), and keeping current state when unplugging
+ controlling computer.
-* possible de skip la prochaine détection off=>on d'un host via une commande
- série.
Rationale
=========
-* multi allume ordi => pas bien car je veux que les périphs s'allument tout
- seul quand j'allume l'ordi depuis le clavier.
+The power switch could have triggered computer wakeup instead of doing
+computer standby detection, but it is more complicated and it prevents using
+the keyboard or another source of wakeup to switch on its associated devices.
+
+The disadvantage is to need a way to skip the switch-on of the associated
+devices when it is not needed (for example when doing wakeonlan to read data
+in another location, one does not need the associated devices to be on).
-* si allumer les périphs systématiquement en fonction de l'allumage de l'ordi
- est un problème, c'est uniquement à cause du wakeonlan, c'est donc le
- wakeonlan qui est une exception. => faire passer l'information que le
- prochain wake de l'ordi ne doit pas être pris en compte c'est possible soit
- par ethernet, soit par usb via l'ordi qui lance le wakeonlan (yui/nagato).
+In my case, the wake-on-lan was an exception to the normal usage of my
+computer, so I made the skip choice to be in the workflow.