Tuesday, July 22, 2014

Creativity and Engineering Education: Swarmbots for everyone! Kickstarter now

Have you ever wanted your own swarmbot?
Now you can, and learn engineering while you're at it! We've been hard at work on this, and now we'd appreciate if you could share the news:
Support creative engineering education and get your very own swarmbot on kickstarter

Saturday, June 14, 2014

Moving from blogger to my own domain!

I made the switch! This blog is moving to www.orangenarwhals.com.
Old blog posts are remaining here and have also been copied over. New ones will be posted on the other blog only.

Wednesday, May 14, 2014

xbee xctu v6.1.0 cannot set field ATMY / ATDL / ATDH / etc to zero

The XCTU software is a little buggy, if you cannot get rid of the DH (set it to zero) after accidentally setting it to something nonzero, go into the console tab, hit connect
  • Add a packet -- "+++" .
  • Send selected packet -- you should get an "OK" in response letting you know the device is awake. Note that the device falls asleep fairly quickly.
  • Add packet -- "ATMY[enter]" (the enter is important!). Send it. You should receive the current MY back.
  • To change the DH, add a packet -- "ATDH0[enter]" and send it. You should get "OK" back.
  • Add a packet -- "ATWR[enter]" and send it. You should get an "OK" back. This writes changes to flash.
  • You can hit disconnect, unplug and re-plug in the xbee, reconnect it, and let XCTU read all the values to double-check that you changed the value you wanted to change.
Yes, essentially you are using a giant GUI to use a commandline in windows to program your xbee. roflcopter.

XCTU also doesn't run on linux. :/ ugh xbees.

posting, because I wasted a few hours and Shane also wasted time on this same bug. Sigh. Software, GUIs *shakes head*

Tuesday, April 8, 2014

Rapid Prototyping and Cosplay: lie ren / jade dragons on the lasercutter


things happened over the last month. i guess that's the way of life. can't stay constant.

i'll start with rapid prototyping and cosplay. sadly, no 6-axis knitting robot arms were involved in this, nor lasercut lace.

first time (probably last time) cosplaying: cosplay, costume play. there is no competition and no acting required.


for me, it was also my first real adventures into sewing, minus my rather sad attempts at vermiculture bags. sorry long dead worms :(

sewing is hard. i guess most first things are hard. but that's a tale for another, longer post.

so three weeks or so before anime boston, brian chan convened a meeting on latches in cosplay. he had also kindly invited a few of us to invade his annual rapid prototyping and cosplay panel. i thought, since i'm probably not going to be in town next anime boston, i may as well do a cosplay. cynthia (man i'm just surrounded by awesome people, do read their blogs) suggested lie ren, a character in rwby. several of my friends were going as characters in rwby.

i... i still have yet to watch any episode containing him that i remember. i barely know anything about rwby. oh well. for me, the primary interest is in making things.

anyway, he has these gun/blade hybrid things. they're supposed to fold up in his sleeves and emit green dust or something.

i pushed off the rapid prototyping / weapons part to the last-minute, since i was pretty confident i could come up with a solution that would work in time. especially since there's been prior art on the internet: $100+ ones you can buy that model the art pretty closely, and then ones that looked like water guns with cloth wrapped around it. the sewing i gave myself all three weeks to work on, since i knew i would consistently underestimate how much time it took no matter what.

so the week before or so, i bought some water guns, you know, just in case the sewing took so long i wouldn't be able to rapid-proto some (non-function, mock, cosplay) guns and only had time to work on the blades.

cost: I think $16.

uhm the friday of the con i decided i should probably start on the weapons, since i was supposed to help out with a panel on saturday. putting the rapid back in rapid prototyping...

1) bandsaw, 'cos i need to attach extended magazines or some non-sense

2) ponder how to create "sanded edges" to thin it down more towards a point at the end. opt in the end to skip it entirely and just do the easiest thing possible

lasercut three identical layers out of mdf and glue it together and call it a day

