#garfield Logs

Jul 15 2018

#garfield Calendar

01:05 AM rue_shop4: rue_shop4, move wire to bin in tent!
02:10 AM rue_shop4: luckygen1001
02:43 AM rue_shop4: 0805 20pF
11:43 AM furrywolf: so... what's this channel about, other than talking to your clones? :)
11:48 AM rue_shop4: this is my idle/aside channel
11:49 AM rue_shop4: hey so, yesterday this idea hits me
11:49 AM furrywolf: uh-oh
11:49 AM rue_shop4: an encoder that doesn't use the state for identifying position, but the change in state
11:49 AM rue_shop4: turns out, for a 3 channel encoder, you can get like 25 positions
11:50 AM furrywolf: I'm not sure what you mean.
11:50 AM rue_shop4: you just need a state machine to decode it, and it needs to be an app where not knowing where you are till you get a state change is ok
11:50 AM rue_shop4: ok, so
11:50 AM rue_shop4: 3 channel, you have 0-7
11:50 AM rue_shop4: but if you put this sequence in
11:51 AM rue_shop4: 0,1,2,0,3,1,4,0,5,1,6,2,3,4,5,2,7,3,6,4,7,5,6,7,0
11:51 AM rue_shop4: you get unique transitions for each position
11:51 AM rue_shop4: say you go from 4->5, it only happens in one place
11:51 AM rue_shop4: ditto 1->3
11:51 AM rue_shop4: but its only 3 bit
11:52 AM rue_shop4: yea?
11:54 AM rue_shop4: I wrote a program to brute force the best combination, its not done yet, thats (one of) the best sequences its come up with
11:54 AM rue_shop4: so, I was moving on, I was gonna make a wheel generator....
11:54 AM rue_shop4: that could build with arbitrary binary sequences
11:55 AM rue_shop4: naturally I thought of yours
11:55 AM rue_shop4: I thought you would be interested, not to write it, but to see how to get 25 positions in 3 bits
12:11 PM rue_shop4: the silence is killing me
12:12 PM rue_shop4: I have a caster on a robot, need a position sensor, a bit of a move before knowing where it is, is ok
12:27 PM furrywolf: back. sorry. my neighbor showed up and said he had a water heater malfunction and asked for help turning off the water to his house, which runs off my pump shed, and it turned into a project.
12:28 PM rue_shop4: hah
12:28 PM rue_shop4: somehow I think our lives are similar
12:29 PM furrywolf: I'd be worried about intermediate false transitions during actual transitions with your system.
12:29 PM furrywolf: you'll need some timer logic and a gaurantee it's continually rotating.
12:31 PM furrywolf: that is, not all bits are going to change at the same time, due to physical and electrical tolerances, and you'll have to be able to identify when it's actually changed vs when it's halfway between two positions and reading bunk. might need to reserve a bit for a is-centered-on-the-bits track at worst.
12:35 PM furrywolf: also, since you're already keeping track of state, you might be able to get away with a low-resolution absolute position combined with a high-resolution quadrature.
12:38 PM furrywolf: my morning project was distinctly less interesting... gluing bayonet bases onto mr15 lamps.
12:41 PM furrywolf: there's a term for the type of code you've thought of, but I can't remember what it is... I've only seen it done with a single bit, not higher numbers of bits. for a single bit, you can look at multiple past transitions, and make sure that sequence is unique.
12:46 PM rue_shop4: I was thinking about a clock track
12:47 PM furrywolf: use two clock tracks and call it quadrature. :)
01:13 PM rue_shop4: vistorors
01:13 PM rue_shop4: ah, but I need to know, within not too much of a rotation, where I am
01:13 PM rue_shop4: if its 3 bits and a clock track, that'd work for me
01:14 PM rue_shop4: but the 25 positions is just 3 bits
01:14 PM rue_shop4: if you take it to 4 bits it'd go crazy
01:18 PM rue_shop4: right away it got 108 postions for a 4 bit track
01:19 PM furrywolf: maybe intentionally offset the tracks by 1/3rd bit width, and design your code with this in mind?
01:19 PM rue_shop4: did you end up making any encoders?
01:19 PM furrywolf: no
01:19 PM rue_shop4: hmm, I been playing with etching tinfoil
01:19 PM rue_shop4: its harder than I'd thought it would be
01:20 PM rue_shop4: the lead ideas involve UV nail polish
01:20 PM rue_shop4: and I'm just wondering why bother etching it
01:21 PM rue_shop4: if I have a clear backer and the UV nailpolish, maybe I'm set
01:21 PM furrywolf: an intentionally 1/3rd-offset code probably can be designed to detect rotation in both directions without a clock track or transition issues, but still get a lot of data...
01:21 PM rue_shop4: I dont mind a clock track
01:21 PM rue_shop4: this encoder I need can be really big
01:22 PM rue_shop4: this state idea came to me when i was thinking about a low-rez absolute coupled with an incremental
01:22 PM rue_shop4: then I wondered how far I could push it
01:23 PM rue_shop4: 109 positions for a 4 bit encoder is pretty good
01:23 PM furrywolf: you might look into the existing 1-bit codes, that use multiple sensors on a single track
01:23 PM rue_shop4: yea, those are cool
01:24 PM rue_shop4: couldn't wrap my head around how to generate the sequences
01:24 PM furrywolf: carefully. :)
01:24 PM rue_shop4: I have a program brute forcing these
01:24 PM rue_shop4: >[10,15]->[11,15]->[11,14]->[12,14]->[12,15]->[13,15]->[13,14]->[0,14]->End of list, 108 usefull transitions
01:24 PM rue_shop4: [14,15]->[0,15]->[0,1]->[1,2]->[0,2]->[0,3]->[1,3]->[1,4]->[0,4]->[0,5]->[1,5]->[1,6]->[0,6]->[0,7]->[1,7]->[1,8]->[0,8]->[0,9]->[1,9]->[1,10]->[0,10]->[0,11]->[1,11]->[1,12]->[0,12]->[0,13]->[1,13]->[1,14]->[2,14]->[2,3]->[3,4]->[2,4]->[2,5]->[3,5]->[3,6]->[2,6]->[2,7]->[3,7]->[3,8]->[2,8]->[2,9]->[3,9]->[3,10]->[2,10]->[2,11]->[3,11]->[3,12]->[2,12]->[2,13]->[3,13]->[3,14]->[4,14]->[4,5]->[5,6]->[4,6]->[4,7]->[5,7]->[5,8]->[4,8]-
01:24 PM rue_shop4: >[4,9]->[5,9]->[5,10]->[4,10]->[4,11]->[5,11]->[5,12]->[4,12]->[4,13]->[5,13]->[5,14]->[6,14]->[6,7]->[7,8]->[6,8]->[6,9]->[7,9]->[7,10]->[6,10]->[6,11]->[7,11]->[7,12]->[6,12]->[6,13]->[7,13]->[7,14]->[8,14]->[8,9]->[9,10]->[8,10]->[8,11]->[9,11]->[9,12]->[10,12]->[10,13]->[8,13]->[8,15]->[9,15]->[9,14]->[10,14]->[10,15]->[11,15]->[11,12]->[12,13]->[11,13]->[11,14]->[12,14]->[12,15]->[13,15]->[13,14]->[0,14]->End of list, 109
01:24 PM rue_shop4: usefull transitions
01:24 PM rue_shop4: (some pairs are backwards)
01:26 PM furrywolf: intentional partial-bit-width offsets make for some interesting codes... you can probably get more precise data out of them, although you'll need the same amount of rotation to get an absolute position. that is, you'll get non-absolute data in addition to the absolute data.
01:28 PM rue_shop4: I think I see where your at
01:30 PM furrywolf: your ideal code with a clock track might go, say, 1->2. electrically, this might read 1->0->2 or 1->3->2. if you intentionally offset the second bit, you could gaurantee which one it was, and look for the resulting longer pattern...
01:31 PM furrywolf: you'd be generating a code that used the state of three readings (for this 2-bit example) instead of two readings, but due to the half-bit offset, you'd get the three readings in the same amount of rotation as you'd get two (plus some noise) readings from a non-offset track.
01:31 PM rue_shop4: maybe mixing with with a 1-bit-changes grey like thing
01:32 PM rue_shop4: ok, I need a shower and breakfast, and then I need to have lunch right away :)
01:32 PM furrywolf: you'd want to generate unique sequences of bits+1 numbers, where only one bit changes per number.
01:32 PM furrywolf: a state-using grey code.
01:33 PM rue_mohr: yea
01:33 PM furrywolf: now you've made me think, and I don't have time to think today, just do labor projects. bah!
01:33 PM rue_mohr: sortof like mixing the clock channel into the other stuff
01:33 PM rue_mohr: haha, I thought you would be interested
01:34 PM furrywolf: for three bits, you'd want to generate a sequence where any four readings in a row is unique... making it handle direction changes mid-reading will be fun.
01:37 PM furrywolf: of course, this eventually degrades into one of the single-bit codes.
01:37 PM furrywolf: given the ability to cut infinitely precise slots, I think they all end up optimizing into a single-bit code. :)
01:37 PM furrywolf: the only thing you're doing with multiple bits is letting you use wider slots.
01:38 PM furrywolf: bbl, need to do useful things.
01:50 PM rue_mohr: I can add a requirement to my brute force program and see what kinda results it gives
01:51 PM rue_mohr: need a fn that checks if there is only a 1 bit difference between two numbers
02:22 PM rue_shop3: int isOneBitDifferent(i, j) {
02:22 PM rue_shop3: unsigned int t;
02:22 PM rue_shop3: t = i ^ j;
02:22 PM rue_shop3: if (t && !(t & (t-1))) {
02:22 PM rue_shop3: return 1;
02:22 PM rue_shop3: }
02:22 PM rue_shop3: return 0;
02:22 PM rue_shop3: }
02:22 PM rue_shop3: I really need to be doing outdoor things
02:23 PM furrywolf: hrmm... (a^b)&((a^b)-1)
02:23 PM furrywolf: wait, needs a not
02:23 PM furrywolf: !((a^b)&((a^b)-1))
02:24 PM rue_shop3: I filtered out a == b
02:29 PM furrywolf: yeah, mine doesn't make sure that something actually changed, just that no more than one thing changed. :)
04:12 PM rue_shop4: goes far, lies near,
04:55 PM furrywolf: blah. I was doing yard work, but it has gotten too hot to be outside.
05:22 PM rue_shop4: yea
05:23 PM rue_shop4: do you think it would be hard to code in arbitrary number arrays to that encoder generator?
05:23 PM rue_shop4: I'm divided if I want to try printing, 3d printing, or cnc to make an encoder
05:24 PM furrywolf: I know someone used my generator to etch a really thin pcb
05:24 PM furrywolf: that has high resolution and low effort.
05:25 PM furrywolf: you can get sillily thin pcbs that are intended to be one layer in a multi-layer board.
05:25 PM rue_shop4: yes
05:25 PM rue_shop4: I have some
05:26 PM rue_shop4: are you familiar with UV nail polish
05:26 PM furrywolf: no, but from the name, I assume it's nail polish that cures with UV rather than solvent evaporation...
05:26 PM rue_shop4: yup
05:27 PM furrywolf: I have polyester resin like that
05:27 PM * furrywolf is not the kind of wolfy that uses nail polish
05:29 PM furrywolf: you might be able to etch copper sheet, if you don't want the diffusion from a pcb.
05:45 PM rue_shop4: I tried some of the polish in the etchant and it didn't work out
05:45 PM rue_shop4: but I'm gonna try again
05:46 PM furrywolf: ask azonenberg. he can probably make 10um slots or something. :P
05:46 PM rue_mohr: I want to knwo hwo to make my own
05:46 PM rue_mohr: casue yaknow, 2am and all
05:56 PM rue_mohr: http://ruemohr.org/~ircjunk/
05:56 PM rue_mohr: I was amused how much your site is like mine
05:56 PM rue_mohr: Iput a front door on mine tho
05:56 PM rue_mohr: http://ruemohr.org/
05:57 PM rue_mohr: seeing as, yaknow, directory listings can only be understood by hackers, it being text and all
05:58 PM furrywolf: hrmm, I expected "not public don't open" to do something amusing.
06:09 PM furrywolf: heh. there was a news report today, woman attacked by shark at local beach. she told everyone she was in the water and a shark bit her leg. turns out it was a dying shark that washed up on the beach, and she tried taking a selfie with it.
06:27 PM furrywolf: grrr. I've been putting 160A into my batteries all day, and they've been at 30.0 for the last couple hours... can't get them to the 31.2 equalization voltage. need bigger genny or to equalize them in banks.
06:57 PM furrywolf: grrr! my main water pump seems to have failed. (motor open circuit)
07:53 PM furrywolf: yep, motor no worky...
07:55 PM * furrywolf removes screws
07:56 PM furrywolf: hrmm. I can't see the motor yet, but now that I got the pump end off... it has that smell.
08:07 PM furrywolf: heh. looks like the brush holder plate caught fire.
08:10 PM furrywolf: amusingly, it claims to have thermal protection, yet the power leads run right to the brush holders.
08:11 PM furrywolf: appears to be an entirely fictitious claim.
08:13 PM furrywolf: perhaps, if it actually had thermal protection, it would not look like a charred mess right now.
11:11 PM rue_shop3: thats a freaking huge bank
11:12 PM rue_shop3: you end up fixing a lot of things
11:13 PM rue_shop3: hmm, I need to somehow transport the ratsnest of wire from the shop to the bin in the shed
11:13 PM rue_shop3: I fixed the cnc,
11:14 PM rue_shop3: the uno io ports failed, not sure how thats even possible
11:14 PM rue_shop3: but, hey, china.
11:17 PM furrywolf: the latest batch of led mr16 lamps at the local hardware store are made with fake aluminum. they look like the old ones, but now they're white plastic painted with metallic paint, instead of aluminum. who cares how long they last, as long as they already have your money. china...
11:18 PM rue_shop3: and how many people throw them out after a week anyhow?
11:18 PM rue_shop3: sounds like they would get into that flashing-thermal-failure pretty quick
11:21 PM rue_shop3: I'll run a test on the old uno, I'm curious to know if the ports just failed.
11:21 PM rue_shop3: they only go to a 74HC541 buffer
11:36 PM furrywolf: bbl, wolfy bedtime