Path: ...!weretis.net!feeder8.news.weretis.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Don Y Newsgroups: sci.electronics.design Subject: Bidirectional communications with (RGB) LEDs Date: Wed, 1 May 2024 18:04:47 -0700 Organization: A noiseless patient Spider Lines: 32 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Thu, 02 May 2024 03:04:55 +0200 (CEST) Injection-Info: dont-email.me; posting-host="32ca79b2c6fc3740d3a9d2fc2e025353"; logging-data="3649582"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18W6LEH8HDxigE0RVGzVDsQ" User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.2.2 Cancel-Lock: sha1:EQkP/hmv5iJuakKoCCIAy+KJRiU= Content-Language: en-US Bytes: 2437 I have an RGB LED on each device to convey status information to the user (there are many "states" of interest). I also use this to communicate with a bit of test/configuration/debug equipment instead of exposing an "electrical" connection to the user (it's easy to mate something physically when you just need LIGHT to bridge the gap). As I don't want this to COST anything (even a two-pin electrical connector has cost), I've implemented a really crude protocol that seems reasonably reliable (again, this is tightly coupled). But, I only get a few hundred bits per second out of the interface. For the configuration activities, this is sufficient as I can take "many seconds" to install "secrets", etc. I don't really care about incident ambient light triggering any unintentional transactions, etc. But, as a diagnostic/debug hook, it is sorely limited -- even if I tokenize the interface. Using more than one of the LEDs in the package would likely make matters worse (as I don't see any easy way to create different "channels" between emitters/detectors). Currently, I use an extra pin to allow me to drive the LED or reverse bias it to (indirectly) sense photocurrent. No other actives involved and the software is pretty trivial. Any other approaches I can explore to increase the thickness of the pipe without adding to hardware costs? (even 9600 bps would be a big step up!)