Prop inside an SD card: or a CF card???
Tubular
Posts: 4,717
UPDATE 18 January
I'm getting some sample pcb's made up. Let me know if you want a blank and I'll post it.
I'm also looking at merits of the PCMCIA I/F<>Prop<>CF card in a similar adapter. There would be lots more room and the wide data interface may be good for viewing prop video on a laptop
----
I was inspired by recent discussions here (Jazzed's photo keyrings and fsrw/kye's SD drivers), together with Sparkfun's SD breakout, to try getting a Prop inside an SD card. This makes it possible to use with laptops, photo frames, cellphones, photo printers etc...
The concept is best illustrated by the pcb and photos below. To make it fit in under 2mm I need to break one of the pcb commandments, "thou shalt not internal route". The prop TQFP passes through a large square hole in the 1.2mm pcb. EEprom does too.
The pcb will project beyond normal length by 2.5mm or 15mm to allow for higher components (uSD socket, optional crystal, and any small peripherals such as IRDA {have your say below})
The prop either
1) sits alongside (parallel with) the SD<>uSD bus, or
2) in the middle of it by cutting 6 tracks ( SD<>Prop<>uSD).
3) It can also be cut down (SD<>Prop).
Questions for the forum
1) What devices and applications might you use this for?
2) Would 15mm projecting be too much for these devices/applications? 8mm? 2.5mm?
3) What (small) peripherals would you like to see on the reverse side (under the uSD) -
A) IRDA for serial transmission
Micro trackball
C) Speaker
D) wireless video transmitter and antenna???
E) slave micro with analog inputs
F) other (have your say!)
cheers
tubular
Post Edited (Tubular) : 1/18/2010 12:20:43 AM GMT
I'm getting some sample pcb's made up. Let me know if you want a blank and I'll post it.
I'm also looking at merits of the PCMCIA I/F<>Prop<>CF card in a similar adapter. There would be lots more room and the wide data interface may be good for viewing prop video on a laptop
----
I was inspired by recent discussions here (Jazzed's photo keyrings and fsrw/kye's SD drivers), together with Sparkfun's SD breakout, to try getting a Prop inside an SD card. This makes it possible to use with laptops, photo frames, cellphones, photo printers etc...
The concept is best illustrated by the pcb and photos below. To make it fit in under 2mm I need to break one of the pcb commandments, "thou shalt not internal route". The prop TQFP passes through a large square hole in the 1.2mm pcb. EEprom does too.
The pcb will project beyond normal length by 2.5mm or 15mm to allow for higher components (uSD socket, optional crystal, and any small peripherals such as IRDA {have your say below})
The prop either
1) sits alongside (parallel with) the SD<>uSD bus, or
2) in the middle of it by cutting 6 tracks ( SD<>Prop<>uSD).
3) It can also be cut down (SD<>Prop).
Questions for the forum
1) What devices and applications might you use this for?
2) Would 15mm projecting be too much for these devices/applications? 8mm? 2.5mm?
3) What (small) peripherals would you like to see on the reverse side (under the uSD) -
A) IRDA for serial transmission
Micro trackball
C) Speaker
D) wireless video transmitter and antenna???
E) slave micro with analog inputs
F) other (have your say!)
cheers
tubular
Post Edited (Tubular) : 1/18/2010 12:20:43 AM GMT
Comments
As for having the card be longer, I would suggest not making it any longer than absolutely necessary. My SD card protrudes about 5-6mm out from my laptop and I find that is a problem at times.
Maybe I could make my RamBlade like this to plug into an existing prop, but then again, I would lose the overclocking requirement due to lack of caps. :-(
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBladeProp, RamBlade, TwinBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: Micros eg Altair, and Terminals eg VT100 (Index) ZiCog (Z80), MoCog (6809)
· Search the Propeller forums (via Google)
My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
The application I am using it for is an intelligent logger, where the prop takes the raw data and pre-assembles it into bitmaps. The whole SD pcb is then inserted into a photo printer to print the bitmaps...
Other applications may include chumby style photo frame adaptions...·
Admittedly it takes some un-thinking to work out what its really useful for.· I expect programming to involve dumping a binary onto the uSD.
Cluso there's 3 caps on the back, but granted they are not right on the prop pins. It remains to be seen what speed it'll clock to.
I'm conscious of the projecting thing. I'll look at some other uSD connectors which might be able to be mounted partially 'inside' more like a traditional SD to uSD adapter.
tubular
Post Edited (Tubular) : 8/12/2009 4:21:25 AM GMT
Thanks,
Doug
That would definitely be a good way to spend the 40 minutes of train-travel each morning ;o)
In regards to more IO pins:
You could put another set of edge connector pins on the outside end to make more IO pins accessible.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Andrew Williams
WBA Consulting
WBA-TH1M Sensirion SHT11 Module
Special Olympics Polar Bear Plunge, Mar 20, 2010
Propeller-Based Reverse Geo-Cache Birthday Present Project
SD on a little board, as per the pictures, is plugged into a USB SD card programmer dongle on the end of a couple of meters of USB cable. The other end of the SD board is connected via a cable or plugged directly via pin headers to my Demo board or whatever hardware my Prop sits on.
With this I can read/write files to the SD card from the PC and immediately use them from the prop without having to fiddle around moving the SD card from the PC card reader to the Prop hardware.
Would have been dead useful this last year developing the ZiCog emulator and building up it's CP/M files on SD.
Going further we seem to have a few systems around now that have a boot loader in their EEPROMs which is never changed and that boots the Prop from SD card. Again having a semi-permanent Prop-SD-card reader-PC setup would allow faster turn around developing the Prop apps to be booted from SD.
Dr_A has been solving this problem by transferring files via XMODEM from PC to Prop to SD. A direct link would be quicker.
No idea if this is even remotely possible[noparse]:)[/noparse]
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
The SD card of course has to be on my target hardware. Currently something like, TriBlade, RamBlade, DracBlade or whatever. Then when I'm done programming or removing data from it the board runs stand alone.
A cable should run from the SD on the target board to an SD card compatible "plug" that goes into the SD card programmer for update, download etc.
I have been running my SD cards on the ends of one foot of ribbon cable so without problems. So electrically I can see it could work. How to logically change over driving the card from Prop to PC is another matter.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
24 bit LCD Breakout Board now in. $24.99 has backlight driver and touch sensitive decoder.
@doug, I'm working on having 14 I/O exposed via 20 pin 0.1" header soldered to both sides of end edge of pcb. Should be enough pins to be useful
@MagIO2, I'm not sure about the SD API, but if nothing else exchange can just be done by dropping files on. The Prop will have to learn to keep out of the way when windows wants access.
@Andrew, I really like those Molex headers. I have another design where the uSD slides across the top surface of the Prop TQFP, straight into the uSD header (2.65mm height). The 3.75mm height version are easy to hand solder. I'll PM you a photo of what I'm doing with it
@heater, perhaps the updated format will do what you need. The 3v-0v-Data pins should fit straight into a proto board or digilent board.
@McTriv, I suspect any multiplexing / switch would need to be external. BTW it may be possible for this to do into your panorama camera for on-prop processing/stitching of images
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
It is a shame the uSD cannot be socketed. What about recessing the uSD socket into the pcb?? Maybe one of the opening style (flips up/open) uSD sockets so the pcb can be around the uSD hole to maintain pcb integrity.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)
· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
Actually the sparkfun SD and uSD breakouts that I started off with might do what you need, straight up
Rather than latch/multiplex all the signals you could add a small microswitch to detect when it was plugged into the host, and signal the Prop that it is under host control. Then just eject it slightly to hand control over to the prop.
Yes, phones are heading to uSD. But everything else seems to be staying with SD, probably because its easier to handle and not lose.
Funnily enough I started off trying to do as you suggest, along the same lines as a normal uSD adapter. It does eat a fair bit of space that way, and makes bringing out connections more difficult, but it should be possible.
API in Windows? SD cards appear as disk drives in every OS.
Maybe just have a bootloader in eeprom, and if its a 64K 24c512 then the bootloader could use the upper half as a
second bootloader which would maybe be programmed by the Propeller if you saved an eeprom file
in partition/drive B: or /sdb.
If not, the primary eeprom bootloader would look there and on the SD card when PC was not
accessing it. The uSD card would be accessed as whatever the next drive would be, such as , F:, as usual.
Propeller goes high impedance on SD pins when PC accesses it.
If the Propeller eeprom primary bootloader could make the eeprom a 32K "B:" drive (I don't know how) then it would
only need to be prop plugged once with the primary bootloader in the other 32K.
It sounds unlikely to program a blank i2c eeprom with thru an OS spi driver, or am I confused?
I missed something about what PST is, sounds familiar, don't remember though.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
VIRAND, If you spent as much time SPINNING as you do Trolling the Forums,
you'd have tons of awesome code to post! (Note to self)
API in Windows? SD cards appear as disk drives in every OS.
Maybe just have a bootloader in eeprom, and if its a 64K 24c512 then the bootloader could use the upper half as a
second bootloader which would maybe be programmed by the Propeller if you saved an eeprom file
in partition/drive B: or /sdb.
If not, the primary eeprom bootloader would look there and on the SD card when PC was not
accessing it. The uSD card would be accessed as whatever the next drive would be, such as , F:, as usual.
Propeller goes high impedance on SD pins when PC accesses it.
If the Propeller eeprom primary bootloader could make the eeprom a 32K "B:" drive (I don't know how) then it would
only need to be prop plugged once with the primary bootloader in the other 32K.
It sounds unlikely to program a blank i2c eeprom with thru an OS spi driver, or am I confused?
OH, and it seems OK to me to solder in the uSD too.
I missed something about what PST is, sounds familiar, don't remember though.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
VIRAND, If you spent as much time SPINNING as you do Trolling the Forums,
you'd have tons of awesome code to post! (Note to self)
It would sure beat carrying around a ProtoBoard, PSU and/or cable but perhaps not worth the effort.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
24 bit LCD Breakout Board now in. $24.99 has backlight driver and touch sensitive decoder.
It would be cool then to switch between SD mode, which allows full access to the SD card and a PROP-mode where you can communicate with the propeller. For example for debug output and input.
I just had another thought. What about PCMCIA?
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Propeller Wiki: Share the coolness!
8x8 color 80 Column NTSC Text Object
Safety Tip: Life is as good as YOU think it is!
If it was possible for the stream to be slowed, it may give the Prop enough time to decode file streams on the fly.
@Potatohead, I don't know enough about PCMCIA. I suspect it would face similar issues. However having plenty more space to play with means you could put a bluetooth module such as the Roving networks RN-41 on there, which takes care of the serial link and prop tool compatibility. Bluetooth would also link to phones which only have uSD slots.
Compact Flash??
tubular
You can buy wifi sd cards now.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
24 bit LCD Breakout Board now in. $24.99 has backlight driver and touch sensitive decoder.
My PC has SD card slot, but BIOS sees it as a USB drive, so there must be a USB to SD adapter chip.
BIOS has ("low level") drivers for everything. Windows drivers are wiretaps.
The INT # instruction is how BIOS drivers are used from x86 ASM,
including keyboard, mouse, video, disk drives*, serial modem, parallel printer, memory, USB, network, etc.
*(boot, read, write)
PCMCIA is a processor bus connection, Compact Flash is a P-ATA hard drive connection.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
VIRAND, If you spent as much time SPINNING as you do Trolling the Forums,
you'd have tons of awesome code to post! (Note to self)
Actually, that's not really correct anymore. The BIOS has enough slow, polled, basic drivers to be able to boot an OS. That's it. These days the BIOS knows enough to initialise the hardware, chuck some stuff on the screen using a VESA compatible graphics card and scan the storage devices for something to boot from. Some machines have additional BIOS firmware blocks that know how to talk to the on-board ethernet card, or fake-raid controllers, but again only polled and slow just to be able to limp through a boot.
A lot of these BIOS drivers are quite broken in other ways as the manufacturers only test the code as far as they need to, so if you try and access the hard disk in LBA mode using IN13 calls, you could end up either getting bogus data or worse, wiping stuff.
Windows drivers talk to the bare metal, as do Linux, OSX and most other operating systems that operate in "Protected Mode". Not since the 9x series has any fallback been given to BIOS mode drivers.
Now, while I'm here :
PCMCIA was being phased out in favour of CardBus, which is now being phased out in favour of ExpressCard.
CardBus was somewhat backward compatible with PCMCIA, in that most CardBus controllers could pretend to speak PCMCIA. CardBus cards mostly would not work in PCMCIA slots.
PCMCIA was a port based IO control. CardBus was a hack of the PCI bus standard and ExpressCard is essentially PCIe.
Other hardware that can use SD slots on certain machines use the SDIO standard, which is an extension of the SD protocol to allow a serial interface to peripheral devices. Some controllers support it, some don't. If you have a USB->SD bridge then you are SOL.
All standard x86 PC's that talk to the card natively have SD bridge chips with very closed specifications and there is no way to wiggle the pins independently. Even on my iPAQ the SD slot was hidden behind a basic ASIC controller and presented no way to wiggle pins.
CompactFlash cards as a rule can present either a PCMCIA interface, or an ATA interface depending on the state of a pin on power up. Two *completely* different interface protocols that share some commonality in electrical specifications.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Life may be "too short", but it's the longest thing we ever do.
The whole PCMCIA / PC Card has merit too. There would be fewer power issues with that interface (no need to "keep alive"). Its a wider data bus interface which could be great for debugging and/or getting the Prop's video buffer across to the laptop. Being an old standard it may even support a slow prop friendly bus (?) And, there's room inside!
So I opened up my RiData PCMCIA to CF adapter, and just look at that lovely inviting cavity just waiting for a prop tqfp and some dodgy wiring... even the via's aren't masked so they can be easily soldered to...