Friday, June 5, 2015

These are not the droids you are looking for...

I realize a lot of people still visit this page, even more than the updated one.
Here's the list of articles you have been missing on:

This domain existed only because of a spelling error: it's written Correlation instead of Corellation.
If you could just, go ahead and update your bookmarks, that would be great.

Friday, September 13, 2013

Moving to new domain -

I've persisted long enough in this grammatical error so it's best I rip the band-aid quick and just switch to the correct domain. As soon as I can figure out how to do it I will add redirects so that all old pages point to the [same] new pages. All new material will be published on the correct domain.

Thursday, August 8, 2013

Etching boards for SMD - follow-up on precision

I wanted to see the limits of the current method so I set out hunting a board template for that.

Wednesday, August 7, 2013

SMD breakouts and etching tutorial

Completed prototype board
For today I've planned some easy-reading and low-tech tutorial.

The bane of a lot of software guys is moving up from the ubiquitous breadboard to a self-made PCB. The other common fear is switching from through-hole parts to surface-mount technology.

Friday, August 2, 2013

Follow-up on 2x DVR repair

I was scoping around to see what caused the 2.5V supply modules to go bust.

Just as a reminder, they are pretty generic modules, with a 5V preregulator that steps down the 12V input. The 5V is then dropped through linear regulators to three supply rails of 1.8V, 2.5V and 3.3V. In this application only the 2.5V output is being used.

Thursday, August 1, 2013

Ancient DVR teardown - Dallmeier DLS 6

I just bought a cheap broken DVR from eBay and thought to share pictures from inside the unit since there aren't any on the Internet.
It was a state of the art unit at the beginning of 2000, probably costing several thousands of dollars. Some documents and review from that time praise the wavelet-type encoding quality and savings, custom-made ATX power supply and build quality. I beg to differ on a few fronts.

Wednesday, July 31, 2013

Saeco Talea - automatic coffee machine - teardown and analysis

I got this coffee machine from work because it was a maintenance nightmare. I'll tear it down, do the analysis on how it works and detail on some design problems as well.

It's going to be a rather long post with quite a lot of pictures. I've marked all the detected problems with an asterisk "*", I'm sure some have been forgotten as this teardown was performed 6 months ago.

Wednesday, July 24, 2013

Building a new firmware for the Senseo coffee machine

This is one of those projects that just takes forever to finish, I must've started this 6 months ago.

This part will describe all the hardware and various techniques used to figure out which signal goes where.

Why do this? It's an improvement on the original firmware and an exercise in consumer product design. My goals will be listed in the second part of this post.

Tuesday, July 23, 2013

Android game automation - part 2

In the previous post I touched upon the fact that simulating hardware input events was very slow and not really suited for fast, repeated actions.

The second approach is based on MonkeyRunner, a free library included with the Android SDK. It is able to talk to the Android device using a Python-like language.

Part 1:

Monday, July 22, 2013

txtr Beagle - native code analysis

I've been avoiding to do a write-up on this section for several reasons.
First, I'm using the IDA disassembler which is pretty expensive and thus quite extensively pirated. Unfortunately there are no freely available tools that I know of that can perform this task.

Second, I really suck at assembler and C so might not be the best person to do these analysis. I've used the freely available Thumb decompiler plugin which is able to translate assembly into readable code but only in about 30% of the cases. There's no substitute for knowledge, it seems.

Part 1:

Part 2:

Part 3:

Part 4:

Nevertheless, quite a few people have expressed their problems in being able to work out what compression has been used and the window size so this will aid in future reverse engineering.

Once the file has been loaded, depending on the IDA version used, you might not see the offending function listed in the functions window. A simple search takes care of that:

2x DVR repair

I've gotten two DVR MPEG4 recorders for free because they were labeled as "unfixable". Both of them were diagnosed with "no video" or "video problems".

 Ever since I've had them I had suspected the 2.5V supply to be at fault but had no oscilloscope nor variable PSU at hand, so they have been sitting in my drawer for a few months.

It was a 10 minute job:
- probe the 2.5V output and see it oscillating between 2.4 and 4.2V
- probe the PAL/AV output and see the scope could not get a lock even though it looked almost ok
- bypass the supply and feed 2.5V from a variable PSU
- probe and do a quick run to see everything is stable.

