There were tens of steps before that step in the actual Shark hand-vac fix-it effort, but it really should have been step one. For this post, let’s call it step n.
This was step n+1, which led to me assigning ‘whip out the multimeter’ as the new step one…
Yep. Didn’t need to do this step:
Didn’t need to do any steps < n actually. Just step n, which is now step one.
In summation, pull out your multimeter. The Shark works great, and can suck 20V and an Amp from any of the humidifier power sources scattered amongst the house. The power supply was borked, and I was maybe a bit too excited to crack something open than to debug properly. But anyway, we have designated step one, which is noteworthy.
I had a 10′ stick of 3/4″ copper pipe in the swan tron global HQ, so decided to make another end table.
Same amount of torch…
This time with more symmetry…
My wasn’t available for a stress test photo op, but it would withstand the weight and destructive damage of scores of toddlers. Probably.
Devices everywhere. With root.
Over the past month, I’ve tackled two root projects…Emma’s Kindle Fire HD, and my Asus Transformer. My motivation was pretty straight forward for each.
The Kindle worked perfectly fine but with an awful UI. The main use case is YouTube for a 2 y/o, and the stock launcher doesn’t do that well. Root and a custom launcher gets you there, so I did that.
The specific version of Fire I have was supposed to be tricky to root. There were forums of people bricking them, and the general workaround seemed to be reverting to an older firmware and then trying the root exploit…which seemed to be generally available as a windows executable. Not happening. I decided to give rooting a shot by pushing the su binary and Google apk set over via ADB on my Mac, which worked perfectly. Not sure what the issue had been. Play Store achieved…Nova Launcher installed. Happy 2 y/o.
The Asus was a different story…and the toughest root project I’ve had to tackle to date. The Transformer was a refurb from Woot, I think. I could look that up but I’m not going to. The combination of JellyBean and my particular firmware made any exploit attempts moot. I could not push via ADB, but the device acted like the files were invalid. Same method as pretty much anything else, but simply failing. I tried several methods I found online, but they all yielded the same outcome…except one really sketchy one.
I managed to use a really, really iffy Chinese root manager called 授权管理. The download and exploit were all in Chinese. Awesome. It worked, and I immediately replaced that with su. There was a good 10 minute window running who-knows-what. Sort of disconcerting. Bloatware wiped, and the tablet runs crazy fast finally. I’ve been checking my logs, and nothing fishy has popped up…looks like the hack worked.
At some point, I volunteered to make us some end tables for the house. It turns out that I really don’t like end tables…everything I came across was either way to big or too flimsy to take any kid abuse. The main level in our house is basically wide open, so keeping foot traffic lanes open is key. Long story short, I ended up in the copper area of Lowes and came up with a solution…
Maybe this is brilliant, or maybe my brain automatically looks for reasons to use my torch and Dremel. Probably the later.
Emma was willing to help with the stress test, but unwilling to put down the GBA…
End result:
This actually turned out fairly decent, especially considering the fact I did all of the woodworking on that chunk of poplar with a Dremel Multi-Max. My soldering skills are more tuned to electronics, so I burned the shit out of the bulkier joints due to lack of flux. Adds character, I guess.
I have another stick of 3/4″ copper, so plan on doing round two as a winter project. I keep thinking that some sort of electrolysis setup would be awesome for the copper cleaning phase, which could be a project in itself. This project would be a lot more intense with a car battery and a whole bunch of wire.
This whole thing began innocently. D-Rock had picked up an Arnova 9 G3 tablet, and wasn’t satisfied with a few things. I wasn’t satisfied that he bought an off-brand tablet, at a truck stop, for 300% its value without asking me for advice, but that is a different story. Maybe truck stop tablets are mostly great…I don’t know. I suspect most are like the Arnova 9G3: shit.
So, the main two gripes were
1) No Google Play
2) Screen finicky at best
I figured I could have both knocked out with three steps
1) Update firmware
2) Get root
3) Push Google* apps over ADB
Things got complicated by the fact that Arnova’s support site doesn’t include firmware for this device. I’m guessing that is intentional, as the factory method of deploying firmware updates involves placing an updated image on the root of an SD card and updating via recovery. That would be nice, but the Arnova 9 G3 has a bug wherein entering recovery mode spawns a black screen. That’s it…a blank screen.
My Linux machine wasn’t seeing the tablet as a USB device while in ‘recovery’ mode anyhow, so I couldn’t mount and do a dd command. Sort of shit out of luck for my normal way of doing this.
The next resort was to blow the cobwebs off Katie’s old XP laptop and install some software to flash new firmware via Windows software. Not my wheelhouse. I located a custom firmware allegedly compatible with the device, installed some drivers, and started flashing via the Rockchip Batch Tool. Midway through the flash process, the firmware push encountered a driver error. The result was the device being stuck in the killer ‘recovery mode’ screen…aka just a blank, bricked $350 paperweight.
Since the firmware was in a borked state, the reset and power buttons were useless. My last thought was to attempt to create a short in order to get the device to reset, and in turn for the XP box to recognize the device with a new set of drivers. Here’s to that…
access granted
I managed to locate contact points that did the trick…a small click and the device showed up as new hardware. I manually selected the drivers I tracked down, and bingo
login gained
Up and at ’em. The flash worked this time around. Worthy of mention, it worked with a nearly dead battery. I was lucky not to brick the thing again…not having a recovery screen makes stuff like that tough to gauge.
The screen seems to work a lot better with the new firmware and without the bloatware. One for two. Also, two for two
play granted
Let it go on record that this is the last time I intend to work on an Arnova device. Luckily, the camera was functional, allowing me to leave Derek some custom wallpaper:
*REDACTED*
Stop buying electronics at truck stops, D-Rock. Just don’t.
A few months ago, I picked up a killer leaf blower on Woot. Our yard is devoid of leaves.
Last week, I tried to fire it up to clean the pine needles off of our steps…no dice. The thing wouldn’t fire up. I checked everything obvious…pulled the spark plug to see if it was flooded…ensured the kill switch circuit was intact…checked the fuel line for a vacuum…nothing. I came to the conclusion that the issue was with the primer bulb, as it was ‘pushing’ but not ‘pulling’ air when depressed. I was getting a bunch of pressure in the fuel tank, but no fluid was making it to the primer bulb itself.
Time for leaf blower surgery.
well, this blows
I figured that I could take apart the air filter and figure out how to bypass the primer bulb somehow. It turns out that the filter assembly is pretty accessible. Directly behind the drop-down filter cover, there are two inviting phillips head screws…
well, screw this
I backed said screws out enough to see a disconnected tube staring right at me. Sure enough, it was the rubber tube that feeds the primer bulb. See below—-v
well, this is hosed
It looks like the engineers at Hitachi sunk a spring in the end of the hose to avoid kinks, and relied upon friction to keep the hose in place. It looks like a design flaw, as the two-stroke’s vibrations had the thing rattled loose in much less than an hour’s worth of operation time.
Quick fix though…the unit fired up immediately upon reconnect and priming. Back in business.
It might get old pulling the filter assembly off if this hose becomes a nagging issue. On the plus side, this thing was a steal and is crazy overpowered. I hate to say that I would still recommend this even with the flaw…it really does blow.
I got tired of poking around with LCD drivers with my Arduino. Time for a quick project to mix it up…staring at a surge protector always puts 120V on my mind. As it turns out, I tore apart an old humidifier a while ago on my ‘workbench.’ Monday night is Katie’s reality TV night…time for something sweet.
Investigating duty cycles on this plastic fan:
fan hack
I figured that I could horse around with my PowerSwitch Tail, and make it somewhat mimic a PWM 5V setup. I was curious how long I would have to ‘pulse’ the switch with juice to keep the fan constantly rolling. I started with it fully on, and kicked my ‘active’ duty cycles lower until I reached a nearly-continual state of motion. Pause for Arduino code snippet:
/*
PowerSwitch Tail Template
–
120V AC Driver w/ LED indicator
–
Joseph Swanson
2011 | https://swantron.com
*/
void loop() {
// Fire relay / LED
digitalWrite(13, HIGH);
digitalWrite(7, HIGH);
// Configure for “on” time
delay (50);
// Kill relay / LED
digitalWrite(13, LOW);
digitalWrite(7, LOW);
// Configure for “off” time
delay (950);
}
Pause for a small small-video break:
As that code and vid indicate, 1/20th of a second is all it took to keep the fan rolling, with 19/20th of a second idle. Not bad. Not sure what the takeaway is, but that is something to mention.
Put that knowledge somewhere safe, provided the question of humidifier fan duty cycles should spring up.
So, I am still poking away at various ways to interface between the bash and various web components. This stuff is still shaking out of my Twitter to CLI to LCD project. I have been using some of the usual suspects (wget, python url libraries, etc) in an effort to find one that is best suited to sniffing and parsing html info. I have found that writing to serial is the most fail-proof means of mashing around data quickly, so that is my inspiration.
Anyhow, I was horsing around with curl on the command line. It turns out, that spoofing user agents is pretty simple to implement.
Take this two-line one liner for instance:
swantron@Dell15:~$ x=10
swantron@Dell15:~$ for (( y=1; y<=x; y++)) ; do curl --user-agent "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" swantron.com ; done
In a nutshell, this is acting to snag this site ten times, with credentials indicating the machine is running Windows 2000 and MS Internet Explorer 5.1. The success is indicated by my server statistics:
Before: Windows 2000 IE 5.1
After: IE 5.1 on Windows 2000
Not too bad. I am considering using this as a testing tool for my site. Messing around with PHP and CSS…I can put together a quick regression using some legacy operating systems and browsers to make certain that I can still snag my content. Granted, the example setup may seem like gross overkill, but as those stats indicate, I do see quite a few requests from ancient machines. Makes you wonder..
Anyhow, this layout is in need of some serious testing. If anyone is interested in a copy, drop me a line. Cheers.
A while back, I collected my first Woot BOC. The prize crap in the bag of crap was, without any doubt, the radio controlled Batman helicopter. Great Scott…
shadowy
Wrong movie catch phrase, right? Well, so too are the aerodynamics of a helicopter SHAPED LIKE BATMAN. She is not a very sky-worthy vessel. The rotors push air directly into the clear plastic tab connected to his booted feet…it is not stable at all. Time to tear it up.
injured vet batman
I figured that I could remove the obstructive plastic and have a machine that would function well enough to navigate around the garage-shop. I removed the guys legs, which were light enough to be approximated with a zip tie.
As I had hoped, the new lower portion acted to dampen some of the erratic flight.
black hawk up
It was stable enough to allow me to snap that picture…not a possibility with the unmodified original.
Curiosity got the best of me, as it always tends to. I had to break this apart to see how it worked. I am sort of impressed I took the intermediate steps this time…most of my tear down sessions are done quickly and rabidly.
guts
This was sort of impressive, actually. The foam chest cavity was hollow to allow for the constituent components…including the mechanical gears. Light, protective, and durable…the triple threat. It was, until I removed it completely…
bare bones
There you have it…pretty basic design. Two variable motors, an IR receiver, a battery, a DC power jack, a switch, some caps and resisters, and a chip to run it. The IR sensor was hidden in Batman’s utility belt. Great Scott that is clever.
After all of that, this puppy still flies…
flight worthy
I was pretty gun shy to let that rip. It took a couple of dives in my first two picture attempts, wrapping the battery cord around the rotor assembly. It still works…pretty tough little guy.
Next step…I’m going to get into that controller. It acts as both the charging unit and IR sender, in addition to providing the variable control to the motors. It shall be awesome. Stay tuned.
I sort of forget what my original project entailed…something about tweeting via the command line, for Arduino purposes. You can pretty much just toss a bunch of words in a hat, and add ‘Arduino’ and ‘Command Line’ to them, and there you have one of my typical projects.
Anyhow, here we find ourselves. I am missing some dependencies with OAuth, but have managed to get twitter working from an interactive python shell:
command line-y
This section is as much for my reference as it is for public knowledge…I snagged the commands that I ran to snag my comments. It first prints swantr0n (my dev account) and then my primary Twitter feed, @swantron
swantron@mini9:~$ python
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:05:24)
[GCC 4.5.2] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import twitter
>>> api = twitter.Api()
>>> feedSwantron = api.GetUserTimeline(‘swantron’)
>>> feedSwantr0n = api.GetUserTimeline(‘swantr0n’)
>>> print [ x.text for x in feedSwantr0n]
[‘development account for @swantron | tune into http://t.co/SpDFBkK for projects’, ‘hello world’]
>>> print [ x.text for x in feedSwantron]
[‘@vftb …you better believe it’, ‘Twitter Project Teaser : http://t.co/7ZrOLUn | one step closer to tweeting from the #CLI … might take a run at make it tweet’, ‘Might need to implement some sleeves into my wardrobe… @adafruit just flipped the script with open source cuff links’, ‘unsafe at any speed… updating #ubuntu on the road http://t.co/Q8gfc56’, ‘Upgrading Mini 9 to #Ubuntu Natty http://t.co/7yT9w81 | posting to kill time… review here ( http://t.co/RM675lX ) lunch-aft on the morrow’, ‘https://swantron.com/basic-mower-cord-repair/ #DIY lawn mower repair from a #math major. spoiler: it works’, “#arduino no you didn’t https://swantron.com/html-to-python-to-arduino-to-lcd/ #LCD project, stepped up a bit”, ‘working on a python script to dump info from web to LCD https://swantron.com/python-teaser/ #arduino’, ‘http://youtu.be/MpomhE6dgww video of #boc unboxing (for the win)’, ‘#woot bag-o-crap unboxing @ https://swantron.com/woot-boc-unboxing/ not too shabby’, ‘https://swantron.com/compiz-error-in-ubuntu-natty/ still finding some compiz issues in #ubuntu 11.04’, ‘#Arduino project @ https://swantron.com/command-line-lcd-arduino-interface/ | driving LCD screen via command line’, ‘@RobotGrrl… what version are you running? I had no problems with IOIO / Droid 2 (froyo 2.2)’, ‘Easy LCD #Arduino Display | https://swantron.com/easy-lcd-arduino-display/ | feels good to have a warm soldering iron and functional hardware’]
>>>
I will keep plugging away until I get this thing hammered out. If not, I can print this suff to my LCD for a real-time Twitter display. Could be cool either way.