I have a new topside on the way, so I can open it up BEFORE the label gets put on. Using that one, I’ll wire it up to the swiches and I’ll start reading data directly from it. Should get here by Friday.
I looked it up this morning, and the new topside is scheduled to arrive next Tuesday.
So - I need to get the tub boxed in this weekend anyway, so perhaps I’ll go ahead and get the cabling run and just not hook it up to the topside. I can go ahead and wire up the LM34 for the cabinet temperature, and I need to find my thermowell…this LM34 is so tiny that I might be able to shove it in side-by-side with my existing temperature sensor for the water. That would be convenient.
I guess - what else would you guys think would be neat to do so far as automation with the tub? It has a single LED lens IN the water, and it’s actually a mulit-LED array that does R, G, B, and then a combination and cycles through all of the colors programmatically - maybe I’ll do a short vid on YouTube tonight - but the light has the program built in already. Turn it on, comes on one color, off/on again, another color, third time, different color, 4th time, it cycles colors slowly - fading from one to the next, and one more time it comes on solid, and rapidly changes color - enough to cause some unfortunate folks a seizure.
I really am running out of ideas, but dang it - I have the arduino, might as well have fun with it.
Alright - the new topside showed up today. Internal pictures to follow shortly. So far, something has me puzzled -
The 4 pushbuttons are 4-conductor momentary switches, which makes me think they are DPDT (double pole-double throw) - so they’re not just opening and closing a single line, but two? I can’t think of a single good reason for this - and it’s going to make it more tricky to emulate button presses.
The traces seem fairely straightforward, albeit the whole thing is coated in silicon. I’m going to have to scrape that off really good to get proper continuity readings. Or decent pictures for that matter. :\
Well, I’m waiting for my digital camera’s battery to charge back up.
The switches have 4 conductive points, but it’s weird. 2 are signal, and 2 are ground. Why they don’t just use a 2 contact switch I have no idea. I’m out of my league on that one. What I do know is that they are momentary, and pressing them sets or unsets a boolean in the master control unit telling that particular device to be on or off, so it’s not like I can have the arduino “read” those lines to see if they’re high or low to tell me if that device is on or off. I’d literally have to read the status LED’s to do that.
There’s that 8 conductor molex - and I’ve been testing points and managed to find most of them. I think. Here’s what I have so far:
1 - Ground (Black; Vss - pin 14 on the Motorola Chip)
2 - Spa Lamp on/off switch (Brown)
3 - Bubbler on/off switch (Red)
4 - Jets on/off switch (Orange)
5 - 5V DC (Yellow; VDD - pin 3 on the Motorola Chip)
6 - Motorola Chip “Data In”, Pin 12 (.5K Resistance) AND Temperature Control Switch (5K Resistor - probably handles the delay) (Green)
7 - Motorola Chip “Clock”, Pin 11 (Blue; .5K Resistance)
8 - Motorola Chip “Enable”, Pin 10 (White; .5K Resistance)
Here’s what the Motorola chip’s documentation says about the Clock pin. Note that VDD is 5V, ie Pin 5 on the molex, and pin 3 on the motorola chip:
Clock (Pin 11)
Serial Data Clock Input. Low?to?high transitions on Clock
shift bits available at Data In, while high?to?low transitions
shift bits from Data Out. The chip?s 24?1/2?stage shift regis-
ter is static, allowing clock rates down to dc in a continuous or
intermittent mode. The Clock input does not need to be syn-
chronous with the on?chip clock oscillator which drives the
multiplexing circuit.
Eight clock cycles are required to access the configuration
register, while 24 are needed for the display register when the
MC14489B is not cascaded. See Figures 8 and 9.
As shown in Figure 10, two devices may be cascaded. In
this case, 32 clock cycles access the configuration register
and 48 access the display register, as depicted in Figure 10.
Cascading of 3, 4, 5, and 6 devices is shown in Figures 11,
12, 13, and 14, respectively. Also, reference Table 2.
Clock typically switches near 50% of VDD and has a
Schmitt?triggered input buffer. Slow Clock rise and fall times
are tolerated. See the last paragraph of Data In for more in-
formation.
NOTE
To guarantee proper operation of the power?on
reset (POR) circuit, the Clock pin must NOT be
floated or toggled during power?up. That is, the
Clock pin must be stable until the VDD pin
reaches at least 3 V.
If control of the Clock pin during power?up is not
practical, then the MC14489B must be reset via bit
C0 in the C register. To accomplish this, C0 is re-
set low, then set high.
We’ve got .5k resistance form pin 8 on the molex to pin 10 on the Motorola chip, and that’s the “enable” pin. Here’s the docs on that:
Enable (Pin 10)
Active?Low Enable Input. This pin allows the MC14489B to
be used on a serial bus, sharing Data In and Clock with other
peripherals. When Enable is in an inactive high state, Data
Out is forced to a known (low) state, shifting is inhibited, and
the port is held in the initialized state. To transfer data to the
device, Enable (which initially must be inactive high) is taken
low, a serial transfer is made via Data In and Clock, and
Enable is taken high. The low?to?high transition on Enable
transfers data to either the configuration or display register,
depending on the data stream length.
Every rising edge on Enable initiates a blanking interval
while data is loaded. Thus, continually loading the device with
the same data may cause the LEDs on some banks to appear
dimmer than others.
NOTE
Transitions on Enable must not be attempted while Clock is high. This puts the device out of synchronization with the microcontroller. Resynchronization occurs when Enable is high and Clock is low.
Pin 6 on the molex is connected to pin 12 (Data In) on the Motorola Chip. Here’s what the docs say:
Data In (Pin 12)
Serial Data Input. The bit stream begins with the MSB and
is shifted in on the low?to?high transition of Clock. When the
device is not cascaded, the bit pattern is either 1 byte (8 bits)
long to change the configuration register or 3 bytes (24 bits)
long to update the display register. For two chips cascaded,
the pattern is either 4 or 6 bytes, respectively. The display
does not change during shifting (until Enable makes a low?
to?high transition) which allows slow serial data rates, if de-
sired.
The bit stream needs neither address nor steering bits due
to the innovative BitGrabber registers. Therefore, all bits in
the stream are available to be data for the two registers. Ran-
dom access of either register is provided. That is, the regis-
ters may be accessed in any sequence. Data is retained in
the registers over a supply range of 3 to 5.5 V. Formats are
shown in Figures 8 through 14 and summarized in Table 2.
Information on the segment decoder is given in Table 1.
Data In typically switches near 50% of VDD and has a
Schmitt?triggered input buffer. These features combine to
maximize noise immunity for use in harsh environments and
bus applications. This input can be directly interfaced to
CMOS devices with outputs guaranteed to switch near rail?
to?rail. When interfacing to NMOS or TTL devices, either a
level shifter (MC14504B, MC74HCT04A) or pullup resistor of
1 k? to 10 k? must be used. Parameters to be considered
when sizing the resistor are the worst?case IOL of the driving
device, maximum tolerable power consumption, and maxi-
mum data rate.
HRM. I’m starting to wonder if pin 6 is not just the temperature control switch. Maybe it’s something where when the temperature change switch is closed, it trips some logic on the master control unit, and that line actually becomes data in? Is that even possible?
Do ANY of the pins on the molex connector show continuity with the chip pin 12 data in?
Well, if I’m right about pin 6, then this starts to make a little sense. Maybe:
So with that pin hooked to a digital pin on the arduino, 99.999% of the time, that line is going to be high. I basically need to be polling that pin constantly (or at least the same rate as the clock?), and as soon as I see that pin go low, I need to read the data in line, until the enable pin goes high again. That bitstream is what I need to decode to learn what it’s telling the display to do. That sound about right?
Not that I can tell, no. I can only speculate that pin 6 on the molex somehow “becomes” the data in line after the 5K resistance has been overcome. That’s just a WAG on my part though. :\
I suppose I could just cheat and solder a wire directly to pin 12’s leg. That kills the hope I’d had of making a pass-through connector to hook directly to the master control unit, and leave the topside 100% stock, but unless my multimeter completely sucks, there’s some funny stuff going on with pin 6 on that wiring harness.
EDIT
Okay W. T. F. I just used a different multimeter, and now I’m showing 12->6 with .5K resistance, but none of the pins show continuity to the temperature control switch. I’ll update this in a bit.
Okay, this is insane. One multimeter says 5K resistance from the temp control switch to pin 6 on the molex, but no continuity to pin 12 on the motorola (my little Radio Shack Auto-Range Digital MM), and my other one (Sperry DM-210A) shows no continuity at all between the temp control with and molex pin 6, yet there’s continuity from the molex to pin 12 on the motorola chip with .5K resistance. Someone’s lying.
EDIT:
Okay, now I’m getting consistent readings on the pin 6-> pin 12 connection, .5K resistance Data In. AMEN. One multimeter claims there’s 5K across pin 6 to the temp control switch, and the other says there’s nothing there. I guess both are true then. Weird.
Another WAG on my part - when I have a chance to hook all of this up, I’m assuming that the clock pin would get hooked to a digital pin on the arduino, and that I could basically time the whole thing by waiting to see when that pin changes from high, to low, back to high again, right? I think?
(I’m sure this will all seem a bit more obvious once it’s wired up - I’m really hoping I can make a pass-through plug for this!)
Did you ever make any more progress?
I have a gecko s pack that I want to interface with.
The user you wish to ask hasn’t been active here in two years. Even then, you haven’t directly mentioned his name in your reply so he won’t even get notified (even if he cares to reply here).
Couldn’t this question have been asked in a private message… and not by resurrecting a thread that’s been dead for TEN YEARS?
Not to mention a thread that’s technically unrelated to the core essence of this forum…
While all of that may be true, I am a bit amused that this guy ran me down on reddit, and didn’t even realize it was me.
The internet is a weird place.
Oh shit, welcome back.