some blatant tracing from some screenshot i found later, plus scaling based on getting the magazine to roughly fit into the existing grip, and exporting to pdf because stupid coreldraw hates inkscape SVG files and almost everything inkscape exports for whatever reason. ugh coreldraw. i should sink some time into switching over to inkscape on the lasercutter.

one layers takes 1.5 minutes. good.

some of them are flipped. this is because the mdf is rough on one side and shiny on the other, and i want both outsides be shiny.

at this point it's 9 AM, so then I lasercut some stencils out of cardboard (next post) and head off to work.

at 10 pm i come back to working on this, even though i want to continue sewing, mostly because i've learned that actually spraypaint takes 24 hours to dry, not the one hour i was imagining. which means i better finish this part, paint it, and set it drying ASAP.

3) now how to attach my lasercut pieces to the off-the-shelf pieces.

After some pondering i settle on 5-minute epoxy.


and some "press-fits" or close-fits, just to give it lots of area to adhere to.

a few iterations later i was satisfied.

the blades were tricky to epoxy because they were heavy and long and not possible to clamp down. i was actually worried about weight and carrying it all day, but it turned out to not too heavy at all.

but mostly, it just required patience. which i had a lot of by that time because i was pretty sleep-deprived and mellow. here they are, propped up on some power supplies to keep blade from falling over.

i epoxied them two or three times: once to tack them down, wait fifteen minutes, then gingerly all around them and set it back on the power supply to cure, and then a third time to fill in any gaps i missed.

the epoxy has got a pretty noticeably different finish than the wood, which i worry about a bit. but turns out it all doesn't matter, no one notices the fine details when you are cosplaying, because you are a large human and a vague resemblance is fine.

