Page 1 of 1

Timer DIY

Posted: Mon Jan 27, 2020 1:13 am
by pev
Heya,

Has anyone properly looked at how to DIY a timer alternative? I searched the forum and a few people mentioned thinking that it uses a serial protocol - is it documented or has anyone tried reverse engineering it? I guess if there's anyone in the UK with a timer I could have a look at it wouldn't take long to work out...

Re: Timer DIY

Posted: Sun May 31, 2020 3:40 pm
by Glenn
I’ve wondered about this myself for my Vivaldi II. It seems to me that knowing the serial RS-232 commands, the machine could easily be controlled through home automation software and something like a Global Cache iTach.

Does anybody know where we could find a table of the serial commands?

Re: Timer DIY

Posted: Mon Jun 01, 2020 9:40 am
by chas
Two things:

1) I have never seen the serial protocol used between the front panel and the controller board documented.

2) To remotely turn the machine on and off, that protocol is not what is used anyway. All you have to do is momentarily ground the right pin on the front panel. If you use the Search feature on this forum you should be able to find any number of different solutions folks have come up with the implement this method.

Re: Timer DIY

Posted: Tue Jun 02, 2020 1:00 pm
by Glenn
Thank you, chas.

Yes, I’ve seen much of the discussion about this here on S1 Cafe. I was reluctant to break out the soldering iron when my machine was still under warranty but I might consider doing that now. I’ve also been reluctant to spend the money on the stock optional timer for scheduled operation since it only does on/stby and not Boiler on/off independently. (Most of the time I make only espressos and prefer for the boiler to be turned off).

It was a comment you made from 2012 that got me thinking there might be an easier, more direct way than the simulated button-press approach. You pointed out that the stock optional timer communicates with the machine through a serial interface. If we knew the serial commands (say, at least the commands for on/stby and Boiler on/off), maybe it would be as simple as plugging in a device, in the same way as the stock optional timer, which can deliver those serial commands. That device would be operated remotely by a smartphone app or by home automation. But, I guess, getting ahold of the proprietary serial codes is the catch.

I’m not an electrical engineer by any means, but the OP of this thread, pev, brought up the idea of possibly reading the serial commands generated by the stock optional timer. I wonder if it would somehow be possible to decipher those commands coming from the front panel instead.

Re: Timer DIY

Posted: Thu Jun 04, 2020 3:03 pm
by GDK
You can with similar level of difficulty convert your machine to a smart home device, not only allowing for timer control but on/off from anywhere via smartphone as well as Google/Alexa voice/automation controls. The only intrusive part in my case was to add wires to the on/off button so that you can use a relay in parallel. Such addition does not affect manual operation either.

Re: Timer DIY

Posted: Fri Jun 05, 2020 8:54 am
by Glenn
Thanks, GDK. It sounds like that's the way to go.

Re: Timer DIY

Posted: Thu Jun 11, 2020 7:27 am
by pev
Hey all,

Thanks for the replies - so I'm an embedded systems engineer by trade and reverse engineering the protocol used should really be a pretty trivial matter if I can get one of the stock timer controllers to look at with my logic analyser. I'd expect that it's not doing anything glamorous and it would be pretty trivial to emulate using something like an M5Stack (off the shelf microcontroller with display and buttons) to drive the protocol and have a very cheap solution to both timer / counter functionality as well as integrating Siri functionality. I've already put together a proof of concept demo using one that can be talked to via siri to schedule on / off etc...

I wouldn't want to follow the direction of hacking the control panel as per other posts as it's really not ideal from my perspective. As a second track i actually bought a second secondhand S1 mini which Ive got the long term goal of building a completely new controller / GUI board for which would allow me control of all this sort of thing directly as well as using it as a fun prototyping and development platform...

As an interim measure and as a cheap option for others as an easy retrofit, reverse engineering the serial protocol would be preferable!

I've got a whole load of info I've worked out already and some notes on the technical details of what the stock control PCB does that I'll put up somewhere publicly once a bit more complete and tidied up...

Re: Timer DIY

Posted: Thu Jun 11, 2020 1:03 pm
by Glenn
Pev, It’s cool that you, as an embedded systems engineer, are working to understand how this could be done.

I’m not familiar with the M5Stack – I’ll check it out. I had envisioned using a Global Cache iTach to deliver serial codes to the control board, https://www.globalcache.com/products/itach/wf2slspecs/ .

