Main Weblog Projects Downloads Contact Links
Wiki Gallery


Archive for the ‘General’ Category

DSerial Servo Project

Thursday, January 18th, 2007

Instructions for connecting regular R/C servos to DSerial have been posted to NaWiki. Servos not only make good actuators — they are also easy to hack for continuous rotation turning them into very cheap geared motors with built-in electronics.

DSerial Example Code Available

Monday, January 15th, 2007

I have released a sample firmware and DS program for DSerial. It’s a simple serial console and it also shows tilt. Files are available at NaWiki

Also, MrShlee was very kind to create a DSerial forum on

DSerial Pre-orders Available

Tuesday, December 5th, 2006

DSerial pre-orders are now available with shipping on 15th December. There are less than 50 units available in this first batch.

Since the accelerometer chip is pretty expensive, I decided to have two versions: one without and one with tilt. Prices are $37 and $59.

Note: Not all parts arrived yet, moved to 15th December.

Note 2: Documentation will be available in NaWiki. Most of hardware documentation is already there. Software documentation is a work-in-progress.


Video: Assembling DSerial

Saturday, November 4th, 2006

Here is a video of me assembling a DSerial. I plan to release DSerial next week.

IDE to NDS Connection

Saturday, September 9th, 2006

IDE to GBAMP connection

I was busy the past couple of months, so this is the first post after a long while.

To get back to hardware development, I decided to do a quick IDE to GBAMP (GBA Movie Player v2) hack. I also took a few pictures for the few people interested in doing this (at their own risk) :)


DSerial Assembled

Sunday, March 5th, 2006

I am testing DSerial component by component to make sure everything works. Here is a picture of a completely assembled DSerial:


Here is another picture:


Now I need to write the software… My favorite part (?).

Update: Verified working components: LEDs, USB, Tilt. Remaining to test: DS interface, RS232 serial

DSerial – Connect your DS

Tuesday, February 28th, 2006

I am currently developing DSerial which is going to be a debug cable and more. It has an integrated 8051 microcontroller that can be programmed for specific applications. USB client, serial and I/O ports allow using this device for a range of ideas. An obvious application would be a debug console and perhaps even GDB support. Serial port allows to connect GPS receivers, motor controllers and other gadgets equipped with UART or RS-232 serial port. 18 I/O lines enable electronics enthusiasts to connect various projects that could use the power of two ARM CPUs. Analog-to-Digital Converter (ADC) is useful for a range of sensors and simple oscilloscope projects. There’s also a 2D tilt sensor (optional) that could be used in homebrew games like Marble Madness clones (please make this :) ).

I haven’t tested the hardware yet, but below are some pictures of the current state.

Here is the general system overview:


50 panelized DSerial PCBs arrived. They have to be separated and their inter-connects trimmed.


Here is how a single PCB looks like:

dserial-pcb-top.jpg  dserial-pcb-bottom.jpg

Weblog will be updated as this project progresses, so please stand by.

DSFlash (SWF Player)

Friday, February 10th, 2006

I made a quick port of GPLflash to DS.

Sound is disabled, BTW. Overall, this could be probably used for simple animations.

Here is a NDS with a sample movie: sbemail58_swf.nds
(Credit for the movie goes to:

DSFlash Sample Movie 

Source code is in the ZIP file:

PassMe2 Support Material

Sunday, November 6th, 2005

0. Introduction

Part 1 shows how to use a PassMe2. Part 2 shows how to reprogram an old PassMe (or clone) into a PassMe2. Part 3 describes how to make other DS carts supported.

1. Using PassMe2

PassMe2 requires a binary file to be loaded to SRAM (save memory) of GBA flashcart.

1.1. Using regular (NOR) GBA flashcard

Easiest way is to use Pepsiman’s passme2*.gba.

Another way is to put sram.bin from the ZIP file below into SRAM of your card. If flashing software refuses to load it you may need to pad sram.bin to 32KB and/or rename it to sram.sav.

1.2. Using M3

Use Pepsiman’s passme2_mb.gba.

1.3. Using Supercard

Here is a tutorial. Take the sram.bin file from the ZIP file below. You may also use Pepsiman’s passme2*.gba instead of messing with sram.bin.

1.4. Using G6flash (instructions by Pepsiman)

(1) Add some homebrew program as a GBA ROM using the G6 software.
(2) Replace the savefile it creates (the .0 file) with a copy of the sram.bin padded to the same size.
(3) Boot the G6 in GBA mode (no PassMe2 inserted).
(4) Load the program.
(5) Insert PassMe2
(6) Press and hold the button on the G6.
(7) Turn off DS.
(8) Turn on DS.

2. Reprogramming old PassMe 

Old PassMe (or clone) can be reprogrammed into a PassMe2.

You need a JTAG cable such as Cheaptag. It’s very easy to make from an old printer cable, for example. Here are the instructions.

PassMe clones have different pinout for the JTAG pins. Here is the pinout for Passkey. And here is the pinout for Superpass. Make sure to right-click the CPLD and Erase the write protection before programming.

3. Adding support for other DS carts (for technical people)

Read this post and grab Loopy’s Replace ARM7 entry point in VHDL file with the first non-zero SWI offset (make sure to add 1 to ARM7 address to indicate Thumb mode) and the ARM9 entry point with BX LR offset. Generate programming file with Xilinx ISE. Then sram.bin needs to be modified to use the BX LR offset instead of the current one. (Address in sram.bin starts at offset 0x764 with each address byte 0x32 bytes apart. Also, address bytes are doubled as you can see with a hex editor.)

4. Files

PassMe Support for New DS Firmware

Friday, October 21st, 2005

New: PassMe2 with new code now available in the shop

Update: There is also a thread on GBAdev forums with some great information. PassMe2 instructions added here.

Recent DSes seem to be shipped with new firmware that makes current PassMe not work. Loopy figured out how to circumvent the new protection, but the exploit is DS card specific and requires SRAM in the GBA slot (i.e. GBAMP won’t work). I can probably fit in support for about four cards into a single PassMe. Also, there will be PassMes with different sets of supported games.

So what I need people to do right now is to run the attached .ds.gba on bootable DSes using different DS cards and tell me the numbers on the screen. This will help me add support for those cards.

You need to run this from a GBA flashcard without any use of DS menu loaders, since they might clear or corrupt the memory that is being searched for the exploit. Consequently, there is no .nds version of the program.

Some PassMes (or clones) are not supported, because a specific bit in the header is set, resulting in scrambled memory. This bit doesn’t affect homebrew in any way, but it makes it impossible to explore memory left over from loading a DS card. This program will tell when a PassMe (or clone) is not supported.

Please post your results here or email them to me. I will then add support for most popular games and put new PassMes up for sale.

Many thanks!

Note 1: This program will whitescreen for a while before showing numbers. This is normal, since searching takes some time.

Note 2: Please boot with PassMe (or clone) and not with FlashMe. FlashMe does not produce correct results! callfinder.ds.gba

© 2010 Alexei Karpenko (natrium42)