Little bit of thermal compound…

My 3 yr old Thinkpad T60 overheating... no more :). Streaming video at 360p full screen caused my CPU (fixed at 1 GHz) temperature to shoot up to 93C in just 10min. By using new thermal compound, even after 30min of running the temperature is down to 60C! The idle temperature is now 42C (before... Continue Reading →


Freaky Assembly?

After a looong time, I was debugging some embedded C code and thought I found something freaky: C code: ARM code disassembly (as generated by GNU ARM gcc): 0x0000019c : mov r3, #0 ; 0x0 0x000001a0 : str r3, [r11, #-16] 0x000001a4 : b 0x1b4 0x000001a8 : ldr r3, [r11, #-16] 0x000001ac : add r3,... Continue Reading →

Cable Repair

{imported post from old blog} The electrician was here today to fix our cable. What really got me all riled up today was when he started pounding away the tiles in our upstairs bathroom with hammer (to access some wires that are behind the tiles). It started by him asking me to let him in... Continue Reading →

Balancing Robot

Botka, The Barely Standing Robot. This is one impressive balancing robot. Not even a bit of jitter. Midway through the video the thing takes on some solid whacks and still standing. For comparison: NXTway-G (the Lego Mindstorms NXT uses the Atmel AT91SAM7S ARM processor). Botka probably uses some sophisticated PID control? fuzzy logic enhanced or... Continue Reading →

ARM Assembler

My ARM assembler cheat sheet. ARM7: Load-and-Store Architecture Von Neumann Architecture ARM7TDMI-S: T - Thumb architecture extension ARM Instructions are all 32 bit Thumb instructions are all 16 bit Two execution states to select which instruction set to execute D - Core has debug extensions M - Core has enhanced multiplier I - Core has... Continue Reading →

ARM Toolchain – Crosstool

Was able to get an arm-elf toolchain built and working fine, but not so much luck in building an arm-elf-linux toolchain. It cross-compiled programs without errors, but the compiled executable crapped out at runtime. So googling for answers... I came across Dan Kegel's crosstool - a really cool GNU toolchain builder. It downloads all the... Continue Reading →

ARM Toolchain

Updated (April 26, 2008) Here's my cheat-sheet for building a 64-bit GNU ARM toolchain (cross-compiler x64 to ARM). So far this has been working well for me on an LPC2148 (ARM7TDMI-S), i.e. gcc and gdb via OpenOCD JTAG. Notes: Some builds (like binutils-2.18 and newlib-1.15) needed the setting MAKEINFO=/usr/bin/makeinfo to be passed to the make... Continue Reading →

ARM boards

Just got back from a trip to Chicago - Oak Park, a renovated "gentrified" neighbourhood, west of Chicago. Just spent the night researching a good ARM board to buy. Narrowed it down to these (all these boards have USB and SD card reader): ARM7TDMI-S boards: Olimex SAM7-P256 (SAM7-Pxxx Rev. E) - Atmel AT91SAM7S256, 256K Flash,... Continue Reading →

Arduino GPS

Just to get my hands dirty and wrap it up with the AVR's, I created a GPS data logger - using an Arduino board, GPS receiver chip, 4x20 LCD, and a uALFAT microSD board. A good document on NMEA commands and data formats used by GPS chips is here. Regarding the GPS unit, it was... Continue Reading →

Blog at

Up ↑