You mention reverse engineering the protocol used by the stock timer which I think would give you only machine ON/STBY. Would your logic analyzer be able to read the communication coming from the control panel SER2? In that case, the commands for Boiler on/off might be obtained as well. Or is that a different protocol than what is used at the timer connection, which is likely where we would connect?

Re: Timer DIY

Posted: Thu Jun 11, 2020 9:37 pm
by pev
Funnily enough I'd just been looking at mine when I saw this...
Glenn wrote: Thu Jun 11, 2020 1:03 pm I’m not familiar with the M5Stack – I’ll check it out. I had envisioned using a Global Cache iTach to deliver serial codes to the control board, https://www.globalcache.com/products/itach/wf2slspecs/ .
That won't work I'm afraid - it's a generic board that does RS232. There are actually a lot of different types of serial communication out there, and the S1 speaks a different kind...
Glenn wrote: Thu Jun 11, 2020 1:03 pm You mention reverse engineering the protocol used by the stock timer which I think would give you only machine ON/STBY.
I suspect it's a lot more than that - If you look at La Spaz's manual, they also made a "coffee counter" module that they sold that did things like count cups made. I wouldn't be surprised if there are also other things hidden in the protocol as well.

https://www.manualslib.com/manual/10340 ... valdi.html
Glenn wrote: Thu Jun 11, 2020 1:03 pm Would your logic analyzer be able to read the communication coming from the control panel SER2? In that case, the commands for Boiler on/off might be obtained as well. Or is that a different protocol than what is used at the timer connection, which is likely where we would connect?
Actually I looked at that already - It's not a serial bus but a more traditional parallel connection for the buttons and LEDs so cant be accessed in that way. Who knows though, the serial interface may have that kind of operation implemented as well?

Re: Timer DIY

Posted: Thu Jun 11, 2020 9:40 pm
by pev
This is a capture of the machine trying to talk from earlier - just need to work out what the protocol is and build something for it to talk to and see if there's anything obvious one can do!


Screenshot 2020-06-12 at 02.28.48.png

Re: Timer DIY

Posted: Fri Jun 12, 2020 8:38 pm
by Glenn
Pev, I can see this is quite a bit more involved than I had realized and well over my head regarding the technology. I’ll be very interested to see how it goes as your investigation progresses. I looked up the Pico oscilloscopes and PicoScope 6. Looks like a sweet tool. So in the sample chart that you show, were you testing to see if the protocol is 1-wire?

Re: Timer DIY

Posted: Sun Jun 14, 2020 7:07 pm
by pev
Yep. Ive just had another look at it trying to work out what protocol it's using. I've ruled out a bunch of the obvious candidates now. It's a bit frustrating though as it would be a lot easier if I could find a timer to borrow and capture a two way conversation in process as I could replicate / emulate it if that was the case. What Im doing at the moment is pretty much a total shot in the dark seeing only one side of the story...

Re: Timer DIY

Posted: Tue Jun 16, 2020 8:51 am
by Glenn
Pev, I wish you luck in finding a timer to test.
Check your inbox for a PM.

Re: Timer DIY

Posted: Sun Jul 19, 2020 7:40 pm
by bgour
I'm using the the simulated button press approach (ESP8266/GoogleAssistant, as documented by TruthBrew here: http://s1cafe.com/viewtopic.php?p=25499#p25499)

But, I would love to tap into the serial interface especially if it offers more than just on/off and counts (temps for example). If you decode the protocol please update us. Good luck!

Re: Timer DIY

Posted: Wed Jul 22, 2020 12:37 pm
by gschroeder81
I'm working on a web-connected timer for my Spaz. I have a proof of concept working but should have something to show soon. My goal is to get out of this in the neighborhood of $50 and use as much existing platforms as possible (less time investment).

Re: Timer DIY

Posted: Sun Aug 08, 2021 1:15 pm
by pev
gschroeder81 wrote: Wed Jul 22, 2020 12:37 pm I'm working on a web-connected timer for my Spaz. I have a proof of concept working but should have something to show soon. My goal is to get out of this in the neighborhood of $50 and use as much existing platforms as possible (less time investment).
Ah, interesting - how did you get on? Is yours using the serial comms to the main board, or over-riding things?

Re: Timer DIY

