Small Phone Review: Sony Ericsson Xperia Mini cell phone

I recently purchased a Sony Ericsson Xperia Mini ST15a Cellphone to see if I would like it enough to replace my HTC Aria / Liberty A6366. (I did a review of the aria here.)

Form Factor:
I specifically picked the Xperia Mini because it is a small phone. Small enough to fit in my backpack’s older style cell-phone pocket. Small enough to (easily) fit in my front pocket if I want to carry it around without my backpack. From an outline standpoint, it is actually smaller than the HTC Aria, (and weights a half oz less) but it is almost 50% thicker (only 16mm or 0.63 inches). I was slightly worried that it might be a bit too thick, but after using it for a few days I have decided that it’s fine. The extra thickness is nice to keep it from disappearing in my hand…it’s a VERY small form factor for a modern android smart-phone.

Buttons & Ports
The audio jack comes out the bottom of the phone, which means I have to put it in my backpack’s cell-phone pocket upside down when listening to music with headphones. The micro-USB port is also on the bottom, and covered by a small removable plastic tab that is “hinged” to the phone with a small piece of plastic that goes into a hole. I doubt that the plastic tab will last for more than a few months, as I plug in the phone to charge at least twice a day. The USB port has a “square” appearance, and does not look like a micro-USB on first glance. You have to look inside of it to determine which way is “up” (it’s “upside down”…), but a standard micro-USB cable does work with it. Not major issues, but I don’t see the point of having a removable cover for a port you are going to be using multiple times a day.

A volume up/down rocker is on the top right side, and the bottom right side has a dedicated camera button. You have to long-press the button to auto-start the camera application, I have never started it by accident, and it’s nice having a dedicated button to pull it up. The power button is on the top left.

The battery cover/back of the phone snaps on and off from the side and wraps around the back of the phone. You have to pull the battrey to change the SIM card, and the back cover has a small plastic tab that holds the MicroSD card in when the cover is on. (You need fingernails or tweezers to remove the microSD card, it does not have any push-spring-return mechanism.)

The phone’s speaker, LED flash, and camera lens are on the back.

Screen:
The screen is just slightly (0.2in) smaller than that of the Aria, and has the same resolution (320×480). Even at the full brightness setting it doesn’t appear to be as bright as the Aria’s screen, but I haven’t noticed it being too dim either. According to the Internet, the glass is “scratch resistant” but not “Corning Gorilla Glass”. I typically use a plastic screen protector on all of my phones (at least for the first year or so) and keep them out of pockets with keys, so the exact type of glass probably doesn’t matter. Percentage wise, a much larger portion of the front of the Xperia is screen.

Software/UI:
I purchased a phone that was not carrier branded, so the only pre-loaded apps it had came from Sony Ericsson. I was able to remove, disable, or hide all of the annoying pre-loaded offers and things I didn’t want, and almost immediately downloaded the Sony Phone Companion software for my PC to upgrade the phone to Android 4.0.4, so I can’t comment on the original Android 2.x OS that the phone originally shipped with.

Android 4.0 on the phone is as good as my CyanogenMod ROM on the Aria. My phone has full support for setting itself up as a wifi-hotspot for wireless tethering. (Perhaps carrier branded versions of the phone have that part of android disabled?) It also supports various VPN’s out of the box (noticeably lacking is OpenVPN, I had to set up a PPTP server at home, which was actually a lot easier than getting an OpenVPN server working). In short, the stock OS/ROM did everything I want from a phone, so I don’t anticipate having to root the phone and install CyanogenMod on it anytime soon.

Freedom/ROM Support
However, I am happy to report that CyanogenMod did support this phone (I use the CyanogenMod supported phone list as a pre-filter for any phone shopping, just in case I don’t like the default software the comes with the phone.). I am even happier to report that Sony Ericsson fully supports you voiding your warantee by providing an online service that allows you to unlock your bootloader so that you can replace it with anything you want. This feature is what made me specifically decide to give the Xperia a shot.

Camera/Flash:
I like having an LED light on the back of the phone. I installed an application that lets me switch it on and off from the home screen. Even if it didn’t act as a flash for the camera, a flashlight seems like such a useful thing to have built into your phone I don’t know why all phones don’t have them. I haven’t actually evaluated the phone’s camera yet….

The biggest negative of the phone is the limited memory footprint, and with modern applications (I’m looking at you Google!) starting to take up more and more space, I find myself having to choose what to un-install just to be able to install updates on other more critical applications.

Using a Raspberry Pi as a RepRap print host with webcam

