#garfield Logs

Nov 13 2023

#garfield Calendar

02:53 AM rue_shop3: me and moon did it!
03:06 AM rue_shop3: we generated VGA sync signals!
03:21 AM rue_mohr: 33% of a XC9572
04:08 AM rue_mohr: erp, its 2am I should sleep
04:14 AM rue_mohr: I just came up with an idea for an ADC. I call it a "Horrible ADC" or HADC
04:15 AM rue_mohr: it works by doing a fixed time sample of the input voltage, into a capacitor
04:16 AM rue_mohr: the capacitor is discharged when not being connected to the input source
04:16 AM rue_mohr: the input voltage will pull the capacitor higher and make it take longer to discharge,
04:16 AM rue_mohr: its hooked to a comparitor
04:16 AM rue_mohr: the higher the input voltage was, the longer the pulse on the cap will be
04:16 AM rue_mohr: from the comparitor
04:17 AM rue_mohr: so you measure the time
04:17 AM rue_mohr: its like a sigma-delta, but only mostly
04:17 AM rue_mohr: it doesn't use controlled currents
04:18 AM rue_mohr: if it can be implemented easy enough, they can be paralleled up
04:18 AM rue_mohr: more sps
10:24 AM aandrew: I was going to say this sounds a lot like sigma-delta
10:24 AM aandrew: there are some really nice FPGA based ADCs too; cheating by using an LVDS input with one leg going to the signal to sample and the other being driven by an R2R to set the threshold
10:25 AM aandrew: also congrats on the VGA... before you know it you'll be racing the beam
11:21 AM rue_mohr: ooo
02:24 PM polprog: rue_mohr: did you see my post on the mini210?
02:25 PM rue_mohr: maybe
02:25 PM polprog: i wrote a long thing
02:25 PM polprog: posted to twitter
02:26 PM polprog: with a link to the blog
02:26 PM rue_mohr: I think I did... checking
02:26 PM rue_mohr: on getting it to boot linux, right?
02:26 PM polprog: yes, u-boot for now but linux is the aim
02:27 PM rue_mohr: yea, I was going to ask more about the jtag
02:28 PM rue_mohr: I'v seen that arm chip...
02:28 PM rue_mohr: where...
02:58 PM polprog: samsung phone maybe
03:02 PM rue_mohr: I was supposed to buy more etch resist pens
03:04 PM polprog: to do list this next two months
03:04 PM polprog: - finish mini210 (linux)
03:04 PM polprog: - finish the LG demo box (better rootfs + maybe 64 bit linux)
03:04 PM polprog: - sh4 iptv decoders (terra incognita, get whatever running)
03:04 PM polprog: these are ongoing
03:05 PM polprog: now the actual todo
03:05 PM polprog: - hack the Spartan 3 on the cisco card (that's up your alley rue!)
03:05 PM rue_mohr: heh, you fave the same challanges I do with todo lists
03:05 PM polprog: - do something with the Zynq on the shitcoin miner mainboard
03:05 PM rue_mohr: I cant get my brain going today
03:06 PM polprog: i dont know what i am doing with my free time
03:06 PM polprog: im hacking old SBCs listening to Unreal Tournament 99 music
03:06 PM rue_mohr: I want to do that ai stuff
03:06 PM polprog: oh yeah that
03:06 PM rue_mohr: I have not been able to properly dig into your first document :(
03:07 PM polprog: we did some intro to very crude image recognition today
03:07 PM polprog: sadly it's all libraries now
03:07 PM polprog: There is so much code to do a simple task like that its not feasible to write it yourself
03:07 PM polprog: if you want i can explain something to you!
03:07 PM rue_mohr: and the images are pre-processes memory images from source code that you would have to work hard to find?
03:08 PM polprog: um hard to say
03:08 PM polprog: there are a few versions
03:08 PM polprog: but they are available as bare files too. or a (documented) binary / header for C
03:08 PM polprog: there is 60'000 32x32 px rgb images in that dataset we use
03:09 PM rue_mohr: hmm
03:10 PM rue_mohr: https://polprog.net/rozne1/ircjunk/nn/01_backprop.html
03:10 PM rue_mohr: aha, its still up
03:10 PM polprog: of course
03:11 PM polprog: :)
03:11 PM polprog: i dont delete stuff from there
03:11 PM rue_mohr: no I mean in one of my browser tabs
03:11 PM polprog: ahaha
03:11 PM rue_mohr: mkdir polprogai
03:11 PM rue_mohr: #include <stdio.h>
03:11 PM rue_mohr: int main(void) {
03:11 PM rue_mohr:
03:11 PM rue_mohr: return 0;
03:11 PM rue_mohr: }
03:12 PM polprog: thats rude D:
03:12 PM polprog: /s
03:13 PM rue_mohr: I'll ignore its all floats for now...
03:16 PM rue_mohr: brain is not awake enough
03:16 PM rue_mohr: http://paste.debian.net/1298077/
03:17 PM rue_mohr: try again here
03:17 PM polprog: a, b are the neuron parameters, but it looks ok
03:18 PM rue_mohr: its the end of a nice, day, I wonder if there is anyting I needed to do outside
03:18 PM rue_mohr: ok
03:18 PM polprog: i have to take apart a few printers at the basement but the neighbours dont like it when i make noise at this time
03:18 PM polprog: its 10:15pm here
03:18 PM rue_mohr: so were gonna fit a line
03:18 PM polprog: (there is a ready made example there too)
03:19 PM polprog: but yes, we will use a single neuron to fit a line
03:19 PM rue_mohr: so I'm going to need some training data
03:19 PM polprog: generate it!
03:19 PM rue_mohr: if I use 2 points and pick random along the line
03:19 PM rue_mohr: 5,5 and 2000,2000
03:20 PM polprog: i just generated points on a line and added some random number to their Y coords
03:20 PM polprog: random from -0.2 to +0.2 or something
03:20 PM rue_mohr: I'll start without the static
03:20 PM rue_mohr: let it generate a hard result I know to look for
03:22 PM rue_mohr: and were using the 2d distance as the error value
03:22 PM polprog: yeah
03:22 PM rue_mohr: how many training points did you use/
03:22 PM rue_mohr: ?
03:23 PM polprog: 30 is a good start
03:23 PM polprog: also there is no training and test set here
03:28 PM rue_mohr: float *x = {3,7,9,10,30,67,78,90,95,101,104,106,199,205,207,209,220,231,244,250,251,253,260,265,277,289,296,312,315,440}; // This is the input
03:28 PM rue_mohr: float *y = x; // This is the output
03:28 PM polprog: that gives you a 1*x + 0 slope
03:28 PM rue_mohr: yup
03:28 PM polprog: thats boring
03:29 PM rue_mohr: known result
03:29 PM rue_mohr: hah, I'll change it up later if it works
03:29 PM polprog: noo do it like 2*x at least
03:29 PM rue_mohr: float result[64];
03:29 PM rue_mohr: let me see if this works, its low effort :]
03:30 PM rue_mohr: wait
03:30 PM polprog: in the example implementation i forgot to use the result array and its not there, cause I calculate the error at the same time i do the points
03:30 PM polprog: but generally it will be done with a result array
03:30 PM rue_mohr: there should be soemthing that starts with random values for a,b right?
03:30 PM polprog: gah, that makes it a bad example
03:30 PM polprog: random or predefined
03:31 PM rue_mohr: you edit it and I'll try to keep going
03:31 PM polprog: just make it different than 1 and 0 because there is no point training a neuron that perfectly guesses
03:31 PM polprog: ok, its allright
03:31 PM rue_mohr: a = 3.141592653;
03:31 PM rue_mohr: b = 0.03461;
03:31 PM polprog: no need to edit..
03:32 PM rue_mohr: http://paste.debian.net/1298084/
03:33 PM polprog: thats ok
03:33 PM polprog: just need to add
03:33 PM polprog: float L(float, float);
03:33 PM polprog: above main
03:34 PM polprog: oh yeah and the parameters should be float
03:34 PM rue_mohr: its not all checked thru yet
03:34 PM polprog: if you make it print the loss function and run it once you will see what value it is
03:35 PM rue_mohr: int N_POINTS = sizeof(x)/sizeof(float);
03:35 PM polprog: nope
03:35 PM polprog: x is a float*
03:36 PM polprog: not a float array, sizeof will return the pointer size on your machine
03:36 PM polprog: thats why I use a macro
03:36 PM polprog: #define NPOINTS blub
03:36 PM rue_mohr: hmm
03:36 PM rue_mohr: according to my test programt hat shuld work
03:36 PM polprog: oh right
03:37 PM polprog: no you are right, x is a predefined array
03:37 PM polprog: confusing >_<
03:38 PM rue_mohr: :] ok
03:38 PM rue_mohr: its a dodgy one for me too
03:39 PM rue_mohr: return pow(result - target, 2)
03:40 PM rue_mohr: tahts not sqrt(a^2-b^2)
03:40 PM polprog: ah right
03:40 PM polprog: that works too
03:40 PM polprog: that (a-b)^2 function is nice because its derivative is easy
03:40 PM rue_mohr: hmm
03:40 PM rue_mohr: oh, ok, if its all the same
03:40 PM polprog: 2a or -2b depending on the variable
03:41 PM rue_mohr: http://paste.debian.net/1298086/
03:42 PM polprog: yup
03:43 PM rue_mohr: heh
03:43 PM rue_mohr: float L(float result, float target){
03:43 PM rue_mohr: return pow(result - target, 2);
03:43 PM rue_mohr: }
03:43 PM rue_mohr: clean up the syntax errros..
03:44 PM rue_mohr: http://paste.debian.net/1298087/
03:44 PM rue_mohr: I missed it by that much! : -0.000001
03:45 PM rue_mohr: I'm not sure what scale that number is on...
03:45 PM polprog: hm,
03:45 PM polprog: gimme a sec
03:45 PM polprog: that should be larger
03:45 PM rue_mohr: I'd expect atleast 0.1
03:46 PM polprog: I missed it by that much! : -402855012731345187765223424.000000
03:46 PM polprog: o_O
03:46 PM polprog: no that too much
03:46 PM rue_mohr: !?
03:46 PM polprog: ahh
03:47 PM polprog: you are not calculating the result at all!
03:47 PM polprog: the array is full of garbage ;)
03:47 PM rue_mohr: x = y
03:47 PM polprog: yes, but loss += L(result[i], y[i])
03:47 PM polprog: result
03:47 PM polprog: not x
03:48 PM polprog: you have to do
03:48 PM polprog: for(int i = 0... npoints yadda yadda){
03:48 PM rue_mohr: oh!!!
03:48 PM polprog: result[i] = a*x[i] + b
03:48 PM rue_mohr: right ok
03:50 PM rue_mohr: float f(float x_i, float a, floatb){
03:50 PM rue_mohr: return
03:50 PM rue_mohr: }
03:50 PM rue_mohr: drat, can I isolate it right now
03:50 PM rue_mohr: y = mx + b;
03:51 PM rue_mohr: given x, a, and b, solve for y
03:51 PM rue_mohr: ok, I think I got it.
03:51 PM rue_mohr: hhahaha
03:51 PM rue_mohr: float f(float x_i, float a, float b){
03:51 PM rue_mohr: return (x_i*a)+b;
03:51 PM rue_mohr: }
03:52 PM polprog: oh no no
03:52 PM polprog: gcc is doing something weird
03:53 PM rue_mohr: http://paste.debian.net/1298088/
03:53 PM rue_mohr: check that out
03:54 PM polprog: if i dont print the result table it ignores it completely
03:54 PM rue_mohr: see if I have any mental activity going on
03:55 PM polprog: there is something really broken with my gcc, it returns a loss of zero
03:57 PM polprog: fascinating
03:57 PM polprog: it *does not like* your loss = 0 in the loop start condition
03:57 PM polprog: that is an error in my book
03:57 PM rue_mohr: ok
03:57 PM polprog: the fat that it makes loss = 0 then
03:58 PM rue_mohr: // work out the error
03:58 PM rue_mohr: loss = 0;
03:58 PM rue_mohr: for(int i = 0; i < N_POINTS; i++){
03:58 PM rue_mohr: loss += L(result[i], y[i] );
03:58 PM rue_mohr: }
03:58 PM rue_mohr: loss /= N_POINTS;
03:58 PM polprog: it works like that yea
03:58 PM rue_mohr: aha
03:58 PM rue_mohr: it doesn't like declaring the int, AND the comma in the same block
03:59 PM rue_mohr: we found a gcc bug!
03:59 PM rue_mohr: :]
03:59 PM polprog: nonono
03:59 PM polprog: i knw
03:59 PM polprog: i know*
03:59 PM polprog: int i = 0, loss = 0;
03:59 PM rue_mohr: I moved the decleration of i up, and its ok withit
03:59 PM polprog: defines a new integer called loss inside the loop
03:59 PM rue_mohr: for(i = 0, loss = 0; i < N_POINTS; i++){
03:59 PM rue_mohr: loss += L(result[i], y[i] );
03:59 PM rue_mohr: }
03:59 PM rue_mohr: thats ok
04:00 PM polprog: yes! because thats two assignment operations!
04:00 PM polprog: DAMN syntax
04:00 PM rue_mohr: if you declare in there too, it screws up
04:00 PM rue_mohr: oh!
04:00 PM polprog: now i know why some smartypants languages use := instead
04:00 PM rue_mohr: oh I kinda see why
04:00 PM rue_mohr: int a=0,b=1,c=3
04:00 PM rue_mohr: declaring 3 ints...
04:01 PM rue_mohr: but in the for loop , is the seperator
04:01 PM rue_mohr: so the decleration is overriding the comma
04:01 PM rue_mohr: hahah
04:01 PM rue_mohr: http://paste.debian.net/1298089/
04:01 PM rue_mohr: my version for now
04:01 PM rue_mohr: I missed it by that much! : 538.393677
04:02 PM rue_mohr: oh, I'll swtich back to your error fn
04:02 PM rue_mohr: I missed it by that much! : 207319.656250
04:02 PM polprog: yep
04:02 PM polprog: same value here
04:02 PM rue_mohr: k
04:02 PM rue_mohr: step 3
04:03 PM polprog: so step 3 is basically
04:03 PM polprog: what we run now is 1 cycle
04:03 PM polprog: in step 3 we take that loss value
04:03 PM rue_mohr: yea
04:03 PM polprog: and adjust ..
04:03 PM polprog: wait
04:04 PM polprog: ok. we dont use the "loss" variable for adjustment but we use the loss function
04:04 PM polprog: look at that graph in the html file
04:04 PM rue_mohr: float k = 0.01;
04:04 PM rue_mohr: float dL_da = 0;
04:04 PM rue_mohr: float dL_db = 0;
04:04 PM rue_mohr: float dL_df;
04:04 PM rue_mohr: for(i = 0; i < N_POINTS; i++){
04:04 PM rue_mohr: dL_df = -2 * (result[i] - y[i]);
04:05 PM rue_mohr: dL_da += dL_df * x;
04:05 PM rue_mohr: dL_db += dL_df * 1;
04:05 PM rue_mohr: }
04:05 PM rue_mohr: a -= k * dL_da;
04:05 PM rue_mohr: b -= k * dL_db;
04:05 PM polprog: so in step 3, for each point we calculate dL_da, that is, what is the slope of that graph in the point we are in
04:05 PM polprog: yep
04:05 PM polprog: now what is dL/da?
04:05 PM rue_mohr: and later we have to work out how to not get stuck in local minima
04:05 PM polprog: dL/da is df/da * dL/df
04:05 PM polprog: well not getting stuck is the hard part
04:06 PM rue_mohr: I have an idea, but I need to go by-the-book first
04:06 PM polprog: dL/da is df/da * dL/df because our loss is (y - f)^2, and f there is our original function, f = x
04:06 PM polprog: or rather
04:06 PM polprog: f = a*x, but a is set to 1
04:07 PM polprog: despite that the derivative of f in respect to a is x
04:07 PM polprog: df/da = x
04:07 PM polprog: and the derivative of the loss function with respect to f is -2(y-f)
04:07 PM polprog: (so i was wrong back there, but thats why i wrote that file)
04:08 PM polprog: dL/df = d/df [ (y-f)^2 ]
04:08 PM polprog: you know how to work out a derivative like that?
04:08 PM rue_mohr: not in my current brain-state
04:08 PM polprog: me neither as it seems
04:08 PM rue_mohr: I'm sort zombie right now, sorry
04:09 PM polprog: but its what i write there
04:09 PM polprog: that C code that adjust a and b is known to be ok
04:09 PM polprog: and the last thing is the k parameter, learning rate
04:09 PM polprog: we do it in little steps so k is smallish
04:09 PM rue_mohr: big steps may jump over the minima repeatedly
04:09 PM polprog: in my code if k > 0.003 the network goes hay wire
04:09 PM polprog: yes
04:10 PM rue_mohr: 0.003!?
04:10 PM polprog: thats why the k needs to be small
04:10 PM rue_mohr: but you used 0.01
04:10 PM polprog: oh that
04:10 PM rue_mohr: shall I use 0.001?
04:10 PM polprog: yeah, once it works experiment with that
04:10 PM polprog: that really depends on how many points there are
04:11 PM polprog: and what is the value of these dL_da and dL_db values
04:11 PM polprog: since they are a sum
04:11 PM polprog: oh no.. theres more errors damn
04:11 PM polprog: ok so we average them out.
04:12 PM polprog: forgot to add / n; to these dL_da += and dL_db +=
04:12 PM polprog: you can peek at the .c file i put there..
04:12 PM polprog: basically for a large number of points my dL_da and dL_db would overflow and make the program go crazy
04:12 PM polprog: thats the problem with a lot of data
04:13 PM rue_mohr: a -= k * (dL_da / N_POINTS);
04:13 PM rue_mohr: b -= k * (dL_db / N_POINTS);
04:13 PM rue_mohr: ?
04:13 PM polprog: no, gotta divide earlier
04:13 PM polprog: dL_da -= (dL_df * x[j]) / n;
04:13 PM polprog: dL_db -= (dL_df * 1) / n;
04:13 PM rue_mohr: -=!!!
04:14 PM polprog: well my dL_df in the example has a - in front too
04:14 PM rue_mohr: /i?
04:14 PM polprog: float dL_df = -2 * (output - y[j]);
04:14 PM polprog: dL_da -= (dL_df * x[j]) / n;
04:14 PM polprog: dL_db -= (dL_df * 1) / n;
04:14 PM polprog: a -= k * dL_da;
04:14 PM polprog: b -= k * dL_db;
04:15 PM polprog: the last two lines are after the loop that goes over the points
04:15 PM polprog: the first two are in the loop
04:15 PM rue_mohr: n = N_POINTS ?
04:15 PM polprog: yeah
04:15 PM polprog: i will have a looot to fix up in that text
04:17 PM rue_mohr: float k = 0.01;
04:17 PM rue_mohr: float dL_da = 0;
04:17 PM rue_mohr: float dL_db = 0;
04:17 PM rue_mohr: float dL_df;
04:17 PM rue_mohr: for(i = 0; i < N_POINTS; i++){
04:17 PM rue_mohr: dL_df = -2 * (result[i] - y[i]);
04:17 PM rue_mohr: dL_da -= (dL_df * x[i]) / N_POINTS;
04:17 PM rue_mohr: dL_db -= (dL_df * 1) / N_POINTS;
04:17 PM rue_mohr: }
04:17 PM rue_mohr: a -= k * dL_da;
04:17 PM rue_mohr: b -= k * dL_db;
04:17 PM polprog: that looks very good!
04:18 PM rue_mohr: start point is y = 3.141593x + 0.034610
04:18 PM rue_mohr: I missed it by that much! : 207319.656250
04:18 PM rue_mohr: new guess is y = -1932.859131x + -7.708654
04:18 PM polprog: print these variables each line because it will be hard to debug
04:18 PM polprog: woah
04:18 PM rue_mohr: yea
04:18 PM polprog: overshot by a looot
04:18 PM rue_mohr: mhm
04:18 PM rue_mohr: float k = 0.0001; ....
04:19 PM rue_mohr: start point is y = 3.141593x + 0.034610
04:19 PM rue_mohr: new guess is y = -16.218414x + -0.042823
04:19 PM rue_mohr: float k = 0.000001;....
04:19 PM rue_mohr: start point is y = 3.141593x + 0.034610
04:19 PM rue_mohr: I missed it by that much! : 207319.656250
04:19 PM rue_mohr: new guess is y = 2.947993x + 0.033836
04:19 PM rue_mohr: :)
04:20 PM rue_mohr: ?
04:20 PM polprog: thats good
04:20 PM rue_mohr: lets do that 4 times...
04:20 PM polprog: though that k value is very very small
04:20 PM polprog: what is your dL_df, dL_da and dL_db
04:20 PM polprog: though you might have larger values in the data points too
04:21 PM polprog: no ok, that looks sensivle
04:21 PM polprog: no ok, that looks sensible*
04:21 PM polprog: my values are from zero to 100
04:21 PM rue_mohr: new guess (#3) is y = 2.466011x + 0.031908
04:21 PM polprog: yours are larger, and there is a square there so it makes it even larger
04:22 PM polprog: does it get closer each iteration?
04:22 PM rue_mohr: new guess (#39) is y = 1.048297x + 0.026237
04:22 PM rue_mohr: looks like k could be larger
04:22 PM rue_mohr: float k = 0.00001;
04:22 PM rue_mohr: new guess (#39) is y = 0.999896x + 0.026038
04:23 PM rue_mohr: new guess (#399) is y = 0.999896x + 0.025987
04:23 PM rue_mohr: huh
04:23 PM rue_mohr: new guess (#3999) is y = 0.999898x + 0.025474
04:23 PM polprog: that looks okay
04:23 PM rue_mohr: uh
04:23 PM polprog: (it will never get it spot on)
04:23 PM rue_mohr: its not really adjusting b
04:24 PM polprog: that was my problem too
04:24 PM rue_mohr: ah
04:24 PM polprog: i need to think about it, compare it with the python code
04:24 PM rue_mohr: float k = 0.0001;
04:24 PM rue_mohr: new guess (#3999) is y = -nanx + -nan
04:24 PM rue_mohr: :]
04:24 PM polprog: yep, thats problem #2
04:24 PM polprog: it is adjusting b but by a very very small amount
04:25 PM polprog: dL_da -= (dL_df * x[j]) / n;
04:25 PM polprog: dL_db -= (dL_df * 1) / n;
04:25 PM polprog: so like
04:25 PM rue_mohr: new guess (#39999) is y = 0.999917x + 0.020868
04:25 PM polprog: dL_db is the adjust rate and for b it is on average x times smaller
04:25 PM polprog: i have to ask the prof about it
04:27 PM polprog: thats all there is to backpropagation really
04:27 PM rue_mohr: its not quite what I hope
04:27 PM rue_mohr: d
04:27 PM polprog: except for that b thing, i will have to check that
04:27 PM polprog: its a bit anticlimatic yea
04:27 PM rue_mohr: new guess (#399999) is y = 0.999989x + 0.002841
04:27 PM polprog: but more neurons and you have to get into a lot of complicated maths
04:27 PM rue_mohr: if you round to 3 places, its ok
04:28 PM polprog: a 2x2 network and you have how many
04:28 PM rue_mohr: ?
04:28 PM polprog: im thinking
04:29 PM polprog: more equations and you have to adjust them all
04:29 PM polprog: like, if you have what we got now
04:29 PM rue_mohr: yea, I think there is another way
04:29 PM polprog: one neuron, two parameters
04:29 PM rue_mohr: and the maths centric people wont like it
04:29 PM polprog: two derivatives
04:30 PM rue_mohr: no, do you know the little balancers in a cdrom?
04:30 PM rue_mohr: for the spindle?
04:30 PM polprog: if you have two neurons, and the input parameters are linked to each one, you got two for each one
04:30 PM polprog: but then add another layer of neurons and you got gosh
04:30 PM polprog: more and more derivatives of the previous derivatives
04:30 PM polprog: yeah i know them
04:31 PM Tom_L: pol progrmamer is awake!!
04:32 PM polprog: 23:29
04:32 PM polprog: not for long, got a lot of work tomorrow
04:32 PM rue_mohr: dL_db -= (dL_df * 4) / N_POINTS;
04:33 PM rue_mohr: http://paste.debian.net/1298093/
04:33 PM polprog: colleague made the new firmware, i gotta add its new commands to the program
04:33 PM polprog: rue_mohr: yeah that will make it adjust b faster
04:34 PM polprog: though I think.. i think my idea of two parameters here may be wrong
04:35 PM polprog: how did we do it in python tho
04:35 PM polprog: ill have to check that tomorrow
04:35 PM polprog: im sleepy
04:35 PM rue_mohr: gnight
04:36 PM polprog: night!
04:38 PM Tom_L: that's the thing about the earth being round
04:39 PM rue_mohr: its a nice day out and I'm exhausted
04:40 PM rue_mohr: I have some days off soon, maybe its ok to lose some time
04:44 PM Tom_L: yup last few days have been nice
05:44 PM rue_mohr: polprog, it can only make a proportionate correction to the values, I think
06:33 PM rue_shop2: Tom_L, difference for a friction fit again?
06:34 PM rue_shop2: drat, nevermind, looks like I overcut it again
06:38 PM Tom_L: depends on the diameter but .001 is pretty snug
06:38 PM Tom_L: you want press?
06:38 PM Tom_L: .002" or so then heat and slide it on
06:38 PM Tom_L: .001 over and .002" under respectively
06:39 PM Tom_L: +0.0000 -0.0005 for snug if you can hold it :)
06:39 PM Tom_L: that would be for things like bearings etc
06:54 PM rue_shop2: yea I accidently overcut to 0.5 thou
06:56 PM Tom_L: what are you pressing?
06:56 PM Tom_L: wrap some brass shim around it
06:56 PM Tom_L: not ideal but workable
06:59 PM rue_mohr: bearing into pulley
07:00 PM rue_mohr: I severly overcut the other half and have to make an adapter
09:24 PM rue_shop2: Tom_L, , hehe, I need to figure out a jig for slotting the latches that does like 4 latches at once
09:25 PM rue_shop2: I need to sit down and make another ~10 heads
09:33 PM Tom_L: latches?
09:33 PM Tom_L: those things i cut with the key saw?
09:38 PM Tom_L: http://tom-itx.no-ip.biz:81/~webpage/rue/Can_Holder/A12_New/A12_P1_1.jpg
09:39 PM Tom_L: http://tom-itx.no-ip.biz:81/~webpage/rue/Can_Holder/A12_New/A12_P2_2.jpg
09:39 PM Tom_L: that's how i do those now
09:39 PM Tom_L: cut the slot on P1
09:39 PM Tom_L: then remove the rectangle that's left on P2
09:40 PM Tom_L: you could print that one i gave you with just the slot part multiple times
09:41 PM Tom_L: those go pretty quick the way i got it now
09:42 PM Tom_L: sawing all the blanks probably takes longer but i think they come out better this way
09:43 PM Tom_L: how does that press thing work i sent?
09:45 PM VanUnamed: Tom_L: looks absesto-ish
09:46 PM Tom_L: moon?
09:46 PM Tom_L: no, he doesn't stick around
09:53 PM Tom_L: full yt making A12 https://www.youtube.com/watch?v=GjvlIjr4xck&t=24s
10:08 PM rue_shop2: yes, those are the latches
10:08 PM Tom_L: who's VanUnamed?
10:08 PM rue_shop2: the press works great
10:08 PM Tom_L: good
10:08 PM rue_shop2: VanUnamed, is a random interested pickup :]
10:09 PM Tom_L: ahh
10:09 PM Tom_L: never know what moon is gonna show up as
10:09 PM rue_shop2: usually moon
10:09 PM rue_shop2: so I got the cpld to generate vgaeh?
10:09 PM rue_shop2: so I got the cpld to generate vga eh?
10:09 PM Tom_L: nice
10:10 PM rue_shop2: sync anyhow
10:10 PM rue_shop2: :/ my brains not going too good latley
10:11 PM rue_shop2: getting on twitter picked me up a lot for sure
10:12 PM rue_shop2: before I jumped on twitter I waasn't doing much
10:12 PM Tom_L: yeah seemed to spark some life
10:15 PM rue_shop2: need to build a robot, but I cant focus worth a damn
10:15 PM rue_shop2: life is heaps and steaks of complex
10:16 PM rue_shop2: everyone is dieing and wants some of my time
10:16 PM VanUnamed: 3i am very annoyed.
10:16 PM VanUnamed: 44 days still no small aquarium pump
10:16 PM Tom_L: well you gotta do you first
10:17 PM rue_shop2: who is 3i?
10:17 PM rue_shop2: Tom_L, yea, but its hard when they are literally dieing
10:17 PM VanUnamed: I I
10:19 PM rue_shop2: Its only because moon was helping that I got the vga thing done
10:19 PM Tom_L: he good at that sort of thing?
10:20 PM rue_shop2: he's ok, but if I dont ahve a helper I cant focus
10:20 PM rue_shop2: I just drown in all the things going on
10:20 PM rue_shop2: this weekend I'v basically got nothing done
10:55 PM rue_mohr: https://www.youtube.com/watch?v=APwV0hSKE6s