two layers of spraypaint (one to cover most of it, and then the second to cover the back, which i picked last because the paint would still be tacky and would come off on my hand during the con, but it'd be facing me and no one would notice) and i'm done. actually, one thing i learned: spraypaint doesn't like to stick to plastic, so you should rough up the plastic beforehand.

i didn't do that, or any of the hand-paint detailing, or anything at all. but it was still fine and great.

and i am never ever doing that much sewing again.

Sunday, March 16, 2014

Biking to the Arboreturm, Walden Pond from Somerville, MA

There were two days of 40s-50s temperatures a few weekends ago, so I decided to bike to the Arboretum and then the following day to Walden Pond.

Arnold Arboretum (near Forest Hills T stop)

I left around 11:30 am and arrived at 12:45 am at the Arboretum, with earphones in one ear trailing to my cellphone GPS (kind of dangerous, but effective). Here is a mural I saw along the way which I'd never seen before.

rough bike directions

 We went into Jamaica Plains for lunch. Along the way, we saw a take it - leave it - street library, which I found pretty cool.

Walden Pond (around 2-3 miles away from some commuter rail station)

The next day I woke up at 2 pm and felt like going somewhere, since I didn't have anything to do until 6 pm. After a bit of googling I settled on biking to Walden Pond. It felt ambitious but doable, but I would have to leave almost immediately to get there before sunset.

rough biking directions

After biking on some highway for a bit, I reached the start of the MinuteMan bike bath. This path (pictured above) was very nice and flat but wet / slushy / icy in many parts despite a day and a half of nice weather. Good thing someone told me to wear rain boots, to bring extra socks, and not to expect to go fast!

I left at 3pm, bought some snacks and gatorade, and headed out by myself. Too impromptu to find anyone to go with me. There was a large section after the bike path just on the side of the road, which actually meant on the road because

if you biked on the side of the road you ended up in the mud / giant puddles. Good thing I was wearing rain boots!

5:12 After walking up 3 or 4 hills and then biking some more, I arrive at the Walden Pond State Reservation, which isn't actually where Walden Pond is.

Walden Pond is across the street.

The pond was frozen over and still covered and snow, while the sun was setting by this point. Only two other people were there. It was really nice and tranquil, disturbed only by the sound of me noisily munching on food rawr delicious fluids and trail bars.

Well, after a few minutes, I headed back out, since it was getting dark. I failed at getting directions to the closest commuter rail (commuter rail, because biking back in dark icy conditions on the side of roads without bike lanes sounded like a terrible idea) beforehand, figuring I'd rely on GPS and that I should get on the road ASAP to get there before dark. Lo and behold, when I tried to go back, not enough 4G signal for usable GPS. fail. And then I on top of that I got a flat (and I definitely did not have a spare tire or pump). Luckily some really nice strangers who came out of the state reservation wearing snowshoes had a car nearby which could haul me and my bike to the commuter rail station.

$8.00 for a ticket back, and $6 (I think?) for a replacement inner tube. Ah well. So it goes. I also had issues on my bike with the shifter chain falling out (I have an three speed internal gear hub) when I replaced the inner tube, but that's a tale for another time.

I didn't even feel too tired at the end of my 15 mile trip. Bikes are great!

Wednesday, February 19, 2014

Ubuntu Hardware Course Screencasting: Screenpainting + live webcam feed (12.10, wacom CTL-480, zoom h1, Ardesia, gtk-recordmydesktop, OpenShot, cheese, key-mon, Arduino)

Hello dear friends!
Today I’m here to talk about screencasting a hardware course in Ubuntu using tools that are free (no-cost) to use. I had some issues that were cinnamon-on-ubuntu specific, and others I’m still not sure the cause of, but overall I’m pretty pleased with how things turned out.

Left: Cheese; Right: Arduino, Ardesia; Bottom: gtk-recordmydesktop; Overlaid Writing/Drawing: Ardeisa

Hardware setup:
  1. USB webcam on a tiny tripod
  2. wacom tablet (CTL-480) -- to get this tablet working in Ubuntu, see step 1, step 2
  3. Zoom H1 recorder with v2.0 firmware (for USB mic support in linux) -- to see which firmware version you have, simply turn on the recorder and at the top it will say “2/00” if you have version 2 (shown without USB cable)
  4. and then I had the iteaduino (arduino clone) and 
  5. my laptop
  6. secondary laptop for displaying the script

Lower Screen Resolution

My default resolution is 1600x900. First step, Lower the screen resolution to 1280x720 to make text readable at lower dpi and file sizes smaller (and thereby make your lower-bandwidth internet users happier!)

1) Install gnome-session-fallback.
sudo apt-get install gnome-session-fallback
This is because I’m running cinnamon and can’t get the display to change resolutions unless I log in as gnome-classic instead. You need gnome classic WITH effects for Ardesia to work, by the way.

2) Open a terminal (alt-f2, gnome-terminal). Run gnome-control-center. Click on "Displays". Lower the resolution to 1280x720, which is standard HD resolution (youtube uses 16:9).

Get Alt-Tab Working Again

Okay, now we’re running Ubuntu 12.10 with gnome classic fallback, and ugh Alt-Tab doesn’t work wtf. To get it working:

sudo apt-get install compizconfig-settings-manager
sudo apt-get install compiz-plugins

Then go to Window Management > Application Switcher > Enable. Okay now I also have ultra-fancy alt-tab swoosh effects too, but at least I have alt-tab.

Drawing on the Screen:

sudo apt-get install ardesia

Ardesia is great! It’s very easy to use, is in the ubuntu repositories, and provides multiple options for drawing on the screen. See first picture at the very top (where I show how it can toggle between wiggly, smoothed wiggly, and squareish lines, as well as draw arrows), as well as this one:

However, when I try to screencast in Ardesia, the audio (whether I use the internal mic, or the zoom H1 as a USB mic) is unusably choppy.

Thus, we use yet-another-application for the actual screencasting!

For screencasting (recording the screen)

I used gtk-recordmydesktop.
sudo apt-get install recordmydesktop.

