Saturday, April 30, 2016

Racechip tuning box - part 2 - reverse engineering

See my first article for a short review and teardown:
http://hackcorrelation.blogspot.de/2016/02/inside-stuff-racechip-car-tuning-thingie.html

First off let me start by saying I consider this fair use, as the instructions and website do not explain what the settings do, how the unit actually functions and what effects it can have. The description below refers to a single-channel Diesel engine (single common rail).

Settings

First off, most of the users will just want the simple explanations, here's a graph that should be in the manual:



The chart above shows 4 possible settings and their effects.
The first rotary encoder controls how much 'extra power' is requested. See 9E vs. BE vs. 4E
The second rotary encoder controls the RPM high range (endpoint). See BE vs B7.
The encoders go from 8 (minimum) through 9, A, B, C, ..., F, 0, 1 ... 7 (maximum).

Tuesday, April 26, 2016

Ricoh GR sensor dust cleanup

I bought a cheaper-than-usual Ricoh / Pentax GR APS-C camera on ebay that had a few minor issues.

One of the most visible ones was dust on the sensor, so I will show you two methods that I've used to clean it up - the hard way first, followed by the easy way.

First, to get the position of the dust spots a shot was taken with F/16 against a white background. The exposure was manually set to be as high as possible (while still retaining information), pre-focus was set to the closest position (macro).

The resulting image was then adjusted in Irfanview (Auto adjust colors) to get the highest contrast.

F/16, 1/3s, MF to closest position

Preparation


You need a very clean room, no dust, have a dust spray available and preferably wear gloves to avoid getting fingerprints.
All parts that cannot be cleaned after assembly (LCD cover backside, LCD, sensor) should be placed facing down on some lint-free material.
While removing the screws take note of their length, color and thread style.

The hard way - removing the sensor


Removing the back cover


First you need to remove the large rubber hand grip. Start from a corner and slowly peel it away, trying not to stretch it. Do not remove the two screws visible below, near the lens, it's not required.


Wednesday, April 6, 2016

Odys Winpad V10

In search of a cheap and light notebook that I can use it for light tasks - such as Udacity courses and connecting lab equipment - I stumbled upon Odys Winpad V10 on offer at Amazon.
While the Lenovo Miix 830 seemed like a good deal at the moment it suffers from poor battery life, limited USB connectivity while charging and lack of keyboard+touchpad. Most Bluetooth keyboard with trackpad on market now have issues and are overpriced, so the Odys seems like a good fit.

This is a short review followed by a look inside the 'docking' unit.

Initial impressions


The unit is very heavy for its size, ~670g for the tablet and ~670g for the keyboard. The keyboard/touchpad base does not contain any other batteries or peripherals.

Battery life is pretty good, I got >6h for light work and the battery bar estimated >14h while idle and connected to the HDMI output with the tablet screen off.

The built-in touchpad is pretty bad - the bottom touch area is reserved by the left and right mouse buttons. Internally, they are triggered by a single switch ('clickpad') so the unit knows whether the left or right button is pressed by the touch position. Two-finger scrolling is a fixed feature and cannot be disabled or modified - the scroll direction is 'wrong', i.e. the Mac way.

The keyboard has good feedback, the keys have little sideplay and touch-typing is pretty comfortable. The layout is almost standard (Macbook-based), with the arrow keys controlling Home/End/PgUp/PgDown using the Fn modifier. No backlight unfortunately.

Sound is abysmal, the speakers are tinny and directed towards the back. The bass response can be improved with the free APO Equalizer and the latter issue can be worked around by cupping your hand on the side of the unit so the sound is 'redirected' towards you.




The 10" IPS screen has a good color reproduction and viewing angles. I've ran a 3-hour calibration procedure using an i1 Pro calibrator under dispCalGui and there were no discernible corrections.
At the minimum brightness the screen is too bright for night use so I use f.lux to work around that.

WiFi connectivity is spotty, but works decent enough (54MBps max.) when no USB is attached. However, when a USB mouse or other peripheral is used on the OTG port the WiFi drops out every couple of minutes for a few seconds. This is consistent and I haven't found a way around it.

The overall build quality is pretty good, there's no flex to any parts of the unit. Not surprising, given that the tablet part has a solid piece of glass and the base part is a solid piece of metal.

The charger (5V, 2.5A) is small, has a 90-degree plug with a standard connector. I haven't measured the time it takes to charge from empty to full but should be around 5 hours with no use.

The aspect is pretty utilitarian and old, reminding of the first-gen Atom notebooks (eeePC) with a fingerprint-happy grippy texture. The hinge requires a great amount of force to fold, impossible to do one-handed.


Performance is the same as expected with Atom Z3735F units with 2GB of RAM. I haven't upgraded to Windows 10 and don't intend to. Suffice to say that it seems to run fine for basic office tasks and the occasional light games. Frontend web development (nodejs, Chrome dev tools) run decently.

Inside


I did not bother taking apart the tablet unit as I assume it would be identical to the Miix 3 teardown I did earlier since it has the same hardware. At 670g the tablet unit has a better screen-to-weight ratio than the Lenovo and seems to provide a better battery life.


The base comes apart by removing the 4 visible screws plus another 4 screws hidden beneath the rubber feet.

The sheet metal backplate can be removed by messing with the 8 screws, 4 of which are located near the hinge.

The base [hinge] is connected to the tablet through some magnetic stubs and 5 pogo-pins.



I initially thought the pins are just a USB-passthrough but I now assume it's just an SPI extension port, with 3.3V power and signaling.

The base plate is surprisingly thick and heavy but serves several purposes: flex-free keyboard input, rigidity for the base when the 'laptop' is opened and transferring the load of the hinge to a larger surface area.



The rest of the base has a matrix-driven keyboard and the SPI(?)-driven touchpad going to one black blob.



The lower-left side has another metal plate, probably for adding weight so the laptop does not tip over so easily.

The lower-right side hides a magnet that signals the tablet unit when the clamshell is opened or closed.



Surprisingly, the keyboard has an additional backing metal plate:




At this point I've tried removing the thick sheet metal and found the unit was happy to work like this, except the touchpad. I was also worried that the keyboard might crack when opening the clamshell. However this brought the weight down to 1100g.

A close-up of the touchpad with a ruler, the two points would need to be connected with some other kind of plate in order to get the clickpad working again. For normal operation the touchpad can work with only touch input, so it's not really required.



The chip driving the touch input is a Cypress CY8CTMA140-LQI 2-finger capacitive sensing solution. It can function as an SPI or I2C slave but I assume it's used in SPI mode.
I don't have access to the full datasheet but it seems to provide the HID output while taking into consideration the clickpad button, so probably a reference design.
Unfortunately it cannot be configured (yet) in the way that Synaptics touchpads are.


By the way, the tension of the hinge can probably be adjusted by untwisting of the self-locking nuts located at the ends of the rotating rod.
However, you should find a way to lock them in place (Loctite) since the parts will eventually wear out.


Edit Feb 2017: I had made several changes to this unit

  • reduce weight of unit by dremeling(?) off parts of the keyboard backplate
  • reduce electrical noise of the keyboard dock (5-15kHz) by replacing or resoldering ceramic some capacitors
  • disabled W10 services like Defender, Telemetry, auto-update to improve responsiveness
  • used f.lux to decrease brightness at night
  • burned out the USB port with an Arduino - turns out the port is not protected, but there should be an extra one on the dock connector