I wish I could do a burn test but my trusty variable PSU is a linear one, getting quite hot at this voltage drop.

Sunday, July 21, 2013

txtr Beagle - card parser

I started playing around with the SD card contents to see how I can parse it and verify the functionality.

The result is a small Java program that is able to read the contents page by page and display it on a little panel. You can type the page number and press <Enter>, you can use arrow keys or mouse wheel to scroll.

Friday, July 19, 2013

Power supply project - part 1

I've had a car charger break down on me and haven't been able to fix it. It has a sturdy metallic case and the transformer is still fine.

The idea is to use some existing PSU modules I have laying around and fit those into the case, providing a readout on the display. Since it has to have a microcontroller (overpowered if I might add) it can also do some basic logging, over-voltage and over-current protection.

I really hate designing my own supplies since there are so many ready-made around which are much better than I could ever accomplish.

Experiment - USB from 1V instead of 12V

This experiment was done about a year ago so I don't have all the details at hand. I wanted to see if a car USB charger can be modified to run on 1-3V.

The car charger is based MC34063 chip which can function in both buck and boost configurations.

Household hacking

Jack bottle to soap dispenser

Thursday, July 18, 2013

txtr Beagle teardown

As you might now the txtr Beagle is the new kid on the block: the cheapest and lightest ebook reader around. Or at least that's what the marketing says.
I bought mine for around 20E, which is quite a bit more than the 10-13 EUR they were aiming for. I guess that's the price one must pay to stay on top of technology.
The main reason I bought one was to have some kind of remote display for use for example as a wall clock, To-Do board or bike GPS readout.

Part 2:

Part 3:

Part 4:

Part 5:

It's a bit hard to take apart since everything is glued together. There are two TR5 screws but they serve no other reason than to annoy.

First, some information on how it's supposed to work:
  • - you bind the reader via bluetooth to a phone or tablet
  • - you download the book on the phone, set the font size and upload it to the reader
  • - each subsequent font change requires reuploading the book
  • - the reader can only hold 5 books, though it's supposed to have 4GB of memory
  • - one-year battery life on two AAA cells

It's obvious that the books are pre-rendered on the phone prior to being uploaded because it takes about 2-5 minutes to upload a text-only book and the reader has instant start-up, so no parsing is involved.
Before tearing it down I assumed a low-cost ARM processor, some soldered down flash memory, a common bluetooth chip and the eInk controller along with the usual host of auxiliary components: DC-DC converters, breakout and testing pads, perhaps some level translators.

Inside there is a bit of surprise: a microSD flash card along with its socket. I can't imagine how this is cheaper than just soldering a flash chip, but there you go.

My assumptions seemed to be correct, there is low-cost LPC ARM Cortex M3 uC, no RAM chips, the 4GB card raw image compresses to 40MB.

Android game automation - part 1

First: this is borderline immoral so don't ask for any source code or help.

My friend got me into a repetitive Android game that I will not name here. Basically it's a different kind of Farmville (I assume) that requires you to mindlessly click 'animals' to 'farm' money from them. On top of that you have to also activate two type of farms in order to feed the animals and evolve them. Feeding is not a requirement, so it will only be done in the second iteration of this automation.

As a rule of thumb any task that takes you at least 5 minutes every day for a year should be automated if it could be done in less than 20 hours.

iPod classic - SSD conversion

In a previous posting I described how I got this iPod Classic 6G working again by just using an older 1.8" drive.
I did not provide any pictures, so here are two of them with the "roadkill".

txtr Beagle - Part two - software


Thanks to Moritz I was able to connect to txtr via the Bluetooth SPP profile. To do this you need to disable the txtr app that is installed on your phone and install any app that does Bluetooth serial debugging. I used "Bluetooth SPP", available freely on the Play Store.

UPDATE: Andreas Schier has written an open-source java toolchain for Beagle:

UPDATE: Florian Echtler has built two Python scripts, one emulating the server and another one for the client. The server allows you to send images to your reader:

Turn on Bluetooth on the phone and Beagle, start the app and choose "Real-time mode". Inside the prompt you should type "HELP" (all caps) followed by the enter key (not "Done") so a newline is inserted after the command. You should see a listing of available commands.
Here's the [obscured] output from my device:

Bluetooth connect OK.

Bluetooth Protocol v8

Accepted commands:


 Issuing the INFO command:
FIRMWARE ID=Beagle-F-U BUILDDATE=18.April.2013 GIT=cxxxxxx IAP=0 BLUETOOTH=u.3

DEVICE SERIAL=8888888 BDADDR=00:xx:xx:xx:xx:xx DISPLAY=V110

# bookselect button activated




 Issuing GETBOOKS:
BOOK ID=1111111111111111 FIRSTPAGE=1 LASTPAGE=19 CURRENTPAGE=19 AUTHOR=sgsdfgsdfgdgsd TITLE=sdfgsdfgsdfgsdfg
BOOK ID=888888888888888 FIRSTPAGE=1 LASTPAGE=183 CURRENTPAGE=5 AUTHOR=adfrgsdfgsdfgsdfgsdfgsdfg TITLE=sdfgsdfgsdfgsdfgsdfg


BOOK ID=888888888888888 FIRSTPAGE=1 LASTPAGE=447 CURRENTPAGE=321 AUTHOR=sdfgsdfgsdfgsdfg TITLE=sdfgsdfgsdfgsdfg


 Issuing MEMORY:

MEM TOTAL=8192 FREE=2168



txtr Beagle - part 3 - storage and transfer protocol

I'm wrapping this up for now as one of the COG (chip-on-glass) devices has apparently fried and the reader has sold out.

UPDATE: Andreas Schier has written an open-source java toolchain for Beagle:

UPDATE: Florian Echtler has built two Python scripts, one emulating the server and another one for the client. The server allows you to send images to your reader:

Part 1:

Part 2:

Part 4:

Part 5:

I've scratched some of the white glue-like stuff away but the burn can be seen inside the glass. It was drawing abour 1A upon changing pages and the COG was getting very hot.

Wednesday, July 17, 2013

Moving on to business

After a few hours of hunting templates I've finally settled on one that should be easy on the eyes. Just a matter of preference. This is not the final choice but until I learn the WordPress system it will have to do.

I have about 20 articles waiting to be written, all the pictures are already taken, but I don't know where to start:
- custom dual power supply with Stellaris (Tiva) Launchpad diagnostics
- marathon repair of 30+ out-of-factory items
- custom firmware for coffee machine
- lessons learned from reviving SLA, NiCd and LiPo batteries
- various laptop repairs
- workbench build log
- automating a native game on Android
- sending Android navigation instructions to a Bluetooth device
- reverse engineering Java and Android apps (one at a time)

On top of that there are a lot of smaller articles in the loop, basically tips, mostly useful for beginners (diskless/thin clients, workbench organization, protocol debugging, Android development, teardowns etc.).

I'll try to cover all the ground above in a systematic manner, meaning that longer articles will need to be split and mixed with others.

Sunday, June 10, 2012

Nec VT440 fix

I've bought a NEC beamer on the cheap (~30E) which ran for about 1 second before becoming dead.
In the interest of reference I'm attaching pictures taken with a phone camera so that other people know what they are getting themselves into.

Nec VT440 fix

I've bought a NEC beamer on the cheap (~30E) which ran for about 1 second before becoming dead.
In the interest of reference I'm attaching pictures taken with a phone camera so that other people know what they are getting themselves into.

iPod classic transplant

A while ago I was using my iPod video (5.5G, 30GB) with a self-made aux-in on my car stereo.

Unfortunately my electronics knowledge was even more limited at that time and I did not realize the tape head was biased at ~12V so I connected the ground pin of the line-in directly to the common/ground of the tape head. This caused my iPod to reset each time I tried charging it with the jack phone connected.

A few months later I switched to a 12V power hub which included a really crappy USB port as well. The moment I tried to charge the iPod while playing smoke came out of both the supply and iPod.

In hindsight this was a stupid idea since the ground voltage of the charger was at 0V and the ground voltage of the ipod (headphone and usb) was sitting at 12V (it should have been 6V but the cassette player had a boost supply).