This had a bit of a learning curve for me. There is a tray icon that shows or hides the main window, and when you hit “Record” the main window goes away automatically. It doesn’t save the file as anything usable at first, when you stop recording it begins encoding and then saves as an OGV file in the directory where you selected in the “Save As” dialog in the main window. Also, since we have a stereo mic with the Zoom H1, I went to advanced settings (upped the frame rate to 25 fps as well) and increased it to 2 audio channels. I don't know if this actually affected the output, but presumably it does.

Officially youtube doesn’t support ogv, but I haven’t had issues with uploading the OGV files this application created.

For a live view of the hardware

I used a webcam connected to Cheese and then resized cheese until the lower toolbar disappeared.
sudo apt-get install cheese

I had a laptop camera as well. To choose the external webcam instead I simply went to Cheese > Preferences > Device  and chose "USB2.0 Camera /dev/video0" instead of "1.3M HD Webcam /dev/video1".

For USB Mic

For a comparison of the audio quality using my internal mic versus using the Zoom H1, see:

With laptop mic
 With Zoom H1 as USB mic

Connect the Zoom H1 to the computer. On the screen it will blink between “USB Card and USB Audio. Hit the red record button when it says “Audio”, then hit the red button again to accept the audio settings. Now go to
gnome-control-center > Sound (or “Sound Settings…” under the volume tray icon in the gnome panel). Under “Hardware” you should see “H4 Digital Recorder”.

I set it to “Input” only (instead of duplex) to be safe. Then, under “Input”, you should see “H4 Digital Recorder Analog Stereo.” If you don’t see it in “Input”, but it shows up in “Hardware”, try rebooting your computer -- that did the trick for me.

For displaying which keys are pressed

I used key-mon.
sudo apt-get install python-pip
sudo pip install key-mon

For syncing audio and video, or video editing

Say like me you initially didn’t figure on using yet another application to get non-choppy audio simultaneously recorded with the video screencast, and instead have a .wav file from your zoom recorder and a .ogv file from your screencasting tool. How do you sync up the audio and video files appropriately?

PiTiVi was sad for me. I liked pitivi, because it displays the audio waveform, which is useful. However, the video preview was really choppy (unusable for syncing purposes) even when I selected “video thumbnail 1/100 sec” and the export didn’t work.

Use OpenShot.
sudo apt-get install openshot

The export settings are pretty self-explanatory. For now, I’ve settled on using “Device> AppleTV” as the settings I use. “Web >Youtube-HD” probably also works. When I tried manually selecting “H264” and “AAC” audio like youtube recommends, though, OpenShot gave me a .h264 file that youtube grudgingly accepted and converted for me (but I couldn’t open in VLC or anything locally). So… just stick with the “simple” export settings and everything is great.

By the way, OpenShot 1.4.3 doesn’t like to import OGV files on my computer (pops up an error, “ogv not supported). Therefore:

Convert OGV to AVI or MP4

Use ffmpeg or avconv to convert the OGV file into AVI or mp4 and then import into OpenShot.
ffmpeg -sameq -i ardesia_project_2014-19-2_18\:11\:24.ogv output.avi
avconv -i ardesia_project_2014-19-2_18\:11\:24.ogv output.mp4

Then open the AVI file into OpenShot, along with the WAV audio file, drag-and-drop to sync the files, and then hit export.


You have a video :)
For an example of the output, see http://www.youtube.com/watch?v=8ZgO082rD2g. It's a bit fuzzy, probably in part because I recorded it in 4:3 (1024x768) instead of 16:9 which it was converted to (1280x720). But the text is mostly legible.

Sunday, February 2, 2014

Second Winter School Hike: Warm toes while skating and griliing on Lonesome Lake!

(for why I've suddenly become more interested in exerting physical effort despite my long-standing belief that I'm not interested in sports, exercise, or outdoors things, see previous post)

We hiked ~1.2 miles up ~1000 ft to Lonesome Lake carrying grills, charcoal, skates, group emergency gear (foam sleeping pads and tarp if we got stuck on the mountain), and food and drinks.
Or rather everyone else did except me, since I had a dinky little book bag that made everyone pass over me in letting me take group gear.

