There is some C code there, and some of it already exists on the propeller (eg uart, spi). But what he has working is a way of talking to an SD card formatted with fat32 using hyperterminal, with very easy to understand options in plain text. Read a block. Get a file list etc. There might be some useful code ideas in there.
I've had the N8VEM online for a few days now. Issues:
1) my phone line is very noisy (100 homes affected) so it keeps resetting my IP address
2) the constantly changing IP address forced me to look at dyndns (a bad situation that turned into a good outcome)
3) I didn't want to leave a PC on to autoupdate the address, but I found my router can talk to dyndns and do it automatically!
4) the address is n8vem.homedns.org:3001 where 3001 is the port number
5) if you log in with that address, log out, and my IP address changes, then your PC will read the last IP address from its local cache rather than rechecking with dyndns. So you need to flush the ip address from within a command window with ipconfig/flushdns
6) there are many terminal programs out there and they all work with varying degrees of success. But only two (so far) can actually send and receive xmodem files. Absolute Telnet can do it but there are a few setup things to change and it is shareware and expires after a month. But a program called ShamCom can do it and it is free and the setup is very easy. I've managed to push the baud rate up to 38400 with the MSS100 so wordstar is nice and fast now. The current setup does not have a PC anywhere in the loop. The router is doing the IP update. A blue cable connects to a MSS100 box and this connects via a serial port to a N8VEM board.
So - to talk to this board
1) http://www.shamrock.de/tools.htm scroll about 2/3 the way down and download ShamCom
2) Install and run it.
3) In Connection, select New. Name the connection (n8vem or whatever). For number, use n8vem.homedns.org:3001
4) Save that connection. Try dialing it. Hit Return a few times and you should get a A> prompt. Try running wordstar or mbasic.
5) You can flush the dns by opening a command window in Actions/Command Prompt. (Won't be so necessary once my phone is fixed)
6) Try an xmodem file transfer. Run xmodem r myfile.txt or xmodem s myfile.txt and then go into Actions Download or Upload. (xmodem does timeout after 30 secs or so if you take too long to select a file). "xmodem s" is a "download".
7) Use dirx rather than dir (dir seems to not work properly with lots of terminal programs).
Now you can do speed tests on a real board.
It would be great to get the telnet code (on the object exchange) working with an enc28j60 on the triblade. The enc28j60 is only $7 on ebay and the rj45 socket with all the magnetics is only another $3. Then you could have an ethernet enabled board, for a reasonable price, and with some onboard smarts capable of compiling software, writing a letter, downloading and uploading files and autoupdating software etc.
However, as I understand it, Microsoft has a patent on FAT32 and they are now actively persuing claims for it.
FAT16 is supplied on the SD/microSD cards 2GB and below and can be reinstalled my microsoft drivers on the PC (Vista anyway) so I don't believe there are any legal issues there. They do have a patent that applies to long filenames as well, but we are not using them in FTA16. Anyway, I cannot see the need for > 2GB.
Currently the CPM disks are just contiguous files within the FAT16 file structure so we don't currently have any issues with FAT16 withing CPM. Our driver just issues a block read or write to the low level spi cog driver.
As for your IP address, I presume you have asked the obvious. Telstra used to not give a fixed IP address (some time ago and this may have changed) unless you paid more for it. So the address did indeed change during the day.
I have my CPM2.2 and CPM3 disks as files on the microSD card. They use the first 128 bytes of the 512 byte sectors, so a 32MB SD file is in fact an 8MB disk to CPM. The files supplied from the SIMH site are actually 137 byte sectors with the first 3 bytes and last 6 bytes not required.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ Links to other interesting threads:
Just been trying to login to your n8vem. Connects OK but DIR is not understood as below:
heater@ddt:~$ telnet n8vem.homedns.org 3001
Trying 121.45.221.92...
Connected to n8vem.homedns.org.
Escape character is '^]'.
A>
A>DIR
DI
DI?
A>
Same problem with WS but after typing WS and return a few times WordStar started!
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
FAT16 will do just fine for now. It the the advantage of being "done" and is quite small code wise. Also it's probably a good idea to be compatible with other Prop software like PropDos.
In the future when MS has had it's dumb patent claims thrown out, or for brave soles who don't care about such things there is a complete FAT32 system for micro-controllers here
It's written in C and is quite large (>3000 lines) and complicated enough that I would not want to start converting it to SPIN. But now we have C compilers for the Prop...
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
I'm still getting to know how sd cards work. There is micro, mini and standard size. You can buy a standard one and inside is a mini and inside that is a micro. "Russian Doll" memory cards.
I picked up a little USB to standard sized card on ebay for $5. So - fill it up, then take out the standard sized sd, take out the micro card out of that one and put it in the triblade. Then there is the question of holders. Standard sized ones seem a bit hard to get and/or overpriced. I've got some micro sized ones on the way from sparkfun. I got some mini ones (the middle size) ones and the pins look pretty easy to solder. But the micro ones - are the pins at the end of the holder or sort of inside it? How easy was that little holder to solder to the triblade?
Re logging into the board, many telnet clients simply don't work. Returning "DR?" from a DIR is something PuTTY does for instance. What terminal program are you using?
Windows command line telnet gets me the directory but every thing I type is echoed locally DDIIRR
Sometimes DIR does not list everything, as in this screenshot.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
The microSD socket I use on the TriBladeProp is from Digikey and the part number is on the BOM as published on the TriBladeProp thread and my website www.bluemagic.biz/cluso.htm I chose that part as it is easy to solder as the pins are exposed. The first one I bought was impossible to hand solder.
I have both a microSD to SD adapter and a microSD to USB adapter. Both are readily available from Officeworks in Australia fairly cheap. If you need to re-format use 32KB clusters (Vista defaults to 16KB clusters). I now forget why, but there was a reason - I formatted at 16KB and it works OK. I just have a note to myself to change to 32KB when I reformat. Mini does not seem to be a popular size.
I bought an SD card adapter with a 1GB microSD card in a pack from Officeworks for A$7.07 over 6 months ago, and in a little plastic case. At the same time I bought a USB to microSD adapter with an 8GB microSD card in a pack for A$60. (8GB for other purpose) Fortunately the USB adapter has a keychain rope because it is so small I was scared I would lose it. I posted pics of both of these under the thread SD or microSD recently. A 2GB microSD was A$10 (last week).
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ Links to other interesting threads:
Re DDIIRR, that means there is a local echo setting on as well as the echo coming back from the board. If it is easy to turn off local echo in telnet, then do so. (I don't seem to have plain old vanilla telnet on my xp machine so I can't test it). If it is too hard to find the setting then look at another telnet program. It would be great if they all worked the same but they don't seem to.
I haven't tested "dos" telnet nor xp's hyperterminal as I don't have them.
Hyperterminal private edition talks to the board fine but won't do xmodem. I'm not sure if it is free any more.
Teraterm works but puts in % characters in random positions. It doesn't do xmodem.
PuTTY drops characters when sending but receives characters fine.
Absolute telnet works perfectly but it costs $50 after 1 month.
ShamCom is the only free program I've found that works with DIR etc and also does xmodem.
Then there is the option of writing something from scratch using winsock and vb.net. I had an idea wsock3.dll could do it as all the commands seem to be there and I've got it working talking locally to the altair simh. However, there seems to be a bug when receiving one character at a time - you can't read them in. You can only read in lines ending in carriage return. So xmodem won't be possible to code. I was researching other winsock dll files over at planet source code and some examples did look promising. But when I found ShamCom that line of research wasn't necessary any more. Pity 'bout the name. I think it got lost in translation because it is Shamrock software which is supposed to be lucky if you find one with 4 leaves, but a sham is, well " an imitation or counterfeit purporting to be genuine" LOL. Anyway, the software works and that is the main thing.
One problem that may come up is "dialing out". On the MSS100 this is quite tricky to do because you have to change it to a programming mode where data going out is either routed out or sets program options. With linking up two boards directly, one could "dial in" to each board from a PC program running vb.net and a winsock, then use software in vb.net to link the two links together. There might be some port clashes though. Alternatively, if the propeller object telnet code ends up working via an enc28j60 on blade 3, maybe dialing out could end up easy (ie you just send out an IP address and port and wait for a reply or a timeout).
Re the little micro SD card, I hope the ones I'm getting from sparkfun are the ones that are easy to solder. I am still getting parts together for the triblade. I've kind of got hooked on cheap shipping (eg Electus, Rockby, Sparkfun, Futurlec) and now find it very hard to pay more than $5 shipping and handling. I might make another concerted effort to find those 512k ram chips locally.
PuTTY works fine as long as you disable 'local echo' and 'local line editing'. I would also recommend using RAW mode since you aren't actually handling telnet control sequences. Attached are screenshots of the relevant settings you'll need to change.
Microsoft does not have a patent on FAT32. They have a patent on the long filename system. You can do FAT32 with 8.3 filenames to your heart's content.
I am in the process of coding a real file system for Prop over SD. It will be FAT16 mainly because in order to run apps from SD ("SPIN" in PropDOS/PropCMD) I need the FemtoBasic sdpi object. That thing is pretty tightly written in PASM and I'm nowhere near understanding it. It's a pretty minor change to the SD bootup to get it to recognize SDHC cards (they're addressed by sector instead of by byte, but you have to check a bit in a reg during bootup to see which you're dealing with). I don't know enough to add this to the femto sdpi object, though. Someone already posted a mod to spdiqasm to make it recognize SDHC, and even though it's not the superfast all-pasm version it's quite fast enough since the block transfers are in pasm, but that module doesn't do spin/reboot, which is absolutely necessary for the projects I'm working on. I've looked at the SD reboot code in spdifemto and it's doing a lot of stuff I don't understand. I am pretty confident doing the file system in SPIN, but the low level stuff is going to take some time for me to get into it.
If there was someone who wanted FAT32 support, and if they happened to be PASM gurus unafraid of the complexities of spdifemto or able to graft spin-robooting into spdiqasm, I could really build on what might be a few hours of work hint hint.
If it's any help, the spiSendCmd routine in sdSpiFemto.spin takes a 24 bit block address, shifts it left 9 bits, and uses that as the 32 bit SD card address for reads and writes. On multiple block operations, the 24 bit block address is incremented by 1, so all you have to do is change spiSendCmd to take the 24 bit block address directly and send it out to the SDHC card. You shouldn't have to change anything else in sdSpiFemto.
The fsrw routines (and the sdSpiFemto Spin routines) don't support double buffering, but the assembly routines can certainly do it. Currently the Spin interface routines wait for any ongoing read or write to complete before initiating another, so there's no overlap of I/O. I have tested both double buffered reads and writes and they work fine.
Post Edited (Mike Green) : 4/18/2009 3:47:38 AM GMT
Thanks for the hint re farnell. My original z80s all came from farnell. I'll check it out.
That is a cunning trick shifting the bits. I like it.
I have this half baked idea I've been thinking about for several years re cheap image capture. For a PC you can get a capture card and you just plug in lot of cheap cameras - either usb or direct video (yellow RCA used for security). Multimegapixel cameras are incredibly good value.
But - how could you use this sort of technology for robotics? A robot based on a PC is big, and one based on a laptop is expensive. Could you use a camera and then save it to sd card and then read out the data from that sd card? Might take some hardware hacking but it should be possible. Or can the prop interface more directly with the video signal?
Linux telnet sort of works if you set a few options.
Start telnet and the escape into its command line interface with control-]
and issue the following:
telnet>set binary
telnet>mode character
telnet>set crlf
This gets it into binary friendly no echo mode.
Its awful slow, have to wait for each char to be echoed back from N8VEM else it messes up.
Backspace does not work.
These options can be put in a rctelnet file. See the man pages.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
Hmm, might need to debug where the time delay is, because it is fast from logging in from another computer in the same city. Is it the telnet program, or is it the international delay?
I've got someone on the n8vem forum who is working on putting their board online in the US, so then we can test these sorts of things.
I'm following a few leads on the 512k chip. Interestingly, someone on the N8VEM forum used it for the N8VEM so that means it is compatable for both. Handy.
Studying the triblade some more, I note the headers for blade 3 are "spinstudio" compatable. That should make internet connections a lot easier when it gets to that stage. I have to say the triblade is a great little design.
Addit - Farnell don't actually have any chips in Australia. I ended up getting 10 from Future Electronics, though the $31 shipping fee hurts a bit. But the chips were only $3.89 each. If I can use these chips in N8VEM boards too, that more than makes up for it. They did make me sign an agreement though saying these chips would not be used in "The production, manufacture, design, development or use of missiles (including but not limited to space research), chemical or biological weapons or nuclear applications including but not limited to, nuclear explosive activities".
Lucky I'm just using these boards to measure water levels in a stock trough!
Post Edited (Dr_Acula (James Moxham)) : 4/18/2009 12:31:39 PM GMT
@Mike -- the problem is recognizing whether you have a SD or SDHC card. There's a register read you have to do when the card is initialized which tells you it's HC, then you know not to do the shift. (You also need to pass 32 bits, since the whole reason for HC is that bit addressing maxes you out at 4 GB.)
Yes the beauty of the AS6C4008 and the BS62LV4006 are they are 3-5V parts
My understanding is Farnell has access to UK stock from Australia and has shipments in regularly. My parts have all come from Digikey and Future Electronics (not Futurelec) and have arrived in 7 days, but shipping is the major cost.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ Links to other interesting threads:
Watch out for any intercontinental shipping costs from Farnell, a lott of stuff in their UK catalog shows in stock on the UK website but when it comes to placing the order they chuck up messages about "a one time shipping cost" which is £15+. Great if it is insignificant to the overal costs, or somebody else is paying, next to useless for little itty bitty orders for hobby use. But then again I keep reading that the Prop is only $8, somewhere.
Mike Green said...
If it's any help, the spiSendCmd routine in sdSpiFemto.spin takes a 24 bit block address, shifts it left 9 bits, and uses that as the 32 bit SD card address for reads and writes...
If you shift a 24-bit address left 9 bits, don't you end up with a 33-bit address? Are the block addresses actually limited to 23 bits?
@mpark: Regular SD cards are byte addressed. Sectors are 512 bytes or 9 bits, so if you want a sector you shift the sector left 9 bits to create a byte address for its beginning. This does mean sector addresses on regular SD are only 23 bits, and it's why there is a 4 GB limit to regular SD -- 2 GB in practical reality, as nobody seems to make regular SD 4 GB cards (probably nobody wants to deal with unsigned vs signed math). SDHC cards work exactly like SD cards, except that they are sector addressed instead of byte addressed, so you just pass the sector you want to read or write directly, and poof the size limit increases by x 512.
The existing code will read SDHC with minor changes if you KNOW it's SDHC. The trick is that you must read a status register to tell what kind of card you have. Here's a thread where lonesock made the mod to spsifasm:
The problem is that spsifasm doesn't have the code to load RAM from SD and reboot, and I don't understand what that code is doing in sdspifemto, nor am I confident in applying lonesock's mod to spsifemto because it's written mostly in pasm and there's a lot going on.
I've been following this thread for a while now and I am confused on one part. Could i still run this with a single prop using a SD card? Seems its working on the TriBlade but im not sure about a single prop. Thanks
@FrameShift: I think it would all run on a DemoBoard (PropCMD certainly does and only uses 2 cogs) but the advantage of the triblade is probably that the ZiCog has a prop to itself, and therefore a maximum amount of Hub RAM to use for the Z80 system RAM. If you put it all in one prop the virtual CP/M system would probably have 16K or less free RAM.
@FrameShift: ZiCog runs just fine on a Prop Demo board.
Everyone should be aware that ZiCog is the name I have given to the Z80 emulator itself. That is, ZiCog is not actually anything to do with CP/M or any other system that it may be made to run. The releases of ZiCog made here (Last is version 0.6) do include CP/M 2 which is executed from HUB RAM and can access files on an SD card. This is only a "demo" wrapped around ZiCog to show what it can do. It is limited to 20K of HUB RAM for use by CP/M.
Cluso and I have been working on a version of ZiCog + CP/M that fetches it's instructions from the external RAM of the TriBlade board. This version also implements memory bank switching such that the Z80 emulation can access 256K of memory. This will allow us to implement CP/M 3 which supports much larger files and file systems (Than CP/M 2) on SD card. There has not been a "user friendly" release of that yet. The TriBlade implementation will also include the PropComm VT100 terminal emulation running on Blase #1 thus creating a completely stand alone CP/M computer.
When the TriBlade version of ZiCog is ready I will also release a Demo Board version with the exact same ZiCog emulator code. This is possible because we are using mparks HomeSpun Spin compiler which supports conditional compilation.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
ZiCog basically runs on pretty much any propeller platform.
However, to run anything decent (in terms of·operating systems such as CPM which opens up editting, msbasic, turbo pascal, compilation, etc)·requires a lot more memory than just the available free hub memory.
This is where the TriBladeProp comes in. Its second Propeller circuit (called Blade #2) has 1MBytes of fast external static ram allowing fetching of external memory at about the same speed as hub ram. This gave us a full 64KB ram/rom for CPM 2 and a 960KB ram disk. We are now implementing bank switching which is used on CPM 3 which gives 256KB of ram/rom for CPM 3 and 768KB available for a ram disk. This propeller also has a microSD socket for a microSD card. It only has two spare pins for communications with the outside world (other props/blades on the TriBladeProp board).
Blade #1 has been designed to be a complete Terminal (VGA/TV/Kbd) with optional extra static ram for possible graphics buffer use later.
Blade #3 has been designed for·any other I/O expansion, such as ethernet, serial, etc.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ Links to other interesting threads:
Here is the TriBladeProp and ZiCog booting a standard SIMH CPM 2.2 with a second drive B: which in this instance is the SIMH CPM 3 drive. Both reside on the microSD card as seperate files under FAT16.
I have attached the ZiCog demo code (but I am not yet using the latest ZiCog emulator).
In case you notice, I need to do an update to the tbp2 driver (at present I am reloading the cog to avoid bus conflicts on the TBP when I access the SD files).
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ Links to other interesting threads:
Are you brave enough to try an upgrade to CP/M 3 on the Prop itself ?
If so I'll try out the procedure here in SIMH first.
In the mean time you should be able to recompile and reinstall CP/M 2 with what you have on drive A: as simply as this:
A>do syscpm2
This should assemble all the relevant files, write them results out to the drive A: boot sectors and then reboot into the newly built CP/M 2.
If that works I'm confident the CP/M 3 rebuild will also. I assume the banked memory is not included yet, no prob. there is a build procedure for non-banked CP/M 3.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
Comments
With respect to the complexities of addressing sd cards, and with a view to interoperability between different systems, I thought I might post this link http://www.dharmanitech.com/2009/01/sd-card-interfacing-with-atmega8-fat32.html
There is some C code there, and some of it already exists on the propeller (eg uart, spi). But what he has working is a way of talking to an SD card formatted with fat32 using hyperterminal, with very easy to understand options in plain text. Read a block. Get a file list etc. There might be some useful code ideas in there.
I've had the N8VEM online for a few days now. Issues:
1) my phone line is very noisy (100 homes affected) so it keeps resetting my IP address
2) the constantly changing IP address forced me to look at dyndns (a bad situation that turned into a good outcome)
3) I didn't want to leave a PC on to autoupdate the address, but I found my router can talk to dyndns and do it automatically!
4) the address is n8vem.homedns.org:3001 where 3001 is the port number
5) if you log in with that address, log out, and my IP address changes, then your PC will read the last IP address from its local cache rather than rechecking with dyndns. So you need to flush the ip address from within a command window with ipconfig/flushdns
6) there are many terminal programs out there and they all work with varying degrees of success. But only two (so far) can actually send and receive xmodem files. Absolute Telnet can do it but there are a few setup things to change and it is shareware and expires after a month. But a program called ShamCom can do it and it is free and the setup is very easy. I've managed to push the baud rate up to 38400 with the MSS100 so wordstar is nice and fast now. The current setup does not have a PC anywhere in the loop. The router is doing the IP update. A blue cable connects to a MSS100 box and this connects via a serial port to a N8VEM board.
So - to talk to this board
1) http://www.shamrock.de/tools.htm scroll about 2/3 the way down and download ShamCom
2) Install and run it.
3) In Connection, select New. Name the connection (n8vem or whatever). For number, use n8vem.homedns.org:3001
4) Save that connection. Try dialing it. Hit Return a few times and you should get a A> prompt. Try running wordstar or mbasic.
5) You can flush the dns by opening a command window in Actions/Command Prompt. (Won't be so necessary once my phone is fixed)
6) Try an xmodem file transfer. Run xmodem r myfile.txt or xmodem s myfile.txt and then go into Actions Download or Upload. (xmodem does timeout after 30 secs or so if you take too long to select a file). "xmodem s" is a "download".
7) Use dirx rather than dir (dir seems to not work properly with lots of terminal programs).
Now you can do speed tests on a real board.
It would be great to get the telnet code (on the object exchange) working with an enc28j60 on the triblade. The enc28j60 is only $7 on ebay and the rj45 socket with all the magnetics is only another $3. Then you could have an ethernet enabled board, for a reasonable price, and with some onboard smarts capable of compiling software, writing a letter, downloading and uploading files and autoupdating software etc.
However, as I understand it, Microsoft has a patent on FAT32 and they are now actively persuing claims for it.
FAT16 is supplied on the SD/microSD cards 2GB and below and can be reinstalled my microsoft drivers on the PC (Vista anyway) so I don't believe there are any legal issues there. They do have a patent that applies to long filenames as well, but we are not using them in FTA16. Anyway, I cannot see the need for > 2GB.
Currently the CPM disks are just contiguous files within the FAT16 file structure so we don't currently have any issues with FAT16 withing CPM. Our driver just issues a block read or write to the low level spi cog driver.
As for your IP address, I presume you have asked the obvious. Telstra used to not give a fixed IP address (some time ago and this may have changed) unless you paid more for it. So the address did indeed change during the day.
I have my CPM2.2 and CPM3 disks as files on the microSD card. They use the first 128 bytes of the 512 byte sectors, so a 32MB SD file is in fact an 8MB disk to CPM. The files supplied from the SIMH site are actually 137 byte sectors with the first 3 bytes and last 6 bytes not required.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBladeProp, SixBladeProp, website (Multiple propeller pcbs)
· 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)
· Search the Propeller forums (via Google)
My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
Just been trying to login to your n8vem. Connects OK but DIR is not understood as below:
heater@ddt:~$ telnet n8vem.homedns.org 3001
Trying 121.45.221.92...
Connected to n8vem.homedns.org.
Escape character is '^]'.
A>
A>DIR
DI
DI?
A>
Same problem with WS but after typing WS and return a few times WordStar started!
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
In the future when MS has had it's dumb patent claims thrown out, or for brave soles who don't care about such things there is a complete FAT32 system for micro-controllers here
elm-chan.org/fsw/ff/00index_e.html
It's written in C and is quite large (>3000 lines) and complicated enough that I would not want to start converting it to SPIN. But now we have C compilers for the Prop...
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
I'm still getting to know how sd cards work. There is micro, mini and standard size. You can buy a standard one and inside is a mini and inside that is a micro. "Russian Doll" memory cards.
I picked up a little USB to standard sized card on ebay for $5. So - fill it up, then take out the standard sized sd, take out the micro card out of that one and put it in the triblade. Then there is the question of holders. Standard sized ones seem a bit hard to get and/or overpriced. I've got some micro sized ones on the way from sparkfun. I got some mini ones (the middle size) ones and the pins look pretty easy to solder. But the micro ones - are the pins at the end of the holder or sort of inside it? How easy was that little holder to solder to the triblade?
Re logging into the board, many telnet clients simply don't work. Returning "DR?" from a DIR is something PuTTY does for instance. What terminal program are you using?
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
Sometimes DIR does not list everything, as in this screenshot.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
OBC
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?
Visit the: The Propeller Pages @ Warranty Void.
I have both a microSD to SD adapter and a microSD to USB adapter. Both are readily available from Officeworks in Australia fairly cheap. If you need to re-format use 32KB clusters (Vista defaults to 16KB clusters). I now forget why, but there was a reason - I formatted at 16KB and it works OK. I just have a note to myself to change to 32KB when I reformat. Mini does not seem to be a popular size.
I bought an SD card adapter with a 1GB microSD card in a pack from Officeworks for A$7.07 over 6 months ago, and in a little plastic case. At the same time I bought a USB to microSD adapter with an 8GB microSD card in a pack for A$60. (8GB for other purpose) Fortunately the USB adapter has a keychain rope because it is so small I was scared I would lose it. I posted pics of both of these under the thread SD or microSD recently. A 2GB microSD was A$10 (last week).
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBladeProp, SixBladeProp, website (Multiple propeller pcbs)
· 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)
· Search the Propeller forums (via Google)
My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
I haven't tested "dos" telnet nor xp's hyperterminal as I don't have them.
Hyperterminal private edition talks to the board fine but won't do xmodem. I'm not sure if it is free any more.
Teraterm works but puts in % characters in random positions. It doesn't do xmodem.
PuTTY drops characters when sending but receives characters fine.
Absolute telnet works perfectly but it costs $50 after 1 month.
ShamCom is the only free program I've found that works with DIR etc and also does xmodem.
Then there is the option of writing something from scratch using winsock and vb.net. I had an idea wsock3.dll could do it as all the commands seem to be there and I've got it working talking locally to the altair simh. However, there seems to be a bug when receiving one character at a time - you can't read them in. You can only read in lines ending in carriage return. So xmodem won't be possible to code. I was researching other winsock dll files over at planet source code and some examples did look promising. But when I found ShamCom that line of research wasn't necessary any more. Pity 'bout the name. I think it got lost in translation because it is Shamrock software which is supposed to be lucky if you find one with 4 leaves, but a sham is, well " an imitation or counterfeit purporting to be genuine" LOL. Anyway, the software works and that is the main thing.
One problem that may come up is "dialing out". On the MSS100 this is quite tricky to do because you have to change it to a programming mode where data going out is either routed out or sets program options. With linking up two boards directly, one could "dial in" to each board from a PC program running vb.net and a winsock, then use software in vb.net to link the two links together. There might be some port clashes though. Alternatively, if the propeller object telnet code ends up working via an enc28j60 on blade 3, maybe dialing out could end up easy (ie you just send out an IP address and port and wait for a reply or a timeout).
Re the little micro SD card, I hope the ones I'm getting from sparkfun are the ones that are easy to solder. I am still getting parts together for the triblade. I've kind of got hooked on cheap shipping (eg Electus, Rockby, Sparkfun, Futurlec) and now find it very hard to pay more than $5 shipping and handling. I might make another concerted effort to find those 512k ram chips locally.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBladeProp, SixBladeProp, website (Multiple propeller pcbs)
· 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)
· Search the Propeller forums (via Google)
My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
Microsoft does not have a patent on FAT32. They have a patent on the long filename system. You can do FAT32 with 8.3 filenames to your heart's content.
I am in the process of coding a real file system for Prop over SD. It will be FAT16 mainly because in order to run apps from SD ("SPIN" in PropDOS/PropCMD) I need the FemtoBasic sdpi object. That thing is pretty tightly written in PASM and I'm nowhere near understanding it. It's a pretty minor change to the SD bootup to get it to recognize SDHC cards (they're addressed by sector instead of by byte, but you have to check a bit in a reg during bootup to see which you're dealing with). I don't know enough to add this to the femto sdpi object, though. Someone already posted a mod to spdiqasm to make it recognize SDHC, and even though it's not the superfast all-pasm version it's quite fast enough since the block transfers are in pasm, but that module doesn't do spin/reboot, which is absolutely necessary for the projects I'm working on. I've looked at the SD reboot code in spdifemto and it's doing a lot of stuff I don't understand. I am pretty confident doing the file system in SPIN, but the low level stuff is going to take some time for me to get into it.
If there was someone who wanted FAT32 support, and if they happened to be PASM gurus unafraid of the complexities of spdifemto or able to graft spin-robooting into spdiqasm, I could really build on what might be a few hours of work hint hint.
The fsrw routines (and the sdSpiFemto Spin routines) don't support double buffering, but the assembly routines can certainly do it. Currently the Spin interface routines wait for any ongoing read or write to complete before initiating another, so there's no overlap of I/O. I have tested both double buffered reads and writes and they work fine.
Post Edited (Mike Green) : 4/18/2009 3:47:38 AM GMT
That is a cunning trick shifting the bits. I like it.
I have this half baked idea I've been thinking about for several years re cheap image capture. For a PC you can get a capture card and you just plug in lot of cheap cameras - either usb or direct video (yellow RCA used for security). Multimegapixel cameras are incredibly good value.
But - how could you use this sort of technology for robotics? A robot based on a PC is big, and one based on a laptop is expensive. Could you use a camera and then save it to sd card and then read out the data from that sd card? Might take some hardware hacking but it should be possible. Or can the prop interface more directly with the video signal?
Start telnet and the escape into its command line interface with control-]
and issue the following:
telnet>set binary
telnet>mode character
telnet>set crlf
This gets it into binary friendly no echo mode.
Its awful slow, have to wait for each char to be echoed back from N8VEM else it messes up.
Backspace does not work.
These options can be put in a rctelnet file. See the man pages.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
I've got someone on the n8vem forum who is working on putting their board online in the US, so then we can test these sorts of things.
I'm following a few leads on the 512k chip. Interestingly, someone on the N8VEM forum used it for the N8VEM so that means it is compatable for both. Handy.
Studying the triblade some more, I note the headers for blade 3 are "spinstudio" compatable. That should make internet connections a lot easier when it gets to that stage. I have to say the triblade is a great little design.
Addit - Farnell don't actually have any chips in Australia. I ended up getting 10 from Future Electronics, though the $31 shipping fee hurts a bit. But the chips were only $3.89 each. If I can use these chips in N8VEM boards too, that more than makes up for it. They did make me sign an agreement though saying these chips would not be used in "The production, manufacture, design, development or use of missiles (including but not limited to space research), chemical or biological weapons or nuclear applications including but not limited to, nuclear explosive activities".
Lucky I'm just using these boards to measure water levels in a stock trough!
Post Edited (Dr_Acula (James Moxham)) : 4/18/2009 12:31:39 PM GMT
My understanding is Farnell has access to UK stock from Australia and has shipments in regularly. My parts have all come from Digikey and Future Electronics (not Futurelec) and have arrived in 7 days, but shipping is the major cost.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBladeProp, SixBladeProp, website (Multiple propeller pcbs)
· 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)
· Search the Propeller forums (via Google)
My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
If you shift a 24-bit address left 9 bits, don't you end up with a 33-bit address? Are the block addresses actually limited to 23 bits?
/confused SD tyro
The existing code will read SDHC with minor changes if you KNOW it's SDHC. The trick is that you must read a status register to tell what kind of card you have. Here's a thread where lonesock made the mod to spsifasm:
http://forums.parallax.com/forums/default.aspx?f=25&m=289153
The problem is that spsifasm doesn't have the code to load RAM from SD and reboot, and I don't understand what that code is doing in sdspifemto, nor am I confident in applying lonesock's mod to spsifemto because it's written mostly in pasm and there's a lot going on.
I've been following this thread for a while now and I am confused on one part. Could i still run this with a single prop using a SD card? Seems its working on the TriBlade but im not sure about a single prop. Thanks
-Tom
Everyone should be aware that ZiCog is the name I have given to the Z80 emulator itself. That is, ZiCog is not actually anything to do with CP/M or any other system that it may be made to run. The releases of ZiCog made here (Last is version 0.6) do include CP/M 2 which is executed from HUB RAM and can access files on an SD card. This is only a "demo" wrapped around ZiCog to show what it can do. It is limited to 20K of HUB RAM for use by CP/M.
Cluso and I have been working on a version of ZiCog + CP/M that fetches it's instructions from the external RAM of the TriBlade board. This version also implements memory bank switching such that the Z80 emulation can access 256K of memory. This will allow us to implement CP/M 3 which supports much larger files and file systems (Than CP/M 2) on SD card. There has not been a "user friendly" release of that yet. The TriBlade implementation will also include the PropComm VT100 terminal emulation running on Blase #1 thus creating a completely stand alone CP/M computer.
When the TriBlade version of ZiCog is ready I will also release a Demo Board version with the exact same ZiCog emulator code. This is possible because we are using mparks HomeSpun Spin compiler which supports conditional compilation.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
ZiCog basically runs on pretty much any propeller platform.
However, to run anything decent (in terms of·operating systems such as CPM which opens up editting, msbasic, turbo pascal, compilation, etc)·requires a lot more memory than just the available free hub memory.
This is where the TriBladeProp comes in. Its second Propeller circuit (called Blade #2) has 1MBytes of fast external static ram allowing fetching of external memory at about the same speed as hub ram. This gave us a full 64KB ram/rom for CPM 2 and a 960KB ram disk. We are now implementing bank switching which is used on CPM 3 which gives 256KB of ram/rom for CPM 3 and 768KB available for a ram disk. This propeller also has a microSD socket for a microSD card. It only has two spare pins for communications with the outside world (other props/blades on the TriBladeProp board).
Blade #1 has been designed to be a complete Terminal (VGA/TV/Kbd) with optional extra static ram for possible graphics buffer use later.
Blade #3 has been designed for·any other I/O expansion, such as ethernet, serial, etc.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBladeProp, SixBladeProp, website (Multiple propeller pcbs)
· 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)
· Search the Propeller forums (via Google)
My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
I have attached the ZiCog demo code (but I am not yet using the latest ZiCog emulator).
In case you notice, I need to do an update to the tbp2 driver (at present I am reloading the cog to avoid bus conflicts on the TBP when I access the SD files).
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBladeProp, SixBladeProp, website (Multiple propeller pcbs)
· 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)
· Search the Propeller forums (via Google)
My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
Are you brave enough to try an upgrade to CP/M 3 on the Prop itself ?
If so I'll try out the procedure here in SIMH first.
In the mean time you should be able to recompile and reinstall CP/M 2 with what you have on drive A: as simply as this:
A>do syscpm2
This should assemble all the relevant files, write them results out to the drive A: boot sectors and then reboot into the newly built CP/M 2.
If that works I'm confident the CP/M 3 rebuild will also. I assume the banked memory is not included yet, no prob. there is a build procedure for non-banked CP/M 3.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
Can I do
A>do syscpm2 b:
???
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBladeProp, SixBladeProp, website (Multiple propeller pcbs)
· 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)
· Search the Propeller forums (via Google)
My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
So you could edit that last line to change it to b:
But what's wrong with trying on A: ? If it breaks it sounds like you can now put those images back on SD card easily.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.