EEVblog Electronics Community Forum

Electronics => Microcontrollers => Topic started by: zitt on April 10, 2019, 11:12:29 pm

Title: "patent"-free single wire communication
Post by: zitt on April 10, 2019, 11:12:29 pm
Is anyone aware of a patent free single wire communication implementation?

I'm not specifically interested in a bus powered device; but I would like to see an implementation of self-powered single wire standard which can't be "claimed" by a certain manufacturer as patent infringement?

I see some value in having some of my designs communicate with a main controller via a single pin. If I could connect up a device to a microcontroller via VCC, "com", GND; that'd be a great win for a slave device.

Has anyone come across something like this? Implemented in Arduino or AVR?
Title: Re: "patent"-free single wire communication
Post by: lucazader on April 10, 2019, 11:18:39 pm
If you are wanting to have Vcc, Signal, and GND as your signals then there are a few options:

a definitely free and relatively simple option would be half duplex uart. eg tx and rx on the same pin.
I know at some micro's support this as a configuration with no additional hardware, eg some (maybe all) stm32's.

Then you just have to either define your own messaging protocol on top of this. or even simpler and more robust might be to use a c implementation of google protobuff or something like that.

But if you want your system to be only Vcc and GND, with communication occurring over just those two wires, then that gets a little more difficult and i dont know any non propriety out of the box solutions.
Title: Re: "patent"-free single wire communication
Post by: PCB.Wiz on April 10, 2019, 11:24:55 pm
... but I would like to see an implementation of self-powered single wire standard ...

What exactly is self-powered single wire standard ? Do you mean a system that sends power and data over a 'single wire' (which usually actually means two wires, Data/Power and GND)
Title: Re: "patent"-free single wire communication
Post by: CatalinaWOW on April 11, 2019, 02:58:43 am
Have you checked to see if that certain manufacturers patents have expired?  I don't exactly remember when that technology was introduced, but it was a long time ago.  1990ish? 

Actually I just did a quick google and it was 1993 and the US patent expired April 10, 2019.
Title: Re: "patent"-free single wire communication
Post by: Berni on April 11, 2019, 05:35:28 am
Well im pretty sure you can't patent the idea of "sending data and power over a single wire plus gound"

You can only really patent the implementation of it. For a digital signal the only to transmit power is using the logic 1 to grab power and store it in a capacitor so there is not much that can be done there. But the bit encoding scheme can be anything you want. Technically you only need to change the timing numbers for Dallas OneWire to make it a different and incompatible protocol.

For example the ever so popular NeoPixel LEDs(WS2811) use a protocol that is a bit like OneWire but with different timings and data format. The manufacturer of those LEDs calls the protocol "Data protocol using unipolar NRZ communication mode" so clearly its not branded as being anythyng. I suppose if you want to have some protection from a company copying your protocol, patenting it and then taking you to court over patent infringement then you could copy the WS2811 LED protocol. That way they can't claim this protocol is there invention since its so widespread before there patent application.
Title: Re: "patent"-free single wire communication
Post by: ebastler on April 11, 2019, 06:11:45 am
Have you checked to see if that certain manufacturers patents have expired?  I don't exactly remember when that technology was introduced, but it was a long time ago.  1990ish? 

Actually I just did a quick google and it was 1993 and the US patent expired April 10, 2019.

I don't think it is forbidden to name that "certain manufacturer" and the patent number?  :P
For clarity, we are talking about the 1-wire protocol from Dallas Semiconductor, and the foundational patent which (finally) expired is US5210846B1.

I will never understand the legacy terms and expiry rules of US patent law, as they were applicable to patents filed before the mid-90s (?)... That patent application was filed in 1989, and first granted in 1993. How did they manage to keep it alive until 2019?! Anyway, it's gone now in the US, and any international counterparts must have expired ten years ago, with the more logical patent timelines used in the rest of the world.

While Dallas may still hold more recent patents on various implementation details, the basic protocol and bus architecture (as described in the above-mentioned patent) is now free to use.
Title: Re: "patent"-free single wire communication
Post by: Berni on April 11, 2019, 06:28:35 am
Well big companies use all sorts of trickery.

They might not only use patent laws but also involve trademark or copyright laws to extend there reach even more.

For example the copyright expiry time keeps on being increased every so often by updating the copyright laws trough heavy lobbying from companies. Next change of the law is probably in 2023 because that's about when the copyright for Mickey Mouse expires and goes into public domain by the current version of the copyright law that has the maximum expiry time of 95 years. I'm pretty sure almost all original copyright holders are already dead by then.
Title: Re: "patent"-free single wire communication
Post by: CatalinaWOW on April 11, 2019, 12:51:52 pm
Have you checked to see if that certain manufacturers patents have expired?  I don't exactly remember when that technology was introduced, but it was a long time ago.  1990ish? 