I set up a Raspberry Pi as a print host for my RepRap (using the Pi Camera Board as a webcam to view the print status). Here are my summary steps:

  1. Install Rasberrian and update it.
  2. Configure your system to enable wifi (if used) and camera board (if used) and enable the SSH server if you want to remotely administer the pi board using the “sudo raspi-config” command (you may also want to tweak your overclocking settings here, I’m using “Moderate”)
  3. Install OctoPrint following directions here: https://github.com/foosel/OctoPrint/wiki/Setup-on-a-Raspberry-Pi-running-Raspbian
  4. If you have a camera board, you may need to update your pi firmware (sudo apt-get install rpi-update; sudo rpi-update)
  5. To get the camera board set up as a streaming webcam, install mjpg-streamer experimental version from here:
    “git clone https://github.com/jacksonliam/mjpg-streamer”
  6. You can compile it on the Pi using these instructions:
    http://www.instructables.com/id/Create-an-internet-controlled-robot-using-Livebots/step5/Get-the-webcam-streamer-for-Raspberry-Pi/ (ignoring the step to download from sourceforge.net)
  7. Install the plugins to /usr/local/lib with “sudo make install”. Copy the www directory to the same location.
  8. Start the webcam streamer: mjpg_streamer -o “/usr/local/lib/output_http.so -w /usr/local/lib/www” -i “/usr/local/lib/input_raspicam.so -x 640 -y 480”
  9. Start OctoPrint (“OctoPrint/run”)
  10. Test it by pointing your browser to your raspberry pi’s IP address, port 8080 for the mjpg-stream and port 5000 for OctoPrint
  11. When all that works, put some commands in your /etc/rc.local file to start them both up whenever your Pi boot sup. I used: su pi -c ‘/home/pi/OctoPrint/run’ & AND su pi -c ‘/usr/local/bin/mjpg_streamer -o “/usr/local/lib/output_http.so -w /usr/local/lib/www” -i “/usr/local/lib/input_raspicam.so -x 640 -y 480” ‘ &

My Thoughts: Everything works great on a wired (ethernet) connection, but my wifi adapter is performing extremely poorly for streaming video of the printer. Also, why can’t the camera board just have V4L support out of the box?

Rostock-Mini Tweaks

I brought my rostock-mini 3D printer home so that I could take it to a class, and while I had it here, I decided to update a few minor things.

highboy installed

First, I swapped out the stepper motor brackets (which also serve as the legs) with three I had designed and printed that were 20mm taller. I have a full RAMPS board under the base plate of the rostock-mini, and although it fits, the fit was “very close”. I didn’t like the fact that my stepper motor wires would touch the surface the printer was sitting on, and the limited airflow paths. This extra 20mm really helps things out, and also opens up the possibility of installing an LCD control panel under the base plate in the front. (If I can figure out how to avoid my bed leveling knobs.)

Second, I upgraded the springs on my adjustable print bed to some that were a bit taller and a bit stiffer. My overall build volume was shortened from 187mm to 185mm, but now I have a lot more range for adjustments and the bed is more rigid (while still allowing the print head to push the spring loaded bed down if it crashes horribly).

wiring harness
Third, I wrapped some plastic spiral wire harness wrap around the wires leading down to the print head, to give them a better visual appearance.

bowden tube ptc
Finally, I changed out my bowden tube from using M4 nuts to hold the tube to using screw in Push To Connect adapters. The goal was to allow me to remove the tube from either end without having to unscrew the plastic part holding the nut in place. However, the cheap PTC adapters I bought appear to be single use, in that they don’t release the tube reliably without breaking, so basically it just makes the bowden tube look slightly more professional.

Using OpenSCAD to teach Computational Thinking

I am using the OpenSCAD parametric 3D design tool to teach students about programming concepts such as conditional execution, encapsulation of code, and iteration. Students are motivated by building visual objects, and if you have access to a 3D printer the students are very motivated to get their part printed.

Here are some documents I share with educators to be used to learn/teach about OpenSCAD and 3D printing:
Outline of the class

3D printing vocabulary

Using OpenSCAD
OpenSCAD-Examples

Student Assignment

Fixing the problem where gparted (parted) won’t see a partition due to a mac partition table

I purchased an external HD that was “mac compatable” but I used it with a linux system and used fdisk to put two partitions on it.

Later on, I wanted to use gparted to easily resize one of the partitions, but it refused to see any partitions at all on the disk.

fdisk could still see them just fine, but reported “Partition type: mac”

It turns out that the problem was that the disk originally came with a mac partition table in addition to (right after) the regular MBR Master Boot Record.

I noticed that the first partition didn’t actually start until 63 sectors into the disk (at the beginning of the 2nd cylinder).

Device Boot Start End Blocks Id System
/dev/sdb1 63 1171893554 585946746 83 Linux

So I used DD to copy the first cylinder to a file:

sudo dd bs=512 count=62 if=/dev/sdb of=firstCyl.bin
62+0 records in
62+0 records out
31744 bytes (32 kB) copied, 0.000715733 s, 44.4 MB/s

Looking at that bin file in an editor, I saw the string “Apple_partition_map” which is a dead givaway of what the problem was.

So, I wrote out all zeros to the first cylinder:

sudo dd bs=512 count=62 if=/dev/zero of=/dev/sdb
62+0 records in
62+0 records out
31744 bytes (32 kB) copied, 0.00165608 s, 19.2 MB/s

And then I copied the first sector (512 bytes) back from the firstCyl.bin file I had made:

