Main Weblog Projects Downloads Contact Links
Wiki Gallery


Archive for March, 2005

Soldering Cart To PassMe

Wednesday, March 30th, 2005

It’s possible to solder the cart directly to the PassMe PCB.

I took the cart PCB out and glued it to the PassMe. Afterwards, short wires were soldered between the pads. Here are pictures of the result:

 passme-soldered-iso-top.jpg passme-soldered-iso-bottom.jpg passme-soldered-inserted.jpg

 Overall, I think gluing the cart is a good idea to achieve robustness (especially if PCI pins are used).

Firmware Dumper

Monday, March 28th, 2005

Loopy figured out how to read the firmware from the DS.

Here is a program to dump it in blocks of 64KB.

Note: You have absolutely no need for this if you are not a developer.

PassMe Click-in Mechanism

Sunday, March 20th, 2005

It’s possible to make PassMe click in just like a regular DS cart. You need to superglue a small piece of PCB into the location seen on the following picture.


“Under Pressure” Demo

Saturday, March 19th, 2005

The touchscreen controller in the DS allows to read out pressure of the touch. It should be called pseudo-pressure, really, because it’s based on the the touched area and not on real exerted pressure.

Here is a small demo to show touch pressure. Although an emulator binary is available there is not much use to it.


Source code and PassMe & ARM9 binaries:

PassMe requires Insulation

Saturday, March 19th, 2005

It’s necessary to insulate the back of the PassMe with a sticker or tape. Otherwise JTAG pads or vias could be shorted by touching the metal siding inside the DS slot.

Here is a picture of PassMe with a paper sticker applied to the back side.


BattleshipDS Preview

Thursday, March 17th, 2005

Here is the first preview edition of my BattleshipDS game.

Graphics are based on this flash game, however all the pixels are mine.

Known issues:
– touchpad code
– sprites can be improved
– no wireless

A few pictures of it running in Dualis follow.

battleship1.png battleship2.pngbattleship3.pngbattleship4.png


Here is a ZIP with ARM9 and PassMe binaries. No source code is available right now, sorry.

New VHDL by DarkFader works with any DS cart

Wednesday, March 9th, 2005

DarkFader made new VHDL for the CPLD that makes PassMe work with any DS cart.
Visit his page for the new files.

In addition to CRC16 calculation, his VHDL changes the way ARM9 is taken over. Existing demos should copy ARM9 binary to 0x02004000 as before and then make the ARM9 CPU jump to it by issuing “*(volatile unsigned int *)0x027FFE24 = 0x02004000;” No longer need to overwrite the whole memory with a jump to an ARM9 waiter to capture that CPU. ARM7 starts at 0x080000C0 in GBA cart space as before.

Here is a quick way to make joat’s template boot with the new VHDL:

// In boot/main.cpp change main() to the following
// You can also remove the arm9flag define above main()

int main(int argc, char ** argv) {
  LoadBin(GETRAW(arm9_bin), 0x02004000, GETRAWSIZE(arm9_bin));
  LoadBin(GETRAW(arm7_bin), 0x02380000, GETRAWSIZE(arm7_bin));

  *(volatile unsigned int *)0x027FFE24 = 0x02004000;

  while (1) ;
  return 0;


Tuesday, March 8th, 2005

Hello Slashdot!

Check this out for the current state of DS development.

Slashdot frontpage.

I finally built my PassMe

Tuesday, March 8th, 2005

After quite a few weeks of wait my two boards finally arrived today. This allowed me to build a PassMe right away.
This is how the PCB looked like after it came from manufacture:
PassMe PassMe PassMe PassMe
PassMe had an intentional border around the actual cart outline. This was necessary because PCB manufacturers have poor panelizing precision. This border had to be grinded down by hand resulting in the board shown below:
Then the CPLD had to be soldered. Following Lynx’s suggestion, I simply added flux to the pads, positioned the CPLD and touched each pin with the soldering iron. Since the pads were tinned by the manufacturer, no additional solder was necessary. The pins for the cart connector came from a PCI connector and had to be soldered individually. They hold the cart in place quite firmly. A second option would have been to glue the cart to the PCB and solder small jumper wires in between. Here is the finished board ready to be programmed:
PassMe PassMe
Now the CPLD was programmed using the VHDL from and the free Xilinx ISE WebPACK software. Here are a few pictures of the finished PassMe with Metroid cart inserted:
PassMe PassMe PassMe PassMe
Here some more pictures of my DS with PassMe and GBA flash cart inserted. This setup lets me run all homebrew demos and is much more portable than my older FPGA setup.
PassMe PassMe PassMe

PassMe Design Files (v1.4)

Saturday, March 5th, 2005

Here are the latest files for the double sided version. The PassMe design has been built and tested.

  • Schematic, Board and Library for CadSoft EAGLE (free version here)
  • Gerber files for PCB proto
  • VHDL code for the CPLD

© 2010 Alexei Karpenko (natrium42)