Actually I just did a quick google and it was 1993 and the US patent expired April 10, 2019.

I don't think it is forbidden to name that "certain manufacturer" and the patent number?  :P
For clarity, we are talking about the 1-wire protocol from Dallas Semiconductor, and the foundational patent which (finally) expired is US5210846B1.

I will never understand the legacy terms and expiry rules of US patent law, as they were applicable to patents filed before the mid-90s (?)... That patent application was filed in 1989, and first granted in 1993. How did they manage to keep it alive until 2019?! Anyway, it's gone now in the US, and any international counterparts must have expired ten years ago, with the more logical patent timelines used in the rest of the world.

While Dallas may still hold more recent patents on various implementation details, the basic protocol and bus architecture (as described in the above-mentioned patent) is now free to use.

Totally agree that it is not forbidden to discuss Dallas Semiconductor.  I was just playing along with the secret squirrel game.

I have no clue how they kept the patent alive so long.  I thought all patents expired in 17 years.  But thank all the gods ever named I am not a lawyer so have no meaningful opinion on the subject.
Title: Re: "patent"-free single wire communication
Post by: whalphen on April 11, 2019, 01:14:18 pm
It's actually possible to send information without the signal line -- just using Vcc and Gnd.  It can be done by modulating the current.  Both the supply voltage and the data can be recovered from the current flow.  4-20mA current loops are still commonly used in industry.  I doubt you will find any patent restricting your use of it.
Title: Re: "patent"-free single wire communication
Post by: zitt on April 11, 2019, 06:24:15 pm
I guess I just didn't want to call attention of their lawyers - cause they are the spawn of satan.

In all seriousness; I guess I didn't know the patent had already expired and that more manufacturers hadn't started coming out with compatible devices. Maybe there isn't a big market for something like this? You'd think pin limited uCs would be supporting the protocal in hardware at this point. But given Apr 2019; it's still way early. :D

I'd love to see hardware engines in Atmel (and other) which natively support 1wire protocols as both a slave and master.
Title: Re: "patent"-free single wire communication
Post by: ebastler on April 11, 2019, 06:36:37 pm
I'd love to see hardware engines in Atmel (and other) which natively support 1wire protocols as both a slave and master.

Why would a hardware engine be needed? Seems that it is pretty straightforward to implement in software? E.g. here, https://www.hacktronics.com/tutorials/arduino-1-wire-tutorial.html (https://www.hacktronics.com/tutorials/arduino-1-wire-tutorial.html)

And even when the patent was still valid, I don't think Dallas ever had objections to a software implementation (reckoning that you would use it to talk to their chips).

Title: Re: "patent"-free single wire communication
Post by: Berni on April 11, 2019, 07:13:13 pm
Yep you could perfectly well make a OneWire slave out of any MCU with a bit of software that makes use of interrupts and timers.

In fact you can even do the power+data on one wire. All you have to do is add a capacitor across Vcc and GND and connect the one wire bus to any pin. The internal ESD diodes will pull power from a IO pin in logic high state and get it to the power pins where it makes the MCU run.
Title: Re: "patent"-free single wire communication
Post by: westfw on April 11, 2019, 07:26:10 pm
Quote
Why would a hardware engine be needed?
Well, it's always nice to have a shift register and maybe a buffer so that you can throw out a byte or two and not have to worry about sitting around carefully timing things a bit at a time.   Just like a UART, I2C, or SPI, really...
Title: Re: "patent"-free single wire communication
Post by: martinayotte on April 11, 2019, 08:46:29 pm
Is anyone aware of a patent free single wire communication implementation?

Maybe you would be interesting to PJON library, it is under Apache license.
Title: Re: "patent"-free single wire communication
Post by: PCB.Wiz on April 11, 2019, 09:10:39 pm
I'd love to see hardware engines in Atmel (and other) which natively support 1wire protocols as both a slave and master.

Many MCUs already support LIN bus, which is a 1-wire variant (tho usually 2 pins at the MCU), and many MCUs can swap TX.RX UART pins, which also allows a single-pin link implementation.

If you want to also power the device over the 'one wire' then some additional parts are needed.
In simplest form, that can be a diode+cap.

If you measure your MCU carefully, you can check if the inbuilt diodes are able to be used for that powering pathway.