#robotics Logs

Jun 18 2018

#robotics Calendar

12:04 AM rue_shop3: I'll post pics of my power supply in a bot
12:08 AM rue_shop3: oh i wonder
12:08 AM rue_shop3: http://ruemohr.org/~ircjunk/images/pi/IMG18Jun2018_042935.jpg
12:08 AM rue_shop3: :) yay picam
12:16 AM rue_shop3: ok, right
12:17 AM rue_shop3: so, I'm going to play with the tde2050 and see what I can do with a servo motor with it
12:34 AM rue_shop3: there is a 3d printer living on the soldering bench
12:34 AM rue_shop3: this is the tip of an iceberg
12:44 AM z64555: the iceberg being another shop-wide declutter effort?
12:44 AM z64555: Didn't you do one just last year?
12:57 AM rue_shop3: its not done yet
12:57 AM rue_shop3: I still have to clear out about 10% of the shop
12:57 AM rue_shop3: tho I dont know whats taking up about 50% of the space
12:57 AM rue_shop3: might be thing that "aren't here"
12:58 AM orlock: NO MUDA!
01:00 AM z64555: Rue's been secretly accumulating dark matter this whole time
01:01 AM z64555: its the only explanation as to why things tend to gravitate towards his shop
01:04 AM orlock: rue_shop3: i printed a pile of leadscrew nuts out of ABS on the weekens
01:04 AM orlock: the brass ones do not fit any X ends models i can find
01:04 AM rue_shop3: ? how di dthat go
01:04 AM orlock: the brass ones i have are 24mm at the wide part
01:05 AM orlock: Printed OK, very tight fit though - way past the motors stall torque
01:05 AM orlock: i heated the leadscrews up with my hot air reflow gun
01:05 AM orlock: worked them up and down, etc, they move smoothly now with minor effort
01:05 AM orlock: and no play
01:06 AM rue_shop3: oh god I'm on the wrong computer, now it makes sense
01:06 AM orlock: my brass leadscrew nuts are 24mm for the brim, and 13mm for the "top
01:06 AM orlock: while most seem to be more like 22mm and 10mm
01:07 AM orlock: now i just need to figure out if i want to print anything else before a teardown+rebuild
01:07 AM orlock: i also bought some 6mm corn floor tiles
01:07 AM orlock: cork
01:07 AM orlock: for insulation
01:07 AM orlock: Cork is apparently amazing stuff!
01:08 AM orlock: its a non-permeable flexible membrane that will always bounce-back due to being impermeable to air
01:37 AM rue_mohr: hmm
01:37 AM rue_mohr: I'm working on this servo amp, and I'm concerned abotu the bandwidth
01:38 AM rue_mohr: that audio bandwidths might not be fast enough
01:38 AM rue_mohr: and then it occured to me that the mechanical systems that I'm running cant even get up to audio bandwidth
03:40 AM Jak_o_Shadows: As long as your electrical is faster, you'll be right
03:48 AM rue_shop3: indeed
04:09 AM Jak_o_Shadows: BTW, rue, why do you sign in on each comuter instead of using a bouncer?
04:37 AM rue_shop3: then I'd be depending on one bouncer
04:38 AM rue_shop3: this way I'm 5 way redundant
04:41 AM * veverak prefers irc client in tmux on server
04:41 AM veverak: :)
04:41 AM veverak: rue_shop3: you just need server that does not fail
04:44 AM rue_shop3: ok, I cleared a bit of space on the table in the shop
04:45 AM rue_shop3: qustion is, should I put the 3d printer there (thats taking up the electronics work bench) or just work in what i cleared
04:46 AM * veverak still wants to explore potential of pulley systems
04:46 AM rue_shop3: nowonder I never get anything done, it took me 12 horus to makea supply for the quick little circuit I want to build
04:46 AM veverak: I believe there is a lot of unused space on the ceiling
04:47 AM rue_shop3: I did that once
04:47 AM rue_shop3: got borred of waiting for the winch
04:47 AM veverak: :D
04:47 AM veverak: rue_shop3: for 3d printers or for boxes of stuff?
04:47 AM rue_shop3: drawrs of stuff
04:48 AM veverak: hmm
04:48 AM veverak: I just now realized
04:48 AM veverak: that cubemx generate makefile without -Wall, -Werror
04:48 AM veverak: damn you!
04:52 AM veverak: so
04:52 AM veverak: I started to use "global" variables
04:52 AM veverak: welcome in hell I suppose
04:53 AM veverak: (got bunch of log functions, the uart they spit out stuff is pointed by a global variable)
04:55 AM rue_shop3: hmm
04:56 AM rue_shop3: ok, I need to work out long term objectives for the shop
04:56 AM rue_shop3: cause I can think now, I can when I'm not on vaccation
04:56 AM rue_shop3: I need to work out a year of objectives to make things better
04:57 AM rue_shop3: the goal is to build a 12' mecha
04:57 AM rue_shop3: so anything that supports doing that needs to be prioritized
04:57 AM veverak: yup, doing that helped my life
04:57 AM veverak: (planning)
04:57 AM veverak: while (HAL_UART_Transmit_DMA(LOG_UART_PTR, (uint8_t*)msg, size) == HAL_BUSY) {}
04:57 AM veverak: ok, I love my 'C' constructs :D
04:58 AM rue_shop3: please tell me your not using a HAL on an avr
04:58 AM Jak_o_Shadows: oooh, you're using DMA
04:58 AM veverak: rue_shop3: STM32
04:58 AM Jak_o_Shadows: Actually, just recieving the data wouldn't be too hard Iink
04:58 AM Jak_o_Shadows: Not sure how you'd do much with it
04:58 AM rue_shop3: ok
04:58 AM rue_shop3: just dont do SAL on it
04:59 AM veverak: SAL?
04:59 AM * Jak_o_Shadows is glad someone else asked
04:59 AM rue_shop3: Software Abstraction Layer
04:59 AM veverak: P.S: writing i2c bridge, more troubling than I expected
04:59 AM veverak: oh, yeah
04:59 AM veverak: you realize pretty soon that abstractions on embedded are a gun with 40mm rounds that fires randomly
05:00 AM rue_shop3: SAL, it dosn't matter what the code does, the planner makes it do what you want
05:01 AM rue_shop3: I'm starting to like Technology Abstraction
05:01 AM veverak: ?
05:01 AM Jak_o_Shadows: Very thing abstractions are what you want.
05:01 AM rue_shop3: systems that work nomatter what your implmenting them on
05:01 AM Jak_o_Shadows: thin*
05:01 AM veverak: Jak_o_Shadows: sure
05:01 AM veverak: rue_shop3: sounds coo
05:01 AM veverak: Jak_o_Shadows: truth to be told, I am only triggered by 'C'
05:01 AM veverak: Jak_o_Shadows: miss std:array from C++
05:02 AM veverak: (that's more or less anything for now)
05:02 AM veverak: *everything
05:02 AM rue_shop3: so far, I have a state machine that can run on LEDs or in C
05:02 AM veverak: nice :)
05:02 AM veverak: yeah
05:02 AM Jak_o_Shadows: Never really used std:array, or C++ tbh
05:02 AM veverak: Jak_o_Shadows: also references :)
05:03 AM veverak: I did
05:03 AM rue_shop3: https://www.youtube.com/watch?v=SS9mNt7dOs4
05:03 AM veverak: a lot, there are features that one just misses
05:03 AM rue_shop3: the upper leds ARE the LUT
05:03 AM veverak: rue_shop3: awesome!
05:03 AM veverak: Jak_o_Shadows: std:array -> overlay (thin) over C array, that remembers the size of the array
05:03 AM Jak_o_Shadows: Looks like a pretty good teaching tool
05:04 AM Jak_o_Shadows: ah. Yeah, cool.
05:04 AM veverak: Jak_o_Shadows: so you do not have to remember which macro variable stores the array size
05:04 AM rue_shop3: I got some of the 8x8 led arrays to make into OTP memory ;)
05:04 AM veverak: Jak_o_Shadows: also, there is the syntax: for(uint8_t item : my_data) {}, that is same as: for(uint16_t i =0; i < ARRAY_SIZE, ++i){ uint8_t item = my_data[i]; }
05:04 AM veverak: you can see that the first syntax is much shorter
05:05 AM veverak: and error-less
05:05 AM Jak_o_Shadows: yep. I can see that. I use python mostly, so I agree
05:05 AM veverak: yup
05:06 AM rue_shop3: 2:30am, I think I'm getting tired
05:06 AM Jak_o_Shadows: Huh. Work doesn't use asyncrhnous usart tx
05:07 AM Jak_o_Shadows: No interrupt for TX, only RX
05:07 AM veverak: :D
05:09 AM Jak_o_Shadows: and apparently we use a preamble byte, a number of bytes, data, checksum
05:09 AM veverak: damn it
05:10 AM veverak: everytime I try to access char* in interrupt
05:10 AM veverak: no access, modify
05:10 AM veverak: I got hardfault error
05:10 AM veverak: :/
05:12 AM rue_mohr: ? are you sure thats what causing it?
05:12 AM veverak: nope at all
05:14 AM veverak: ok, it's not this this time
05:15 AM veverak: ok, maybe DMA during interrupt is not best idea ever
05:20 AM Jak_o_Shadows: What are you trying to do with the DMA?
05:21 AM veverak: spill out debugging messages
05:21 AM veverak: on uart
05:23 AM veverak: aaaaand dma worked
05:23 AM veverak: assigned wrong UART for debugging ;)
05:29 AM veverak: inline void log_block(char* msg, uint16_t size)
05:29 AM veverak: #define LOG_BLOCK(msg) log_block(msg, sizeof(msg))
05:29 AM veverak: -> my love <#
05:29 AM veverak: <#
05:29 AM veverak: <3
05:37 AM Jak_o_Shadows: aha. Yeah, wrong configuration is #1 cause of hardfaults
06:23 AM veverak: so, I am trying to use HAL api for i2c
06:23 AM veverak: (seems as the main problem)
06:23 AM veverak: ArAtTL -> this happens
06:23 AM veverak: A -> address callback
06:23 AM veverak: r -> receive is executed
06:23 AM veverak: t -> transmit is executed
06:23 AM veverak: T -> transmit is finished
06:24 AM veverak: L -> listen is complete
06:24 AM veverak: R -> receive is finished
06:24 AM veverak: it should actually be ArRAtTL :/
06:24 AM veverak: (I send single letters as debug message
06:30 AM veverak: ok, that sucker won't say that it finished sending data
06:30 AM veverak: *finished receieving data
06:30 AM veverak: but the job is done
06:30 AM veverak: well, FML anyway
06:44 AM rue_bed: veverak, is the stm32 an i2c master or slave?
06:45 AM veverak: this one is a slave
06:45 AM veverak: (I have two stm32, one acting as master, one as slave)
06:45 AM rue_bed: ok, is it a multibyte transfer?
06:45 AM veverak: nopone byte received, one byte transmitted
06:46 AM rue_bed: ok, and so your issueing a stop?
06:46 AM rue_bed: wait
06:46 AM rue_bed: 1 byte, so its a hello byte with a stop?
06:47 AM rue_bed: start:address-rw:stop ?
06:47 AM rue_bed: I ported flurrys i2c master code
06:47 AM veverak: howenah, start:addr-w:data:addr-r:data:stop
06:48 AM veverak: write one,read one, or that it should be
06:48 AM rue_bed: its less code to bit bang
06:48 AM veverak: anyway, using HAL api
06:48 AM rue_bed: hmm
06:48 AM veverak: I think it's time for RTFS
06:48 AM rue_bed: fs?
06:48 AM veverak: "read the fucking source"
06:49 AM rue_bed: I'm sure you need another stop in there
06:49 AM veverak: I hope HAL does that
06:49 AM veverak: rue_bed: I am not manually preparing that packets
06:49 AM rue_bed: does finish come from the stop or the actual byte finishing?
06:49 AM veverak: not sure, have to check that
06:50 AM rue_bed: so.... your counting on code from the internet to work right in your application
06:50 AM veverak: code provided by the manufacturer
06:50 AM rue_bed: you know that internet code only (sometimes) works for the example it was presented with
06:50 AM rue_bed: hmmm
06:50 AM veverak: it works in other cases
06:51 AM veverak: only "i2c slave" is pain
06:51 AM rue_bed: mhm
06:51 AM rue_bed: I wonder if flurry did an i2c slave
06:54 AM rue_bed: I really loved his master code
06:54 AM rue_bed: its really good code, I learned things, and that doesn't happen often
06:55 AM rue_bed: I could not get that close to its efficiency in C
06:55 AM rue_bed: but it worked in stm32, so yay
06:55 AM rue_bed: and it was WAY less code to bit-bang the i2c then to use the hardware
06:56 AM rue_bed: 4:20am, I might not get any sleep tonight
06:56 AM rue_bed: I'm on vaccation, I'm gonna find another old coffemaker and do some tests
06:57 AM veverak: ... :)
06:57 AM rue_bed: I think I can tell if the pot is in and if its got water or not by the cycle duty of the heater
06:57 AM rue_bed: want to wifi control one, so that I can set up multiple start times
06:58 AM rue_bed: ponder CPCP
06:58 AM rue_bed: CPCP?
06:58 AM rue_bed: HTCPCP
06:59 AM rue_bed: https://tools.ietf.org/html/rfc2324
07:32 AM rue_bed: I wonder if I can make a freq gen that can span a decade
07:32 AM rue_bed: that is, an rf one
07:32 AM rue_bed: maybe not, this one is rated from 48Mhz to 85Mhz
07:33 AM rue_bed: thats less than 2x
07:33 AM rue_bed: ok, well, maybe some extra software
07:34 AM rue_bed: the 7490 is rated to 42Mhz
07:34 AM rue_bed: hmm, so, maybe my goal would be 10Mhz and down
07:35 AM rue_bed: to say, 0.1 hz
07:35 AM rue_bed: so, an rf might take me from 10Mhz to 5Mhz
07:35 AM rue_bed: I wonder
07:36 AM rue_bed: what is the capacitance difference of a large fet as its driven off to the full 20V
07:36 AM rue_bed: ugh, so much for sleep
07:36 AM rue_bed: better start more tea
07:45 AM rue_shop4: so an IRFZ44 changes by about 20pf as you drive the gate from 0V to -20V
07:45 AM rue_shop4: but whats odd, is the capacitance seems to go up
02:54 PM rue_mohr: arg, nobodys come up with a wall mounted pencil holder on thingiverse
02:55 PM rue_mohr: wtf, have to design it myself
02:55 PM rue_mohr: damnit
07:58 PM z64555: wall mounted pencil holder
07:58 PM z64555: okay... just it just hold the pencils
07:58 PM z64555: vertical? horizontal?
07:59 PM z64555: *is it just to hold the pencils
07:59 PM z64555: I could make a simple pencil holder by screwing a plastic cup to the wall, and then make a grill for it to hold the pencils seperately
08:00 PM z64555: or I could make it like a straw dispensor
08:00 PM z64555: by, well, repurposely a straw dispensor
08:00 PM * z64555 spelling -10
11:21 PM rue_mohr: https://upload.wikimedia.org/wikipedia/commons/thumb/6/60/FET_Symbols.svg/512px-FET_Symbols.svg.png
11:21 PM rue_mohr: ok, I need to cook that into my brain
11:22 PM rue_mohr: I have some jfets, and the damn data just says "general purpose amplifier"
11:22 PM rue_mohr: they dont even say fet
11:23 PM rue_mohr: but wait
11:23 PM rue_mohr: there is more
11:23 PM rue_mohr: there should be a fet with two...
11:23 PM rue_mohr: emitters?
11:24 PM rue_mohr: https://cdn.mikroe.com/ebooks/img/9/2016/02/understanding-electronics-components-chapter-04-4-02.gif
11:24 PM rue_mohr: two bases!
11:24 PM rue_mohr: ana
11:25 PM rue_mohr: how the hell do I tell a B from an F
11:25 PM rue_mohr: a - bipolar, b - FET, c - MOSFET, d - dual gate MOSFET, e - inductive channel MOSFET, f - single connection transistor
11:27 PM rue_mohr: Japanese bipolar transistor are prefixed with a: 2SA, 2SB, 2SC or 2SD, and FET-s with 3S: 2SA - PNP, HF transistors, 2SB - PNP, LF transistors, 2SC - NPN, HF transistors, 2SD - NPN, HF transistors
11:27 PM rue_mohr: unijunction transistor
11:28 PM rue_mohr: not a fet
11:35 PM rue_mohr: 2N5457 datasheet: "This device is a low level audio amplifier and switching transistors,
11:35 PM rue_mohr: and can be used for analog switching applications. Sourced from
11:35 PM rue_mohr: Process 55."
11:35 PM rue_mohr: could they have not said jfet?
11:46 PM z64555: of course not, then that would be easy