summetj@constantine:~$ sudo dd bs=512 count=1 if=firstCyl.bin of=/dev/sdb
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.00183878 s, 278 kB/s

And it worked! Now gparted is no longer confused by the apple (mac) partition table that I zeroed out, and sees my partition.

MakerGear Hot End Molex Connectors

mg_plus_hot_end

I recently replaced a MakerGear hot end with a different model (MG Plus) but wanted to maintain the same connectors (used for the resistive heater and the thermocouple). The MakerGear connectors had a positive locking clip, while the JST connector that came with the MG Plus thermocouple was only friction fit.

FYI – The MakerGear hot end and Prussa Mendel kit I have use the following Molex Micro Fit 3.0 Family parts:

  • The female connector (with the bump) is a Molex 0436450200 (DigiKey part number WM1845-ND).
  • The male connector (with the hook that catches the bump) is a Molex 0436400201 Digi-Key part number WM1855-ND
  • You will also need the associated female and male crimp connectors for the internal contacts: Molex 43030-001 tin 20-24 guage wire (DigiKey part: WM1837CT-ND CONN TERM FEMALE 20-24AWG TIN) and Molex 43031-007 tin 20-24 gauge wire male terminal (DigiKey Part: WM1841-ND WM1841-ND CONN TERM MALE 20-24AWG TIN)
    ( You might want to get the crimp connectors for smaller wire (higher gauge numbers) depending upon what wires your thermocouple uses, but I got 20-24 gauge for use on power connections and just soldered my thermocouple wires into them.)

The cartridge heater on the MG Plus nozzle came with enough wire to reach all the way down to my RAMPS board so I ended up only using the molex connectors for the thermocouple, and running the resistive heater wire all the way down. This left me with a set of wires going to my hot end terminating with a molex, and I eventually plan on using this for an “always on” fan for cooling the top of the hot end (as opposed to the “under RAMPS control” fan for layer cooling).

Bubble Display Jr – Designs

As part of building the bubbleDisplay I made a lot of prototype tubes, nozzles, and even a small prototype display before actually committing to building the final product. This left a lot of random bubble display type parts laying around my garage. I hate throwing things out, and I wanted to have a bubble display of my own, so I’ve started to design a BubbleDisplay Jr that I can make out of leftover parts. Because I’m limited to stock on hand, I couldn’t make all of the tubes the same length (unless I wanted them all to be 9″ tall….) so I went with a Superman Memory Crystal style sculpture:

cadScreenshot

Of course, since I have a 3D printer now, I decided that printing the bracket to hold the air hoses and LED’s would be the way to go:

bracketOpenSCADSC

There….now you can’t say I don’t plan out my projects before starting them.

Bubble Display Overview Video

I spent a lot of time last summer and fall building this 62″ wide bubble display. So much time that I didn’t get a chance to edit together and post an “overview” video showing the whole thing in action. Well, here is that video. If you are looking for more build details just read all my posts tagged with “Bubbledisplay”. If you just want to sit back and watch the whole thing come together via videos, start watching my “BubbleDisplay” channel on YouTube At the beginning.

Building a Signal Generator – Paper Prototyping instrument panels

finished_box

To test the resonant frequency of a Tesla coil or other resonant circuit you need an oscilloscope (which I have) and a signal generator (which I didn’t have). I was able to follow these instructions from RM Cybernetics to build one from a 555 timer and use it to test my primary and secondary.

new_pot

The only modifications I made to the circuit was the addition of a toggle switch so that I could use two different capacitors, giving a “low” and “high” frequency range (plus a “air gap” capacitance that basically runs the 555 as a 2Mhz sine wave generator). I built the circuit on a protoboard that came with a box, and decided to use a laster cutter to make the instrument panel. To do this, I opened up Inkscape to design a control panel using vector graphics. I would print each design out and tweak it until it fit my box and circuit perfectly. I then tested various dial positions on my 10K audio scale (logarithmic) pot using my oscilloscope to mark the approximate frequency on the dial. After a few trials, I was able to laser cut the design onto a piece of 1/8″ craft plywood to get the finished product.

paper_prototying2

Yoda Bust(s)

I have been printing Yoda busts on my Rostock Mini.
yoda_on_printer

The first (small) sized one printed very well, but I had some problems when I tried scaling up to 160% size.
largeYodaHead

If you look closely, it has a small discontinuity just above the eyes. (It looks like the top of his head was sliced off and put back on slightly “off”.)
yoda_medium_slice

It looks like one of my axis lost a step, so I ran through various diagnostics (more airflow over the stepper drivers, higher current to the steppers, upgrading my slicing software, etc) and eventually the problem got worse:
lobotomized_yoda

Then I heard some squeaking from my 3D printer and started to move things around manually to isolate it and I realized that my straight rods and linear bearings were dry. The final solution was to oil my straight rod and liner bearings, although I can’t confirm that the upgrade to Slic3r didn’t also help things out. All in all, it only took four tries to get things right:

four_yodas

So now I have a large yoda head to float on my desktop levitation box:
floating_yada_head