#robotics Logs
Aug 07 2017
#robotics Calendar
01:20 AM joga_ is now known as joga
01:49 AM rue_shop3: no signal on the scope, it should be working,
01:49 AM rue_shop3: but
01:49 AM rue_shop3: the probe is set to ground coupling
01:50 AM rue_shop3: set it to dc, still no signal
01:50 AM rue_shop3: but the probe is going to the wrong scope
01:50 AM rue_shop3: fix that,
01:50 AM rue_shop3: still no signal
01:50 AM rue_shop3: no power on the vcc pin of the chip,
01:50 AM rue_shop3: which would be right when vcc is wired to ground
01:50 AM rue_shop3: fixed that, and got signal
01:51 AM rue_shop3: *SHEEEEESH*
04:44 AM Jak_o_Shadows: It's always scary when you start doubting your tools
10:21 AM codepython777: is anyone good with rectifiers/BMS hangin in here? I am looking for some help in using a bldc as a generator
10:24 AM deshipu: no, everybody are horrible
10:25 AM robotustra: codepython777: what are you building?
10:25 AM codepython777: robotustra: I've a 4 wheel ground robot with 4 bldc motors + lipo. I want to use 2 wheels for generation
10:26 AM robotustra: for feedback or for recuperation?
10:27 AM codepython777: just charging batteries
10:27 AM robotustra: codepython777: when the robot goes down the hill?
10:28 AM codepython777: robotustra: yes - or even uphill, since they are rolling I want to use that energy to recharge
10:28 AM robotustra: what are parameters of your robot?
10:29 AM codepython777: robotustra: Which parameters?
10:29 AM robotustra: sizes, weight
10:29 AM robotustra: speed
10:29 AM robotustra: max speed
10:29 AM codepython777: robotustra: I dont have sizes / weight - since I've not built it yet
10:29 AM robotustra: do you have any project?
10:29 AM codepython777: robotustra: I'm just researching how 2 motors can be used to feed back to the lipo
10:30 AM codepython777: while the other 2 are being driven on the lipo
10:30 AM robotustra: codepython777: do you know the low of energy conservation?
10:30 AM robotustra: law
10:34 AM robotustra: what efficiency of the system do you want to get?
10:34 AM robotustra: will you use mechanical multiplexers ?
10:35 AM codepython777: robotustra: I'm not interested in efficiency
10:35 AM codepython777: robotustra: The problem I have is simple, I am trying to use 2 x bldc motors to feed back to the lipo
10:35 AM robotustra: but why do you need the energy back?
10:35 AM codepython777: I can use a bridge rectifier from the 3-phase motor
10:35 AM robotustra: yes you can
10:36 AM codepython777: Now I cant directly feed back that to the lipo
10:36 AM codepython777: I need rectification of some sort - that is what I am trying to figure out
10:36 AM robotustra: https://www.elprocus.com/wp-content/uploads/2014/06/119.jpg
10:37 AM robotustra: you need 1) rectifier 2) bank of capacitors or supercaps 3) DC-DC stepup
10:37 AM robotustra: 4) relay
10:41 AM codepython777: robotustra: DC-DC stepup -> Thisis a 36V 350W motor. My lipo is at 42v. Isnt it true that the bridge rectifier outputs a large range of voltage?
10:42 AM codepython777: From what I understood, the bridge rectifier could output 500V! Then how would a DCDC stepup work?
10:43 AM robotustra: after brige rectifier you have to put caps
10:43 AM robotustra: charge collector
10:43 AM robotustra: the voltage on your cups will be lower than on batteries
10:44 AM robotustra: caps
10:44 AM codepython777: robotustra: does a controlled bridge rect help in this case?
10:45 AM robotustra: actually there are DC-DC converters which can take big range of input voltages and hav stable output
10:46 AM robotustra: what do you mean under "controlled bridge rectifier" ?
10:46 AM codepython777: robotustra: do you have a link of a rectifier and a converter that will work for a 36V 350W motor?
10:47 AM codepython777: I can find rectifiers, but not a converter - and am not sure what the range of voltage generated is based on rpm
10:50 AM robotustra: the motor will work on full power?
10:52 AM codepython777: robotustra: the motor is changing rpm as the robot moves around , no where near close to its full rpm I think
10:55 AM robotustra: why do you use 48V for your battery?
10:55 AM robotustra: what is the capacity of the battery?
10:57 AM robotustra: you need something like this http://www.ebay.com/itm/DC8-60V-TO-1-36V-Regulable-Synchronous-Buck-Converter-Step-down-Module-15A-200W-/263074142877?hash=item3d4070da9d:g:XjwAAOSwyKxXhILA
10:57 AM robotustra: but with higher output voltage
10:58 AM robotustra: codepython777: can you design circuits?
11:00 AM z64555: There's a limit to what voltage a motor can take. The rated voltage and power is an indication of its maximum capabilities. You can feed it a higher voltage and it will spin faster, but it will lose torque
11:00 AM codepython777: robotustra: It's a 42V battery
11:01 AM codepython777: robotustra: The charger is rated at 42v 1A
11:02 AM z64555: I'm unsure of how a motor operates while in generator mode, but I'm sure it follows the same diminishing returns rule
11:02 AM codepython777: How does the math workout for bridge rectifier output to be between and 60V?
11:02 AM robotustra: what is the max current it can give?
11:03 AM codepython777: robotustra: 36V 360W motor = 10A max? I run it between 1A and 3.5A
11:03 AM robotustra: codepython777: forget about the voltage, consider the power
11:04 AM robotustra: it definitely will be smaller than input power you supply unless you run your robot down the hill
11:04 AM z64555: he's trying to do regenerative braking, or some kind of schenanigans
11:04 AM robotustra: codepython777: after you put caps after rectifier - the voltage will be lower than the input one
11:05 AM codepython777: what are the ranges before and after the capacitor? What is the rating of the cap?
11:06 AM codepython777: dc voltage ranges I meant
11:06 AM codepython777: z64555: I'm just trying to figure out how to use 2 bldc motors to use as a generator and then charge a lipo battery that is on load.
11:06 AM robotustra: the same as your battery have
11:06 AM robotustra: 100V would be ok
11:07 AM robotustra: I'm not sure if bldc motors are good generators at slow rpms
11:08 AM z64555: not really, they have a lot of bumps in them
11:08 AM z64555: or at least, what I figure from turning the bell housing of one
11:09 AM codepython777: Is there any other use i can put these 2 motors on a running robot, besides using them as a generator - Can't leave them as it is - since they would heat up and create trouble.
11:09 AM robotustra: that's why I was asking about mechanical multiplexing
11:09 AM z64555: "heat up an create trouble" just disconnect them if you don't need brake force
11:10 AM codepython777: z64555: is you take a bldc motor and keep running it around - how does disconnecting help?
11:10 AM robotustra: why? if you will not connect them - you will not have any heating
11:10 AM z64555: heat is caused by current in the coils. How do you get current in the coils?
11:12 AM z64555: You get it from having a closed circuit and either supplying a voltage, or supplying rotational motion
11:12 AM z64555: If you don't have a closed circuit on the coil, you don't get current through it, and you don't get heat
11:13 AM z64555: (You still get heat from the fluctuating field in the stator cores, but nothing to worry about at the speeds that motor is going to see)
11:15 AM codepython777: k - so you have a BLDC motor, which you are spinning (A wind turbine)
11:15 AM codepython777: and you dont use the 3 phases to connect anything -its an open circuit
11:15 AM codepython777: isnt it producing current that will need dissipation?
11:15 AM z64555: no
11:15 AM codepython777: or energy
11:15 AM z64555: it's not producing any current. only a voltage
11:16 AM codepython777: so that energy produced - does not need to be consumed?
11:16 AM z64555: An open circuit can be considered as a resistive element with infinite ohms
11:17 AM codepython777: and that does not produce heat?
11:17 AM z64555: with ohms law, V = IR, I would be infinitesimally small
11:17 AM veverak: http://imgur.com/UZFJfI3 testing holder
11:18 AM z64555: Resistive heating is I^2 R. If I is infinitesimally small (call it zero), then the total power loss through resistive heating is also zero
11:18 AM codepython777: I see
11:18 AM deshipu: veverak: where is the death ray?
11:19 AM veverak: deshipu: building
11:19 AM z64555: Since the coils have no circuit on them, they cannot relay the energy gained from their core as the rotor changes its B field
11:20 AM veverak: deshipu: but was thinking of traditional chainsaw
11:20 AM veverak: :)
11:20 AM robotustra: brilliant idea about holder
11:21 AM deshipu: veverak: I really recommend those plastic spirals for the cables: https://cdn.hackaday.io/images/3137951500460500978.jpg
11:21 AM z64555: So the coil cores' B fields just fluctuate back and forth. Hysteresis and other magnetic properties of the core are the only production/losses that the motor will see
11:21 AM veverak: deshipu: I can see the point definetly
11:22 AM deshipu: just one tip: mark which plug is which before you put them on
11:22 AM codepython777: z64555: Isnt it better to use this energy instead of letting it go - since I can't get rid of these motors on this platform?
11:22 AM z64555: Not if you can't store that energy
11:22 AM deshipu: (I wish they made colored servo plugs)
11:22 AM z64555: Or if your motor is heating up too much
11:23 AM codepython777: z64555: I've a lipo that is driving the system
11:23 AM z64555: that makes no difference
11:23 AM codepython777: z64555: Let me first try it disconnected - see what happens
11:23 AM z64555: You where concerned the motors would heat up too much, and we gave you the solution to disconnect them from the regenerative circuit
11:23 AM codepython777: I think let me try that first
11:24 AM codepython777: if that works - then I can later optimize the power generation
11:25 AM veverak: deshipu: I have label printer
11:25 AM veverak: each has label near connector
11:25 AM veverak: :
11:25 AM veverak: :)
11:30 AM deshipu: nice
12:07 PM rue_more: 42V?
12:07 PM rue_more: what kinda battery?
12:09 PM codepython777: rue_more: https://i.ebayimg.com/00/s/MTIwMFgxNjAw/z/EwEAAOSwt5hYflf5/$_58.JPG
12:09 PM codepython777: 42v is charge voltage
12:13 PM rue_more: what type of battery?
12:13 PM rue_more: 36V NiMh?
12:13 PM rue_more: cute shape
12:20 PM codepython777: rue_more: its a lipo
12:20 PM rue_more: oh
12:20 PM rue_more: so youhave to be carefull of temperature and charge current too
12:51 PM z64555: lipo chargers will generally take care of the current, so you'd only have to consider the temperature
12:51 PM z64555: there might be some regenerative braking modules available for lipos
01:01 PM codepython777: I'm using a vesc - which does claim regenerative braking
01:07 PM codepython777: http://bit.ly/2vfk0Eh - does this make sense?
01:08 PM codepython777: updated: http://bit.ly/2fmfsYM
01:09 PM codepython777: rue_more: any suggestions?
01:27 PM rue_more: looking...
01:27 PM rue_more: I dont seem to be satisfied latley unless I have a machine working on something somewhere
01:28 PM rue_more: codepython777, its a parallel state machine, duh
01:29 PM codepython777: rue_more: problems?
01:30 PM veverak: rue_more: interesting case of OCD
01:43 PM rue_more: hu?
01:54 PM codepython777: rue_more: how does one prioritize loads in a simple parallel circuit like this one?
01:58 PM rue_more: apply power
02:01 PM veverak: fuck ubuntu
02:01 PM veverak: on rpi3
02:01 PM veverak: no hdmi
02:01 PM veverak: no ssh
02:01 PM veverak: no serial
02:01 PM veverak: ...
02:05 PM codepython777: rue_more: I'll just put a fuse.
02:08 PM rue_more: oh I thougth you said polarize
02:09 PM rue_more: you make a current detector, and have it default to passing power to the next module
02:12 PM codepython777: rue_more: In my case, I want to make sure that the 19v load is running - the motors - I care about them after the 19v is taken care of
02:14 PM rue_more: the highest priority has to come first
02:14 PM * rue_more is low on red herrings,.... searches for more...
02:29 PM codepython777: rue_more: http://www.genuinedealz.com/media/catalog/product/cache/1/image/9df78eab33525d08d6e5fb8d27136e95/4/w/4way1822_2.gif - was using this :)
02:34 PM deshipu: a fidget spinner!
02:56 PM rue_more: oh I'm getting so bad at getting thigns done
02:57 PM rue_more: my project shelvs are overflowing
02:57 PM rue_more: that said, I have nowhere for finished projects
02:57 PM rue_more: what ARE you suppsoed to do with a finished project?
02:58 PM SpeedEvil: Take it apart for parts.
02:58 PM rue_more: no, I stopped doing that when I got more than enough parts
02:58 PM SpeedEvil: Or store other projects inside it, depending on size
02:58 PM rue_more: hmm
02:58 PM rue_more: hmmmmmm
03:01 PM codepython777: now i need to look for a vise...
03:02 PM SpeedEvil: sloth.
03:02 PM SpeedEvil: Now you don't need to look.
03:09 PM rue_shop3: my task swapper is going insane
03:09 PM rue_shop3: I'm hitting almost 100% swapping
03:11 PM deshipu: 300% swapping and swapping
03:11 PM deshipu: put your swap on a memory disk, so it's faster ;)
03:15 PM rue_more: no, task swapping
03:15 PM rue_more: I'm just working out what to work on, then then working out something else to work on
04:54 PM Tom_L: rue_more, that's a job in itself
05:08 PM rue_shop3: I managed to focus enough to finish the concrete caps for te garden beds
05:24 PM Tom_L: rue_shop3, garden season is coming to a close soon
05:24 PM Tom_L: you'd better get it all in
05:35 PM z64555: phew, all out of gas today
05:36 PM z64555: got lawn mower working again. took me at least 5 hours to get the lawns mowed
05:36 PM SpeedEvil: z64555: yay.
05:37 PM SpeedEvil: I think it's safe to say everyones fourth project on their list here is a robot lawnmower.
05:37 PM z64555: moral of stories: stumps are *evil*
05:37 PM robotustra: in 5 hours I can build a robot which mows the lawn
05:37 PM robotustra: :)
05:37 PM robotustra: from spare parts
05:38 PM z64555: what are you going to do about debris detection and avoidance?
05:39 PM malcom2073: SpeedEvil: +1
05:43 PM z64555: could maybe make a comb gaurd
05:43 PM z64555: like a cow catcher you'd see on those old steam engines
05:44 PM SpeedEvil: Slightly more seriously, it gets a lot easier if you can drop the mowing speed to the point it's doing it many hours a day, not weekly
05:45 PM z64555: a solar powered bot could possibly do that
05:45 PM z64555: there's still the issue of debris, however
05:48 PM Tom_L: laser trimmer
05:48 PM Tom_L: one pass and yer done
05:50 PM robotustra: z64555: rue already solved this problem
05:50 PM robotustra: it will work as a rumba
05:50 PM z64555: I'm pretty sure burning the grass will prevent it from growing, meaning you'll end up with a dirt lot
06:55 PM Snert: I have a propane firestick. It didn't work as well as I had hoped. Won't try it again that way
07:17 PM Tom_shop: how do you do a screen capture in linux?
07:47 PM robotustra: press print screen
07:47 PM robotustra: button
07:47 PM Tom_L: no joy
07:48 PM robotustra: do you have spectacle
07:48 PM robotustra: ?
07:48 PM robotustra: install it
07:50 PM Tom_L: i used to have one i could capture and save it to a file
07:50 PM Tom_L: forgot what it was
07:51 PM robotustra: do you need video or just a picture?
07:51 PM Tom_L: pict
07:52 PM Tom_L: just want to capture error messages from a program
07:52 PM robotustra: https://www.kde.org/applications/graphics/spectacle/
07:52 PM robotustra: KDE or gnome?
07:53 PM Tom_L: xfce
07:53 PM Tom_L: i hate it
07:53 PM Tom_L: i was running ubuntu but now this
07:53 PM robotustra: sudo apt-get install xfce4-screenshooter-plugin
07:53 PM zhanx: Tom_L: print screen and paste into gimp
07:54 PM zhanx: oh wait xfce
07:54 PM robotustra: xfce4-screenshooter -f
07:54 PM robotustra: after press prn scr button
07:55 PM Tom_L: it's got a menu item called screenshot, is that it?
07:55 PM robotustra: xfce - it's a window manager you can run it on any distro
07:55 PM Tom_L: yeah i know
07:55 PM zhanx: tom that is what i use
07:56 PM robotustra: yes
07:56 PM Tom_L: zhanx, screenshot?
07:56 PM zhanx: i just select the area most of the time
07:56 PM zhanx: yep
07:56 PM robotustra: now you can save this screenshot to file
07:56 PM Tom_L: will it save to file?
07:56 PM robotustra: should
07:56 PM zhanx: yep
07:57 PM Tom_L: problem i see with area is you gotta have that screen active
07:57 PM Tom_L: first
07:57 PM Tom_L: and the utility comes up on top of it
07:57 PM zhanx: well i run dual screens and the utility goes away for me when i take it
07:57 PM robotustra: you can select the window to grab
07:58 PM zhanx: then I am sure, should check it promots to save after that
07:58 PM zhanx: it does
07:58 PM robotustra: or make another screenshot by selecting necessary window
07:58 PM Tom_L: how can you switch windows while selecting?
07:58 PM robotustra: while the utility is minimized
07:59 PM robotustra: alt-tab?
07:59 PM zhanx: just do a delay on it to give you time
07:59 PM robotustra: or delay
07:59 PM robotustra: yes
08:00 PM zhanx: i use area, due to dual screens and sometimes it glitches and still takes both screens instead of a window
08:00 PM Tom_L: ok, i think i can make it work
08:01 PM orlock: http://en.crypt.net.au/Controller/
08:01 PM zhanx: ok water pump on washer fixed and the floor under where it sits is repaired and sealed this time
08:02 PM orlock: Thats my wireless-IP robot remote
08:02 PM zhanx: orlock can you make the photos any bigger? :D
08:03 PM orlock: pot for throttle, quadrature encoder (using the IR sensors, not pre-build) for steering
08:03 PM orlock: 144 pulses per full rotation
08:03 PM robotustra: 12^2
08:04 PM zhanx: zoomed to 33% to fit them in the window :D
08:12 PM orlock: robotustra: its actually 36 * 4 i think
08:12 PM orlock: robotustra: 36 slots and 2 sensors, detect on rise and fall
08:12 PM orlock: 2 edges * 2 sensors * 36 slots
08:13 PM orlock: and one sensor is offset by half a pulse length
08:14 PM orlock: anyway, it works and spews UDP
08:16 PM orlock: my pratcice lock and picks arrived last night as well
08:16 PM orlock: best $10 i ever spent
08:17 PM orlock: There's a pair of 608 bearings hidding in there as well, and theres very very little play
08:18 PM orlock: i've got to have it finished by september
08:18 PM orlock: also, the robot is weighing about 300g over it's 3kg limit.. but they never check
08:18 PM orlock: so i'm not sure.
08:53 PM Tom_L: rue_more, how do you feed a positional PID loop so it knows there is an error that needs correcting?
08:54 PM Tom_L: http://tom-itx.no-ip.biz:81/~webpage/cnc/configs/screenshots/T5_M6_Screenshot.png
08:54 PM Tom_L: it's not responding
09:05 PM z64555: ??
09:06 PM * z64555 waits for image to load
09:07 PM z64555: what program is this?
09:08 PM Tom_L: linuxcnc
09:09 PM z64555: neat
09:09 PM z64555: sadly I'm not much help here
09:16 PM anniepoo: plain bearings or ball bearings?
09:18 PM anniepoo: nvm, lots of scroll since then
09:19 PM anniepoo: totally not into coding today
09:23 PM z64555: uh, since when?
09:23 PM anniepoo: since when am I not into coding today? basically all day
09:23 PM anniepoo: 8cp
09:23 PM anniepoo: I think mostly I'm not into coding for my work stuff.
09:23 PM z64555: no, sorry. I meant which part of the backscroll you where replying to
09:24 PM anniepoo: ah, someone asking about loosening rusted bearing
09:24 PM z64555: that would be me :D
09:24 PM anniepoo: 8cD
09:24 PM z64555: its either a roller or ball type, not the bushing type. They're more frozen than a 10 year old TV dinner
09:25 PM anniepoo: liquid wrench or navel jelly
09:25 PM z64555: eh, I've tried the liquid wrench stuff, no luck
09:25 PM anniepoo: since they're toast anyway, if you can get a pin punch into a ball, knock one ball out and the others will come
09:26 PM anniepoo: that I've done before on farm equipment
09:26 PM z64555: I'll need to cut out the side plate thingy to be able to look at the bearings themselves
09:26 PM * anniepoo is a farm girl
09:27 PM z64555: that's going to be my project for tomorrow, today was resetting the flywheel on a lawnmower
09:27 PM z64555: and subsequently mowing about an acre
09:27 PM anniepoo: 8cD
09:28 PM anniepoo: ok, my next task - cut cardboard for zhanx
09:28 PM zhanx: cool
09:31 PM anniepoo: so, if I make it the same 2ft+ size as mine, it's going to be 16 sheets or something
09:31 PM anniepoo: cause just the shell was 10
09:37 PM anniepoo: so, zhanx, how big do you want it?
09:37 PM zhanx: small 8x10" base
09:38 PM anniepoo: ok
09:38 PM anniepoo: hmm
09:38 PM anniepoo: 8x10 for the mechanism, or the whole thing?
09:38 PM anniepoo: it's kind of a 'lump' shape
09:38 PM zhanx: whole thing
09:39 PM zhanx: i know its lump shaped
09:39 PM anniepoo: ok
09:39 PM anniepoo: 8cd
09:39 PM anniepoo: 8cD
09:39 PM zhanx: small snail :D
09:39 PM anniepoo: yah, Pomatia's a BIG robot
09:39 PM anniepoo: 60 some cm long
09:42 PM anniepoo: I also am going to print some tiny ones for myself
09:42 PM anniepoo: 8cD
10:21 PM anniepoo: laser is making snail parts
10:21 PM anniepoo: @zhanx
10:22 PM anniepoo: One thing to know- when stacking the side with the number markings goes UP
10:22 PM anniepoo: and slice 1 is the bottome
10:22 PM anniepoo: some pieces are marked 25-2
10:22 PM anniepoo: that means layer 25 is more than one piece, and I'm piece 2
10:35 PM zhanx: k
10:36 PM anniepoo: 8cD
10:36 PM anniepoo: now watching youtube vids about computer generated music
10:37 PM Tom_L: stepper generated music
10:37 PM anniepoo: 8cD
10:38 PM z64555: its kinda neat, and also kinda simple
10:38 PM z64555: an extension of procedural generation
10:39 PM anniepoo: 8cD flubbed up the cut- had the pinprick numbers set to 'no' output
10:39 PM anniepoo: 8cD doing another one
10:40 PM Tom_L: i hate pid tuning when you're not sure where to start with the numbers
10:40 PM z64555: that's the "fun"
10:40 PM Tom_L: on a positional PID, the output numbers are way too low
10:40 PM Tom_L: around xx and they need to be in the xxx range
10:41 PM Tom_L: in the teens twenties and thirties when i need around 5-600
10:41 PM z64555: so... increase P by a factor of 10?
10:42 PM Tom_L: i did
10:42 PM Tom_L: i'll try again tomorrow
10:42 PM z64555: hm
10:42 PM Tom_L: it's got P I D FF0 FF1 FF2
10:42 PM z64555: I'm not familiar with the "FF" there
10:43 PM Tom_L: for zero first and second order feed forward term
10:43 PM z64555: ohh
10:44 PM Tom_L: for positional it says to leave FF0 at 0 but i'm not sure i agree with that just yet
10:44 PM z64555: hm, wonder what that means in this context, though. I'd have to see a diagram of what that block is doing
10:44 PM Tom_L: http://linuxcnc.org/docs/2.7/html/man/man9/pid.9.html
10:45 PM Tom_L: it's being used to orient a spindle to a requested angle
10:45 PM Tom_L: it needs to pop to around 600 before the spindle will start to turn
10:46 PM Tom_L: it's only gonna make one rev at best
10:47 PM Tom_L: but at least i got it doing _something_ tonight
10:48 PM Tom_L: it switches between 2 pid loops depending on if it's under normal spindle control or the orient spindle control
10:48 PM Tom_L: normal is velocity pid, orient is positional pid
10:48 PM Tom_L: goes thru a mux to select which one is active
10:57 PM z64555: ok
10:59 PM z64555: ok, now I understand what the feedforward terms are
11:01 PM z64555: A nonzero FF0 term for a positional controller wouldn't make sense unless the output is to a servo
11:03 PM z64555: shouldn't need to mess with FF1 or FF2, for that matter
11:07 PM anniepoo: cutting second sheet
11:07 PM anniepoo: 8cD
11:10 PM zhanx: how many sheets?
11:10 PM anniepoo: 4
11:10 PM anniepoo: 8cD
11:24 PM anniepoo: and since I had the solid model now, I've just printed a small version of the snail
11:24 PM anniepoo: 8cD I'm gonna make a Pomatia hair clip