#robotics Logs

Dec 21 2019

#robotics Calendar

12:00 AM rue_mohr: you dont want to buffer the data, fifo or otherwise
12:05 AM rue_mohr: it will just add signal lag
12:05 AM Neuromod: https://www.nandland.com/articles/what-is-a-fifo-fpga.html
12:05 AM Neuromod: i know
12:05 AM zhanx: rue_mohr, fyi i am writing that token servo code for my printer like you suggested to Jak_o_Shadows but for steppers
12:05 AM Neuromod: but not necessarily tho.. if you digest at the same rate
12:05 AM rue_mohr: you might want a 1 sample holding register
12:05 AM Neuromod: yes i agree
12:05 AM rue_mohr: but by the time the next sample comes in, you have to have finished with the old one
12:05 AM Neuromod: well thats one reason it doesnt make any sense
12:05 AM rue_mohr: correct
12:05 AM Neuromod: completely agree
12:05 AM Neuromod: now im working with 16 bits
12:05 AM rue_mohr: deos the fpga have the adc?
12:05 AM Neuromod: so i get 2 bytes
12:05 AM Neuromod: and then the next
12:05 AM Neuromod: same deal
12:05 AM rue_mohr: so your not getting the data as a 16 bit direct thing
12:07 AM Neuromod: but not as module... that my point...im not saying FIFOs are useless per se, but FIFO modules as the one showed in that page.
12:07 AM rue_mohr: the video looks pretty standard and I'm gonna skip it, I'm writing a gui for text consoles
12:07 AM Neuromod: yeah nothing interesting there.. i just wantd you to pay attentio nto te module
12:07 AM rue_mohr: lots of times things like serial recievers need to stack up in a fifo becasue of a diffrence in data rates
12:08 AM rue_mohr: say you have a 9600 baud serial transmitter, and you want to send the string "Hello world"
12:09 AM rue_mohr: the fifo can store the "Hello world" over the few ms is takes for the transmitter to send it, and the system that generated the string does not need to wait for each character
12:09 AM Neuromod: because i ended up having to expose many of those fifo wires to my uart wires... and handling the uart turned to be much more complex.... and having to fill a 16 bit word still required many more lines than if i just had a "getdatenow" wire and no fifo at all
12:09 AM rue_mohr: I dont think you want a fifo
12:09 AM Neuromod: thats one good example... it stil would have to wait
12:09 AM rue_mohr: unless maybe your playing the audio from an SD card
12:09 AM Neuromod: it just that a moodule will do the waiting
12:09 AM rue_mohr: as they have a minimum read rate
12:12 AM Neuromod: rue: im not arguing against using fifo.... more about where the FIFO is located.... I'm thinking that a seaprae fifo module makes stuff too complex and the way you handle a fifo module requires almost as much effort as if it was handled within the module
12:13 AM rue_mohr: yup
12:13 AM Neuromod: so if module A requires a fifo, module A should have "fifo code" within it, and not try to handle FIFo through and external FIFO module that in the end requires maybe as much HDL code as if it was implemented within A
12:13 AM rue_mohr: a 1 word buffer can be called a fifo
12:14 AM rue_mohr: but yes, it its always connected to a fifo, build it in
12:16 AM Neuromod: alright
12:17 AM Neuromod: so my original point was that building a "fifo" module is pretty useless, you agree with that?
12:17 AM rue_mohr: no, a fifo on its own is handy
12:17 AM Neuromod: https://pastebin.com/Wvtq4eDy
12:18 AM rue_mohr: I'd integreate the fifo module into the front of the thing that always uses it
12:18 AM Neuromod: thats a small piece of the code
12:18 AM Neuromod: (it may be buggy)
12:18 AM Neuromod: as I was currently writing until this idea came to my mind
12:19 AM rue_mohr: "Pastebin.com is under heavy load right now :("
12:19 AM Neuromod: the code within the always is pretty extense... and handling a fifo within that module probably would have taken less code...
12:19 AM Neuromod: odd
12:19 AM Neuromod: it loads just fine here
12:20 AM Jak_o_Shadows: Rue, I am swapping your code out to loop over servos, rather than hard-coding. Because I like my loops.
12:21 AM Neuromod: it appears rue is the boss of the channel XD
12:21 AM Jak_o_Shadows: well, most talkative anyway
12:21 AM Neuromod: the most knowledgable one too?
12:24 AM Neuromod: I've been trying to code all kind of stuff with the FPGA to learn how to use it... still there is a lot that I need to learn, I still need to learn how to use microblaze, and how to use AXI and connect ip cores and stuff
12:24 AM Neuromod: so far I've only played with verilog
12:24 AM Neuromod: and some hard ips such as serdes, xadc and clock generator
12:26 AM rue_mohr: now it loads
12:26 AM Neuromod: Im using Xilinx, Vivado on first sight looks nice, but after a while you find out its full of bugs
12:26 AM Jak_o_Shadows: hmm, yeah.
12:26 AM rue_mohr: drat, I'm not god enough with fpga yet to help
12:27 AM Neuromod: some bugs are so lame... like try to select multiple lines and then "tab" or "alt tab" them.... it keeps the same selection byte size
12:27 AM rue_mohr: *good
12:27 AM rue_mohr: I'm writng tools for hardware fsm stuff
12:27 AM Neuromod: or... xilinx simulators verilog parser is different than synthesizers parser
12:28 AM rue_mohr: and its leading me into writing a gui for text consoles
12:28 AM Neuromod: wht are you not good rue?
12:28 AM rue_mohr: drat, I'm not good enough with fpga stuff yet to help
12:28 AM Neuromod: whats drat
12:29 AM rue_mohr: darn, fooie
12:29 AM Neuromod: ohhh
12:29 AM Neuromod: so you saying you are new to FPGAs too?
12:30 AM rue_mohr: yes, unfortunatly I'v only just achived a toolchain and harware thats affordable and works togethor on linux
12:30 AM Neuromod: ohhh.. well still thank you for the help
12:30 AM rue_mohr: but ask me anything about a FSM :)
12:30 AM Neuromod: whats fsm
12:31 AM rue_mohr: hahahaha
12:31 AM rue_mohr: Finite State Machine
12:31 AM Neuromod: ohhh
12:31 AM rue_mohr: they can be used to detect and generate sequences
12:31 AM Neuromod: yeah pretty useful in FPGAs
12:31 AM Neuromod: im using them in the uart actually
12:31 AM rue_mohr: yup
12:31 AM Neuromod: im using fixed point
12:36 AM Neuromod: im kinda proud of my uart implementatoin.. it doesnt require clock to run 16 times faster
12:36 AM Neuromod: than baudrate
12:36 AM chisight: Neuromod: i hit up an fpga expert in another channel. they may join in the next day or three.
12:36 AM Neuromod: it uses some kind of bresenhams
12:36 AM Neuromod: thanks chisight
12:36 AM rue_mohr: there *are* a lot of fpga people in ##whitequark, but there are a lot of crazy people too
12:36 AM Neuromod: https://www.youtube.com/watch?v=6ECqFDIi1L4
12:36 AM Neuromod: thats one thing i did with an fpga a few weeks ago
12:36 AM Neuromod: its all HDL, its on github if you want to test it
12:36 AM Neuromod: the DAC was built using the FPGA and a RC filter
12:36 AM chisight: the one i hit is a really nice guy but is also pretty busy. no clue if they'll show but they have been asked.
12:36 AM Neuromod: well rue is a pretty nice guy i gotta admit
12:36 AM chisight: of course.
12:36 AM Neuromod: what is that chan about
12:36 AM chisight: tv series?
12:36 AM rue_mohr: hah, I dunno
12:36 AM Neuromod: i dont have a tv XD
12:36 AM rue_mohr: the channel is named after a really popular coder ont eh internet
12:36 AM rue_mohr: its one of the users
12:39 AM rxF: it's because irc is dead
12:39 AM rue_mohr: thats a point
12:39 AM rue_mohr: were down to 72, which is horrid
12:39 AM Neuromod: so what are they using now
12:39 AM Neuromod: twitter?
12:39 AM rue_mohr: dont kow
12:39 AM rxF: mostly discord from what I've seen, which is very depressing
12:40 AM rue_mohr: I twitted, I have like 700 followers (!?!?!?)
12:40 AM rue_mohr: but its a moving target for sure
12:40 AM rue_mohr: and I'm not here to be a moving target
12:40 AM Neuromod: so on what projects do you work on
12:40 AM rue_mohr: I'm here to be here, reliable to find
12:41 AM rue_mohr: http://ruemohr.org/~ircjunk/projects/
12:41 AM rue_mohr: http://ruemohr.org/~ircjunk/robots/
12:42 AM rue_mohr: look for slide.html at the bottom
12:42 AM Neuromod: cool stuff
12:42 AM rue_mohr: http://ruemohr.org/~ircjunk/robots/arm10/slide.htm
12:42 AM Neuromod: page links are borken
12:42 AM rue_mohr: htm, whatever
12:42 AM rue_mohr: ? broken link? where?
12:43 AM rue_mohr: most of the new stuff has a slide.html
12:43 AM rue_mohr: most of the new stuff has a slide.htm
12:43 AM Jak_o_Shadows: What about that - it compiles
12:43 AM Neuromod: robots.html but robots2.html worked
12:44 AM rue_mohr: oh wow, those are old
12:44 AM rue_mohr: browse thru folders, look for slide.htm
12:44 AM rue_mohr: I'v lacked the motivation to completely rewrite the whole site
12:45 AM rue_mohr: 99.5% of the traffic is media bots gathering stuff to lure people into Ad pages
12:45 AM Neuromod: cant find slide.html
12:46 AM rue_mohr: htm
12:46 AM Neuromod: If I lived closed to you I would enjoy visiting you to see what your stuff XD
12:46 AM rue_mohr: http://ruemohr.org/~ircjunk/projects/castbox/slide.htm
12:46 AM rue_mohr: their in the folders
12:46 AM rue_mohr: http://ruemohr.org/~ircjunk/projects/cnc6/slide.htm
12:47 AM rue_mohr: http://ruemohr.org/~ircjunk/projects/headphoneamp/slide.htm
12:47 AM rue_mohr: http://ruemohr.org/~ircjunk/projects/reprap4/slide.htm
12:47 AM Neuromod: alright.. it appears i got to the few folders without a slide html
12:47 AM rue_mohr: yes, the old ones lack
12:48 AM rue_mohr: http://ruemohr.org/~ircjunk/projects/micro7seg/slide.htm
12:48 AM Neuromod: http://ruemohr.org/~ircjunk/exactly_what_your_looking_for/right_in_here.txt
12:49 AM rue_mohr: :)
12:50 AM Jak_o_Shadows: The micro 7 seg is neat - i should think about doing that.
12:50 AM Jak_o_Shadows: Also, rue, did you link the computer side porgram?
12:50 AM rue_mohr: I was highly amused at how it came out
12:50 AM rue_mohr: wasn't it avr?
12:50 AM rue_mohr: if its serial, its just serial, aka, minicom
12:51 AM rue_mohr: I dont so PC side apps much
12:51 AM rue_mohr: I'v made a VT102 library for avr
12:51 AM rue_mohr: :)
12:51 AM Jak_o_Shadows: nah, just to avoid me having to set the bitfields myself?
12:51 AM rue_mohr: aka, put up a menu with colours and stuff
12:51 AM rue_mohr: oh, for the servos
12:51 AM rue_mohr: yea, there hsould be something, which one? the m328?
12:52 AM rue_mohr: ok, so, I got a few 1G cards for my router
12:52 AM rue_mohr: and just installed a new kernel
12:52 AM rue_mohr: I'm gonna bump my internet
12:52 AM rue_mohr: I think I'll be back
12:52 AM Jak_o_Shadows: For the full one
12:53 AM rue_mohr: there is the avr mega328 one I think your looking at, there is the stm32 one, and the analog one
12:53 AM rue_mohr: atmega32 based
12:54 AM chisight: i had a twitter. for like 5 minutes. tweeted my first tweet and was suspended.
12:54 AM rue_mohr: hahaha
12:54 AM rue_mohr: must have been a juicy one
12:54 AM Jak_o_Shadows: I moved onto looking at the analog one I think.
12:54 AM chisight: not really. was about a hack that had already happened.
12:56 AM chisight: several of the big security people tweeted it over the following few days without any problems. but it got me deleted.
01:00 AM rue_mohr: ping?
01:01 AM rue_mohr: test
01:01 AM rue_mohr: 1
01:01 AM rue_mohr: 2
01:01 AM rue_mohr: 1
01:01 AM rue_mohr: 2
01:01 AM Jak_o_Shadows: hi
01:01 AM rue_mohr: Jak_o_Shadows, ok
01:01 AM rue_mohr: I have the analog client here
01:01 AM rue_mohr: its linux
01:02 AM rue_mohr: so, I rebooted my router and didn't even drop?
01:02 AM Neuromod: client of what
01:02 AM rue_mohr: the servo program
01:02 AM rue_mohr: well, terminal program
01:03 AM Neuromod: servo for?
01:03 AM Neuromod: cnc stuff?
01:03 AM rue_mohr: Jak_o_Shadows, how are you with github?
01:11 AM Jak_o_Shadows: oh yeah, decent enough
01:13 AM rue_mohr: https://github.com/ruenahcmohr/servocontrol
01:13 AM rue_mohr: linux source
01:14 AM rue_mohr: gcc *.c
01:14 AM rue_mohr: I dont think it needs any external libraries
01:15 AM rue_mohr: oh ahah I had chain addressing in there!
01:15 AM rue_mohr: its just not documented
01:15 AM rue_mohr: hahaha
01:17 AM Jak_o_Shadows: Doesn't work on windows subsystem for linux :(
01:17 AM rue_mohr: did it say it couldnt' connect?
01:17 AM Jak_o_Shadows: doesn't compile
01:18 AM rue_mohr: what did it break with?
01:18 AM Jak_o_Shadows: no such thing as "fd_set", and the "struct timeval tv" the storage size of tv isn't known
01:18 AM rue_mohr: thats the serial stuff
01:18 AM rue_mohr: was that cygwin or other?
01:19 AM Jak_o_Shadows: Windows subsytem for linux
01:19 AM Jak_o_Shadows: Don't fuss about it - I'd prefer Python at this level anyway
01:19 AM rue_mohr: just so you know, python serial is messed up
01:20 AM Jak_o_Shadows: Oh, there's a bit of complexity about bytes/characters, etc.
01:20 AM Jak_o_Shadows: but i have it working
01:20 AM rue_mohr: ?
01:21 AM rue_mohr: it uses escape codes for colours
01:22 AM rue_mohr: hmm
01:22 AM rue_mohr: I wonder if I should change the network cards on my router then
01:23 AM rue_mohr: oh maybe I can just migrate it
01:24 AM rue_mohr: Jak_o_Shadows,
01:24 AM rue_mohr: see https://github.com/ruenahcmohr/roboPlayer
01:24 AM rue_mohr: it 'play' motion files into the other servo controllers
01:24 AM Jak_o_Shadows: Yeah.
01:25 AM Jak_o_Shadows: That's the paradigm i want for the moment
01:25 AM rue_mohr: if you can rewrite ssls3, you can use it in whatever
05:46 AM Jak_o_Shadows: hmm. It all seems to be mostly working
05:46 AM Jak_o_Shadows: Not neccessarily the return from the uC bit - but the rest
05:46 AM Jak_o_Shadows: also my oscope can measure pulse width, which is nice
05:47 AM Jak_o_Shadows: Ok then. 4096 steps over 20ms
05:47 AM Jak_o_Shadows: => 1 step is about 5 us
05:47 AM Jak_o_Shadows: => my min value of 1ms = 204
05:48 AM Jak_o_Shadows: my max value of 2ms = 408
05:49 AM Jak_o_Shadows: Except I am offseting a small amount, for some unknown reason
05:49 AM Jak_o_Shadows: So +30 for all those
05:54 AM Jak_o_Shadows: Rue: https://github.com/Jak-o-Shadows/stm32-PCA9685/blob/pureServo/hardware/code/serialTest.py and https://github.com/Jak-o-Shadows/stm32-PCA9685/blob/pureServo/hardware/code/main.c
05:54 AM Jak_o_Shadows: I really need to fix the indentation though
05:54 AM Jak_o_Shadows: But the calll all and such is working a treat.
06:09 AM rue_mohr: k
06:10 AM rue_mohr: :)
06:12 AM Jak_o_Shadows: How many servos did you say you could run off a stm32 again?
06:12 AM rue_mohr: iirc 44
06:12 AM Jak_o_Shadows: and was that with full current sensors?
06:12 AM rue_mohr: with a few 4017 helping
06:12 AM rue_mohr: not with current sensors
06:12 AM Jak_o_Shadows: I should think that through
06:12 AM rue_mohr: remember I ahve a few thigns going on
06:13 AM Jak_o_Shadows: yeah.
06:13 AM Jak_o_Shadows: I should think about making that board, with the current sensors and all. That'd be a neat littel thing to have.
06:13 AM Jak_o_Shadows: Or maybe I make it a shield for a PCA9685...
06:14 AM rue_mohr: for hobby servos, I had a mega328 doing 8 servos with super timing, I had a stm32 doing 24 servos (I only needed 18), and for a manual loop controller I had a atmega32 doing PI servo loop control for 4 servos
06:14 AM rue_mohr: somewhere I also have something for a pneumatic muscle servo
06:15 AM Jak_o_Shadows: I only need 6 - and nothing more than 10 I think
06:15 AM rue_mohr: and tehre is code around to control a solinoid with a linear encoder from an inkjet printer
06:15 AM Jak_o_Shadows: That's accepting that the legs are probably going to have to be geared DC motors with encoders, so not servos
07:04 AM veverak: building legged robot?
10:12 AM chisight: Neuromod: my guy is not available, he said to try ##fpga.
10:21 AM Neuromod: nice
10:21 AM Neuromod: didnt know there were so many nice chans here
10:21 AM Neuromod: im glad i got from arduino to robotics to whitequarke and now openfpga and fpga
10:34 AM Steffanx: makes me wonder who your guy is chisight. since some xmas guy asked about this in ##embedded. :D
10:59 AM chisight: my guy is the one who answered, not naming them because they didn't consent to getting involved.
11:31 AM Steffanx: lol.
11:48 AM Neuromod: "my guy" = your boyfriend?
11:48 AM Neuromod: chisight, who answered what
11:49 AM Neuromod: i had an interesting discussion with some condescending guys at whitequark
01:18 PM rue_mohr: it could have been some really weird people just the same
01:22 PM Tom_L: naw just the usual irc rifraf
01:24 PM rue_mohr: whitequark, its a channel with a bunch of strange people
01:50 PM Steffanx: IRC .. strange people. ;)
01:53 PM chisight: none of those here on freenode.
04:50 PM rue_mohr: ok, my keybaord has 101 keys
04:51 PM rue_mohr: there are 3 modifiers, that take up 6 keys
04:52 PM rue_mohr: so, I have 95 keys, with 3 modifiers
04:52 PM rue_mohr: 95*8
04:53 PM rue_mohr: 760 combinations
04:53 PM rue_mohr: or not-quite as capslock doesn't count
04:53 PM rue_mohr: so lets say 752 keys
04:54 PM rue_mohr: "just tell me what they pressed"
04:56 PM deshipu: rue_mohr: the modifier keys are distinct
04:57 PM deshipu: rue_mohr: you can have 8 different modifiers
04:57 PM rue_mohr: yes, which means you have 8*keys
04:57 PM deshipu: no, you have keys*2**8
04:57 PM rue_mohr: which leaves 95 keys to have 1 of 8 modifiers with
04:58 PM rue_mohr: no 2^3 as each modifier can be present or not
04:58 PM rue_mohr: keys*2^3
04:58 PM rue_mohr: keys*2^modifiers
04:58 PM deshipu: each key can be pressed with any combination of the 8 modifier keys
04:58 PM deshipu: there is a whole byte reserved for this in the HID report
04:58 PM rue_mohr: yes
04:58 PM rue_mohr: but I have an VT220 terminal
04:58 PM deshipu: plus, you can press up to 6 non-modifier keys at once
04:59 PM rue_mohr: which doesn't escape escape so I dont know if the user hit escape [ A, or the up arrow
05:00 PM rue_mohr: I have a workaround for that, Im using a select
05:00 PM rue_mohr: I can look at the number of characters that came in, if I get esc[* in one pass, I know it was too fast for the user to have entered
05:01 PM rue_mohr: but my larger problem right now, is that I need a map of single values to return to my program so it knows if the user pressed the up arrow
05:01 PM rue_mohr: 16 bits for sure
05:03 PM rue_mohr: IF a$ = CHR$(0) + "M" THEN ' cursor right
05:03 PM rue_mohr: apparently DOS was fun
05:04 PM rue_mohr: but it brings up an intesting point
05:04 PM rue_mohr: maybe I should be phrasing a keystroke as a string and not a (int)
05:11 PM rue_mohr: http://www.petesqbsite.com/phpBB3/viewtopic.php?t=1105
05:16 PM rue_mohr: hmmm, to token, or not to token
05:22 PM rue_mohr: ah, printsc, scroll lock, and pause dont count
05:24 PM rue_mohr: hmmm, mapping,
05:24 PM rue_mohr: the shift and ctrl modifiers dont apply to the space bar
05:26 PM rue_mohr: hmm, 1 responds to alt, and ctrl-shift, but not other combinations
05:26 PM rue_mohr: alt-shift!
05:27 PM rue_mohr: ouch my head
05:48 PM Jak_o_Shadows: veverak, yeah, eventually
05:49 PM Jak_o_Shadows: It's a quadrapod - but i'm interested in the chest more than the legs
06:52 PM logb0t_ is now known as logb0t
07:01 PM Malvolio is now known as Guest39433