Close
0%
0%

Reverse Engineering the Janome Memory Cards

Reading the ROM on the Janome MemoryCraft 9000 memory cards

Similar projects worth following
Trying to read out Memory Card 101 to figure out how to have customized designs

.

  • Break Through on Reading Memory Card

    esophagoose10/21/2025 at 06:20 0 comments

    I ended up desoldering the ROM from the memory card and putting on 0.1" headers. After a healthy bit of debugging with an oscilloscope I read out the contents and for the first time, it looks promising!

    This is what should be on the memory card:


    ROM dump:

    Zooming in a bit:

    That's looks like the fireworks and cowboy on there! I'm treating every 2 bytes as an x and y delta coordinate - so the reason for the long trail in the initial image, is there's headers or control bytes or thread specs that I'm treating as a stitch causing it to trail off. Next steps will be identifying those areas and parsing them

  • Reading out the ROM - Part 3

    esophagoose11/17/2022 at 07:11 0 comments

    Looking at the binary read out again, I notice a couple of issues:

    1. Every 4 lines the text repeats itself - which is a 64 byte offset or that the A6 pin is not toggling

    2. Every 8 bytes are repeating (half of the line), A3 pin isn't toggling

    3. Sometimes the repeat parts aren't quite the same which indicates maybe a signal integrity issue (or power issue?)


    Though I feel like I'm getting close. This memory card has the alphabet on there and this is close to that:


    Found some incorrect pinouts in the firmware :(
    Fixed that and still having issues but closer to an alphabet!

    Every other letter is 0xF1.  Hmm .. pyembroidery makes is seem like I should be looking for 0x80 to indicate a control byte coming.

    With the fixed pinout, I added A-1 back in and see saw the wrong deltas but the start of the file REALLY looks like a header: "832 DATA EXP L V1.0 R1.0"
    I'll keep address A-1 in.

  • Reading out the ROM - Part 2

    esophagoose11/17/2022 at 06:03 0 comments

    So sew files only give deltas of movements, not absolute values so if my starting point or one byte is off, it messes up the whole image. With this, I decided to just plot the deltas, expecting on my card there to be a lot of back-and-forth movements.

    First I tested on the known good file (downloaded from the internet):

    Yep - I expected it to be a circle around the origin.


    And my readout:
    that makes no sense. Something is wrong. Which sucks because the file opens with:
    "832 DATA EXP L V" which looks like it could be a header. Then a little further along, there's this in a sea of non-ascii characters:
    which looks very much like a version string. So I was hoping it would be right.

    After some trial and error, I stopped using the A-1 address pin (which is suppose to be the LSB) and got this
    That looks good - because this card contains text, it makes since that there's only side to side and up and down motions. But converting to positions yield:

  • Reading out the ROM

    esophagoose11/17/2022 at 05:53 0 comments

    Flywired the memory card to 0.1" headers then jumpered them to an Arduino Mega.

    Here's the start of it:

    I'm using pyembroidery to parse the results. Looking online, everywhere said these should be *.sew files and thankfully pyembroidery has a parser so I can see how it works. 

    To test to make sure it works, Janome has some free design you can download and here's "Fairy and Ladybug": https://www.janome.com/inspire/Embroidery/fairy-and-ladybug/

    And I get this on my readout:
    Lovely. But it's far too few points. Looking at the source code of the parser, it seeks the file to a magic number 0x1D78. Looking at the file in a hex editor, it's all zeros until that address. On my readout, it looks like the data starts at 0x3000 so I set it to seek there. Interesting point, my filler bytes are all 0xFF not 0x00


    More points but not right. I'm expecting something like this (Memory 101 column):

    hmm ...

  • Finding the Pinout

    esophagoose11/15/2022 at 07:08 0 comments

    https://cdn.hackaday.io/images/6185371668403074614.file-1668403074585-589646513The culprit. It's a 34-pin PCMCIA card (type I?). On inside is a few pull-ups and decoupling cap and a non-descript ROM

    https://cdn.hackaday.io/images/6990101668403480474.file-1668403480437-523631299I ohm'd out power and ground and it didn't fit the standard pinouts for ROMs ICs or PC card / PCMCIA connectors. But after a bunch of digging and looking at old memory ICs, I found this:

    https://cdn.hackaday.io/images/4836591668403771644.file-1668403771630-260888991Power and ground matched up and after ohm'ing out the rest of the pins, I'm fairly confident it's the right part: - BYTE is hard-tied to ground means D8-D14 are high-Z and are not connected on the memory card - Pull-ups are present on CE and OE - A19 and A20 are not connected which makes sense, probably a lower capacity ROM


View all 5 project logs

Enjoy this project?

Share

Discussions

esophagoose wrote 10/18/2025 at 05:23 point

@Lindsey - That would be really useful if you could record it!

  Are you sure? yes | no

Lindsey wrote 10/18/2025 at 22:01 point

I'll try to record it as soon as I can. I have also opened the scan n sew unit, I'll upload specs once I've finished buzzing it out

  Are you sure? yes | no

Lindsey wrote 10/15/2025 at 20:40 point

I regularly transfer sew files over rs232 from my win98 pc to a Scan n' Sew PC unit. I have both versions of the official janome rewritable memory cards. The first model has volatile memory (coin cell) and is not compatible with the scan n sew pc, only the first scan n sew model. 

Would it be beneficial for me to try and record the data sent over the rs232 connection? I don't want to open either of the memory cards I have a they are rare where I live and I don't want to risk breaking them. 

  Are you sure? yes | no

Jon wrote 02/04/2024 at 07:13 point

Could you upload the raw data from the card? I would like to look at.

  Are you sure? yes | no

catherinekasper262 wrote 12/05/2023 at 13:41 point

I've owned a Janome 9000 since I bought it new in 1998. It's a fabulous machine. I do have the reader/writer box, plus the scanner card that goes into it. It works with Customizer 2000 software on my windows 10 computer and I have a link to free download of that (below) plus written info that  I'd be happy to share. I would LOVE to see any and all improvements you have or can make to the embroidery functions of this machine. There's a market for selling anything you develop since it's regularly bought and sold on EBay and other online venues. If, by chance, you can tell me how to make any of the readily available cards erasable, readable, writable, that would be fantastic . 

Also, the largest area this machine can embroider is around 4" x 6". If that can be expanded somehow, you'd be regarded as a god.

PS. I only understand a small fraction of the work you've done but I thought I'd throw my 2 cents worth in here. 

https://web.archive.org/web/20180717081814/http://www.janome.co.jp/e/e_downloads/c2k150.html

  Are you sure? yes | no

Nurfaiz Foat wrote 09/23/2023 at 07:06 point

Hi, it is me again. Just some findings that I stumbled upon about the memory card

Apparently, there is an offered solution by Janome to transfer design from PC to empty card for Janome MC9000, MC5000 and MC5700.

You have to purchase the Janome Customizer 2000 software together with its reader/writer box and a blank memory card.

You can read it more about it here https://colab.research.google.com/drive/14OU45iYH2QD_xczZ33D1NeaiyF5jc8fq

And also, I found a video that explains how to run it in newer PC https://youtu.be/9d90zD4c0PI?si=0358VKYKl85lxJAG

According to the photo snippet, apart from .SEW format, it appears this machine family does read .BMP and .WMF

Hope this shed some light

  Are you sure? yes | no

Nurfaiz Foat wrote 09/21/2023 at 04:05 point

Hi Esophagoose,

I have recently refurbished a Janome MC8000 and have been exploring the idea of creating an alternative to the Janome cartridge, something like a PCB card for sideloading .SEW embroidery data, akin to a printer PCB card.

I believe the concept is similar to Gameboy Homebrew Cartridges.

I've been conducting research for some time now and came across your project.

By the way, I wanted to inform you that the sewing community in Pakistan has been maintaining a family of early 1990s and pre-2000 Janome embroidery machines. 

They have managed to salvage surplus cartridge develop their own embroidery pattern cards as seen in the video

https://youtu.be/x9r-jhBzAhA?si=xY4i7cZtxsusQV6B

  Are you sure? yes | no

esophagoose wrote 08/22/2023 at 03:59 point

The memory cards are read-only. I'd be making a new re-writeable card, graft the connector on to it, and give it a USB port so you can directly connect it to a computer. My next steps are to wire a logic analyzer onto the machine with the card in place and see how it reads the card. If you are able to instrument the scan-n-print to see what it sends, that'd be huge

  Are you sure? yes | no

RX HMP wrote 06/27/2023 at 01:26 point

Can we edit these cards? Have you progressed any further? Is there any blank off the shelf cards that could work? I resorted to the scan n print with blank card  but would like to completely replace the hardware with arduino but cant find nothing to compare with.

Great work.

  Are you sure? yes | no

Does this project spark your interest?

Become a member to follow this project and never miss any updates