I've learned gradually that people hike for different reasons. Four years ago I did not understand the point whatsoever. I grew up flying and driving to cities and walking around cultural landmarks, not really nature. But now through talking to people I realize that some people do it to enjoy nature, some for the exercise, some for the community / social aspects, some for the challenge and summits, etc.

Each trip has taught me more about my physical fitness level and what equipment I need to be comfortable. ahhh I was so tired the next day (today), I slept for 15 hours and still feel tired (and now I feel sore all over). But the day of, the hike was pretty easy for me.

trip start! (actually our first stop was dunkin' donuts, but w/e)
Grilling supplies and ice skates! Not pictured: the half gallon of milk and half gallon of cider we also brought up.
this was roughly the angle of elevation all the way up. steep but we managed without using microspikes at all since there were only a few by-passable patches of ice.

We all slipped and slid a decent amount, but for the most part the hike was pretty easy. Especially for me, since I was carrying almost nothing.
one of our trip leaders and another group member carrying the shovels for clearing the lake, the grill parts, and skates.
We reach the top around noon after two hours. We went really slowly.
frozen lonesome lake covered in snow!
we had a trap and put all our gear on it
then brought out the liquid (?) stoves which will work in the cold. they require priming to heat up the pipes before they will work.
hot cider on the lake with ice skating in the background!
shoveling to widen the ice skating rink path. you can see the grill to the left.
the Appalachian Trail crosses here!
and there's an Appalachian Mountain Club "hut" complete with wood stove, solar panels, and a bathroom with composting toilets and even toilet paper
view from the hut was gorgeous
swag for sale inside the hut
grilling those kebabs wait what is that
shrimp and steak kebabs? talk about gourmet trail food :)
foooooddd chowing down
skating on the lake
walking on the short trail around the lake.
it was really pretty.
snow fight!
sledding down the hill.
I was introduced to butt-sledding as well. Since it was often steep enough and we had waterproof snow pants, we could sit on our butts and slide down the trail. It was a LOT more fun going down the trail than up the trail!

near the end of the trip. it started snowing toward the end and the pretty views from earlier were gone. missing two members: me and the trip leader who made all the kebabs

More pictures here.

Gear-wise, I didn't need my big poofy jacket at all. I learned that if at the beginning of the hike up hill you are warm already, definitely delayer. I learned to wear gloves when sledding.

Holy hexapods, my extremities were sometimes the warmest parts of me! The uphill hike really helped, and I opened toe warmers but ended up using them to warm my fingers. The MITOC rental boots are amazingly warm compared to rain boots, which is what I wore last time. Below is a picture of 90% of the items I brought or wore on the hike.

cover your eyes if this is TMI. all non-cotton
Feet: liner socks, thick wool blend socks, sorel winter hiking boots
Hands: sometimes thin liner gloves (not pictured), sometimes thinsulate 40g gloves (not pictured), sometimes the black polyester ones pictured here although not really the last one
Lower body: non-cotton underwear, fleece leggings, base layer, I added snow pants (not pictured) for skating / standing around / downhill
Upper body: Base layer, patagonia alpine jacket I got for free with awesome zipper jackets, windbreaker
Head: cotton-filled knit hat thing, some polyester cloth I'm using to tie around my lower face when my nose and chin get cold
Essentials: Toilet paper, pads, fire starter, compass, headlamp, whistle, trail snacks, some bandages and gauze
Water: 2 liters of water. I used 1.25 liters from 10 am to 6pm.

I was pretty frickin' happy the entire trip because my hands and feet were so happy.

Also, in terms of waterproof shell layer which I still don't have, currently investigating making them from tyvek or other waterproof materials (e.g. kite material).

All-in-all a great trip. All the other hikers at the top marvelled at us deciding to bring an entire grill and charcoal and shovels and skates, reminding us that our trip was a little atypical.

Winter school has ended now, and time to plan some backpacking / 20 mile trips, in between fixing boats (future post, maybe in a few months).