#robotics | Logs for 2016-08-18

Back
[00:07:46] <rue_shop4> yea
[00:07:51] <rue_shop4> I'm coding now
[00:10:46] * Casper replaces some > by some < in rue_shop4 code
[00:11:21] <rue_shop4> haha
[00:11:35] * rue_shop4 always checks against 0
[00:12:33] * rue_shop4 builds state machine
[00:13:57] <Casper> usually I do if (variable condition value) once I did (value condition variable) .... and didn't swapped the condition...
[00:14:19] <Casper> effectivelly swapping a > for a < ..... that was hard to find...
[00:14:45] <Casper> specially that due to a second bug that line was mostly inverted...
[00:14:50] <Casper> ... don't code when you're tired...
[00:14:59] <rue_shop4> I pulled a good one yesterday
[00:15:06] <rue_shop4> I needed to transmitt 12 bits
[00:15:15] <rue_shop4> so I made a moving bitmask
[00:15:25] <rue_shop4> but I started it with (1<<12)
[00:15:43] <rue_shop4> which, is ofcourse, the 13th bit
[00:20:09] <ShadowZ> with state machines, I like to use a loop and a big ol' switch statement
[00:20:24] <ShadowZ> enum's for the state markers
[00:21:31] <ShadowZ> logic to change states is done in the switch itself, and the bits that do some actual work are put into functions
[00:21:56] * ShadowZ is oddly proud of this
[00:28:15] <rue_shop4> void TXService(void){
[00:28:15] <rue_shop4> static unsigned char mask;
[00:28:15] <rue_shop4>
[00:28:15] <rue_shop4> switch(status) {
[00:28:15] <rue_shop4> case 10: // send start bit
[00:28:16] <rue_shop4> dataLow();
[00:28:20] <rue_shop4> break;
[00:28:22] <rue_shop4> case 9:
[00:28:24] <rue_shop4> mask = 0x01;
[00:28:26] <rue_shop4> case 8:
[00:28:28] <rue_shop4> case 7:
[00:28:30] <rue_shop4> case 6:
[00:28:32] <rue_shop4> case 5:
[00:28:34] <rue_shop4> case 4:
[00:28:36] <rue_shop4> case 3:
[00:28:38] <rue_shop4> case 2: // send bit
[00:28:40] <rue_shop4> if (mask & txbuffer) { dataHigh(); }
[00:28:42] <rue_shop4> else { dataLow(); }
[00:28:44] <rue_shop4> mask <<= 1;
[00:28:46] <rue_shop4> break;
[00:28:50] <rue_shop4>
[00:28:52] <rue_shop4> case 1: // send stop
[00:28:54] <rue_shop4> dataHigh();
[00:28:56] <rue_shop4> break;
[00:28:58] <rue_shop4>
[00:29:00] <rue_shop4> default:
[00:29:02] <rue_shop4> return;
[00:29:04] <rue_shop4> }
[00:29:06] <rue_shop4> status--;
[00:29:08] <rue_shop4> return;
[00:29:10] <rue_shop4> }
[00:29:12] <rue_shop4> see my use of the missing break? :)
[00:29:44] <ShadowZ> pastebin! D:
[00:29:59] <rue_shop4> }:P
[00:30:35] <rue_shop4> now to start messing with delays
[00:30:56] <ShadowZ> bleh, you used a global for status
[00:31:18] <rue_shop4> has to be externally accessable
[00:31:35] <rue_shop4> TXSerivce might be a timer interrupt
[00:31:45] <ShadowZ> true
[00:31:58] <ShadowZ> difficult to get around that
[00:32:02] <rue_shop4> is G 0x55?
[00:32:11] * ShadowZ brings up charmap
[00:32:23] <rue_shop4> oh yea, one on the wall
[00:32:32] <rue_shop4> U
[00:32:49] <ShadowZ> You have a charmap on the wall?
[00:32:50] <ShadowZ> nice
[00:33:39] <rue_shop4> yea, I'm wondering if I should use soemthing like 0x50 (P) instead to know I have the bits the right way around
[00:34:42] <rue_shop4> oh god, it compiled first try
[00:34:47] <ShadowZ> orrr. you could use the non-printable characters
[00:34:48] <rue_shop4> there must be horrible bugs
[00:35:08] <ShadowZ> which a few have been designed for RTTY-like operations
[00:36:06] <rue_shop4> ok this should P all over the serial port
[00:36:48] <rue_shop4> while(1) {
[00:36:48] <rue_shop4> sendChar('P');
[00:36:48] <rue_shop4> while(status) { TXService(); }
[00:36:48] <rue_shop4> }
[00:36:52] <rue_shop4> that should work
[00:37:58] <ShadowZ> kinda ugly, but it should work. What language are you using, plain C or C++?
[00:39:13] <rue_shop4> I only ever use plain C
[00:39:19] <rue_shop4> but I use // comments
[00:40:00] <ShadowZ> ok, should be able to use enums, alernatively could just use #defines
[00:40:22] <ShadowZ> Some years ago I had trouble with enum's with a chip I was using, no idea why
[00:40:32] <ShadowZ> its compiler used C
[00:40:40] <rue_shop4> #define dataHigh() SetBit(txd, serport)
[00:40:40] <rue_shop4> #define dataLow() ClearBit(txd, serport)
[00:41:58] <rue_shop4> no workie
[00:47:41] <rue_shop4> a) didn't initialize the state machine
[00:48:19] <ShadowZ> ^.^
[00:48:25] <rue_shop4> oh
[00:48:41] <rue_shop4> backwards compare :)
[00:50:06] <rue_shop4> ok
[00:52:22] <rue_shop4> single mode on the dig scope is nice
[00:59:20] <rue_shop4> sigh,
[00:59:45] <rue_shop4> 1 nop is the difference between 9200baud and 11500 baud
[01:00:01] <rue_shop4> suppose I'll have to use a timer
[01:00:25] <rue_shop4> spooky tho, I'm only 13 nops to get to about 9600 baud
[01:00:28] <ShadowZ> yikes
[01:00:42] <rue_shop4> maybe I'm running at 1Mhz
[01:01:07] <ShadowZ> I'd use a timer for timing, and not rely on the CPU clock
[01:01:57] <rue_shop4> ops
[01:01:58] <ShadowZ> If you want to change baud rates, then all you'd have to do is tweak the timer
[01:02:12] <rue_shop4> oops, I think I boofed the fuses
[01:02:22] <ShadowZ> now why you do that. :P
[01:03:38] <rue_shop4> I'm at 1Mhz, it wont flip over to the crystal
[01:03:46] <rue_shop4> I'll eat and debug hardware
[01:04:09] <ShadowZ> You'll eat hardware? D: D:
[01:10:22] <rue_shop4> if I have to
[01:10:42] <rue_shop4> minerals man, its all about minerals
[01:19:57] <rue_shop4> oh it did work, the dig scope cant go that high
[01:23:52] <rue_shop4> ok
[01:24:35] <rue_shop4> almost 400 NOPs for 9600 baud
[01:37:15] <ShadowZ> lol.
[01:40:20] <rue_shop4> it dosn't like my serial
[01:40:22] <rue_shop4> hmm
[01:40:56] <rue_shop4> start bit is low, stop bit is high?
[01:42:53] <ShadowZ> varies from system to syetem
[01:47:06] <rue_shop4> my foot
[01:47:44] <ShadowZ> what protocol are you using?
[01:47:56] <ShadowZ> RS-232?
[01:48:01] <rue_shop4> yea
[01:48:03] <rue_shop4> ttl
[01:48:07] <rue_shop4> so not inverted
[01:48:11] <ShadowZ> ah
[01:48:32] <rue_shop4> I'm 9611 baud, I dont know if thats too far out
[01:52:33] <theBear> woah ! I think the professor is FREAKING OUT dude, that must be WAY far out, and potentially "groovy" and "happening" too i'd risk a guess
[01:53:03] <ShadowZ> What year is it?
[01:53:12] * ShadowZ checks the calendar
[01:57:31] <theBear> rue_shop4, here, special for you .. https://www.youtube.com/watch?feature=player_detailpage&v=YrnHwAxGzV0#t=122 .. to help you relax after that whole almost 1/10th of a percent from perfect baudrate thing earlier, you'll get thru this buddy !
[02:36:52] <rue_shop4> well
[02:37:22] <rue_shop4> the streaming adc project regressed to a serial genorator project that is now regressing to a timer project
[02:37:27] <rue_shop4> *grumble*
[02:37:32] <ShadowZ> lol
[02:44:08] <rue_shop4> according to my old PIC code, my start and stop bit polarities are backwards
[02:46:29] <rue_shop4> you know, screw this
[02:46:39] <rue_shop4> me hooks the dig scope to the PC and holds down the U key
[02:48:15] <rue_shop4> wtf
[02:50:01] <rue_shop4> bastards lied about the bit order
[02:53:02] <rue_shop4> no, damnit, what
[02:55:53] <rue_shop4> aha
[02:56:02] <rue_shop4> I tested my bit time wrong, I was 2x too high
[02:56:18] <rue_shop4> no, wrong again
[02:58:44] <ShadowZ> sounds like you're all over the place
[02:59:04] <rue_shop4> its so close
[03:00:52] <mrdata> scatter gather
[03:01:01] <rue_shop4> its working now
[03:01:08] <rue_shop4> hmm
[03:07:33] <rue_shop4> one of the lessons here is that, at 9600 baud, 'U' is 4.8Khz, not 9.6k
[03:07:50] <rue_shop4> (duh)
[03:10:18] <rue_shop4> ok, so, I have about 800 instructions between 9600 baud changes, lets try a timer
[03:13:31] * veverak feels bad
[03:13:45] * veverak just wrote all he needed in micropython to esp without giving fuck about timing
[03:13:47] <veverak> ehmm
[03:13:49] <veverak> O:)
[03:15:30] <rue_shop4> yea
[03:15:34] <rue_shop4> this is a tiny26
[03:15:45] <rue_shop4> and I need to test it streaming adc values
[03:15:53] <rue_shop4> so the serial is just a testing thing
[03:16:04] <rue_shop4> I'll be ditching it and using isp
[03:16:50] <rue_shop4> I wonder how I get an isp perphial to say "screw you, I have no data right now"
[03:16:52] <veverak> :)
[03:17:03] * veverak likes esp because it got shitton of horsepower
[03:17:38] <veverak> yeah, I just don't enjoy this kind of optimalization much
[03:18:29] <rue_shop4> the tiny26 has 11 ADC channels, 10 bit, that makes it THE CHEAPEST 10bit, adc / channel
[03:18:41] <rue_shop4> so, I'm buying them as adc's
[03:18:53] <rue_shop4> I just have to get them to give up the data
[03:19:38] <veverak> ah, I see
[03:19:42] <veverak> that looks interesting than
[03:20:01] <rue_shop4> my mecha needs something like 192 adc channels
[03:22:22] <veverak> 192? :D
[03:23:07] <rue_shop4> yea
[03:23:17] <rue_shop4> 12' mecha.
[03:23:32] <rue_shop4> (no I dont live in alaska)
[03:23:45] <veverak> what for so many adc?
[03:24:21] <rue_shop4> well, there are redundant adc's for each joint position, and two pressure sensors for the counteracting muscles
[03:25:01] <rue_shop4> it looks like each microcontroller will handle 8 channels
[03:25:26] <rue_shop4> 48 or 96 axies, I forget which number is which
[03:25:35] <veverak> oh, yeah
[03:25:43] <rue_shop4> but I can reduce it using a trick I learned from nature a few months back
[03:25:45] <veverak> this way it can stack up to 192 easily propably
[03:25:55] <rue_shop4> yea
[03:26:32] <rue_shop4> unfortunatly, I need to make sure the code is right, the last adc channel is on the reset pin and I dont have a high voltage programmer
[03:26:42] <rue_shop4> 10 channels for now
[03:28:56] <veverak> meantime, I have "path" stored and endpoint of leg must travers it
[03:29:10] <veverak> and there is 50Hz loop
[03:29:16] * rue_shop4 nods
[03:29:18] <Jak_o_Shadows> what uC are you using for the mecha again?
[03:29:24] <rue_shop4> one!?
[03:29:25] <rue_shop4> no
[03:29:33] <veverak> or... there are callbacks called everytime one of the servo of leg finishes it's move
[03:29:42] <veverak> which theoretically should be around same time as next loop
[03:29:54] <Jak_o_Shadows> Well, tbh, I wouldn't use one, but I figured you might be clever enough to
[03:29:55] <veverak> but, if moves from servos are not finished, next loop can't really start next part of path
[03:30:06] <rue_shop4> the adc is expected to be tiny26, the loop controllers, 8051 (new ones), and a computer up the line shuttling the values over tripple bonded wifi
[03:30:08] <veverak> also, if it starts to get delay from predefined path
[03:30:16] <veverak> it has to react somehow at certain stage maybe?
[03:30:18] <veverak> :/
[03:30:20] <rue_shop4> veverak, ....
[03:30:41] <Jak_o_Shadows> Why 8051s?
[03:30:45] <rue_shop4> the 8051 might get changed up for some arms
[03:31:04] <rue_shop4> the 8051 is because I need a parallel bus to operate all the solinoids in a timely manner
[03:31:51] <rue_shop4> a slow processor with a parallel bus would do fine
[03:31:55] <Jak_o_Shadows> righto
[03:32:24] <rue_shop4> I'll see, technology is changing faster than my projects come togethor :)
[03:32:40] <Jak_o_Shadows> This is with your air muscles isn't it. Is it one big muscle per joint, or a bunch of littler ones (and if so, serial or parallel/both?)
[03:32:50] <rue_shop4> bunches
[03:33:35] <Jak_o_Shadows> Hence lots of solinoids
[03:33:49] <rue_shop4> 148?
[03:34:06] <rue_shop4> or 192...
[03:34:16] <veverak> so, loop start at 't', loop window is 'dt', everytime loop starts and joints are free, it should execute move to point at t+dt, if some joint is not free, it stores next pos in 'buffer', with time when it was supposed to be executed
[03:34:17] <rue_shop4> again, the numbers escape me
[03:34:20] <Jak_o_Shadows> Some nice power of 2 I'm sure :D
[03:34:26] <rue_shop4> veverak, ... I have to show you some code
[03:34:29] <veverak> tahn, after callback of last joint that was still moving is moving
[03:34:35] <veverak> *is called
[03:35:01] <Jak_o_Shadows> Rue, when you've got a joint finished, be sure to link me?
[03:35:06] <veverak> it shall empty the buffer and if time difference starts to be a BIG it should call method take care of the case "we are not fast enough"
[03:36:10] <rue_shop4> veverak, http://codepad.org/E3bAkLdc this is half of it, but the other half is the part I want to show you
[03:36:27] <rue_shop4> http://codepad.org/v9iI5ZMF
[03:36:29] <rue_shop4> thats the inc file
[03:37:32] <veverak> lal :)
[03:38:24] <rue_shop4> I was just playing with it yesterday
[03:38:36] <rue_shop4> that uses my super high res servo code
[03:38:58] <rue_shop4> 0-31000 counts between full range iirc
[03:39:12] <rue_shop4> **31000**
[03:39:18] <Jak_o_Shadows> I sorta want digital servos that you talk to over i2c or something
[03:39:23] <Jak_o_Shadows> dunno, that just appeals to me
[03:39:23] <rue_shop4> or 24000, dont recall
[03:39:32] <rue_shop4> Jak_o_Shadows, open your wallet!
[03:39:37] <veverak> nah
[03:39:41] <Jak_o_Shadows> aha, or make my own :D
[03:39:41] <veverak> got lazy with PWM itself
[03:39:59] <rue_shop4> or put my library on a tiny85 and piggyback it
[03:40:00] <veverak> so I got myself these 12-bit i2c pwm controller
[03:40:01] <veverak> :)
[03:40:04] <veverak> *this
[03:40:16] <rue_shop4> veverak, .. tlc 4950?
[03:40:33] <rue_shop4> which ... I... Just... got working.... night before last?
[03:40:43] <Jak_o_Shadows> tbh, I was going to try with MSP430, but that is a project for much much later.
[03:41:12] <rue_shop4> did STM32 obsolete msp430?
[03:41:30] <rue_shop4> WHAT DO I BUY VHS OR BETAMAX!?!?!?!
[03:41:34] <rue_shop4> :)
[03:41:44] <veverak> rue_shop4: PCA9685
[03:41:58] <ShadowZ> Jak_o_Shadows: I feel the same way about ESC's
[03:42:00] <rue_shop4> blueray or ... what was the other one?
[03:42:24] <Jak_o_Shadows> MSP430 is TI
[03:42:27] <Jak_o_Shadows> HD-DVD
[03:42:35] <ShadowZ> Thought I saw a one model that could do I2C or PWM over the same wire, but I'm not sure
[03:42:44] <rue_shop4> I dont even know who won, did disks just go obsolete before there was a result?
[03:43:02] <ShadowZ> BluRay basically won
[03:43:03] <Jak_o_Shadows> Nah, it's just that I don't have any of the toolchain and gear for AVR, and that the stm chips are overkill if you're putting them on every servo
[03:43:06] <rue_shop4> ah
[03:43:22] <rue_shop4> and there was firewire and usb3
[03:43:31] <ShadowZ> firwire is still a thing
[03:43:35] <rue_shop4> I presume usb3 won, even tho its probably slower?
[03:43:41] <ShadowZ> and shoot, I think they're pushing for usb4 now
[03:43:47] <rue_shop4> hah
[03:44:03] <rue_shop4> we have 100G ethernet yet?
[03:44:21] <veverak> Jak_o_Shadows: I've got problem with "Every servo" stage
[03:44:28] <veverak> too lazy to modify 14 servos :/
[03:44:30] <Jak_o_Shadows> wrt cable/coaxial models, it's up to DOCSIS 3, i'm still on DOCSIS 1.1
[03:44:43] <Jak_o_Shadows> aha veverak.
[03:45:05] <rue_shop4> and I run debian, so at best I'm 3 years behind
[03:49:23] <rue_shop4> oh :( timer no work
[03:50:26] <rue_shop4> http://codepad.org/g84tucls anyone see mistakes?
[03:50:53] <veverak> macros!
[03:50:54] * veverak hides
[03:52:31] <rue_shop4> heh
[03:53:24] <rue_shop4> I have the sneaking feeling the clock source isn't turned on
[03:55:40] <rue_shop4> something went amyss, I dont think that code compiles
[03:55:51] <ShadowZ> might want to encase the INPUT << PAN with parens
[03:56:17] * ShadowZ doesn't completely trust operator precedence
[03:56:26] <rue_shop4> yea I just did
[03:57:14] <ShadowZ> like (INPUT << PA0) | (INPUT << PA1) ?
[03:58:06] <rue_shop4> TCCR1B |= ((1<<CTC1) | (1<<CS12)); // clear on match, clk/8
[03:58:48] <ShadowZ> I meant like on lin 50, with DDRA and B
[03:58:50] <ShadowZ> sorry
[03:59:29] <rue_shop4> oh funny, usually a lot more in those
[03:59:38] <rue_shop4> that bits ok for now
[04:00:44] <ShadowZ> 103?
[04:00:47] <ShadowZ> on like 66?
[04:01:04] <rue_shop4> thats valid, its an 8 bit register
[04:01:25] <ShadowZ> uh. that's a left shift by 103 bits
[04:01:53] <ShadowZ> 8 bit register has only 8 bits
[04:01:57] <rue_shop4> When the CTC1 control bit is set (one), Timer/Counter1 is reset to $00 in the CPU clock
[04:01:58] <rue_shop4> cycle after a compare match with OCR1C Register value.
[04:02:01] <rue_shop4> THE BASTARDS
[04:02:14] <rue_shop4> OCR1C
[04:02:32] <ShadowZ> oh wait, I read line 67 wrong
[04:03:00] <rue_shop4> 1C will act as a top for the counter
[04:03:10] <rue_shop4> but yo cant put an interrupt on it
[04:03:22] <rue_shop4> so I avhe to use A and C
[04:06:02] <rue_shop4> there we go
[04:06:10] <rue_shop4> void initTimer(void) {
[04:06:10] <rue_shop4> TCCR1B |= ((1<<CTC1) | (1<<CS12)); // clear on match, clk/8
[04:06:10] <rue_shop4> OCR1A = 103; // rollover beethoven
[04:06:10] <rue_shop4> OCR1C = 103;
[04:06:10] <rue_shop4> TIMSK |= (1<<OCIE1A); // and tell us when you do.
[04:06:11] <rue_shop4>
[04:06:13] <rue_shop4> }
[04:06:15] <rue_shop4> 9615hz
[04:06:21] <rue_shop4> as expected
[04:07:03] <rue_shop4> AND THE HORIZ DRIVE ON MY ANALOG SCOPE IS FAILING
[04:07:16] <ShadowZ> :(
[04:08:03] <Jak_o_Shadows> :(
[04:08:16] <Jak_o_Shadows> I'm tempted to try and find a 16channel logic analyzer
[04:08:35] <rue_shop4> stm32
[04:08:46] <Jak_o_Shadows> what, make one?
[04:09:02] <rue_shop4> well, the io clk is only 10Mhz, so your better off with a 16Mhz avr
[04:10:04] <Jak_o_Shadows> I think you might be able to do better with some of the peripherals
[04:10:19] <rue_shop4> the direct io is 10Mhz
[04:10:35] <rue_shop4> you can use the dma to spare the processor 7 wait states
[04:11:48] <Jak_o_Shadows> The DCMI can do 14 bits at 54MHz. So you might be able to sample at 20MHz maybe with that?
[04:11:55] <rue_shop4> ok, just a bit away from interrupt driven serial
[04:12:29] <rue_shop4> I'v not looked at it much yet
[04:12:52] <rue_shop4> how long a sample buffer?
[04:12:59] <Jak_o_Shadows> I dunno how you'd get to the computer though.
[04:13:27] <Jak_o_Shadows> The chip/board I've been playing with recently, the stm32F429i discovery, has an external 8MB SDRAM
[04:14:04] <rue_shop4> oo thats enough
[04:14:06] <rue_shop4> usb
[04:14:18] <rue_shop4> even if your just emulating serial
[04:14:34] <rue_shop4> put an ansi console on it
[04:14:36] <rue_shop4> ;)
[04:14:44] <Jak_o_Shadows> the discovery board has a nice usb connector as well
[04:14:48] <rue_shop4> I'v done that with my power supply
[04:16:00] <rue_shop4> ok that should glue the serial to the timer...
[04:17:27] <Jak_o_Shadows> Thing with the DMA is that you can only write to 2^16 places in a single buffer (So up to 4*2^16 bytes. My current headache is that I need to write 1.3Million uint16's.
[04:18:52] <Jak_o_Shadows> At the moment i've got double buffers of 1024 (which works in nicely with the tiny amount of horizontal blanking, where no data is transferred, time that I've got), but the data is getting all out of sync
[04:19:16] <Jak_o_Shadows> memcpy taking too long, OR I need to inverse the order of my interrupts
[04:19:50] <rue_shop4> confusion...
[04:20:21] <Jak_o_Shadows> Don't worry about it, thinking outloud
[04:20:35] <rue_shop4> no, my timer is not operating the serial
[04:20:43] <rue_shop4> it should have just glued togethor
[04:20:48] <rue_shop4> its 2am tho
[04:21:13] <rue_shop4> oh, ohohohoh "volatile"
[04:21:32] <rue_shop4> BAM
[04:22:40] <rue_shop4> flawless
[04:22:52] <rue_shop4> ok
[04:22:54] <rue_shop4> wow
[04:23:05] <rue_shop4> so, now I can move on to the real project
[04:25:34] <rue_shop4> yea man, bitbanging serial in 137 lines
[04:26:38] <rue_shop4> http://codepad.org/Nw7ZaJYe
[04:41:14] <rue_shop4> ok, tommorow I can have it throw the value of some adc readings
[04:41:32] <rue_shop4> then once I'm sure I have the whole adc system going, I can work out how to spi it
[04:41:48] <Jak_o_Shadows> Why SPI?
[04:41:57] <rue_shop4> then I can start writing the mega8 code to do the 8 channel loop control
[04:42:12] <Jak_o_Shadows> Cause it's faster/higher bandwidth?
[04:42:15] <rue_shop4> well, I have to get the data to a mega8 thats already got its serial tied up
[04:43:02] <rue_shop4> this is an 8 channel servo controller, I'm taking hubby servos, gutting them, taking the pot and motor and hooking it to a unified multichannel controller
[04:43:20] <rue_shop4> so that I can do position readings, on/off control, and torque control
[04:43:42] <rue_shop4> with two of these boards I'll be able to do over-the-wire multichannel force feedback
[04:43:44] <Jak_o_Shadows> Fair enough. i2C slave is annoying a little
[04:43:48] <rue_shop4> yea
[04:44:06] <rue_shop4> but, its 2am
[04:44:08] <rue_shop4> gnight
[04:44:11] <Jak_o_Shadows> night
[05:35:27] * ShadowZ sighs as he clips off the ESC's so he can solder them together
[05:36:05] <mrdata> there is no escape
[05:37:08] * ShadowZ makes his time
[05:40:34] <ShadowZ> wonder if I should give-in and make new mounts for these motors
[05:42:02] <ShadowZ> I'm really hurting for a milling machine
[06:49:23] <z64555> ugh, that took too much time
[06:49:42] * z64555 makes note to pick up a crimping tool
[11:19:59] <rue_house> stm32, so, I'v done port io, I'm gonna want to do serial, pwm, adc, and timers
[11:23:30] <rue_house> interrupts
[12:12:04] <Loshki> hubby servos
[12:31:19] <anonnumberanon> z64555, Do you, punk?
[12:32:26] <anonnumberanon> rue_house, pwm and then timers or pwm/timers? :)
[12:34:05] <rue_shop4> no order there
[12:34:11] <rue_shop4> it'll take me ages
[12:34:23] <rue_shop4> I'm waiting for a project to come up to use the stm for
[12:37:50] <anonnumberanon> the thing of interest with the stm for me is that the running frequency is a lot better than atmega at 16 mghz and therefore the possibility for a microsecond or sub microsecond clock using timers is enticing, because with the atmega it is a hairy thing to do (achieving 1 us clock function). End result is more resolution on PWMs (without extra shift registers).
[12:47:31] <mrdata> anonnumberanon, yes you can get 32 or 64 MHz stm, iirc
[12:49:05] <anonnumberanon> 168 is the one i have mrdata
[12:49:13] <anonnumberanon> mghz
[12:50:01] <anonnumberanon> haven't had time to work with it yet
[12:55:23] <mrdata> yeah you can do lots of pwm with them
[12:55:33] <mrdata> on arduino i wouldnt trust more than one at a time
[13:22:49] <anonnumberanon> It's been done correctly. I just want to get to that point but it takes a bit of time.
[13:25:02] <anonnumberanon> I've been doing a few actual jobs that interrupted the work I was doing with type of stuff so I had to stop but I want to start again because those programming paradigms can be used with arm and other things. Plus mastering interrup servicing is very important in the embedded industry.
[13:25:25] <anonnumberanon> If only to be able to finish my humanoid robot heh.
[14:03:31] <z64555> got my quad put back together, now I need to make the test pedestal for it
[14:03:39] <z64555> ...somehow
[15:00:54] <i-make-robots> hey rue!
[15:01:10] <i-make-robots> rue_bed rue_house rue_shop2 rue_shop4 so many rues.
[16:11:15] <anonnumberanon> z64555 easy
[16:11:46] <anonnumberanon> do it like mine it took a few hours
[16:11:53] <anonnumberanon> make it heavy
[17:18:00] <rue_shop4> i-make-robots, hey
[17:18:09] <rue_shop4> you have to stick around long enough
[17:18:18] <rue_shop4> I was SAYING after you left
[17:18:34] <rue_shop4> that the robots your interested in are arm7 arm8 and arm9
[17:19:03] <rue_shop4> my website is http://ruemohr.org/
[17:19:19] <rue_shop4> http://ruemohr.org/%7Eircjunk/robots/arm9/slide.htm
[17:19:24] <rue_shop4> is images for arm9
[17:19:37] <rue_shop4> if you go back and look in the directories, you can see arms 7 and 8
[17:19:47] <rue_shop4> ----- i-make-robots ----
[17:29:15] <i-make-robots> i see 'em.
[17:35:33] <i-make-robots> thanks!
[17:35:43] <i-make-robots> i stuck around as long as i could each time.
[17:36:02] <i-make-robots> sorry for being busy, too. :T my people will call your people, we'll schedule something.
[17:38:16] <rue_shop4> ok
[17:38:22] <rue_shop4> .. whats going on?
[17:39:26] <theBear> oooh ! get 'em to call my peoples too ... i never miss a chance to have my people arrange for me to "DO!!" lunch with a buddy ;-)
[17:55:33] <rue_shop4> I was bit banging serial yesterday
[18:02:31] <veverak> damn it
[18:02:38] <veverak> I run out of my doublesided tape
[18:02:39] <veverak> :/
[18:02:51] <veverak> it was nice, strong, and easy to get rid of
[18:03:09] <veverak> sad thing is that we bought it long time ago from seller of RC things in different town
[18:03:13] <veverak> and it got no label on it
[18:03:17] <veverak> or no the bag it was in
[18:22:46] <Tom_itx> veverak, you want strong double back tape go to an automotive paint supply and get trim tape
[18:23:33] <Tom_itx> you can get thin double sided tape at a paint store too probably
[18:35:32] <anonnumberanon> rue_shop4, how is that done?
[18:38:17] <rue_shop4> void TXService(void){
[18:38:17] <rue_shop4> static unsigned char mask;
[18:38:17] <rue_shop4>
[18:38:17] <rue_shop4> switch(status) {
[18:38:17] <rue_shop4> case 10: // send start bit
[18:38:18] <rue_shop4> mask = 0x01;
[18:38:22] <rue_shop4> dataLow();
[18:38:24] <rue_shop4> break;
[18:38:26] <rue_shop4> case 9:
[18:38:28] <rue_shop4> case 8:
[18:38:30] <rue_shop4> case 7:
[18:38:32] <rue_shop4> case 6:
[18:38:34] <rue_shop4> case 5:
[18:38:36] <rue_shop4> case 4:
[18:38:38] <rue_shop4> case 3:
[18:38:40] <rue_shop4> case 2: // send bit
[18:38:42] <rue_shop4> if (mask & txbuffer) { dataHigh(); }
[18:38:44] <rue_shop4> else { dataLow(); }
[18:38:46] <rue_shop4> mask <<= 1;
[18:38:48] <rue_shop4> break;
[18:38:52] <rue_shop4>
[18:38:54] <rue_shop4> case 1: // send stop
[18:38:56] <rue_shop4> dataHigh();
[18:38:58] <rue_shop4> break;
[18:39:00] <rue_shop4>
[18:39:02] <rue_shop4> default:
[18:39:04] <rue_shop4> return;
[18:39:06] <rue_shop4> }
[18:39:08] <rue_shop4> status -= 1;
[18:39:10] <rue_shop4> return;
[18:39:12] <rue_shop4> }
[18:39:14] <rue_shop4> state machine
[18:41:31] <anonnumberanon> ah okay
[18:41:39] <anonnumberanon> there is no timing to respect or anything?
[18:46:06] <rue_shop4> there is, I'm calling it with a timer interrupt
[18:46:31] <veverak> late night photo of my printer electronics box http://squirrel.veverak.org/laptop/photo/_MG_6646.JPG
[18:46:42] <veverak> I really really made those wires from smoothie ugly :/
[18:48:04] <veverak> nah
[18:48:09] <veverak> better photo tomorrow
[19:05:05] <i-make-robots> i wanted to shut down an old wiki and move everything to another. the new wiki said "you gotta upgrade to php5.5" i'm ubuntu 12.04, which only goes to 5.3. upgrade to ubuntu 14.04 is still going, and it's been contentious. all of which is to say I deserve a drink.
[19:05:19] <rue_shop4> yay I have a tiny26 streaming serial values
[19:06:31] <rue_shop4> arg, burn, the external crystal sits on two adc pins
[19:06:49] <rue_shop4> well, it'll be synchronous when I'm done anyhow
[19:06:49] <veverak> hmm
[19:06:51] <veverak> meantime
[19:06:57] <veverak> what would you recommend to get 5V out of 12V?
[19:07:08] <rue_shop4> china dc-dc
[19:07:09] * veverak needs to power that damn cubieboard somehow and 12V is closest avaialble
[19:10:06] <veverak> STMicroelectronics 78S05 looks good
[19:13:13] <veverak> also
[19:13:18] <veverak> how do I want to control the fans?
[19:13:23] <veverak> I suppose potentiometer could be enough :)
[19:14:39] <z64555> veverak: what kind of fan is it? If it's a PC case fan, then it needs to be PWM
[19:14:44] <z64555> if I remember correctly
[19:15:13] <anonnumberanon> lol last time i sent a straight voltage through one and that was okay
[19:15:18] <rue_shop4> why dont you overdrive the fans till they burn out the right amount to slow them down
[19:15:22] <anonnumberanon> ran it for weeks on my desk
[19:16:38] <z64555> huh.
[19:16:54] <veverak> z64555: not PC case fans
[19:16:56] <veverak> ;)
[19:16:59] <veverak> 12V industrial fans or something
[19:17:09] <veverak> when I connected them to regulated power source
[19:17:13] <veverak> they worked on lower voltage
[19:17:26] <z64555> a fan or a blower?
[19:18:12] <veverak> http://www.aliexpress.com/item/5pcs-Lot-DC-Brushless-12-Volt-Blower-Cooling-Exhaust-Centrifugal-Fan-60x28mm-60mm-x-28mm-New/32616396192.html?spm=2114.13010608.0.67.4un2B7
[19:18:25] <SpeedEvil> Essentially all modern 12V fans will run at 5
[19:18:40] <rue_shop4> how long will they run at 24?
[19:18:48] <veverak> bad question
[19:18:50] <veverak> question is
[19:19:02] <rue_shop4> how about 14.4V
[19:19:02] <veverak> how many of them needs to be connected to make flying craft
[19:19:04] <veverak> :)
[19:19:18] <theBear> and essentially all of them are identical, from $200+ to <$10 not even CLOSE to sunon bush-models quality
[19:19:23] <rue_shop4> you put 20V on one and I bet it'll fly
[19:21:29] * anonnumberanon misses his electronics shop
[19:22:54] <rue_shop4> I have to sleep
[19:30:09] <z64555> veverak: did you get the thrust equation, and have you measured the thrust or fan speed?
[20:07:13] <SpeedEvil> fans of that sort are bad for that sort of thing
[20:07:29] <SpeedEvil> http://www.hobbyking.com/hobbyking/store/__67038__Quanum_MT_Series_5008_335KV_Brushless_Multirotor_Motor_Built_by_DYS.html - for example.
[20:08:16] <SpeedEvil> This can spin a 18" prop on 40W of power and produce 600g of thrust, while weighing about 250g
[20:09:18] <SpeedEvil> (at 250W more like 2kg)
[20:38:24] <Casper> am I right to say that the running cost of mig+co2 is about the same as flux core if you ignore the initial cost of the bottle?
[20:42:43] <SpeedEvil> I thought fluxcore was much more expensive
[20:44:38] <SpeedEvil> ebay at least is comparable though I don't know the weight of metal in fluxcore
[20:48:22] <Casper> 50$ for mig wire 12lbs + gas, 72 for fluxcore 12lbs...
[20:51:41] <Casper> 10lb = 3114feet solid 0.035 .... now fluxcore...
[20:52:40] <Casper> can't find the info...
[20:55:41] <Casper> but 10lbs is about 2 hours of continuous welding, with about 30-50CFM of gas...
[20:58:08] <SpeedEvil> also, fluxcore has more of a problem with inclusions, and if you need to grind off before putting on fresh, ...
[21:16:52] <rue_shop4> I can lease a bottle for $100/year
[21:17:10] <rue_shop4> at the rate I use it, I would pay $400 for $40 in gas
[21:21:56] <MoziM> hello
[21:22:03] <rue_shop4> hi
[21:22:35] <MoziM> https://www.youtube.com/watch?v=x6Dsqha9JPM&list=PL2dAOzo3a1SqxkO_c7mVzUcQh5leLHjsX&index=1
[21:22:53] <MoziM> my computer vision program guiding our robot :D
[21:23:08] <MoziM> but sadly... it there is still so much work to be done... why robots so hurd?
[21:25:01] <nonroot_> damn... hexchat keeps crashing
[21:25:13] <SpeedEvil> for what size of gas bottle?
[21:25:18] <rue_shop4> try xchat
[21:25:29] <rue_shop4> M
[21:25:39] <nonroot_> will try
[21:25:40] <SpeedEvil> http://www.ebay.co.uk/itm/Co2-Gas-Cylinder-Bottle-Mig-Welding-Homebrew-Aquariums-refills-exchange-20-/131895549142?hash=item1eb5965cd6:g:oAwAAOxy4dNS-S5o as an example will sell me a 6.35kg bottle + fill for 65 quid. $100
[21:25:47] <SpeedEvil> I recommend quassel
[21:26:29] <SpeedEvil> Quassel is a two-part client - one runs on a server (could be a r-pi or something) and you can conenct arbitrary clients - ios/android/linux/windows/... to it and they share a unified scrollback
[21:27:02] <rue_shop2> pff
[21:27:08] <rue_shop4> silly
[21:27:08] <theBear> if i wannacrash my _(Hmmmgr)xchat these days i just feed it a script that is unaltered since it worked flawlessly for a lotta usage over much timeperiods, and this week maybe ask it how long a mile is in useful numbers, *poof* you'd swear it was never even opened, doesn't even leave a puff of smoke or maybe a anti-sonic boom as teh space fills back in
[21:27:54] <rue_shop4> try xchat!
[21:28:10] <rue_shop4> I been thru the hexchat source man
[21:28:34] <rue_shop4> I'm making my cam software with its bones
[21:39:00] <theBear> really ? did you spot the effing middle/3rd click code that is constatnyl effing quitting all my irc channels in a half a instant ?
[21:51:14] <rue_shop4> dont recall
[21:51:22] <rue_shop4> I was SERIOUSLY gutting it
[21:51:46] <rue_shop4> there are HUGE sections in there that I could see of no use to anyone
[21:52:15] <rue_shop4> yay, 10 channels of adc!
[21:52:22] <rue_shop4> all reporting properly
[21:52:46] <rue_shop4> now I just need to change them to synchronous comms
[21:53:25] <rue_shop4> wonder how I do this
[21:56:58] <rue_shop4> I'm thinking that the master just continiously reads bytes from the adc, and the format of the data says the channel and the value
[21:57:25] <rue_shop4> what I dont like is spi framing
[22:09:18] <theBear> heh, and they only just got over the big song and dance about how very forked/written they'd made it since adding 2 letters to the name
[22:09:39] <theBear> just as we all suspected, there was really no need for the namechange <grin>
[22:09:51] <theBear> https://www.youtube.com/watch?v=5bqASrSQheY you can't stop the music :)
[22:16:33] <rue_shop4> it appears that you need to clock the data out in software
[22:16:50] <rue_shop4> maybe its just me, but I'd think the hardware is there to do that for you
[22:29:53] <theBear> huh ? we ARE talking about the post 90s* era/series standard "normal hw-enough we don't notice" avr8 series uarts ?
[22:52:16] <rue_shop4> yea, thats part of what I dont get
[22:52:58] <rue_shop4> if I use spi, I can put adc's in a series chain and load all the data at once
[23:31:59] <rue_shop4> ok I need to know more about how commercial spi adc's work
[23:46:58] <i-make-robots> join #httpd
[23:48:45] <i-make-robots> bah
[23:52:06] <rue_shop4> huh
[23:52:12] <rue_shop4> no framing