Posted: Mon Aug 09, 2021 1:08 am
by gschroeder81
pev wrote: Sun Aug 08, 2021 1:15 pm
gschroeder81 wrote: Wed Jul 22, 2020 12:37 pm I'm working on a web-connected timer for my Spaz. I have a proof of concept working but should have something to show soon. My goal is to get out of this in the neighborhood of $50 and use as much existing platforms as possible (less time investment).
Ah, interesting - how did you get on? Is yours using the serial comms to the main board, or over-riding things?
So I just intersected the ribbon cable coming from the front panel. And no I did not decode the cereal protocol or anything. The project has suffered from some feature creep, and now I am in the process of working with a friend on building a custom BCB with power supply and everything on it to run the temp sensor, shot timer, and OLED screen.

Re: Timer DIY

Posted: Mon Aug 09, 2021 5:34 am
by pev
Nice! Is that replacing the original main PCB completely then? I'd wondered about doing that to make things easier but haven't had much time recently...

I'd also considered re-programming the PIC as that would be pretty easy to implement additional features such as PID control and a new I/O board with display but for some reason my old pic debugger wont talk to the board so I need to upgrade...

Re: Timer DIY

Posted: Sun Aug 15, 2021 7:56 pm
by gschroeder81
pev wrote: Mon Aug 09, 2021 5:34 am Nice! Is that replacing the original main PCB completely then? I'd wondered about doing that to make things easier but haven't had much time recently...

I'd also considered re-programming the PIC as that would be pretty easy to implement additional features such as PID control and a new I/O board with display but for some reason my old pic debugger wont talk to the board so I need to upgrade...
No, simply creating a carrier for the Particle Argon I'm using for running the little bit of logic I am and driving the OLED, temp sensor, power supply for Argon.

Re: Timer DIY

Posted: Mon Aug 16, 2021 8:50 pm
by pev
gschroeder81 wrote: Sun Aug 15, 2021 7:56 pm
pev wrote: Mon Aug 09, 2021 5:34 am Nice! Is that replacing the original main PCB completely then? I'd wondered about doing that to make things easier but haven't had much time recently...

I'd also considered re-programming the PIC as that would be pretty easy to implement additional features such as PID control and a new I/O board with display but for some reason my old pic debugger wont talk to the board so I need to upgrade...
No, simply creating a carrier for the Particle Argon I'm using for running the little bit of logic I am and driving the OLED, temp sensor, power supply for Argon.
Ah, interesting…. So an esp32 with a feather form factor? I’d considered hacking the main pcb to interface an esp instead of the pic as a low rent solution! Will be interested to keep an eye on your progress!

Re: Timer DIY

Posted: Wed Sep 29, 2021 4:28 pm
by cucanunes
pev wrote: Thu Jun 11, 2020 7:27 am As an interim measure and as a cheap option for others as an easy retrofit, reverse engineering the serial protocol would be preferable!
Hi Pev,

I saw in the other thread, you ordered the vivaldi timer, so do I.
I started to take some values from the communication between machine and the module, but looks like it’s not a 1wire serial… I got more than 12v on the vcc a s gnd pins, and can’t connect a serial interface straight on it.
Have you made any progress on it?

Re: Timer DIY

Posted: Sat Oct 09, 2021 5:43 am
by pev
Hi, I did - I did a dump of the transaction it performs and stared at it for a while but it doesn’t look like any serial protocol that I’m familiar with (which slid a few!) I’m going to build a test box that replicates what it does with an arduino / esp32 when I have some time and I’ll post the code & info to GitHub. I’ll post here when I’ve succeeded!

Re: Timer DIY

Posted: Mon Nov 20, 2023 4:29 am
by dtprnl
Any progress in the last two years? Looking at the diagram above, it appears to be a strange, custom protocol. Each bit is encoded using four bits: 1010-start, 1000 - 0, 1011 - 1 for total 36 bits per transmitted byte. I don't have the timer to go further, but if you have more data it would be nice if you post it here.

Re: Timer DIY

Posted: Tue Nov 21, 2023 9:48 am
by dtprnl
Hi,

Any progress on this? I don't have the timer to get the data, but looking at the diagram above it looks as if each bit is actually encoded as four bits:

1001 - start
1000 - 0
1010 - 1

So the diagram above shows 2 bytes (4x18 = 72 bits total) as follows

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 1 1 0 0 0 0 1 0 1 0 0 1 1 0
1 0 1 0 1 1 0 0 0 1 1 0 1 0 0 1 1 0

in ASCII it reads X| which isn't much to go on. If anyone has more data I'd be happy to help to decode it if its not already done.

Cheers!