Hi all,
thanks for your helpful posts and insights! After about a year of silence, I'd like to join in. It seems that I fell into the same rabbit hole...
First, I'll start with a summary of my understandings - this might help others, at least it will help me if I come here again. You can also correct me if I am wrong and help me fix my understandings.
- The Brother memory cards used for embroidery machines have 40 pins in a single row with a 1mm pitch, likely using an AMP 175564 connector.
- There are machine models from other vendors (Baby Lock, White, Bernina Deco, Simplicity, Husqvarna, Viking) that are reported to be compatible.
- Thanks to opened cards and visible chip markings, we know that up to 4 Mbit of parallel flash memory can be addressed.
- The pinout seems to be verified as some of you have connected a card to an Arduino via a breadboard or even own PCBs.
- There are 19 address bus pins resulting in 219 = 524288 addresses = 512k addresses.
- There are 8 data bus pins resulting in 512k addresses * 8 bit/address = 4 Mbits or 512 kBytes usable memory.
- The other pins on the connector are for VCC (5V), chip enable (CE), output enable (OE), write enable (WE).
- Some of you have been able to dump the whole 512 kByte memory of the chips.
- The memory layout still seems unknown, it's unlikely that they contain a "file system"... at least not a known standard one.
- The binary does not only seem to contain stripped(!) PES data but also preview images. (Where are they located? How can they be viewed? What format are they in?)
- The binary does not only seem to contain stripped(!) PES data but also preview images. (Where are they located? How can they be viewed? What format are they in?)
To me, the following is not quite clear yet ...
- if all cards are writeable because they really need to be writeable by the embroidery machines - or only those "blank" cards that have been sold to write them by a PC.
- if there are cards that have a program input voltage (VPP) which is different than VCC. (I've read about chips requiring 12.0 Volts).
- what the commands in the code in the git repositories brother_embroidery_card_experiments or brother-cart-emulator/ is based on? Are those vendor-specific or do they comply with some standard (CFI, JEDEC, ...)? (Edit: Both seem to have used the SST39SF040-55-4I-WHE device which has "software command sequences" such as the magics 0x5555, 0x2AAA, etc in its datasheets as well as manufacturer ID (0xBF). Not sure though if the former that's standardized or Microchip-specific.)
- does the Brother embroidery machine only accept only certain flash memories? e.g. only from a few vendors?
- has someone tested if the Brother PED Basic and those 3rd party card readers/writers (Magic Box OESD, The Magic Box, Vikant Ultimate Box, EmbCard, ...) accept only certain flash memories? e.g. only from a few "expected vendors/models"? e.g. from the same chip vendor they included in their cards?
- are there any new findings about the layout of the binary/ card's flash memory?
- other methods than "hooking" into some Windows DLL (CardIO.dll) or executable or serial connection to get a properly formatted binary file?
- any new efforts in reverse engineering those card readers?
- has anyone tried to reverse engineer the firmware from one of those machines?
Or has everybody just given up or bought the old, expensive hardware?
Those old "original" re-writeable cards and card readers/writers seem very expensive (probably because "rare") these days (card readers ˜100-200 €/USD, cards ˜80-120 €/USD). And for some only 32-bit machines seem to be supported. I am not sure if I really want to spend ˜80-120 €/USD for a used, old, pretty standard memory chip+PCB+connector that's maybe worth only ˜5-10 €/USD.