Discussion:
[N8VEM: 19945] Grant Searle's multicomputer - Cyclone IV
James Moxham (Dr_Acula)
2015-08-06 05:14:02 UTC
Permalink
Max Scane and James Moxham have been working on a cyclone IV version of
Grant's computer. Basically, we ran out of space on the cyclone II board to
do all the things we wanted - memory management, dual ram chip, four serial
ports. So I think we have something ready for preliminary release - a
schematic that works. Max is still working on software improvements. CP/M 2
and I think 3, plus MP/M working.
Writeup is here http://www.smarthome.jigsy.com/fpga
One very clever thing Max has done is split the partition on the SD card so
you have CP/M in one partition, MP/M on another, and most importantly, FAT
on another. And then he has some software to move files between partitions.
So, instead of transferring Wordstar to the board via a serial link, just
copy the files on the SD FAT partition, then move them into CP/M.
I've got a few boards (4) available, and another 10 on order. So if the
demand is there, possibly could be a month's delay. Schematic etc on the
website, so nothing stopping anyone building one from scratch either!
Cheers, James Moxham
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
RHKoolaap
2015-08-06 09:12:32 UTC
Permalink
Hi James, Max

I always considered the use of a FAT filesystem on the SD-card to be an
unnecessary use of system resources, but now I realize that perhaps windows
users have trouble addressing the CP/M partitions on the SD-card directly
from their main OS?

I find that using a combination of dd and cpmtools on my linux box are
quite satisfactory. I see that dd is also available for windows,
here: http://www.chrysocome.net/dd. Also a windows version of cpmtools is
available here: http://www.cpm8680.com/cpmtools/
I have no personal experience with these packages so ymmv.

Another way might be by using a virtual machine to run the linux tools (you
already run Quartus II in a cygwin environment, if I'm not mistaken).

dd allows you to read or write any block on the SD-card, so my way of
transferring large amounts of data is by using cpmtools to write the data
onto a (in my case 8MB) CP/M image file and then copying that file to the
right location on the SD card using dd.

You can script most of these processes, but usually I don't bother to do
that.

About everything ever produced for CP/M should fit on a 2GB SD-card. I put
the complete, both packed and unpacked, CPMUG and SIGM repositories onto
about 50 8MB volumes, so I have 190 volumes empty for the rest. Once you
have all the files underhand you find that the SD-card stays put most of
the time.
On a regular basis, I only need to transfer the files I am working on,
because I confess I am not fond of CP/Ms editing capabilities (but such is
progress). A serial transfer is the quickest way to do that, and it does't
wear out the SD-card socket so much.

As a test, I transferred WS4 by serial link with DOWNLOAD.COM. Including
packaging. That took 105 seconds (750 kBytes). I'm sure that shutting
down,
swap card,
mount card in windows,
copy the files,
unmount card
replace card,
boot CP/M
copy files from FAT partition
is not much quicker.

You certainly do NOT want to use DOWNLOAD.COM to copy the aforementioned
repositories :-)

Me personally, I'm not (yet) interested so much in more terminals or more
memory. I already have 4 serial interfaces, but never use them and I don't
see the point in using a RAM drive (but that is probably personal). Besides
I like the challenge of limited resources.

An improvement to consider might be to rework the SD-card module to accept
SDHC cards, because non-HC cards get harder to find as time goes by. (not
for the extra bytes; 2GB is way too much storage already :-)
I am thinking about a hybrid system, with a arduino pro mini as an
interface processor. This board has the footprint of a 2716 UV-EPROM
(DIL-24) and comes with extensive libraries for interfacing external
components. They sell for under 2 bucks.

Nevertheless , I am happy this development does not fade into nothingness.
Also it is nice to look at a problem in different ways, Too much agreement
becomes boring really fast. I am certainly going to look at your project
and, in time, I might change my mind. :-)

I didn't mean to bash your and Max's efforts at all, I tend to come over
quite strongly, defending my views, but that is what they are .. just my
point of view

be well, RHK

On Thursday, August 6, 2015 at 7:14:02 AM UTC+2, James Moxham (Dr_Acula)
Post by James Moxham (Dr_Acula)
Max Scane and James Moxham have been working on a cyclone IV version of
Grant's computer. Basically, we ran out of space on the cyclone II board to
do all the things we wanted - memory management, dual ram chip, four serial
ports. So I think we have something ready for preliminary release - a
schematic that works. Max is still working on software improvements. CP/M 2
and I think 3, plus MP/M working.
Writeup is here http://www.smarthome.jigsy.com/fpga
One very clever thing Max has done is split the partition on the SD card
so you have CP/M in one partition, MP/M on another, and most importantly,
FAT on another. And then he has some software to move files between
partitions. So, instead of transferring Wordstar to the board via a serial
link, just copy the files on the SD FAT partition, then move them into CP/M.
I've got a few boards (4) available, and another 10 on order. So if the
demand is there, possibly could be a month's delay. Schematic etc on the
website, so nothing stopping anyone building one from scratch either!
Cheers, James Moxham
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Alan Cox
2015-08-06 09:31:57 UTC
Permalink
Post by RHKoolaap
On a regular basis, I only need to transfer the files I am working on,
because I confess I am not fond of CP/Ms editing capabilities (but such is
progress). A serial transfer is the quickest way to do that, and it does't
There are some nice editors for CP/M. You could possibly also start
with the Fuzix port of the vi clone "levee". We have it running on Z80
using SDCC so it ought to be tweakable to run on CP/M as well 8)
Post by RHKoolaap
An improvement to consider might be to rework the SD-card module to accept
SDHC cards, because non-HC cards get harder to find as time goes by. (not
for the extra bytes; 2GB is way too much storage already :-)
SDHC is pretty trivial to support providing you are running CP/M v3 or
anything else with 512 byte blocks. Gets quite horrible otherwise.
Post by RHKoolaap
I am thinking about a hybrid system, with a arduino pro mini as an interface
processor. This board has the footprint of a 2716 UV-EPROM (DIL-24) and
comes with extensive libraries for interfacing external components. They
sell for under 2 bucks.
At that point you might as well just run a Z80 emulator on the Arduino ;-)

Alan
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
RHKoolaap
2015-08-06 10:07:14 UTC
Permalink
Post by RHKoolaap
Post by RHKoolaap
On a regular basis, I only need to transfer the files I am working on,
because I confess I am not fond of CP/Ms editing capabilities (but such
is
Post by RHKoolaap
progress). A serial transfer is the quickest way to do that, and it
does't
There are some nice editors for CP/M. You could possibly also start
with the Fuzix port of the vi clone "levee". We have it running on Z80
using SDCC so it ought to be tweakable to run on CP/M as well 8)
It isn't the software, It's the keyboard. I have to figure out how to
patch my cursor keys into WS4.
I get cramp in my fingers using ^E^S^D^X etc. It should be doable, just
haven't gotten to it yet.
Besides I really love Geany (http://www.geany.org)
Post by RHKoolaap
Post by RHKoolaap
An improvement to consider might be to rework the SD-card module to
accept
Post by RHKoolaap
SDHC cards, because non-HC cards get harder to find as time goes by.
(not
Post by RHKoolaap
for the extra bytes; 2GB is way too much storage already :-)
SDHC is pretty trivial to support providing you are running CP/M v3 or
anything else with 512 byte blocks. Gets quite horrible otherwise.
All this stuff blocks/deblocks to 512 byte sectors. Worth looking into.
Thanks for the suggestion.
Post by RHKoolaap
Post by RHKoolaap
I am thinking about a hybrid system, with a arduino pro mini as an
interface
Post by RHKoolaap
processor. This board has the footprint of a 2716 UV-EPROM (DIL-24) and
comes with extensive libraries for interfacing external components. They
sell for under 2 bucks.
At that point you might as well just run a Z80 emulator on the Arduino ;-)
I know, talk about overkill, But it is a really cheap option. Anyway you
are right, the aim of the game is to fit it all in the cyclone. That costs
nothing extra.

RHK
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Brian O'Sullivan
2015-08-06 13:25:16 UTC
Permalink
If you are making boards put me down for one.

I have one of the cyclone ll based pcb boards and I get a lot of use out of it.

What I would like to see is easy access to some I/O ports somewhere for general interfacing - I have some old equipent I'd like to interface (5v ttl parallel interfacing). I also tend to ignore the 232 chips and just use USB to ttl adaptors instead, but I like the idea of multiple serial ports.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Gregory Carlson
2015-08-06 22:28:00 UTC
Permalink
Put me down for one also. I'm working on constructing the Cyclone II board now and expect completion soon.
Greg
Post by Brian O'Sullivan
If you are making boards put me down for one.
I have one of the cyclone ll based pcb boards and I get a lot of use out of it.
What I would like to see is easy access to some I/O ports somewhere for general interfacing - I have some old equipent I'd like to interface (5v ttl parallel interfacing). I also tend to ignore the 232 chips and just use USB to ttl adaptors instead, but I like the idea of multiple serial ports.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Tom Lafleur
2015-08-07 20:32:07 UTC
Permalink
I'll take one also , if you have any units remaining....

thanks
Post by Gregory Carlson
Put me down for one also. I'm working on constructing the Cyclone II
board now and expect completion soon.
Greg
Post by Brian O'Sullivan
If you are making boards put me down for one.
I have one of the cyclone ll based pcb boards and I get a lot of use out
of it.
Post by Brian O'Sullivan
What I would like to see is easy access to some I/O ports somewhere for
general interfacing - I have some old equipent I'd like to interface (5v
ttl parallel interfacing). I also tend to ignore the 232 chips and just use
USB to ttl adaptors instead, but I like the idea of multiple serial ports.
Post by Brian O'Sullivan
--
You received this message because you are subscribed to the Google
Groups "N8VEM" group.
Post by Brian O'Sullivan
To unsubscribe from this group and stop receiving emails from it, send
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
~~ _/) ~~~~ _/) ~~~~ _/) ~~~~ _/) ~~

Tom Lafleur
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Alan Cox
2015-08-06 16:09:16 UTC
Permalink
Post by RHKoolaap
Post by Alan Cox
SDHC is pretty trivial to support providing you are running CP/M v3 or
anything else with 512 byte blocks. Gets quite horrible otherwise.
All this stuff blocks/deblocks to 512 byte sectors. Worth looking into.
Thanks for the suggestion.
It's perhaps counter-intuitive or even just plain 'wrong sounding' to
those of use who grew up thinking disc space was precious, but it
works far better to throw 75% of the media space away 8)

For SD media where you simply can't use the gigabytes of space you
will get much better behaviour (and vastly improved media lifetime) if
you simply use the first 128 bytes of each sector with CP/M 2 or MP/M.
The media really doesn't like continual partial rewrite patterns,
although some media "understands" DOS file systems and handles the FAT
specially.
Post by RHKoolaap
I know, talk about overkill, But it is a really cheap option. Anyway you
are right, the aim of the game is to fit it all in the cyclone. That costs
nothing extra.
You've got a lot of the bits there already for almost anything. With a
single SPI channel you only need to add extra chip select pins to hook
in more SPI devices and SPI these days gives you ethernet, wifi
TCP/P<->serial chips (Wiznet), multiple serial ports, USB device, even
USB host controllers (MAX3421E) with almost no extra FPGA cost (they
work better with the FPGA hardware polling the ports in parallel to an
OS but it's not as if CP/M does two things at once during an SPI
transfer anyway).

Alan
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
RHKoolaap
2015-08-06 17:58:00 UTC
Permalink
Hi Alan

I'm confused. If you write only 128 bytes, aren't you still writing a full
sector to the card? 384 extra bytes would be written to complete the block
that the card requires.
My understanding of wear leveling is that the controller maps different
empty segments into areas that are being written. however that will only
happen if there are any free memory segments. When you write an image on
the card the whole thing will be in use. You should be instructing the card
to erase all the unused data in order to free the memory for wear leveling
to work. Just simply not using certain areas would not sort any effect.
A better way perhaps would be to erase the whole card and writing only real
data onto it.
Am I assuming right?

RHK
It's perhaps counter-intuitive or even just plain 'wrong sounding' to
Post by Alan Cox
those of use who grew up thinking disc space was precious, but it
works far better to throw 75% of the media space away 8)
For SD media where you simply can't use the gigabytes of space you
will get much better behaviour (and vastly improved media lifetime) if
you simply use the first 128 bytes of each sector with CP/M 2 or MP/M.
The media really doesn't like continual partial rewrite patterns,
although some media "understands" DOS file systems and handles the FAT
specially.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Alan Cox
2015-08-06 22:07:20 UTC
Permalink
Post by RHKoolaap
I'm confused. If you write only 128 bytes, aren't you still writing a full
sector to the card? 384 extra bytes would be written to complete the block
that the card requires.
You are but you are avoiding the potential read/reblock/rewrite so
it's faster and much simpler codewise as you don't have to read the
media before writing each 512 byte block, and you don't have to have
very good reblocking logic in your OS. For IDE 128 or 256 bytes used
also lets you nail the controller to the machine using 8bit wide
interfaces without latches but that's another story.
Post by RHKoolaap
My understanding of wear leveling is that the controller maps different
empty segments into areas that are being written. however that will only
happen if there are any free memory segments. When you write an image on the
card the whole thing will be in use. You should be instructing the card to
erase all the unused data in order to free the memory for wear leveling to
work. Just simply not using certain areas would not sort any effect.
That's not the actual idea. The goal is to avoid the
read/write/rewrite of the same block (although CP/M with a suitable
extent size and sufficient buffers seems quite good at not doing that
except for the directory)
Post by RHKoolaap
A better way perhaps would be to erase the whole card and writing only real
data onto it.
Am I assuming right?
Not sure to be honest - the cards are sometimes very smart internally
(and sometimes quite dumb) and are really little storage management
systems. They are optimised for certain behaviours. In particular many
are only fast for sequential 512 byte writes of following sectors. The
moment you rewrite the same sector or jump about within the same block
(typically 4-16MB) they close the log, and you end up starting a new
transaction in a new erase block. For CP/M that's kind of annoying as
a typical CP/M volume is only 8MB (one or two erase blocks) so
touching the directory breaks the flow. Reading and then writing back
over a block can be interpreted as "random access" detection and the
like.

OTOH the better ones handle random writes (but not always rewrites)
into the same allocation unit efficiently so work rather well for CP/M
2.x as they will generally sit in one or two 4MB allocation units and
get written in a log, so each 4MB of writes (and sometimes overwrites)
will cause the log to be committed to a new 4MB block in filesystem
format, and then a new log is started.

The really good ones like the Sandisk cards use mixed flash types and
front big erase block sizes with a 1MB or so block size log.

If your BIOS reblocking gives perfect results and can avoid any
unneeded pre-read then actually thinking about it much harder I would
agree that using all the block makes better sense for CP/M providing
you extent size is such that you work multiples of 512 bytes and the
layout is such that they fall on the media 512 byte alignment (and
preferably on the media 4K alignment for some firmware)

Anything doing under 512 byte I/O without proper in memory reblocking
and preallocate (ie not reading before writing the full 512 bytes) is
just a disaster on SD media however, and on many cards random access
really isn't handled well either (something Fuzix right now often
provokes as the V7 allocator, while allowing stupidly large file
systems in almost no memory, is not good at sequential disk layout)

Alan

PS: if anyone wants to play with SPI and Ethernet I've got a CP/M test
app I wrote for the ENC28J60 and SocZ80 which includes all the set
up/reset/poll/send/receive routines needed.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Miguel Garcia
2015-08-13 17:55:51 UTC
Permalink
Post by RHKoolaap
Post by RHKoolaap
Post by RHKoolaap
On a regular basis, I only need to transfer the files I am working on,
because I confess I am not fond of CP/Ms editing capabilities (but such
is
Post by RHKoolaap
progress). A serial transfer is the quickest way to do that, and it
does't
There are some nice editors for CP/M. You could possibly also start
with the Fuzix port of the vi clone "levee". We have it running on Z80
using SDCC so it ought to be tweakable to run on CP/M as well 8)
It isn't the software, It's the keyboard. I have to figure out how to
patch my cursor keys into WS4.
I get cramp in my fingers using ^E^S^D^X etc. It should be doable, just
haven't gotten to it yet.
Besides I really love Geany (http://www.geany.org)
Hi!

May be my small screen oriented text editor for CP/M (te) is interesting to
you.

It's is written in MESCC (derived from Small-C), is totally configurable by
editing a small C file, and the source code is available (GPL license).

There are some ports and configurations already made (CP/M, VT52,
VT100, DOS, Windows, Linux).

If you are interested, have a look at my website:

http://www.floppysoftware.vacau.com/te.html

Regards
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
RHKoolaap
2015-08-14 15:26:36 UTC
Permalink
Hi Miguel

Thanks for the pointer. I had a quick look and it looks promising
I'll let you know how it goes,

RHK
Post by Miguel Garcia
Post by RHKoolaap
Post by RHKoolaap
Post by RHKoolaap
On a regular basis, I only need to transfer the files I am working on,
because I confess I am not fond of CP/Ms editing capabilities (but
such is
Post by RHKoolaap
progress). A serial transfer is the quickest way to do that, and it
does't
There are some nice editors for CP/M. You could possibly also start
with the Fuzix port of the vi clone "levee". We have it running on Z80
using SDCC so it ought to be tweakable to run on CP/M as well 8)
It isn't the software, It's the keyboard. I have to figure out how to
patch my cursor keys into WS4.
I get cramp in my fingers using ^E^S^D^X etc. It should be doable, just
haven't gotten to it yet.
Besides I really love Geany (http://www.geany.org)
Hi!
May be my small screen oriented text editor for CP/M (te) is interesting
to you.
It's is written in MESCC (derived from Small-C), is totally configurable
by editing a small C file, and the source code is available (GPL license).
There are some ports and configurations already made (CP/M, VT52,
VT100, DOS, Windows, Linux).
http://www.floppysoftware.vacau.com/te.html
Regards
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
RHKoolaap
2015-08-07 10:22:42 UTC
Permalink
Hi Alan,

You were entirely right, Adding SDHC support to the VHDL code wasn't that
complicated at all.

However I would appreciate it if someone with more experience in VHDL code
would look at this critically. After al, I am obviously a rank novice in
VHDL and SD cards and there is quite some monkey-see, monkey-do coding
happening.

The logic is
issue CMD0
issue CMD8 (new)
read 5 byte response, ignore it
issue CMD55/ACMD41, repeat until ready
issue CMD58, read 5 byte response, repeat until powerup (bit31) (new)
read CCS (bit 30), make sdhc true or false
use sdhc to shift the address bits correctly for byte address or block
address

What can I say, it seems to work, but maybe that is by accident :-)

here's the code:

-- VHDL SD card interface
-- Reads and writes a single block of data as a data stream

-- Adapted from design by Steven J. Merrifield, June 2008
-- Read states are derived from the Apple II emulator by Stephen Edwards

-- This version of the code contains modifications copyright by Grant
Searle 2013
-- You are free to use this file in your own projects but must never charge
for it nor use it without
-- acknowledgement.
-- Please ask permission from Grant Searle before republishing elsewhere.
-- If you use this file or any part of it, please add an acknowledgement to
myself and
-- a link back to my main web site http://searle.hostei.com/grant/
-- and to the "multicomp" page at
http://searle.hostei.com/grant/Multicomp/index.html
--
-- Please check on the above web pages to see if there are any updates
before using this file.
-- If for some reason the page is no longer available, please search for
"Grant Searle"
-- on the internet to see if I have moved to another web hosting service.
--
-- Grant Searle
-- eMail address available on my main web page link above.


library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity sd_controller is
port (
sdCS : out std_logic;
sdMOSI : out std_logic;
sdMISO : in std_logic;
sdSCLK : out std_logic;
n_reset : in std_logic;
n_rd : in std_logic;
n_wr : in std_logic;
dataIn : in std_logic_vector(7 downto 0);
dataOut : out std_logic_vector(7 downto 0);
regAddr : in std_logic_vector(2 downto 0);
clk : in std_logic; -- twice the spi clk;
driveLED : out std_logic := '1'
);

end sd_controller;

architecture rtl of sd_controller is
type states is (
rst,
init,
cmd0,
regreq,
cmd55,
cmd41,
poll_cmd,
cmd58,
cardsel,
idle, -- wait for read or write pulse
read_block_cmd,
read_block_wait,
read_block_data,
send_cmd,
send_regreq,
receive_ocr_wait,
receive_ocr,
receive_byte_wait,
receive_byte,
write_block_cmd,
write_block_init, -- initialise write command
write_block_data, -- loop through all data bytes
write_block_byte, -- send one byte
write_block_wait -- wait until not busy
);


-- one start byte, plus 512 bytes of data, plus two ff end bytes (crc)
constant write_data_size : integer := 515;


signal state, return_state : states;
signal sclk_sig : std_logic := '0';
signal cmd_out : std_logic_vector(55 downto 0);
signal recv_data : std_logic_vector(7 downto 0);
signal ocr_data : std_logic_vector(39 downto 0);

signal status : std_logic_vector(7 downto 0) := x"00";

signal block_read : std_logic := '0';
signal block_write : std_logic := '0';
signal block_start_ack : std_logic := '0';

signal cmd_mode : std_logic := '1';
signal response_mode : std_logic := '1';
signal data_sig : std_logic_vector(7 downto 0) := x"00";
signal din_latched : std_logic_vector(7 downto 0) := x"00";
signal dout : std_logic_vector(7 downto 0) := x"00";

signal sdhc : std_logic := '0';

signal sd_read_flag : std_logic := '0';
signal host_read_flag : std_logic := '0';

signal sd_write_flag : std_logic := '0';
signal host_write_flag : std_logic := '0';

signal init_busy : std_logic := '0';
signal block_busy : std_logic := '0';

signal address: std_logic_vector(31 downto 0) :=x"00000000";

signal led_on_count : integer range 0 to 200;

begin
process(n_wr)
begin
-- sdsc address 0..8 (first 9 bits) always zero because each sector is 512
bytes
if rising_edge(n_wr) then
if sdhc = '0' then -- SDSC card
if regAddr = "010" then
address(16 downto 9) <= dataIn;
elsif regAddr = "011" then
address(24 downto 17) <= dataIn;
elsif regAddr = "100" then
address(31 downto 25) <= dataIn(6 downto 0);
end if;
else -- SDHC card
-- SDHC address is the 512 bytes block address. starts at bit 0
if regAddr = "010" then
address(7 downto 0) <= dataIn; -- 128 k
elsif regAddr = "011" then
address(15 downto 8) <= dataIn; -- 32 M
elsif regAddr = "100" then
address(23 downto 16) <= dataIn; -- addresses upto 8 G
end if;
end if;
end if;
end process;

dataOut <=
dout when regAddr = "000"
else status when regAddr = "001"
else "00000000";

process(n_wr)
begin
if rising_edge(n_wr) then
if (regAddr = "000") and (sd_write_flag = host_write_flag) then
din_latched <= dataIn;
host_write_flag <= not host_write_flag;
end if;
end if;
end process;

process(n_rd)
begin
if rising_edge(n_rd) then
if (regAddr = "000") and (sd_read_flag /= host_read_flag) then
host_read_flag <= not host_read_flag;
end if;
end if;
end process;

process(n_wr, block_start_ack,init_busy)
begin
if init_busy='1' then
block_read <= '0';
elsif block_start_ack='1' then
block_read <= '0';
elsif rising_edge(n_wr) then
if regAddr = "001" and dataIn = "00000000" then
block_read <= '1';
end if;
end if;
end process;

process(n_wr, block_start_ack,init_busy)
begin
if init_busy='1' then
block_write <= '0';
elsif block_start_ack='1' then
block_write <= '0';
elsif rising_edge(n_wr) then
if regAddr = "001" and dataIn = "00000001" then
block_write <= '1';
end if;
end if;
end process;

process(clk,n_reset)
variable byte_counter : integer range 0 to write_data_size;
variable bit_counter : integer range 0 to 160;
begin
if (n_reset='0') then
state <= rst;
sclk_sig <= '0';
sdCS <= '1';
elsif rising_edge(clk) then

case state is

when rst =>
sd_read_flag <= host_read_flag;
sd_write_flag <= host_write_flag;
sclk_sig <= '0';
cmd_out <= (others => '1');
byte_counter := 0;
cmd_mode <= '1'; -- 0=data, 1=command
response_mode <= '1'; -- 0=data, 1=command
bit_counter := 160;
sdCS <= '1';
state <= init;

when init => -- cs=1, send 80 clocks, cs=0
init_busy <= '1';
if (bit_counter = 0) then
sdCS <= '0';
state <= cmd0;
else
bit_counter := bit_counter - 1;
sclk_sig <= not sclk_sig;
end if;

when cmd0 =>
cmd_out <= x"ff400000000095"; -- GO_IDLE_STATE here, Select SPI
bit_counter := 55;
return_state <= regreq;
state <= send_cmd;

when regreq =>
cmd_out <= x"ff48000001aa87"; -- SEND_IF_COND
bit_counter := 55;
return_state <= cmd55;
state <= send_regreq;

when cmd55 =>
cmd_out <= x"ff770000000001"; -- APP_CMD
bit_counter := 55;
return_state <= cmd41;
state <= send_cmd;

when cmd41 =>
cmd_out <= x"ff694000000077"; -- SD_SEND_OP_COND
bit_counter := 55;
return_state <= poll_cmd;
state <= send_cmd;

when poll_cmd =>
if (recv_data(0) = '0') then
state <= cmd58;
else
state <= cmd55;
end if;

when cmd58 =>
cmd_out <= x"ff7a00000000fd"; -- READ_OCR
bit_counter := 55;
return_state <= cardsel;
state <= send_regreq;

when cardsel =>
if (ocr_data(31) = '0' ) then -- power up not complerted
state <= cmd58;
else
if (ocr_data(30) = '1' ) then -- CCS bit
sdhc <= '1';
else
sdhc <= '0';
end if;
state <= idle;
end if;

when idle =>
sd_read_flag <= host_read_flag;
sd_write_flag <= host_write_flag;
sclk_sig <= '0';
cmd_out <= (others => '1');
data_sig <= (others => '1');
byte_counter := 0;
cmd_mode <= '1'; -- 0=data, 1=command
response_mode <= '1'; -- 0=data, 1=command

block_busy <= '0';
init_busy <= '0';
dout <= (others => '0');

if (block_read = '1') then
state <= read_block_cmd;
block_start_ack <= '1';
elsif (block_write='1') then
state <= write_block_cmd;
block_start_ack <= '1';
else
state <= idle;
end if;

when read_block_cmd =>
block_busy <= '1';
block_start_ack <= '0';
cmd_out <= x"ff" & x"51" & address & x"ff";
bit_counter := 55;
return_state <= read_block_wait;
state <= send_cmd;

-- wait until data token read (= 11111110)
when read_block_wait =>
if (sclk_sig='0' and sdMISO='0') then
state <= receive_byte;
byte_counter := 513; -- data plus crc
bit_counter := 8; -- ???????????????????????????????
return_state <= read_block_data;
end if;
sclk_sig <= not sclk_sig;

when read_block_data =>
if (byte_counter = 1) then -- crc byte 1 - ignore
byte_counter := byte_counter - 1;
return_state <= read_block_data;
bit_counter := 7;
state <= receive_byte;
elsif (byte_counter = 0) then -- crc byte 2 - ignore
bit_counter := 7;
return_state <= idle;
state <= receive_byte;
elsif (sd_read_flag /= host_read_flag) then
state <= read_block_data; -- stay here until previous byte read
else
byte_counter := byte_counter - 1;
return_state <= read_block_data;
bit_counter := 7;
state <= receive_byte;
end if;

when send_cmd =>
if (sclk_sig = '1') then -- sending command
if (bit_counter = 0) then -- command sent
state <= receive_byte_wait;
else
bit_counter := bit_counter - 1;
cmd_out <= cmd_out(54 downto 0) & '1';
end if;
end if;
sclk_sig <= not sclk_sig;

when send_regreq =>
if (sclk_sig = '1') then -- sending command
if (bit_counter = 0) then -- command sent
state <= receive_ocr_wait;
else
bit_counter := bit_counter - 1;
cmd_out <= cmd_out(54 downto 0) & '1';
end if;
end if;
sclk_sig <= not sclk_sig;

when receive_ocr_wait =>
if (sclk_sig = '0') then
if (sdMISO = '0') then -- wait for zero bit
ocr_data <= (others => '0');
bit_counter := 38; -- already read bit 39
state <= receive_ocr;
end if;
end if;
sclk_sig <= not sclk_sig;

when receive_ocr =>
if (sclk_sig = '0') then
ocr_data <= ocr_data(38 downto 0) & sdMISO; -- read next bit
if (bit_counter = 0) then
state <= return_state;
else
bit_counter := bit_counter - 1;
end if;
end if;
sclk_sig <= not sclk_sig;


when receive_byte_wait =>
if (sclk_sig = '0') then
if (sdMISO = '0') then -- wait for start bit
recv_data <= (others => '0');
if (response_mode='0') then -- data mode
bit_counter := 3; -- already read bits 7..4
else -- command mode
bit_counter := 6; -- already read bit 7 (start bit)
end if;
state <= receive_byte;
end if;
end if;
sclk_sig <= not sclk_sig;

when receive_byte =>
if (sclk_sig = '0') then
recv_data <= recv_data(6 downto 0) & sdMISO; -- read next bit
if (bit_counter = 0) then
state <= return_state;

-- if real data received then flag it (byte counter = 0 for both crc bytes)
if return_state= read_block_data and byte_counter > 0 then
sd_read_flag <= not sd_read_flag;
dout <= recv_data;
end if;
else
bit_counter := bit_counter - 1;
end if;
end if;
sclk_sig <= not sclk_sig;

when write_block_cmd =>
block_busy <= '1';
block_start_ack <= '0';
cmd_mode <= '1';
cmd_out <= x"ff" & x"58" & address & x"ff"; -- single block
bit_counter := 55;
return_state <= write_block_init;
state <= send_cmd;

when write_block_init =>
cmd_mode <= '0';
byte_counter := write_data_size;
state <= write_block_data;

when write_block_data =>
if byte_counter = 0 then
state <= receive_byte_wait;
return_state <= write_block_wait;
response_mode <= '0';
else
if ((byte_counter = 2) or (byte_counter = 1)) then
data_sig <= x"ff"; -- two crc bytes
bit_counter := 7;
state <= write_block_byte;
byte_counter := byte_counter - 1;
elsif byte_counter = write_data_size then
data_sig <= x"fe"; -- start byte, single block
bit_counter := 7;
state <= write_block_byte;
byte_counter := byte_counter - 1;
elsif host_write_flag /= sd_write_flag then -- only send if flag set
data_sig <= din_latched;
bit_counter := 7;
state <= write_block_byte;
byte_counter := byte_counter - 1;
sd_write_flag <= not sd_write_flag;
end if;
end if;

when write_block_byte =>
if (sclk_sig = '1') then
if bit_counter=0 then
state <= write_block_data;
else
data_sig <= data_sig(6 downto 0) & '1';
bit_counter := bit_counter - 1;
end if;
end if;
sclk_sig <= not sclk_sig;

when write_block_wait =>
cmd_mode <= '1';
response_mode <= '1';
if sclk_sig='0' then
if sdMISO='1' then
state <= idle;
end if;
end if;
sclk_sig <= not sclk_sig;

when others =>
state <= idle;
end case;
end if;
end process;

sdSCLK <= sclk_sig;
sdMOSI <= cmd_out(55) when cmd_mode='1' else data_sig(7);

status(7) <= '1' when host_write_flag=sd_write_flag else '0'; -- tx byte
empty when equal
status(6) <= '0' when host_read_flag=sd_read_flag else '1'; -- rx byte
ready when not equal
status(5) <= block_busy;
status(4) <= init_busy;

-- Make sure the drive LED is on for a visible amount of time
process (clk, block_busy,init_busy)
begin
if block_busy='1' or init_busy = '1' then
led_on_count <= 200; -- ensure on for at least 200ms (assuming 1MHz clk)
driveLED <= '0';
elsif (rising_edge(clk)) then
if led_on_count>0 then
led_on_count <= led_on_count-1;
driveLED <= '0';
else
driveLED <= '1';
end if;
end if;
end process;

end rtl;


Thanks, RHK
Post by RHKoolaap
Post by RHKoolaap
On a regular basis, I only need to transfer the files I am working on,
because I confess I am not fond of CP/Ms editing capabilities (but such
is
Post by RHKoolaap
progress). A serial transfer is the quickest way to do that, and it
does't
There are some nice editors for CP/M. You could possibly also start
with the Fuzix port of the vi clone "levee". We have it running on Z80
using SDCC so it ought to be tweakable to run on CP/M as well 8)
Post by RHKoolaap
An improvement to consider might be to rework the SD-card module to
accept
Post by RHKoolaap
SDHC cards, because non-HC cards get harder to find as time goes by.
(not
Post by RHKoolaap
for the extra bytes; 2GB is way too much storage already :-)
SDHC is pretty trivial to support providing you are running CP/M v3 or
anything else with 512 byte blocks. Gets quite horrible otherwise.
Post by RHKoolaap
I am thinking about a hybrid system, with a arduino pro mini as an
interface
Post by RHKoolaap
processor. This board has the footprint of a 2716 UV-EPROM (DIL-24) and
comes with extensive libraries for interfacing external components. They
sell for under 2 bucks.
At that point you might as well just run a Z80 emulator on the Arduino ;-)
Alan
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Alan Cox
2015-08-07 14:11:48 UTC
Permalink
Post by RHKoolaap
Hi Alan,
You were entirely right, Adding SDHC support to the VHDL code wasn't that
complicated at all.
However I would appreciate it if someone with more experience in VHDL code
would look at this critically. After al, I am obviously a rank novice in
VHDL and SD cards and there is quite some monkey-see, monkey-do coding
happening.
The logic is
issue CMD0
issue CMD8 (new)
read 5 byte response, ignore it
issue CMD55/ACMD41, repeat until ready
issue CMD58, read 5 byte response, repeat until powerup (bit31) (new)
read CCS (bit 30), make sdhc true or false
use sdhc to shift the address bits correctly for byte address or block
address
This looks correct to me. Pedantically speaking you are supposed to
check a few voltage compat bits and the like but it doesn't really
matter.

Alan
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Neal Crook
2015-08-07 20:15:42 UTC
Permalink
Nice job!! I tried this myself a few months back but was unsuccessful and then got distracted by other projects. I also had a mod that allowed a re-init (eg to allow you to change cards) wbich I think tbe original design does not support. I will review you code and try merging my mods with it (in a week or so as I am on hols at the moment)


Neal (really only interested in 6809..)
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
RHKoolaap
2015-08-08 07:13:52 UTC
Permalink
Hi Neal,

Thanks, most of the effort is in reading the SD-specs. The devil is in the
details :-(

I am not so much in favor of using hot swapping in my CP/M
implementations, for several reasons:
I consider two resources as precious; TPA memory and FPGA LEs. In order to
use hot swapping you need to implement the disks as 'removable' which uses
extra BIOS buffers.
Swapping a card only makes sense if you use a RAM-drive too, which uses
extra BIOS buffer space and BIOS code.
With 2 Gb available disk space, with way too many bootable images, it is
highly unlikely you need another SD card at all, making the use of extra
LEs unwarranted.

That does not mean that hot-swapping is without merit. There are probably
other implementations with other CPU and/or OS where it is highly useful.
Besides, I'm optimizing for space. There is no reason you shouldn't
optimize for features. This is a hobby project, and as such way outside of
the scope of practicality.

Looking forward to seeing your code.

Happy holidays. ( the only 6809 I had was a Vectrex, now deceased :-(

RHK
Post by Neal Crook
Nice job!! I tried this myself a few months back but was unsuccessful and
then got distracted by other projects. I also had a mod that allowed a
re-init (eg to allow you to change cards) wbich I think tbe original design
does not support. I will review you code and try merging my mods with it
(in a week or so as I am on hols at the moment)
Neal (really only interested in 6809..)
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
James Moxham (Dr_Acula)
2015-08-06 23:57:46 UTC
Permalink
My apologies for this:- demand was a bit more than I expected and I have
run out of boards. I had to temporarily take down the "buy now" on the
website. I've ordered some more boards last night and usually they take
about 11 to 14 days to arrive.
Once again, sorry for this temporary hiccup and thankyou for your patience.
- James
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Mike Niswonger
2015-08-07 18:35:17 UTC
Permalink
James,

Put me down for one, also. The Cyclone IV board is on a slow
boat from China, so I'm in no hurry...

Mike Niswonger
Post by James Moxham (Dr_Acula)
My apologies for this:- demand was a bit more than I expected and I
have run out of boards. I had to temporarily take down the "buy now"
on the website. I've ordered some more boards last night and usually
they take about 11 to 14 days to arrive.
Once again, sorry for this temporary hiccup and thankyou for your
patience. - James
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Kip Koon
2015-08-10 07:29:53 UTC
Permalink
Hi James and Max,

Thanks a bunch for designing the new Multicomp board! I’d like to order 1 board please. Eventually, I’d like a few more. Also, I can serve as tester again if you like. Thanks very much.



Kip Koon

***@sc.rr.com

http://www.cocopedia.com/wiki/index.php/Kip_Koon





From: ***@googlegroups.com [mailto:***@googlegroups.com] On Behalf Of James Moxham (Dr_Acula)
Sent: Thursday, August 06, 2015 1:14 AM
To: N8VEM
Subject: [N8VEM: 19945] Grant Searle's multicomputer - Cyclone IV



Max Scane and James Moxham have been working on a cyclone IV version of Grant's computer. Basically, we ran out of space on the cyclone II board to do all the things we wanted - memory management, dual ram chip, four serial ports. So I think we have something ready for preliminary release - a schematic that works. Max is still working on software improvements. CP/M 2 and I think 3, plus MP/M working.
Writeup is here http://www.smarthome.jigsy.com/fpga
One very clever thing Max has done is split the partition on the SD card so you have CP/M in one partition, MP/M on another, and most importantly, FAT on another. And then he has some software to move files between partitions. So, instead of transferring Wordstar to the board via a serial link, just copy the files on the SD FAT partition, then move them into CP/M.
I've got a few boards (4) available, and another 10 on order. So if the demand is there, possibly could be a month's delay. Schematic etc on the website, so nothing stopping anyone building one from scratch either!
Cheers, James Moxham
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
James Moxham
2015-08-10 14:11:41 UTC
Permalink
Thanks Kip and everyone else, and sorry for not anticipating the demand
here!

Max is working on all sorts of clever things that we ran out of space to
do on the Cyclone II. Cascading Interrupts, MMU, four UARTS. He has CPM3
working and is close with MPM. I'm playing around with some vhdl code to
get the ESP8266 wifi working (I have this working in vb.net on a PC, so
can port all that over to CP/M). I think it will be quite possible to talk
to the internet with this board - well, at least the text part of the
internet anyway (email, ftp, online text games, uploading and downloading
data to xively). The picture part of the internet will need a browser and
a jpeg decoder and a full colour screen. Nothing impossible there - I half
wrote a browser in Spin on the propeller chip that could parse html, jpeg
decoding is some C code and C exists in CP/M, and full colour 320x240 SPI
screens are under $10. But some coding will be needed.

I ordered another 10 boards, but I think I might order another 10 on top
of that.

For the very brief time I had the kits available (till I ran out of parts,
sorry!), I got a sense that there was perhaps more demand for kits than
for plain boards. Perhaps it is because there are parts that need to come
from multiple places. None of them are particularly expensive, but VGA
sockets, SD sockets, 40x2 sockets, switching regulator components, ram
chip - they all come from different places and are a bit unusual. So I'm
stocking up on those parts too so I can have kits available, but it could
be 2-3 weeks for them to all arrive.

Thankyou all for your patience with (what I think) is a very exciting
project!

Cheers, James
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
James Moxham (Dr_Acula)
2015-08-19 01:16:16 UTC
Permalink
Update on the cyclone IV boards – another 20 are being made and they have
just been shipped from China. Thankyou to all those waiting patiently.

Meanwhile, some slightly pointless silliness – CP/M talking to the Internet
via Wifi.

Screenshot of the text feed coming back from the google website. This could
work with any machine that can talk 9600 baud at 3V TTL levels. The code is
BDS C and it is easy to use Wordstar and then compile with “cc myprog” then
“clink myprog”. Takes about 10 seconds to compile.

BDS C is slightly different to modern C, but it is possible to port it over
from an Arduino without thinking too much.

All good fun!

Cheers, James Moxham


#include <STDIO.H>

/* PIP NEWFILE.C=MYFILE.C[Z] to remove high bit garbage */

char str1[80]; /* general purpose global string */
char str2[80]; /* yes pointers are better, but possibly */
char str3[80]; /* this is safer with stack overrun errors */

char bargraph;

main()
{
bargraph = 0x01; /* demo for the 8 leds */
incbar();
printf("ESP8266 Test Program\n");
resetESP();
listen1sec();
incbar();
AT();
listen1sec();
incbar();
CWMODE();
listen1sec();
incbar();
CWLAP();
listen1sec();
listen1sec();
incbar();
CWJAP();
listen1sec();
listen1sec();
listen1sec();
incbar();
CIPMUX();
listen1sec();
listen1sec();
incbar();
Google();
}

listen1sec()
{
int i;
for (i=0;i<30000;i++) {
port4term();
}
}

resetESP()
{
outp(0x7E,255);
outp(0x7E,0);
outp(0x7E,255); /* toggle the esp reset pin */
}

port4term()
{
char c;
int n;
n = ac4in();
if (n != -1) {
c = n;
if (((c>31) && (c<128)) || (c==10) || (c==13)) {
printf("%c",c);
}
}
}

incbar()
{
bargraph = (((bargraph+1) *2 ) -1);
outp(0x7f,bargraph);
}

int ac4in() /* returns integer, not char, and -1 is no char */
{
int n;
char b,c;
n = -1;
b = inp(0x90);
b = b & 0x01;
if (b == 1) {
c = inp(0x91);
n = c;
}
return n;
}


ac4out(c) /* output c to port 4 esp8266 port */
char c;
{
char d;
do {
d = inp(0x90);
d = d & 0x2; /* mask bit 1 */
} while (d != 2);
outp(0x91,c); /* ok to output now */
}


/* example from the bdsc book with work and foo
stringTest()
{
int i;
char work[200], *foo;
foo = work;
strcpy(foo,"Hello ");
strcat(foo,"World");
strcat(foo,"\n");
i = 0;
while (work[i] != 0) {
printf("%c",work[i]);
i++;
}
printf("\n");
}
*/
/* simpler example with more standard c, seems to work fine
even though the book says not to do it this way
test2()
{
int i;
strcpy(str1,"Fuzzy");
strcat(str1," Wuzzy");
printf4();
strcpy(str1,"");
strcat(str1,"cleared");
printf4();
}
*/
printf4() /* output str1 to port4 */
{
int i;
printf("Send: ");
for(i=0;i<strlen(str1);i++) {
printf("%c",str1[i]);
ac4out(str1[i]);
}
}

AT()
{
strcpy(str1,"AT\r\n");
printf4();
}

CWMODE()
{
strcpy(str1,"AT+CWMODE=3\r\n");
printf4();
}

CWLAP()
{
strcpy(str1,"AT+CWLAP\r\n");
printf4();
}

CWJAP()
{
strcpy(str1,"AT+CWJAP=\"Hogwarts Great Hall Wifi\",\"\"\r\n");
printf4();
}

CIPMUX()
{
strcpy(str1,"AT+CIPMUX=1\r\n");
printf4();
}

Google()
{
strcpy(str1,"AT+CIPSTART=0,\"TCP\",\"www.google.com\",80\r\n");
printf4();
listen1sec();
listen1sec();
strcpy(str1,"GET / HTTP/1.1\r\n");
strcat(str1,"Host: www.google.com:80\r\n\r\n");
commandSend();
listen1sec();
listen1sec();
listen1sec();
}

commandSend() /* pass str1, uses str2 and str3 */
{
strcpy(str3,"AT+CIPSEND=0,"); /* 0 is the channel number */
inttostring(strlen(str1)); /* get length of str1 */
strcat(str3,str2); /* keep building string */
strcat(str3,"\r\n"); /* add crlf */
strcat(str3,str1); /* put cipsend at the start */
strcpy(str1,str3); /* copy over to str1 */
printf4(); /* send to esp module */

}


inttostring(num) /* pass integer n, returns str2 */
int num;
{
int i,rem, len, n;
n = num;
len = 0;
while ( n != 0 ) {
len++;
n /= 10;
}
for (i=0; i< len; i++) {
rem = num % 10;
num = num / 10;
str2[len - (i+1)] = rem + '0';
}
str2[len] = '\0';
/* printf("%s",str2); */
}
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Andrew Bingham
2015-08-19 03:18:45 UTC
Permalink
That's awesome, I've been thinking of making an ESP8266 ECB board, would
allow for things like file transfer over FTP to/from our systems, etc.

On Tuesday, August 18, 2015 at 6:16:16 PM UTC-7, James Moxham (Dr_Acula)
Post by James Moxham (Dr_Acula)
Update on the cyclone IV boards – another 20 are being made and they have
just been shipped from China. Thankyou to all those waiting patiently.
Meanwhile, some slightly pointless silliness – CP/M talking to the
Internet via Wifi.
Screenshot of the text feed coming back from the google website. This
could work with any machine that can talk 9600 baud at 3V TTL levels. The
code is BDS C and it is easy to use Wordstar and then compile with “cc
myprog” then “clink myprog”. Takes about 10 seconds to compile.
BDS C is slightly different to modern C, but it is possible to port it
over from an Arduino without thinking too much.
All good fun!
Cheers, James Moxham
#include <STDIO.H>
/* PIP NEWFILE.C=MYFILE.C[Z] to remove high bit garbage */
char str1[80]; /* general purpose global string */
char str2[80]; /* yes pointers are better, but possibly */
char str3[80]; /* this is safer with stack overrun errors */
char bargraph;
main()
{
bargraph = 0x01; /* demo for the 8 leds */
incbar();
printf("ESP8266 Test Program\n");
resetESP();
listen1sec();
incbar();
AT();
listen1sec();
incbar();
CWMODE();
listen1sec();
incbar();
CWLAP();
listen1sec();
listen1sec();
incbar();
CWJAP();
listen1sec();
listen1sec();
listen1sec();
incbar();
CIPMUX();
listen1sec();
listen1sec();
incbar();
Google();
}
listen1sec()
{
int i;
for (i=0;i<30000;i++) {
port4term();
}
}
resetESP()
{
outp(0x7E,255);
outp(0x7E,0);
outp(0x7E,255); /* toggle the esp reset pin */
}
port4term()
{
char c;
int n;
n = ac4in();
if (n != -1) {
c = n;
if (((c>31) && (c<128)) || (c==10) || (c==13)) {
printf("%c",c);
}
}
}
incbar()
{
bargraph = (((bargraph+1) *2 ) -1);
outp(0x7f,bargraph);
}
int ac4in() /* returns integer, not char, and -1 is no char */
{
int n;
char b,c;
n = -1;
b = inp(0x90);
b = b & 0x01;
if (b == 1) {
c = inp(0x91);
n = c;
}
return n;
}
ac4out(c) /* output c to port 4 esp8266 port */
char c;
{
char d;
do {
d = inp(0x90);
d = d & 0x2; /* mask bit 1 */
} while (d != 2);
outp(0x91,c); /* ok to output now */
}
/* example from the bdsc book with work and foo
stringTest()
{
int i;
char work[200], *foo;
foo = work;
strcpy(foo,"Hello ");
strcat(foo,"World");
strcat(foo,"\n");
i = 0;
while (work[i] != 0) {
printf("%c",work[i]);
i++;
}
printf("\n");
}
*/
/* simpler example with more standard c, seems to work fine
even though the book says not to do it this way
test2()
{
int i;
strcpy(str1,"Fuzzy");
strcat(str1," Wuzzy");
printf4();
strcpy(str1,"");
strcat(str1,"cleared");
printf4();
}
*/
printf4() /* output str1 to port4 */
{
int i;
printf("Send: ");
for(i=0;i<strlen(str1);i++) {
printf("%c",str1[i]);
ac4out(str1[i]);
}
}
AT()
{
strcpy(str1,"AT\r\n");
printf4();
}
CWMODE()
{
strcpy(str1,"AT+CWMODE=3\r\n");
printf4();
}
CWLAP()
{
strcpy(str1,"AT+CWLAP\r\n");
printf4();
}
CWJAP()
{
strcpy(str1,"AT+CWJAP=\"Hogwarts Great Hall Wifi\",\"\"\r\n");
printf4();
}
CIPMUX()
{
strcpy(str1,"AT+CIPMUX=1\r\n");
printf4();
}
Google()
{
strcpy(str1,"AT+CIPSTART=0,\"TCP\",\"www.google.com\",80\r\n");
printf4();
listen1sec();
listen1sec();
strcpy(str1,"GET / HTTP/1.1\r\n");
strcat(str1,"Host: www.google.com:80\r\n\r\n");
commandSend();
listen1sec();
listen1sec();
listen1sec();
}
commandSend() /* pass str1, uses str2 and str3 */
{
strcpy(str3,"AT+CIPSEND=0,"); /* 0 is the channel number */
inttostring(strlen(str1)); /* get length of str1 */
strcat(str3,str2); /* keep building string */
strcat(str3,"\r\n"); /* add crlf */
strcat(str3,str1); /* put cipsend at the start */
strcpy(str1,str3); /* copy over to str1 */
printf4(); /* send to esp module */
}
inttostring(num) /* pass integer n, returns str2 */
int num;
{
int i,rem, len, n;
n = num;
len = 0;
while ( n != 0 ) {
len++;
n /= 10;
}
for (i=0; i< len; i++) {
rem = num % 10;
num = num / 10;
str2[len - (i+1)] = rem + '0';
}
str2[len] = '\0';
/* printf("%s",str2); */
}
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
James Moxham (Dr_Acula)
2015-08-19 07:31:41 UTC
Permalink
RHKoolaap said:

*It isn't the software, It's the keyboard. I have to figure out how to
patch my cursor keys into WS4.*
*I get cramp in my fingers using ^E^S^D^X etc. It should be doable, just
haven't gotten to it yet.*

Good point - Let's fix that. This will apply to the cyclone II and the
cyclone IV boards.

In the component SBCtextdisplay, do a search for "E0" and it will scroll
down about 2/3 to lines to here
-- ASCII CHARACTER
elsif (ps2PreviousByte /= x"F0") and (ps2ConvertedByte
/= x"00") then
if ps2PreviousByte = x"E0" and ps2Byte = x"71" then
-- DELETE
kbBuffer(kbInPointer) <= "1111111"; -- 7F

Ascii scan codes are here
http://www.computer-engineering.org/ps2keyboard/scancodes2.html

and keyboard scan codes are here
http://www.siongboon.com/projects/2007-12-08_ascii_code/

If you hit the arrow key, you will notice that they print numbers, ie left
arrow prints "4" which is the same as the left arrow on the keypad.
Looking at the last site, you will notice that the scan code for number 4
on the numeric keypad is the same as the left arrow, ie 4B, so it is not as
simple as replacing the numbers in the scan code table which is near the
start of the component.
The scan code for the left arrow is 4B on the keypad, and E04B for the left
arrow button. Of the group Insert/Home/PgUp/Del/End/PgDwn, only one key is
decoded - the delete key which is E071. So... we can use this prototype
code to decode the other 5 buttons, and to decode the four arrow keys as
well.

After the code for the delete key, add in the following:

-- wordstar added J Moxham Aug 2015
elsif ps2PreviousByte = x"E0" and ps2Byte = x"6B" then -- L arrow
kbBuffer(kbInPointer) <= "0010011"; -- 0x13 ^S
elsif ps2PreviousByte = x"E0" and ps2Byte = x"74" then -- R arrow
kbBuffer(kbInPointer) <= "0000100"; -- 0x04 ^D
elsif ps2PreviousByte = x"E0" and ps2Byte = x"75" then -- Up arrow
kbBuffer(kbInPointer) <= "0000101"; -- 0x05 ^E
elsif ps2PreviousByte = x"E0" and ps2Byte = x"72" then -- Down arrow
kbBuffer(kbInPointer) <= "0011000"; -- 0x18 ^X
elsif ps2PreviousByte = x"E0" and ps2Byte = x"7D" then -- Page Up
kbBuffer(kbInPointer) <= "0010010"; -- 0x12 ^R
elsif ps2PreviousByte = x"E0" and ps2Byte = x"7A" then -- Page Down
kbBuffer(kbInPointer) <= "0000011"; -- 0x03 ^C
elsif ps2PreviousByte = x"E0" and ps2Byte = x"6C" then -- Home
kbBuffer(kbInPointer) <= "0000001"; -- 0x01 ^A - word left, ^QS
better but can't code this
elsif ps2PreviousByte = x"E0" and ps2Byte = x"69" then -- End
kbBuffer(kbInPointer) <= "0000110"; -- 0x06 ^F - word right, ^QD
better but can't code this
elsif ps2PreviousByte = x"E0" and ps2Byte = x"70" then -- Insert
kbBuffer(kbInPointer) <= "0010110"; -- 0x16 ^V
-- end wordstar commands


And one other little thing while you are in this component - if you want to
boot up with Caps Lock off, find this line near the beginning

signal ps2Caps: std_logic := '1';

and change it to '0'
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
James Moxham (Dr_Acula)
2015-08-20 03:03:41 UTC
Permalink
Boards have arrived today - I have 10 available with another 10 in a few
weeks. $16 with free shipping. http://smarthome.jigsy.com/fpga
I'm getting the parts together for a kit - just waiting on a few more to
arrive and then I'll put these up as well.
Max and I are working on the SD card - we are hoping to be able to be able
to port disk images from the Altair simh as this could make it easier to
transfer multiple files at once.
Cheers, James Moxham
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Martin Lukasek
2015-08-20 11:03:30 UTC
Permalink
Hi James,

thank you, I have just bought 2 boards for me and my friend. You can send both in one envelope, but, please, could you state value of the contents up to $25, please? Otherwise it will go through complicated customs process resulting in 1-2 weeks delay and additional payment about $20:-( In that case it is better to send each separately. Thank you very much.

My address (work):
Martin Lukasek
ARTAX, a.s.
Karasek 1e
budova 09
621 00 BRNO
Czech Republic

Kind regards

Martin

From: ***@googlegroups.com [mailto:***@googlegroups.com] On Behalf Of James Moxham (Dr_Acula)
Sent: Thursday, August 20, 2015 5:04 AM
To: N8VEM
Subject: [N8VEM: 20027] Re: Grant Searle's multicomputer - Cyclone IV

Boards have arrived today - I have 10 available with another 10 in a few weeks. $16 with free shipping. http://smarthome.jigsy.com/fpga
I'm getting the parts together for a kit - just waiting on a few more to arrive and then I'll put these up as well.
Max and I are working on the SD card - we are hoping to be able to be able to port disk images from the Altair simh as this could make it easier to transfer multiple files at once.
Cheers, James Moxham
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com<mailto:n8vem+***@googlegroups.com>.
To post to this group, send email to ***@googlegroups.com<mailto:***@googlegroups.com>.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Kip Koon
2015-08-20 11:55:09 UTC
Permalink
Hi James and Max,

Thank you both for your hard work further developing the Multicomp PCB. I really appreciate it. I have finally secured one of the boards. I’d like a few more, but I’ll wait until everyone has had a chance to get one. Once this design is finalized, please let me know. Thanks a bunch. Take care my friends.



Kip Koon

***@sc.rr.com

http://www.cocopedia.com/wiki/index.php/Kip_Koon





From: ***@googlegroups.com [mailto:***@googlegroups.com] On Behalf Of James Moxham (Dr_Acula)
Sent: Wednesday, August 19, 2015 11:04 PM
To: N8VEM
Subject: [N8VEM: 20027] Re: Grant Searle's multicomputer - Cyclone IV



Boards have arrived today - I have 10 available with another 10 in a few weeks. $16 with free shipping. http://smarthome.jigsy.com/fpga

I'm getting the parts together for a kit - just waiting on a few more to arrive and then I'll put these up as well.

Max and I are working on the SD card - we are hoping to be able to be able to port disk images from the Altair simh as this could make it easier to transfer multiple files at once.

Cheers, James Moxham
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
James Moxham (Dr_Acula)
2015-08-20 23:11:06 UTC
Permalink
Thanks for all the orders over the last few hours - these boards are
popular! Those 10 have now gone, so I had to remove the paypal link
briefly, but there are another 10 that have just been posted from China
which should arrive in the next week or so.
Could everyone who hasn't done so please send me their postal address to
***@internode.on.net as the shipping address doesn't always come
through on paypal.
Cheers, James
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Alan Jones
2015-08-22 11:58:22 UTC
Permalink
Hi James,

I just wanted to let you know that as soon as you enable your paypal link again I would like to purchase a Cyclone IV board.

I have been lurking here on the list and waiting for the right kind of hardware project to join.



Thanks for letting me give you a heads up on my interest.



Al, N8WQ





From: ***@googlegroups.com [mailto:***@googlegroups.com] On Behalf Of James Moxham (Dr_Acula)
Sent: Thursday, August 20, 2015 7:11 PM
To: N8VEM
Subject: [N8VEM: 20035] Re: Grant Searle's multicomputer - Cyclone IV



Thanks for all the orders over the last few hours - these boards are popular! Those 10 have now gone, so I had to remove the paypal link briefly, but there are another 10 that have just been posted from China which should arrive in the next week or so.

Could everyone who hasn't done so please send me their postal address to ***@internode.on.net as the shipping address doesn't always come through on paypal.

Cheers, James
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Bill Lewis
2015-09-01 14:47:51 UTC
Permalink
My board just arrived from Australia. Looks nice! Thank you Dr. Acula.

-Bill (in U.S.A.)

On Thursday, August 20, 2015 at 7:11:06 PM UTC-4, James Moxham (Dr_Acula)
Thanks for all the orders over the last few hours - these boards are
popular! Those 10 have now gone, so I had to remove the paypal link
briefly, but there are another 10 that have just been posted from China
which should arrive in the next week or so.
Could everyone who hasn't done so please send me their postal address to
always come through on paypal.
Cheers, James
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
James Moxham
2015-09-01 22:44:51 UTC
Permalink
Great to hear it has arrived. Let me know if any problems with getting it
running.

Cheers, James
Post by Bill Lewis
My board just arrived from Australia. Looks nice! Thank you Dr. Acula.
-Bill (in U.S.A.)
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Tom Lafleur
2015-09-01 23:01:33 UTC
Permalink
got my unit also, thanks
Post by James Moxham
Great to hear it has arrived. Let me know if any problems with getting it
running.
Cheers, James
My board just arrived from Australia. Looks nice! Thank you Dr. Acula.
-Bill (in U.S.A.)
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
~~ _/) ~~~~ _/) ~~~~ _/) ~~~~ _/) ~~

Tom Lafleur
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Max Scane
2015-09-01 23:06:39 UTC
Permalink
Just a tip for those assembling the board.

When you get to installing the connectors for the FPGA module, put the
connectors on the FPGA module first and then place the module on the PCB.
That way the connectors will align correctly for the the FPGA module.

That will make it a lot easier to remove/install the FPGA module if
required.

Cheers!

Max
Post by Tom Lafleur
got my unit also, thanks
Post by James Moxham
Great to hear it has arrived. Let me know if any problems with getting it
running.
Cheers, James
My board just arrived from Australia. Looks nice! Thank you Dr. Acula.
-Bill (in U.S.A.)
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
~~ _/) ~~~~ _/) ~~~~ _/) ~~~~ _/) ~~
Tom Lafleur
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Kip Koon
2015-09-02 12:12:49 UTC
Permalink
Hi James,

My Cyclone IV Multicomp PCB has arrived and it looks nice. You really packed a lot on this one! I’m looking forward to see how accessing the internet will work. It sounds like you and Max have had a lot of fun with this one. Thanks a bunch for the board.



Kip Koon

***@sc.rr.com

http://www.cocopedia.com/wiki/index.php/Kip_Koon





From: ***@googlegroups.com [mailto:***@googlegroups.com] On Behalf Of James Moxham (Dr_Acula)
Sent: Thursday, August 20, 2015 7:11 PM
To: N8VEM
Subject: [N8VEM: 20035] Re: Grant Searle's multicomputer - Cyclone IV



Thanks for all the orders over the last few hours - these boards are popular! Those 10 have now gone, so I had to remove the paypal link briefly, but there are another 10 that have just been posted from China which should arrive in the next week or so.

Could everyone who hasn't done so please send me their postal address to ***@internode.on.net as the shipping address doesn't always come through on paypal.

Cheers, James
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
James Moxham (Dr_Acula)
2015-08-22 03:08:27 UTC
Permalink
ESP8266 working with uploads and downloads to xively. This is the
"internet of things" where you can send data to a site and xively will
graph it, and you can read back the data as well. I never could get this
working on an Arduino Uno as there wasn't enough string space. Works
brilliantly from CP/M - lots of program and string space free.

Boards were posted out yesterday - am looking forward to seeing some other
boards soldered up :)

Max and I are working on reading disk images from the Altair SIMH - it
could be useful to be able to drop an 8mb disk image from the simh onto the
fat partition of an sd card and then have CP/M mount this as a new drive.

Cheers, James

#include <STDIO.H>

/* PIP NEWFILE.C=MYFILE.C[Z] to remove high bit garbage */

char str1[255]; /* general purpose global string */
char str2[255]; /* yes pointers are better, but possibly */
char str3[255]; /* this is safer with stack overrun errors */

char bargraph;

main()
{
bargraph = 0x01; /* demo for the 8 leds */
incbar();
printf("ESP8266 Test Program\n");
resetESP();
listen1sec();
incbar();
AT();
listen1sec();
incbar();
CWMODE();
listen1sec();
incbar();
CWLAP();
listen1sec();
listen1sec();
listen1sec();
incbar();
CWJAP();
listen1sec();
listen1sec();
listen1sec();
incbar();
CIPMUX();
listen1sec();
listen1sec();
incbar();
/* now either call google, or xively or some other site */
/* XivelyPut(); */
XivelyGet();
/* Google(); */
}

listen1sec()
{
int i;
for (i=0;i<30000;i++) {
port4term();
}
}

resetESP()
{
outp(0x7E,255);
outp(0x7E,0);
outp(0x7E,255); /* toggle the esp reset pin */
}

port4term()
{
char c;
int n;
n = ac4in();
if (n != -1) {
c = n;
if (((c>31) && (c<128)) || (c==10) || (c==13)) {
printf("%c",c);
}
}
}

incbar()
{
bargraph = (((bargraph+1) *2 ) -1);
outp(0x7f,bargraph);
}

int ac4in() /* returns integer, not char, and -1 is no char */
{
int n;
char b,c;
n = -1;
b = inp(0x90);
b = b & 0x01;
if (b == 1) {
c = inp(0x91);
n = c;
}
return n;
}


ac4out(c) /* output c to port 4 esp8266 port */
char c;
{
char d;
do {
d = inp(0x90);
d = d & 0x2; /* mask bit 1 */
} while (d != 2);
outp(0x91,c); /* ok to output now */
}

printf4() /* output str1 to port4 */
{
int i;
printf("Send: ");
for(i=0;i<strlen(str1);i++) {
printf("%c",str1[i]);
ac4out(str1[i]);
}
}

AT()
{
strcpy(str1,"AT\r\n");
printf4();
}

CWMODE()
{
strcpy(str1,"AT+CWMODE=3\r\n");
printf4();
}

CWLAP()
{
strcpy(str1,"AT+CWLAP\r\n");
printf4();
}

CWJAP()
{
strcpy(str1,"AT+CWJAP=\"Hogwarts Great Hall Wifi\",\"\"\r\n");
printf4();
}

CIPMUX()
{
strcpy(str1,"AT+CIPMUX=1\r\n");
printf4();
}

CIPCLOSE()
{
strcpy(str1,"AT+CIPCLOSE=0\r\n");
printf4();
}

Google()
{
strcpy(str1,"AT+CIPSTART=0,\"TCP\",\"www.google.com\",80\r\n");
printf4();
listen1sec();
listen1sec();
strcpy(str1,"GET / HTTP/1.1\r\n");
strcat(str1,"Host: www.google.com:80\r\n\r\n");
commandSend();
listen1sec();
listen1sec();
listen1sec();
CIPCLOSE();
listen1sec();
}



XivelyPut()
{
char xivelyData[40];
char xivelyKey[80];
char xivelyFeedID[20];
char xivelyUserAgent[20];
strcpy(xivelyData,"SensorName,150");
strcpy(xivelyKey,"shsCNFtxuGELLZx8ehqglXAgDo9lkyBam5Zj22p3g3urH2FM");
strcpy(xivelyFeedID,"970253233");
strcpy(xivelyUserAgent,"Arduino1");

strcpy(str1,"AT+CIPSTART=0,\"TCP\",\"api.xively.com\",80\r\n");
printf4();
listen1sec();
strcpy(str1,"PUT /v2/feeds/");
strcat(str1,xivelyFeedID);
strcat(str1,".csv HTTP/1.1\r\n");
strcat(str1,"Host: api.xively.com\r\n");
strcat(str1,"X-ApiKey: ");
strcat(str1,xivelyKey);
strcat(str1,"\r\n");
strcat(str1,"User-Agent: ");
strcat(str1,xivelyUserAgent);
strcat(str1,"\r\n");
strcat(str1,"Content-Length: ");
inttostring(strlen(xivelyData)); /* length in str2 */
strcat(str1,str2);
strcat(str1,"\r\n");
strcat(str1,"Content-Type: text/csv\r\n");
strcat(str1,"Connection: close\r\n\r\n");
strcat(str1,xivelyData); /* the actual data */
strcat(str1,"\r\n\r\n");
commandSend();
listen1sec();
listen1sec();
}

XivelyGet()
{
char xivelyKey[80];
char xivelyFeedID[20];
char xivelyUserAgent[20];
char xivelySensor[20];
strcpy(xivelyKey,"shsCNFtxuGELLZx8ehqglXAgDo9lkyBam5Zj22p3g3urH2FM");
strcpy(xivelyFeedID,"970253233");
strcpy(xivelyUserAgent,"Arduino1");
strcpy(xivelySensor,"SensorName");

strcpy(str1,"AT+CIPSTART=0,\"TCP\",\"api.xively.com\",80\r\n");
printf4();
listen1sec();
strcpy(str1,"GET /v2/feeds/");
strcat(str1,xivelyFeedID);
strcat(str1,"/datastreams/");
strcat(str1,xivelySensor);
strcat(str1,".csv HTTP/1.1\r\n");
strcat(str1,"Host: api.xively.com\r\n");
strcat(str1,"X-ApiKey: ");
strcat(str1,xivelyKey);
strcat(str1,"\r\n");
strcat(str1,"User-Agent: ");
strcat(str1,xivelyUserAgent);
strcat(str1,"\r\n");
strcat(str1,"Content-Type: text/csv\r\n");
strcat(str1,"Connection: close\r\n\r\n");
strcat(str1,"\r\n\r\n");
commandSend();
listen1sec();
listen1sec();
listen1sec();
}

commandSend() /* pass str1, uses str2 and str3 */
{
strcpy(str3,"AT+CIPSEND=0,"); /* 0 is the channel number */
inttostring(strlen(str1)); /* get length of str1 */
strcat(str3,str2); /* keep building string */
strcat(str3,"\r\n"); /* add crlf */
strcat(str3,str1); /* put cipsend at the start */
strcpy(str1,str3); /* copy over to str1 */
printf4(); /* send to esp module */

}


inttostring(num) /* pass integer n, returns str2 */
int num;
{
int i,rem, len, n;
n = num;
len = 0;
while ( n != 0 ) {
len++;
n /= 10;
}
for (i=0; i< len; i++) {
rem = num % 10;
num = num / 10;
str2[len - (i+1)] = rem + '0';
}
str2[len] = '\0';
/* printf("%s",str2); */
}
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
James Moxham (Dr_Acula)
2015-08-22 08:47:18 UTC
Permalink
This little code fragment connects the esp8266 to the VGA display and
keyboard to enable a telnet session. It is pretty cool surfing the (text)
internet with CP/M!
telnet()
{
int i;
char c;
int x;
int n;
strcpy(str1,"AT+CIPSTART=0,\"TCP\",\"telehack.com\",23\r\n");
printf4();
printf("^C to quit telnet session\r\n");
while (x != 3) {
x = ac1in();
if (x != -1) {
str1[0] = x;
str1[1] = '\0';
commandSend();
}
n = ac4in();
if (n != -1) {
c = n;
printf("%c",c);
}
}
CIPCLOSE();
listen1sec();
}
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
David Jones
2015-08-24 19:08:23 UTC
Permalink
I've be interested in a board/kit too if any more become available.

Thanks
David

On Thursday, August 6, 2015 at 1:14:02 AM UTC-4, James Moxham (Dr_Acula)
Post by James Moxham (Dr_Acula)
Max Scane and James Moxham have been working on a cyclone IV version of
Grant's computer. Basically, we ran out of space on the cyclone II board to
do all the things we wanted - memory management, dual ram chip, four serial
ports. So I think we have something ready for preliminary release - a
schematic that works. Max is still working on software improvements. CP/M 2
and I think 3, plus MP/M working.
Writeup is here http://www.smarthome.jigsy.com/fpga
One very clever thing Max has done is split the partition on the SD card
so you have CP/M in one partition, MP/M on another, and most importantly,
FAT on another. And then he has some software to move files between
partitions. So, instead of transferring Wordstar to the board via a serial
link, just copy the files on the SD FAT partition, then move them into CP/M.
I've got a few boards (4) available, and another 10 on order. So if the
demand is there, possibly could be a month's delay. Schematic etc on the
website, so nothing stopping anyone building one from scratch either!
Cheers, James Moxham
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Dylan Distasio
2015-08-25 12:03:11 UTC
Permalink
Same here...
Post by David Jones
I've be interested in a board/kit too if any more become available.
Thanks
David
On Thursday, August 6, 2015 at 1:14:02 AM UTC-4, James Moxham (Dr_Acula)
Post by James Moxham (Dr_Acula)
Max Scane and James Moxham have been working on a cyclone IV version of
Grant's computer. Basically, we ran out of space on the cyclone II board to
do all the things we wanted - memory management, dual ram chip, four serial
ports. So I think we have something ready for preliminary release - a
schematic that works. Max is still working on software improvements. CP/M 2
and I think 3, plus MP/M working.
Writeup is here http://www.smarthome.jigsy.com/fpga
One very clever thing Max has done is split the partition on the SD card
so you have CP/M in one partition, MP/M on another, and most importantly,
FAT on another. And then he has some software to move files between
partitions. So, instead of transferring Wordstar to the board via a serial
link, just copy the files on the SD FAT partition, then move them into CP/M.
I've got a few boards (4) available, and another 10 on order. So if the
demand is there, possibly could be a month's delay. Schematic etc on the
website, so nothing stopping anyone building one from scratch either!
Cheers, James Moxham
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Gregory Carlson
2015-08-25 21:53:41 UTC
Permalink
Ditto here.
Post by Dylan Distasio
Same here...
I've be interested in a board/kit too if any more become available.
Thanks
David
Max Scane and James Moxham have been working on a cyclone IV version of Grant's computer. Basically, we ran out of space on the cyclone II board to do all the things we wanted - memory management, dual ram chip, four serial ports. So I think we have something ready for preliminary release - a schematic that works. Max is still working on software improvements. CP/M 2 and I think 3, plus MP/M working.
Writeup is here http://www.smarthome.jigsy.com/fpga
One very clever thing Max has done is split the partition on the SD card so you have CP/M in one partition, MP/M on another, and most importantly, FAT on another. And then he has some software to move files between partitions. So, instead of transferring Wordstar to the board via a serial link, just copy the files on the SD FAT partition, then move them into CP/M.
I've got a few boards (4) available, and another 10 on order. So if the demand is there, possibly could be a month's delay. Schematic etc on the website, so nothing stopping anyone building one from scratch either!
Cheers, James Moxham
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Bill Lewis
2015-08-29 16:03:36 UTC
Permalink
Is it normal for the LEDs on the TB276 Cyclone IV board to be blindingly
bright?

Bill
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
G. Beat
2015-08-30 02:49:52 UTC
Permalink
Interested in this board, but I am currently backlogged 4 weeks ---
and my bench chair is down (awaiting parts) until Labor Day.
August 2015 has been a tough month, on many fronts. :-/

greg
w9gb
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
James Moxham (Dr_Acula)
2015-09-04 00:40:52 UTC
Permalink
Next batch of boards have arrived - paypal link on
page http://www.smarthome.jigsy.com/fpga
Max is continuing to do amazing things with the vhdl - working on adjusting
baud rates from software, a priority interrupt and a millisecond timer. I
have had a board uploading data to the internet every few minutes and it
has been running faultlessly through this week. When I want to change the
code, ^C to stop the program, WS to edit in wordstar, CC then CLINK to
compile. Everything is super fast - wordstar takes about 1 second to load
and the compiler takes about 2 seconds.

Anyone got their board soldered up yet?

Cheers, James Moxham
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Bill Lewis
2015-09-05 14:04:32 UTC
Permalink
On Thursday, September 3, 2015 at 8:40:52 PM UTC-4, James Moxham (Dr_Acula)
Post by James Moxham (Dr_Acula)
Anyone got their board soldered up yet?
Cheers, James Moxham
I worked on mine some. But haven't programmed the FPGA yet.

(I did run a test pgm on the FPGA before I plugged it into this board)


I'm not sure yet if I want to power from 5V or higher, so I haven't
populated the 5V reg entirely.

I also used somewhat different components for the 3.3V reg. 100uH
inductor, and 330uF low ESR capacitor.


I don't have the SD card socket yet. The footpring used wasn't in my
stocks.

I put blue painters tape over the LEDs on the FPGA board. They are
blindingly bright.


Bill

<Loading Image...>
<Loading Image...>
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
James Moxham
2015-09-05 23:13:29 UTC
Permalink
Yikes, they are bright leds!

For years I used transformer wall warts and onboard regulators, but 5v
switching regulated wall warts are now only a few dollars on ebay, so if
you have 5V available it probably is easier.

The 3V switching reg seems pretty forgiving of the inductance - main issue
is the dc resistance and yours looks big enough to be fine.

When you get it fired up you can output 0x00 to port 7F and turn all those
leds off. They also default to being off when the board boots.

Even without an SD card you will be able to get into Grant's monitor rom
and run a basic program and do simple things like poke a value to ram and
peek it back and check the ram chip works.

What is the sd footprint - there are sockets out there where two pins end
up on one pad - that is ok as one pin is gnd and the other is card detect
or something and isn't used. What does your SD socket look like?

Cheers, James
Post by Bill Lewis
On Thursday, September 3, 2015 at 8:40:52 PM UTC-4, James Moxham
Post by James Moxham (Dr_Acula)
Anyone got their board soldered up yet?
Cheers, James Moxham
I worked on mine some. But haven't programmed the FPGA yet.
(I did run a test pgm on the FPGA before I plugged it into this board)
I'm not sure yet if I want to power from 5V or higher, so I haven't
populated the 5V reg entirely.
I also used somewhat different components for the 3.3V reg. 100uH
inductor, and 330uF low ESR capacitor.
I don't have the SD card socket yet. The footpring used wasn't in my
stocks.
I put blue painters tape over the LEDs on the FPGA board. They are
blindingly bright.
Bill
--You received this message because you are subscribed to the Google
Groups >"N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
Using Opera's mail client: http://www.opera.com/mail/
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Max Scane
2015-09-05 23:59:05 UTC
Permalink
Once you get the the FPGA code loaded the board should power up with all
the LEDS off. However there is a bug there and not all leds trun off.

Pressing the reset button (Key 1 on the FPGA card) will turn them off
however.

None of my boards are that bright. They must have changed the LEDS as mine
are green also.

Cheers!

Max
Post by James Moxham
Yikes, they are bright leds!
For years I used transformer wall warts and onboard regulators, but 5v
switching regulated wall warts are now only a few dollars on ebay, so if
you have 5V available it probably is easier.
The 3V switching reg seems pretty forgiving of the inductance - main issue
is the dc resistance and yours looks big enough to be fine.
When you get it fired up you can output 0x00 to port 7F and turn all those
leds off. They also default to being off when the board boots.
Even without an SD card you will be able to get into Grant's monitor rom
and run a basic program and do simple things like poke a value to ram and
peek it back and check the ram chip works.
What is the sd footprint - there are sockets out there where two pins end
up on one pad - that is ok as one pin is gnd and the other is card detect
or something and isn't used. What does your SD socket look like?
Cheers, James
On Thursday, September 3, 2015 at 8:40:52 PM UTC-4, James Moxham
Post by James Moxham (Dr_Acula)
Anyone got their board soldered up yet?
Cheers, James Moxham
I worked on mine some. But haven't programmed the FPGA yet.
(I did run a test pgm on the FPGA before I plugged it into this board)
I'm not sure yet if I want to power from 5V or higher, so I haven't
populated the 5V reg entirely.
I also used somewhat different components for the 3.3V reg. 100uH
inductor, and 330uF low ESR capacitor.
I don't have the SD card socket yet. The footpring used wasn't in my
stocks.
I put blue painters tape over the LEDs on the FPGA board. They are
blindingly bright.
Bill
<https://lh3.googleusercontent.com/-qFg5e_76NEE/Ver1fHjnFII/AAAAAAAAA4w/J-jhnkLVD10/s1600/DSC04097.JPG>
<https://lh3.googleusercontent.com/-ImWkbz4B3qk/Ver1OQEnWEI/AAAAAAAAA4o/2qp7lpFbw4M/s1600/DSC04095.JPG>
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
Using Opera's mail client: http://www.opera.com/mail/
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Bill Lewis
2015-09-06 15:32:34 UTC
Permalink
The schematic the eBay seller sent me shows 750 ohm resistor networks for
those LEDs,
but my board has 1000 ohm parts.

My intention is to remove those and replace with something higher to tone
down those headlights.
Won't be fun though. They used quad resistors, quite small 8-pin SMT
package. Will be fiddly to
unsolder/remove those w/o damaging the board.

On Saturday, September 5, 2015 at 7:13:29 PM UTC-4, James Moxham (Dr_Acula)
Post by James Moxham
Yikes, they are bright leds!
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Bill Lewis
2015-09-10 15:21:54 UTC
Permalink
I forgot to mention I didn't use the HV version of the 3.3V regulator.
Since the input is 5V it didn't needed.


On Saturday, September 5, 2015 at 7:13:29 PM UTC-4, James Moxham (Dr_Acula)
Post by James Moxham
Yikes, they are bright leds!
For years I used transformer wall warts and onboard regulators, but 5v
switching regulated wall warts are now only a few dollars on ebay, so if
you have 5V available it probably is easier.
The 3V switching reg seems pretty forgiving of the inductance - main issue
is the dc resistance and yours looks big enough to be fine.
<snip>
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
James Moxham (Dr_Acula)
2015-09-08 00:36:21 UTC
Permalink
Facebook's targeted advertising is getting a bit scary smart - they
suggested I might
like http://www.ebay.com/itm/EP4CE6-FPGA-Starter-Board-with-embededded-USB-Blaster-Altera-Cyclone-IV-NIOS-II-/111717771806?_trksid=p2054897.l4275
and some further searching also brings
up http://www.ebay.com/itm/Altera-Cyclone-IV-FPGA-Development-Board-EP4CE6E22C8N-20-days-promotion-/271434726780?pt=LH_DefaultDomain_0&hash=item3f32c53d7c

These are boards with VGA and PS2 keyboard. They never seem quite to have
all that you want - eg SD card, wifi, flow control on the serial ports. But
there are some ideas that maybe could be incorporated into new designs. One
is using larger ram chips, eg a 32Mb SDRAM is about the same price as a
512k SRAM. But you need a controller. No matter, there are boffins who have
written such a thing http://codehackcreate.com/archives/444

Another interesting idea is the VGA - we are using 6 bit color, one of the
boards above uses 8 bit color and one is 16 bit.Color needs lots of memory
and a SDRAM has enough for a full screen at high resolution.... but then
you don't have memory for the computer.

So I've been thinking about sharing memory between video and the computer.
Onboard ram is maybe 16k, so one idea might be to cache blocks of 16k from
external ram into the fgpa, the Z80 runs off this. Cache drivers can get a
bit complex, but they have been done on the Propeller chip so there are
some ideas there about how they work. I haven't done the calculations but
there would be time on the front and back porch of the VGA to transfer
blocks of data from a sdram into the fpga.

All fun speculation at the moment.

Back to real things, I have one of these cyclone IV CP/M computers
measuring water tank levels and uploading to the internet. I send the data
via wifi to xively every few minutes using some BDS C code. Then I told
xively to export the data to github (there is a tutorial on this) and with
a few tweaks to some javascript, the graphs can be changed to different
resolutions, different colors and the like. Website link
is http://moxhamj.github.io/channel-viz/

Then I also read a tutorial on triggers in xively. Set up a trigger value
and monitor it with Zapier. Practical outcome - if my water tank is about
to overflow, it sends me an email.

So CP/M can be an integral part of the "internet of things". Great fun!
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
James Moxham (Dr_Acula)
2015-09-09 05:17:52 UTC
Permalink
I've had a few requests for kits rather than just PCBs. Looking at all the
parts, I think I've got them from over 15 different sources so a kit should
be more convenient. Only problem with putting them up for sale on my
website is too many orders come in and then there are long delays, so I've
decided to sell these on ebay. I put three kits together so if one sells
I'll relist until I run out.Link
is http://www.ebay.com.au/itm/-/171925616978? I've bought over a
thousand things on ebay but this is the first time I've ever sold something
so please let me know if there are any problems!

Also I realised today I missed one of the orders that came through a month
ago, so if anyone has put in an order and not received it within 3 weeks
please let me know.

And also I got an order from Mr Robbins a few days back but haven't had a
reply about the shipping address - please can you let me know.

Cheers, James Moxham
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
David Jones
2015-09-09 20:08:45 UTC
Permalink
Looks like all of them have sold. Do you plan on putting more up in the
future?

Thanks
David

On Wednesday, September 9, 2015 at 1:17:52 AM UTC-4, James Moxham
Post by James Moxham (Dr_Acula)
I've had a few requests for kits rather than just PCBs. Looking at all the
parts, I think I've got them from over 15 different sources so a kit should
be more convenient. Only problem with putting them up for sale on my
website is too many orders come in and then there are long delays, so I've
decided to sell these on ebay. I put three kits together so if one sells
I'll relist until I run out.Link is
http://www.ebay.com.au/itm/-/171925616978? I've bought over a thousand
things on ebay but this is the first time I've ever sold something so
please let me know if there are any problems!
Also I realised today I missed one of the orders that came through a month
ago, so if anyone has put in an order and not received it within 3 weeks
please let me know.
And also I got an order from Mr Robbins a few days back but haven't had a
reply about the shipping address - please can you let me know.
Cheers, James Moxham
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
James Moxham
2015-09-10 13:50:24 UTC
Permalink
Sorry, yes they keep going!

I've got another 10 boards on the way...

Cheers, James
Post by David Jones
Looks like all of them have sold. Do you plan on putting more up in the
future?
Thanks
David
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Kip Koon
2015-09-10 19:21:50 UTC
Permalink
Hi James,

I have been gathering parts together to put populate this new Multicomp v1.3 PCB. I already have a 5v wall wart, so I was wondering if I need to populate the 3.3v switching regulator circuit or does the Cyclone IV FPGA module drop down the 5v to 3.3v for its own use. I see there are 2 switching regulator circuits. Which one is 5v and which one is 3.3v?



Kip Koon

***@sc.rr.com

http://www.cocopedia.com/wiki/index.php/Kip_Koon
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
James Moxham
2015-09-10 23:44:23 UTC
Permalink
Hi Kip, yes you do need the 3V regulator. But you can leave out the 5V one
if you have a 5V supply.

The 3V one is the 8 pin chip. The 5V is the TO220.

Cheers, James
Post by RHKoolaap
Hi James,
I have been gathering parts together to put populate this new Multicomp
v1.3 PCB. I already have a 5v wall wart, so I was wondering >if I need
to populate the 3.3v switching regulator circuit or does the Cyclone IV
FPGA module drop down the 5v to 3.3v for its own >use. I see there are
2 switching regulator circuits. Which one is 5v and which one is 3.3v?
Kip Koon
http://www.cocopedia.com/wiki/index.php/Kip_Koon
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
AG5AT
2015-09-17 23:15:01 UTC
Permalink
Mine came in today.

Aug in Alabama
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Dylan Distasio
2015-09-18 12:22:45 UTC
Permalink
Any expectation on when more kits will be up?
Post by James Moxham
Sorry, yes they keep going!
I've got another 10 boards on the way...
Cheers, James
Looks like all of them have sold. Do you plan on putting more up in the
future?
Thanks
David
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Elsid
2015-09-17 21:05:54 UTC
Permalink
<Loading Image...>


<Loading Image...>
I built one of James' Cyclone IV kits last weekend. It went very smoothly.
Max's new software makes it all too easy.
You guys have done some really fine work here.
Thanks for letting everyone else play too!

Cheers
Leon Byles
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Brian O'Sullivan
2015-09-18 09:06:10 UTC
Permalink
Got the board - took 7 days to arrive in Brisbane.
Board built and running in 2 hours start to finish.

Starting to poke around and wondering how do I access all those serial
ports? Is there a list of port mappings, etc?

Was surprised to see the ESP in the kit. Very keen to play around with
that. Saw the telnet snippet above but wasn't sure how to get connected and
initialised.

I see there is an extended monitor and have worked out a few of the
commands used by reading bits and pieces in different text files. The help
was helpful for listing available commands, but some short usage examples
would be useful if someone has time - for example, "console crt" switches
from the serial console (port A) to the VGA port - but I haven't worked out
how to go back to the serial from the CRT - what is the designation for the
serial ports?

The Term command looked useful for playing around with the ports - but
without knowing the device name for the ports I am going to have to
experiment, or try and dig for some clues in source code.

Easy build - should have taken the advice on the website and soldered the
SDcard holder in before the FPGA headers - its a bit cramped for space when
soldering if you do it the other way around.

I am mounting it into a box from Jaycar - HB5970. This is almost a perfect
fit - the front an rear ports sit flush so a simple cutout at each end
makes the connectors accessible.

Brian
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Max Scane
2015-09-18 10:05:04 UTC
Permalink
Hi Brian,

Glad to see you have your board up and running.

I'm a bit behind on my documentation I'm afraid.

The device names are:

TT1 -> TT4 Serial portss

VT1 is the VGA/PS2 port (also know as CRT)

TT1 is the serial port closest to the DC jack. TT2 is next to it. TT3 is
the serial port next to the SD card.

TT4 is the ESP8266. It is also known as NET.

term net will get you connected to the ESP8266 serial port so you can enter
some AT commands and play around


The SD card is HSA (soon to change to DSA)

There are 4 partitions on the disk HSA1 -> HSA4 (DSA1 -> DSA4)

Also check the documentation on the N8VEM wiki

Cheers!

Max
Post by Brian O'Sullivan
Got the board - took 7 days to arrive in Brisbane.
Board built and running in 2 hours start to finish.
Starting to poke around and wondering how do I access all those serial
ports? Is there a list of port mappings, etc?
Was surprised to see the ESP in the kit. Very keen to play around with
that. Saw the telnet snippet above but wasn't sure how to get connected and
initialised.
I see there is an extended monitor and have worked out a few of the
commands used by reading bits and pieces in different text files. The help
was helpful for listing available commands, but some short usage examples
would be useful if someone has time - for example, "console crt" switches
from the serial console (port A) to the VGA port - but I haven't worked out
how to go back to the serial from the CRT - what is the designation for the
serial ports?
The Term command looked useful for playing around with the ports - but
without knowing the device name for the ports I am going to have to
experiment, or try and dig for some clues in source code.
Easy build - should have taken the advice on the website and soldered the
SDcard holder in before the FPGA headers - its a bit cramped for space when
soldering if you do it the other way around.
I am mounting it into a box from Jaycar - HB5970. This is almost a perfect
fit - the front an rear ports sit flush so a simple cutout at each end
makes the connectors accessible.
Brian
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
RHKoolaap
2015-09-27 09:22:50 UTC
Permalink
Hi all,

In case someone is looking for a 'dumb(ish)' terminal program to play with
the ESP8266,, I found GATE.COM to be of use. It can be found here:

http://www.classiccmp.org/cpmarchives/cpm/Software/WalnutCD/cpm/term/gate.lbr

It comes with simple patching instructions to change the port addresses. No
need to re-assemble.

In case you don't know how to unpack an .LBR file, look here:

http://www.classiccmp.org/cpmarchives/cpm/mirrors/oak.oakland.edu/pub/cpm/starter-/

Success, RHK
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
James Moxham
2015-09-19 01:25:42 UTC
Permalink
Hi Brian,

Great to hear you have a box it fits in. This was one of the problems with
designing a board - if everything goes along one edge only, the board ends
up 4x bigger. Put everything round the edges and it needs a box that fits,
so good you found one.

These are the port numbers:

n_interface1CS <= '0' when cpuAddress(7 downto 1) = "1000000" and
(n_ioWR='0' or n_ioRD = '0') else '1'; -- 2 Bytes $80-$81
n_interface2CS <= '0' when cpuAddress(7 downto 1) = "1000001" and
(n_ioWR='0' or n_ioRD = '0') else '1'; -- 2 Bytes $82-$83
n_interface3CS <= '0' when cpuAddress(7 downto 1) = "1000010" and
(n_ioWR='0' or n_ioRD = '0') else '1'; -- 2 Bytes $84-$85
n_interface4CS <= '0' when cpuAddress(7 downto 1) = "1000011" and
(n_ioWR='0' or n_ioRD = '0') else '1'; -- 2 Bytes $86-$87
n_sdCardCS <= '0' when cpuAddress(7 downto 3) = "10001" and (n_ioWR='0' or
n_ioRD = '0') else '1'; -- 8 Bytes $88-$8F
n_interface5CS <= '0' when cpuAddress(7 downto 1) = "1001000" and
(n_ioWR='0' or n_ioRD = '0') else '1'; -- 2 Bytes $90-$91

Next step - have fun with the internet.

I've had a lot of fun playing around with ports from within languages - eg
MBASIC or C. You can do some very simple things with basic, outputting to
ports and seeing things arrive in a PC terminal program, eg OUT &Hport,
number, and you can do that from within the monitor program Grant has put
on the board, so no need to even boot into CP/M or have an SD card
installed.

Useful to test it works.

But you'll be wanting to do more! This is a BDS C program that talks to
the internet - eg getting the html part of Google and transferring data.
I've had code uploading for several weeks now
http://moxhamj.github.io/channel-viz/

I'm assuming you know how to transfer files from the fat partition of the
sd card to the CP/M partition - thanks to Max's nifty bit of code, this
makes massive file transfers much easier.

There is a lot here - see attached - delete the bits you don't need. It
shows how to read from a port, write to a port, and do a hard reset to the
ESP module, and send data through to the vga terminal.

More boards are on the way....

Cheers, James


On Fri, 18 Sep 2015 18:36:10 +0930, Brian O'Sullivan
Post by Brian O'Sullivan
Post by Brian O'Sullivan
Got the board - took 7 days to arrive in Brisbane.
Board built and running in 2 hours start to finish.
Starting to poke around and wondering how do I access all those serial
ports? Is there a list of port mappings, etc?
Was surprised to see the ESP in the kit. Very keen to play around with
that. Saw the telnet snippet above but wasn't sure how to get connected
and >initialised.
I see there is an extended monitor and have worked out a few of the
commands used by reading bits and pieces in different text files. The
help was >helpful for listing available commands, but some short usage
examples would be useful if someone has time - for example, "console
crt" switches from >the serial console (port A) to the VGA port - but I
haven't worked out how to go back to the serial from the CRT - what is
the designation for the serial >ports?
The Term command looked useful for playing around with the ports - but
without knowing the device name for the ports I am going to have to
Post by Brian O'Sullivan
experiment, or try and dig for some clues in source code.
Easy build - should have taken the advice on the website and soldered
the SDcard holder in before the FPGA headers - its a bit cramped for
space >when soldering if you do it the other way around.
I am mounting it into a box from Jaycar - HB5970. This is almost a
perfect fit - the front an rear ports sit flush so a simple cutout at
each end makes the >connectors accessible.
Brian
--
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Brian O'Sullivan
2015-09-18 10:21:07 UTC
Permalink
Ok, so I noticed in one of the files mention of TT1 - so now I have worked
out swapping consoles and have even managed to connect to the ESP (TT4).
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
James Moxham (Dr_Acula)
2015-09-21 04:27:50 UTC
Permalink
I posted another kit on ebay http://www.ebay.com.au/itm/171942439780
All the parts except the Cyclone IV fpga and an SD card. I have two of
these kits and can put some more together if these sell.

Cheers, James
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
James Moxham (Dr_Acula)
2015-09-21 05:55:07 UTC
Permalink
Sorry, that one sold an hour later. Try this one
http://www.ebay.com.au/itm/-/171942494848

On Monday, 21 September 2015 13:57:50 UTC+9:30, James Moxham (Dr_Acula)
I posted another kit on ebay http://www.ebay.com.au/itm/171942439780
All the parts except the Cyclone IV fpga and an SD card. I have two of
these kits and can put some more together if these sell.
Cheers, James
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
RHKoolaap
2015-09-21 07:27:49 UTC
Permalink
H all,

About 6 weeks ago (aug 7) I posted VHDL code for an SDHC update for the SD
card driver in this thread (I believe about the 10th post). I have been
using that on the Cyclone II board without issues. Has someone been in the
opportunity to test this on the Cyclone IV? I see no reason why that
shouldn't work, but I don't have a Cyclone IV board, so I can't say for
sure.

SDHC cards are a lot easier to find and cheaper too.

RHK.

On Monday, September 21, 2015 at 7:55:07 AM UTC+2, James Moxham (Dr_Acula)
Post by James Moxham (Dr_Acula)
Sorry, that one sold an hour later. Try this one
http://www.ebay.com.au/itm/-/171942494848
On Monday, 21 September 2015 13:57:50 UTC+9:30, James Moxham (Dr_Acula)
I posted another kit on ebay http://www.ebay.com.au/itm/171942439780
All the parts except the Cyclone IV fpga and an SD card. I have two of
these kits and can put some more together if these sell.
Cheers, James
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Neal Crook
2015-09-22 23:37:53 UTC
Permalink
Hi,
I am still planning to try it on my Cyclone II, merging it in with other
changes I have made to the code. Got distracted, but just downloaded it now.
Neal.
Post by RHKoolaap
H all,
About 6 weeks ago (aug 7) I posted VHDL code for an SDHC update for the
SD card driver in this thread (I believe about the 10th post). I have been
using that on the Cyclone II board without issues. Has someone been in the
opportunity to test this on the Cyclone IV? I see no reason why that
shouldn't work, but I don't have a Cyclone IV board, so I can't say for
sure.
SDHC cards are a lot easier to find and cheaper too.
RHK.
On Monday, September 21, 2015 at 7:55:07 AM UTC+2, James Moxham (Dr_Acula)
Post by James Moxham (Dr_Acula)
Sorry, that one sold an hour later. Try this one
http://www.ebay.com.au/itm/-/171942494848
On Monday, 21 September 2015 13:57:50 UTC+9:30, James Moxham (Dr_Acula)
I posted another kit on ebay http://www.ebay.com.au/itm/171942439780
All the parts except the Cyclone IV fpga and an SD card. I have two of
these kits and can put some more together if these sell.
Cheers, James
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Neal Crook
2015-09-25 20:19:14 UTC
Permalink
Hi RHK,

your SDHC mods. look logically correct and well-coded. I merged them with
my own
changes and it ran successfully for me with a SDSC and SDHC card in turn,
passing my "compile colossal cave adventure from source" test (it does lots
of
disk read and write).

With the benefit of your working design as a starting-point, I identified
some
optimisations:

1. recv_data and ocr_data never hold data at the same time so I merged them
together into a 40-bit recv_data (save 8 flops)

2. with that mod, receive_ocr and receive_byte are identical, so I
eliminated
receive_ocr

3. this encouraged me to see whether I could merge receive_byte_wait and
receive_ocr_wait. The difference between them is the value loaded into
bit_counter. By loading bit_counter one state earlier, it should be
possible to
merge these two states (eliminating receive_ocr_wait). Moving the
bit_counter
load back by one state would have the side-effect of making response_mode
obsolete, eliminating 1 more flop. HOWEVER, when I made this change it
worked
for SDHC but not for SDSC, so I reverted it.

The changes that I had already made to the design are as follows:

1. add a detailed header explaining the programming model (I've now updated
that to cover both SDSC and SDHC)

2. some additional comments

3. merged the two processes that used n_wr into a single process

4. added names to all the processes (aids debug in simulation)

5. corrected a bug where init_busy was 0 for one half sdSCLK time
immediately
after reset (unlikely to cause a problem in practise)

6. changed the clocking. Previously the design used a "derived clock" - the
clock
input was a divided-down clock from the 50MHz input. The design is now
intended
to use the 50MHz clock directly and is clock-gated to run at a lower rate to
generate an appropriate sdSCLK. The clock-gating is controlled by a divider
whose
value is set through a generic. Using a gated clock rather than a divided
clock
has the apparent disadvantage that the logic needs to timing close at 50MHz
(even though it will never actually run that fast). However, since the logic
will timing-close at that speed with no effort, it is not a real
disadvantage. The compensating advantage is that derived clocks are always a
nuisance and can make timing closure (particularly meeting hold) difficult.

Set the sdSCLK like this:

sd1 : entity work.sd_controller
generic map(
CLKEDGE_DIVIDER => 25 -- clk=50MHz / 25 gives edges at 2MHz
and therefore
-- an sdSCLK of 1MHz.
)
port map(
sdCS => sdCS,
sdMOSI => sdMOSI,
sdMISO => sdMISO,
sdSCLK => sdSCLK,
n_wr => n_WR_sd,
n_rd => n_RD_sd,
n_reset => n_reset,
dataIn => cpuDataOut,
dataOut => sdCardDataOut,
regAddr => cpuAddress(2 downto 0),
driveLED => driveLED,
clk => clk
);


Since Grant gave me permission to repost his code, I have checked the final
thing into my github repository. I did this as a sequence of commits so
that you
can start at the original commit (Grant's code) and follow through each set
of
functional and commenting/whitespace changes.

The final version ran successfully for me with 3 different SDSC cards and
one
SDHC card in turn, each passing my "compile colossal cave adventure from
source"
test.

https://github.com/nealcrook/multicomp6809/tree/master/multicomp/Components/SDCARD


Neal.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
RHKoolaap
2015-09-25 21:28:52 UTC
Permalink
Hi Neal,

Thanks for checking. This was my first endeavour in VHDL, so it was bound
to be rough around the edges.

Hope it is of use

RHK
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
RHKoolaap
2015-09-26 10:10:52 UTC
Permalink
Hi Neal,

After re-checking the spec I really think the "idle" state should be called
"stand-by" state.

After ACMC41 successfully completes it returns in_idle_state=0
In data transfer mode this state is called Stand-by state.

Now for something completely different:
The spec requires the clock to remain under 400 kHz during the Card
Identification Mode (until stand-by is reached) because "some cards may
have operating frequency restrictions during the card identification mode."
During Data Transfer Mode much higher frequencies may be used (at least 25
MHz). All my tests showed the SD cards to correctly handle the (limited)
identification at at least 16 MHz. (My RAM is too slow for 25 MHz) It
appears that for the actual data transfer a higher clock will be within
spec, thus when a card is correctly identified there will be no danger of
corrupted data.
A case can be made to run the cards at full speed all the time. When a card
is not correctly identified it cannot be used for this purpose, but at
least all other cards are used at normal speeds.
And that makes a huge difference in performance.

regards, RHK
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
James Moxham (Dr_Acula)
2015-09-22 06:02:02 UTC
Permalink
Just a note re kits, these seem to be more popular than the bare boards. As
everyone knows, this whole retrocomputing thing is just a hobby here and I
have a day job too so am not looking to make money out of this. I started
off selling bare boards but not many of these seem to have been turned into
working kits as yet (well, no-one has posted any pictures!). So I started
selling kits and someone got one working the day after it arrived so it
seems kits might be the way to go. I've emptied out my parts drawers of a
few things.
The current kit does not include the Cyclone IV board, but given kits seem
more popular and it only takes 3 minutes to program a board, I think I
might buy a few of the Cyclone IV boards as well and combine them into full
kit. This should get people to a C> prompt as fast as possible. The catch
is it will be around $80US.
Of course, in the spirit of this being a hobby, the source code for
everything is open source, including the Eagle PCB files, and anyone is
quite welcome to take those files, make gerbers and get their own boards if
they already have most of the parts on hand.
Max is continuing to work on the software and has a bootup monitor program
that seems to have a nifty new feature every day.
Cheers, James
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
David Jones
2015-09-22 17:22:13 UTC
Permalink
Good points. I'd be happy with a bare board. I may have to take a stab at
creating some gerbers. I've never done that before but there always has to
be a first time.

On Tuesday, September 22, 2015 at 2:02:02 AM UTC-4, James Moxham (Dr_Acula)
Post by James Moxham (Dr_Acula)
Just a note re kits, these seem to be more popular than the bare boards.
As everyone knows, this whole retrocomputing thing is just a hobby here and
I have a day job too so am not looking to make money out of this. I started
off selling bare boards but not many of these seem to have been turned into
working kits as yet (well, no-one has posted any pictures!). So I started
selling kits and someone got one working the day after it arrived so it
seems kits might be the way to go. I've emptied out my parts drawers of a
few things.
The current kit does not include the Cyclone IV board, but given kits seem
more popular and it only takes 3 minutes to program a board, I think I
might buy a few of the Cyclone IV boards as well and combine them into full
kit. This should get people to a C> prompt as fast as possible. The catch
is it will be around $80US.
Of course, in the spirit of this being a hobby, the source code for
everything is open source, including the Eagle PCB files, and anyone is
quite welcome to take those files, make gerbers and get their own boards if
they already have most of the parts on hand.
Max is continuing to work on the software and has a bootup monitor program
that seems to have a nifty new feature every day.
Cheers, James
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Martin Lukasek
2015-09-22 20:55:30 UTC
Permalink
Hi James,

I am sorry, that I did not report a progress. Board received, populated and fully working. Thank you!

Kind regards

Martin


From: ***@googlegroups.com [mailto:***@googlegroups.com] On Behalf Of James Moxham (Dr_Acula)
Sent: Tuesday, September 22, 2015 8:02 AM
To: N8VEM <***@googlegroups.com>
Subject: [N8VEM: 20137] Re: Grant Searle's multicomputer - Cyclone IV

Just a note re kits, these seem to be more popular than the bare boards. As everyone knows, this whole retrocomputing thing is just a hobby here and I have a day job too so am not looking to make money out of this. I started off selling bare boards but not many of these seem to have been turned into working kits as yet (well, no-one has posted any pictures!). So I started selling kits and someone got one working the day after it arrived so it seems kits might be the way to go. I've emptied out my parts drawers of a few things.
The current kit does not include the Cyclone IV board, but given kits seem more popular and it only takes 3 minutes to program a board, I think I might buy a few of the Cyclone IV boards as well and combine them into full kit. This should get people to a C> prompt as fast as possible. The catch is it will be around $80US.
Of course, in the spirit of this being a hobby, the source code for everything is open source, including the Eagle PCB files, and anyone is quite welcome to take those files, make gerbers and get their own boards if they already have most of the parts on hand.
Max is continuing to work on the software and has a bootup monitor program that seems to have a nifty new feature every day.
Cheers, James
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com<mailto:n8vem+***@googlegroups.com>.
To post to this group, send email to ***@googlegroups.com<mailto:***@googlegroups.com>.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Tom Lafleur
2015-09-22 21:47:37 UTC
Permalink
Grant:

where are all the files for multicomputer - Cyclone IV located??

Thanks
Post by RHKoolaap
Hi James,
I am sorry, that I did not report a progress. Board received, populated
and fully working. Thank you!
Kind regards
Martin
Of *James Moxham (Dr_Acula)
*Sent:* Tuesday, September 22, 2015 8:02 AM
*Subject:* [N8VEM: 20137] Re: Grant Searle's multicomputer - Cyclone IV
Just a note re kits, these seem to be more popular than the bare boards.
As everyone knows, this whole retrocomputing thing is just a hobby here and
I have a day job too so am not looking to make money out of this. I started
off selling bare boards but not many of these seem to have been turned into
working kits as yet (well, no-one has posted any pictures!). So I started
selling kits and someone got one working the day after it arrived so it
seems kits might be the way to go. I've emptied out my parts drawers of a
few things.
The current kit does not include the Cyclone IV board, but given kits seem
more popular and it only takes 3 minutes to program a board, I think I
might buy a few of the Cyclone IV boards as well and combine them into full
kit. This should get people to a C> prompt as fast as possible. The catch
is it will be around $80US.
Of course, in the spirit of this being a hobby, the source code for
everything is open source, including the Eagle PCB files, and anyone is
quite welcome to take those files, make gerbers and get their own boards if
they already have most of the parts on hand.
Max is continuing to work on the software and has a bootup monitor program
that seems to have a nifty new feature every day.
Cheers, James
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
~~ _/) ~~~~ _/) ~~~~ _/) ~~~~ _/) ~~

Tom Lafleur
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
James Moxham (Dr_Acula)
2015-09-27 11:38:04 UTC
Permalink
My apologies for taking a while getting parts together - I've got parts
coming from all over the world.

Meanwhile, listing on ebay for a
kit http://www.ebay.com.au/itm/171949947181 but with one small catch, no
680R resistors, but to make up for this, have added some extra bits so all
the pcb is fully populated.

Also a listing for the bare PCB http://www.ebay.com.au/itm/171949946751

This is the last kit for a few weeks, but I have more bare PCBs available.

Going off on a crazy tangent, I have been thinking how to use pins on the
FPGA as general purpose I/O pins. There are 20+8 = 30 pins running the ram
chips - it could be possible to create a block of ram inside the fpga of
say, 4k and map this into the memory mapping vhdl, so that this block was
always enabled. If, say, this block was the bottom block of 64k, or the top
block, or a known location, then you could write some Z80 assembly to run
code in this location, and it would run without accessing external ram.
Then you could map ports so that the ram pins can be outputs or inputs.

I'm still dreaming of using some of the cheap touchscreens out there that
are full color, but need lots of pins to drive them (16 bit bus and another
6 control pins).

Another crazy idea might be to use the spare ram on the fgpa (I think there
is over 16k available) to do some sort of better resolution on the VGA
monitor.

Has anyone got a board working and is keen to delve into vhdl and try a few
things?

Also, I updated my website with the latest code from Max. He has some great
ideas to put some extra things in the bootloader rom - hardware diagnostics
and that sort of thing. Stay tuned for some nifty improvements there.

Cheers, James Moxham
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
James Moxham (Dr_Acula)
2015-09-27 11:47:18 UTC
Permalink
@RHK

*The spec requires the clock to remain under 400 kHz during the Card
Identification Mode (until stand-by is reached) because "some cards may
have operating frequency restrictions during the card identification mode."*

Very interesting to read that. I have had 1gb cards that work fine, and I
have a batch of 2gb cards that won't work. Maybe this is the reason?

Playing around with the clock frequency, it seems many cards will work at
1Mhz or 25Mhz (and certainly loading up Wordstar is snappy at 25Mhz!). But
for the cards that won't even register, maybe a super slow startup mode is
the answer?

Max's bootloader ultimately will have some diagnostics to at least give
some faults like whether it is the serial port, or ram, or sd card that has
failed.

Thinking about this from a practical perspective, I've got a few SD cards
on order from overseas, and if I find a brand that works, I'm hoping to
then load them up with software and include them in the kit so it takes one
variable out of the equation if "it doesn't work".

Thanks++ for the code and for sharing :)

Cheers, James
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
RHKoolaap
2015-09-27 12:05:51 UTC
Permalink
Hi James,

It's quite obvious when the card fails, The little red light will stay lit
during startup. It should just flash once. I have not had that happen yet,
and I'm using the cheapest Chinese cards I can find too.

On Sunday, September 27, 2015 at 1:47:18 PM UTC+2, James Moxham (Dr_Acula)
Post by James Moxham (Dr_Acula)
@RHK
*The spec requires the clock to remain under 400 kHz during the Card
Identification Mode (until stand-by is reached) because "some cards may
have operating frequency restrictions during the card identification mode."*
Very interesting to read that. I have had 1gb cards that work fine, and I
have a batch of 2gb cards that won't work. Maybe this is the reason?
Probably not, Those 2GB cards are most likely SDHC cards... I have a few
too.
Post by James Moxham (Dr_Acula)
Playing around with the clock frequency, it seems many cards will work at
1Mhz or 25Mhz (and certainly loading up Wordstar is snappy at 25Mhz!). But
for the cards that won't even register, maybe a super slow startup mode is
the answer?
Max's bootloader ultimately will have some diagnostics to at least give
some faults like whether it is the serial port, or ram, or sd card that has
failed.
Thinking about this from a practical perspective, I've got a few SD cards
on order from overseas, and if I find a brand that works, I'm hoping to
then load them up with software and include them in the kit so it takes one
variable out of the equation if "it doesn't work".
Thanks++ for the code and for sharing :)
Cheers, James
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
David W. Schultz
2015-09-27 14:12:31 UTC
Permalink
@RHK
/The spec requires the clock to remain under 400 kHz during the Card
Identification Mode (until stand-by is reached) because "some cards may
have operating frequency restrictions during the card identification mode."/
Very interesting to read that. I have had 1gb cards that work fine, and
I have a batch of 2gb cards that won't work. Maybe this is the reason?
Once upon a time, back in the days of MMC cards, the CMD signal was a
bus with more than one card attached. During initialization this was an
open drain signal so that the cards could fight over the bus and decide
on a winner. Now the spec says that SD cards have no open drain mode and
do not share CMD with anyone.

When it was open drain that obviously limited clock speeds because of
rise time issues.

But the way the spec is written, it looks like some SD cards also have
speed restrictions at startup. I can't imagine why.
--
David W. Schultz
http://home.earthlink.net/~david.schultz
Returned for Regrooving
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
RHKoolaap
2015-09-28 09:13:58 UTC
Permalink
Hi David,

That makes a whole lot of sense. Thanks for that insight

I'm now running the SD card controller straight from the 50 MHz clock, with
the SPI-clock @ 25 MHz.
Tested a few cards, and see no issues.
It is against regs, but it seems silly to take a 98 percent performance
hit, just to comply with outdated standards.

@ Neal: implemented your github controller (minus the timing :-) which
works fine.
I don't see where you merged registers, but I understand what you meant.

Thanks again

Somebody try this on a Cyclone IV yet? That system uses a 25 MHz clock, If
I'm not mistaken, so there should be no problems there...

RHK
@RHK
/The spec requires the clock to remain under 400 kHz during the Card
Identification Mode (until stand-by is reached) because "some cards may
have operating frequency restrictions during the card identification
mode."/
Very interesting to read that. I have had 1gb cards that work fine, and
I have a batch of 2gb cards that won't work. Maybe this is the reason?
Once upon a time, back in the days of MMC cards, the CMD signal was a
bus with more than one card attached. During initialization this was an
open drain signal so that the cards could fight over the bus and decide
on a winner. Now the spec says that SD cards have no open drain mode and
do not share CMD with anyone.
When it was open drain that obviously limited clock speeds because of
rise time issues.
But the way the spec is written, it looks like some SD cards also have
speed restrictions at startup. I can't imagine why.
--
David W. Schultz
http://home.earthlink.net/~david.schultz
Returned for Regrooving
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
David W. Schultz
2015-09-30 00:39:23 UTC
Permalink
Post by RHKoolaap
Hi David,
That makes a whole lot of sense. Thanks for that insight
I'm now running the SD card controller straight from the 50 MHz clock,
Tested a few cards, and see no issues.
It is against regs, but it seems silly to take a 98 percent performance
hit, just to comply with outdated standards.
It is only a performance problem if you fail to increase the clock at
the appointed time.

And the standard isn't outdated except in the sense that it maintains
compatibility with old hardware. There aren't many MMC cards still
running around but I have one.
--
David W. Schultz
http://home.earthlink.net/~david.schultz
Returned for Regrooving
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
RHKoolaap
2015-09-30 07:24:09 UTC
Permalink
You are right in the broad sense off course. And if I was to produce
anything marketable I'd have to comply. But this is a hobby project and I
can choose between:
a- simple design, low speed,
b- simple design high speed and
c- complex design compliant.

I chose b: with the caveat "If a card does not work, try another."

The mechanism of a possible card failure is such that there is no added
risk of data loss during use (which would be a show-stopper). I can live
with an occasional incompatible card. The driver is non-compliant in other
ways too: It supports only upto 8 GByte capacity. Increasing it to 32 Gbyte
is no big deal, but really not necessary.

Thanks for the insight though.

RHK


On Wednesday, September 30, 2015 at 2:39:27 AM UTC+2, David W. Schultz
Post by David W. Schultz
Post by RHKoolaap
Hi David,
That makes a whole lot of sense. Thanks for that insight
I'm now running the SD card controller straight from the 50 MHz clock,
Tested a few cards, and see no issues.
It is against regs, but it seems silly to take a 98 percent performance
hit, just to comply with outdated standards.
It is only a performance problem if you fail to increase the clock at
the appointed time.
And the standard isn't outdated except in the sense that it maintains
compatibility with old hardware. There aren't many MMC cards still
running around but I have one.
--
David W. Schultz
http://home.earthlink.net/~david.schultz
Returned for Regrooving
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Alan Cox
2015-09-30 10:12:03 UTC
Permalink
Compliance is just adding one clock divider. It's not actually that complex
especially if software driven.

You might also want to look at both 65SPI and Will's SPI for socz80. Both
in normal cases can hit the full performance of the CPU core but don't
implement the SD protocol in hardware so have a low gate count.

Alan
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
RHKoolaap
2015-09-30 11:56:57 UTC
Permalink
I understand where you are coming from, My point is I don't benefit from
this compliance.
I don't intend to use the older cards,and if I eventually find a card that
does not work I'll use it for other purposes. Besides, the amount of logic
elements is limited. I rather use them for something I do want.

Now If I would run into problems I might reconsider, but up to now it has
worked very well. All my cards work, with exception of a single 16 Mb MMC
(duh)

The original implementation sacrifices performance for compliance by
running the SPI clock at 500 kHz (still 25 % too much). By simplifying the
design (eliminating clock dividers) , this implementation sacrifices
compliance for performance, running the SPI clock at 25 MHz.

I fully understand when people choose to stay with the original design, or
make their own if so inclined.

On a side note, I don't think that an FPGA implementation should be called
"software driven" After all, these are all real hardware gates.

All that said, I DO value your insight. Please keep it coming

RHK
Post by Alan Cox
Compliance is just adding one clock divider. It's not actually that
complex especially if software driven.
You might also want to look at both 65SPI and Will's SPI for socz80. Both
in normal cases can hit the full performance of the CPU core but don't
implement the SD protocol in hardware so have a low gate count.
Alan
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Alan Cox
2015-09-30 17:04:36 UTC
Permalink
The original implementation sacrifices performance for compliance by running
the SPI clock at 500 kHz (still 25 % too much). By simplifying the design
(eliminating clock dividers) , this implementation sacrifices compliance for
performance, running the SPI clock at 25 MHz.
You in theory just need the divider to kick out once detection is
done, and back in on a timeout or other error where you reset the
card.
On a side note, I don't think that an FPGA implementation should be called
"software driven" After all, these are all real hardware gates.
Possibly we need some more terminology.

The SocZ80 implemention and things like 65SPI do byte level SPI
transactions in hardware, but they don't understand the SD protocol.
Despite that they give you the full available speed (or close to it)
in far fewer gates, and you can also do fairly smart error recovery
handling (not perfect as the SD card power isn't controlled by the
FPGA)

So they are software in the sense that the SD protocol is software but
SPI shifting, and the like is hardware, as opposed to say bitbanging.
Will's implementation also does a sneaky trick or two - it implements
wait on the CPU so that a continual pipeline of accesses stalls the
processor until the transaction completes.

Not as much fun as doing SD in fpga I admit (or doing SD over the top
of disk controller emulation as PDP2011 and Peter Anvin's ABC80 do!)

There is even hardware that mmio maps part of the SD card as if it
were RAM lets the CPU execute it!

Alan
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
RHKoolaap
2015-09-30 19:27:18 UTC
Permalink
Post by Alan Cox
Post by RHKoolaap
The original implementation sacrifices performance for compliance by
running
Post by RHKoolaap
the SPI clock at 500 kHz (still 25 % too much). By simplifying the
design
Post by RHKoolaap
(eliminating clock dividers) , this implementation sacrifices compliance
for
Post by RHKoolaap
performance, running the SPI clock at 25 MHz.
You in theory just need the divider to kick out once detection is
done, and back in on a timeout or other error where you reset the
card.
I do understand what should be done, and I probably can do it too, but I
stick with my point of view that it does not fix a real problem. There is
no upside.
Post by Alan Cox
Post by RHKoolaap
On a side note, I don't think that an FPGA implementation should be
called
Post by RHKoolaap
"software driven" After all, these are all real hardware gates.
Possibly we need some more terminology.
Not really, I was just being flippant :-)
The SocZ80 implemention and things like 65SPI do byte level SPI
transactions in hardware, but they don't understand the SD protocol.
Despite that they give you the full available speed (or close to it)
in far fewer gates, and you can also do fairly smart error recovery
handling (not perfect as the SD card power isn't controlled by the
FPGA)
So they are software in the sense that the SD protocol is software but
SPI shifting, and the like is hardware, as opposed to say bitbanging.
Will's implementation also does a sneaky trick or two - it implements
wait on the CPU so that a continual pipeline of accesses stalls the
processor until the transaction completes.
Not as much fun as doing SD in fpga I admit (or doing SD over the top
of disk controller emulation as PDP2011 and Peter Anvin's ABC80 do!)
There is even hardware that mmio maps part of the SD card as if it
were RAM lets the CPU execute it!
Alan
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
David Jones
2015-10-06 15:19:00 UTC
Permalink
Well I received my bare board yesterday. Now time to start ordering any
parts that I don't already have :)


On Sunday, September 27, 2015 at 7:38:05 AM UTC-4, James Moxham (Dr_Acula)
Post by James Moxham (Dr_Acula)
My apologies for taking a while getting parts together - I've got parts
coming from all over the world.
Meanwhile, listing on ebay for a kit
http://www.ebay.com.au/itm/171949947181 but with one small catch, no
680R resistors, but to make up for this, have added some extra bits so all
the pcb is fully populated.
Also a listing for the bare PCB http://www.ebay.com.au/itm/171949946751
This is the last kit for a few weeks, but I have more bare PCBs available.
Going off on a crazy tangent, I have been thinking how to use pins on the
FPGA as general purpose I/O pins. There are 20+8 = 30 pins running the ram
chips - it could be possible to create a block of ram inside the fpga of
say, 4k and map this into the memory mapping vhdl, so that this block was
always enabled. If, say, this block was the bottom block of 64k, or the top
block, or a known location, then you could write some Z80 assembly to run
code in this location, and it would run without accessing external ram.
Then you could map ports so that the ram pins can be outputs or inputs.
I'm still dreaming of using some of the cheap touchscreens out there that
are full color, but need lots of pins to drive them (16 bit bus and another
6 control pins).
Another crazy idea might be to use the spare ram on the fgpa (I think
there is over 16k available) to do some sort of better resolution on the
VGA monitor.
Has anyone got a board working and is keen to delve into vhdl and try a
few things?
Also, I updated my website with the latest code from Max. He has some
great ideas to put some extra things in the bootloader rom - hardware
diagnostics and that sort of thing. Stay tuned for some nifty improvements
there.
Cheers, James Moxham
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Max Scane
2015-10-06 21:49:22 UTC
Permalink
Hi David,

A couple of tips:

In case you haven't done any SMD soldering I recommend you solder the SD
socket first and use the thinnest solder you can find. You only need a
touch. Also I recommend a dab of solder on each side of the socket to hold
it down on the board. Once the FPGA sockets are in place it is difficult
to get to the SD socket pins as the space is limited.

Also, place the connectors on the FPGA board and then position the assembly
on the mother board ready to solder. That way the FPGA module will keep
the connectors positioned correctly for easy insertion/removal of the FPGA
later on.

Good luck with your build!

Cheers!

Max
Post by David Jones
Well I received my bare board yesterday. Now time to start ordering any
parts that I don't already have :)
On Sunday, September 27, 2015 at 7:38:05 AM UTC-4, James Moxham (Dr_Acula)
Post by James Moxham (Dr_Acula)
My apologies for taking a while getting parts together - I've got parts
coming from all over the world.
Meanwhile, listing on ebay for a kit
http://www.ebay.com.au/itm/171949947181 but with one small catch, no
680R resistors, but to make up for this, have added some extra bits so all
the pcb is fully populated.
Also a listing for the bare PCB http://www.ebay.com.au/itm/171949946751
This is the last kit for a few weeks, but I have more bare PCBs available.
Going off on a crazy tangent, I have been thinking how to use pins on the
FPGA as general purpose I/O pins. There are 20+8 = 30 pins running the ram
chips - it could be possible to create a block of ram inside the fpga of
say, 4k and map this into the memory mapping vhdl, so that this block was
always enabled. If, say, this block was the bottom block of 64k, or the top
block, or a known location, then you could write some Z80 assembly to run
code in this location, and it would run without accessing external ram.
Then you could map ports so that the ram pins can be outputs or inputs.
I'm still dreaming of using some of the cheap touchscreens out there that
are full color, but need lots of pins to drive them (16 bit bus and another
6 control pins).
Another crazy idea might be to use the spare ram on the fgpa (I think
there is over 16k available) to do some sort of better resolution on the
VGA monitor.
Has anyone got a board working and is keen to delve into vhdl and try a
few things?
Also, I updated my website with the latest code from Max. He has some
great ideas to put some extra things in the bootloader rom - hardware
diagnostics and that sort of thing. Stay tuned for some nifty improvements
there.
Cheers, James Moxham
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
David Jones
2015-10-06 23:39:26 UTC
Permalink
Thanks for the tips. As it turns out I have a decent amount of experience
soldering SMD's. I've built several SDR Radios including surface mount
CPU's.

I'll let you know how I make out once I get all the parts and put it
together.

David
Post by RHKoolaap
Hi David,
In case you haven't done any SMD soldering I recommend you solder the SD
socket first and use the thinnest solder you can find. You only need a
touch. Also I recommend a dab of solder on each side of the socket to hold
it down on the board. Once the FPGA sockets are in place it is difficult
to get to the SD socket pins as the space is limited.
Also, place the connectors on the FPGA board and then position the
assembly on the mother board ready to solder. That way the FPGA module
will keep the connectors positioned correctly for easy insertion/removal
of the FPGA later on.
Good luck with your build!
Cheers!
Max
Post by David Jones
Well I received my bare board yesterday. Now time to start ordering any
parts that I don't already have :)
On Sunday, September 27, 2015 at 7:38:05 AM UTC-4, James Moxham
Post by James Moxham (Dr_Acula)
My apologies for taking a while getting parts together - I've got parts
coming from all over the world.
Meanwhile, listing on ebay for a kit
http://www.ebay.com.au/itm/171949947181 but with one small catch, no
680R resistors, but to make up for this, have added some extra bits so all
the pcb is fully populated.
Also a listing for the bare PCB http://www.ebay.com.au/itm/171949946751
This is the last kit for a few weeks, but I have more bare PCBs available.
Going off on a crazy tangent, I have been thinking how to use pins on
the FPGA as general purpose I/O pins. There are 20+8 = 30 pins running the
ram chips - it could be possible to create a block of ram inside the fpga
of say, 4k and map this into the memory mapping vhdl, so that this block
was always enabled. If, say, this block was the bottom block of 64k, or the
top block, or a known location, then you could write some Z80 assembly to
run code in this location, and it would run without accessing external ram.
Then you could map ports so that the ram pins can be outputs or inputs.
I'm still dreaming of using some of the cheap touchscreens out there
that are full color, but need lots of pins to drive them (16 bit bus and
another 6 control pins).
Another crazy idea might be to use the spare ram on the fgpa (I think
there is over 16k available) to do some sort of better resolution on the
VGA monitor.
Has anyone got a board working and is keen to delve into vhdl and try a
few things?
Also, I updated my website with the latest code from Max. He has some
great ideas to put some extra things in the bootloader rom - hardware
diagnostics and that sort of thing. Stay tuned for some nifty improvements
there.
Cheers, James Moxham
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an
.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
David Jones
2015-10-20 13:57:25 UTC
Permalink
Ok I have a bit of a question. I have all the parts now except for the
470uf cap's. Where has anyone found ones that fit the board? The ones I
have are too large diameter wise. I can probably make them work but it
would be ugly looking.

Thanks
David
Post by RHKoolaap
Hi David,
In case you haven't done any SMD soldering I recommend you solder the SD
socket first and use the thinnest solder you can find. You only need a
touch. Also I recommend a dab of solder on each side of the socket to hold
it down on the board. Once the FPGA sockets are in place it is difficult
to get to the SD socket pins as the space is limited.
Also, place the connectors on the FPGA board and then position the
assembly on the mother board ready to solder. That way the FPGA module
will keep the connectors positioned correctly for easy insertion/removal
of the FPGA later on.
Good luck with your build!
Cheers!
Max
Post by David Jones
Well I received my bare board yesterday. Now time to start ordering any
parts that I don't already have :)
On Sunday, September 27, 2015 at 7:38:05 AM UTC-4, James Moxham
Post by James Moxham (Dr_Acula)
My apologies for taking a while getting parts together - I've got parts
coming from all over the world.
Meanwhile, listing on ebay for a kit
http://www.ebay.com.au/itm/171949947181 but with one small catch, no
680R resistors, but to make up for this, have added some extra bits so all
the pcb is fully populated.
Also a listing for the bare PCB http://www.ebay.com.au/itm/171949946751
This is the last kit for a few weeks, but I have more bare PCBs available.
Going off on a crazy tangent, I have been thinking how to use pins on
the FPGA as general purpose I/O pins. There are 20+8 = 30 pins running the
ram chips - it could be possible to create a block of ram inside the fpga
of say, 4k and map this into the memory mapping vhdl, so that this block
was always enabled. If, say, this block was the bottom block of 64k, or the
top block, or a known location, then you could write some Z80 assembly to
run code in this location, and it would run without accessing external ram.
Then you could map ports so that the ram pins can be outputs or inputs.
I'm still dreaming of using some of the cheap touchscreens out there
that are full color, but need lots of pins to drive them (16 bit bus and
another 6 control pins).
Another crazy idea might be to use the spare ram on the fgpa (I think
there is over 16k available) to do some sort of better resolution on the
VGA monitor.
Has anyone got a board working and is keen to delve into vhdl and try a
few things?
Also, I updated my website with the latest code from Max. He has some
great ideas to put some extra things in the bootloader rom - hardware
diagnostics and that sort of thing. Stay tuned for some nifty improvements
there.
Cheers, James Moxham
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an
.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Kip Koon
2015-10-20 15:22:40 UTC
Permalink
Hi David,

What voltage rating did you buy? I’ve been using 470uf 6.3v electrolytic capacitors on all my Multicomp boards since they use a 5v supply and they work great. Knowing that this board has power supplies on board this time, I checked the schematic and 470uf 6.3v caps are called for in this design as well so to make sure the caps fit, that is the value I would get. I hope this helps.



Kip Koon

***@sc.rr.com

http://www.cocopedia.com/wiki/index.php/Kip_Koon





From: ***@googlegroups.com [mailto:***@googlegroups.com] On Behalf Of David Jones
Sent: Tuesday, October 20, 2015 9:57 AM
To: N8VEM
Subject: Re: [N8VEM: 20261] Re: Grant Searle's multicomputer - Cyclone IV



Ok I have a bit of a question. I have all the parts now except for the 470uf cap's. Where has anyone found ones that fit the board? The ones I have are too large diameter wise. I can probably make them work but it would be ugly looking.


Thanks

David

On Tuesday, October 6, 2015 at 5:49:24 PM UTC-4, Max Scane wrote:

Hi David,



A couple of tips:



In case you haven't done any SMD soldering I recommend you solder the SD socket first and use the thinnest solder you can find. You only need a touch. Also I recommend a dab of solder on each side of the socket to hold it down on the board. Once the FPGA sockets are in place it is difficult to get to the SD socket pins as the space is limited.



Also, place the connectors on the FPGA board and then position the assembly on the mother board ready to solder. That way the FPGA module will keep the connectors positioned correctly for easy insertion/removal of the FPGA later on.



Good luck with your build!



Cheers!



Max



On Wed, Oct 7, 2015 at 2:19 AM, David Jones <***@gmail.com <javascript:> > wrote:

Well I received my bare board yesterday. Now time to start ordering any parts that I don't already have :)



On Sunday, September 27, 2015 at 7:38:05 AM UTC-4, James Moxham (Dr_Acula) wrote:

My apologies for taking a while getting parts together - I've got parts coming from all over the world.



Meanwhile, listing on ebay for a kit http://www.ebay.com.au/itm/171949947181 but with one small catch, no 680R resistors, but to make up for this, have added some extra bits so all the pcb is fully populated.



Also a listing for the bare PCB http://www.ebay.com.au/itm/171949946751



This is the last kit for a few weeks, but I have more bare PCBs available.



Going off on a crazy tangent, I have been thinking how to use pins on the FPGA as general purpose I/O pins. There are 20+8 = 30 pins running the ram chips - it could be possible to create a block of ram inside the fpga of say, 4k and map this into the memory mapping vhdl, so that this block was always enabled. If, say, this block was the bottom block of 64k, or the top block, or a known location, then you could write some Z80 assembly to run code in this location, and it would run without accessing external ram. Then you could map ports so that the ram pins can be outputs or inputs.



I'm still dreaming of using some of the cheap touchscreens out there that are full color, but need lots of pins to drive them (16 bit bus and another 6 control pins).



Another crazy idea might be to use the spare ram on the fgpa (I think there is over 16k available) to do some sort of better resolution on the VGA monitor.



Has anyone got a board working and is keen to delve into vhdl and try a few things?



Also, I updated my website with the latest code from Max. He has some great ideas to put some extra things in the bootloader rom - hardware diagnostics and that sort of thing. Stay tuned for some nifty improvements there.



Cheers, James Moxham
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com <javascript:> .
To post to this group, send email to ***@googlegroups.com <javascript:> .
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
David Jones
2015-10-20 16:37:10 UTC
Permalink
I got some that were the same values and voltages as referenced in the BOM.
That wasn't the problem. It's finding some that fit the space on the
board. The suppliers I normally get things from don't have any in 2.5mm
and 5mm diameter. I'm going to check ebay next and see what turns up there.
In the short term, I'll just use what I have even it is does look ugly.

Thanks
David
Post by RHKoolaap
Hi David,
What voltage rating did you buy? I’ve been using 470uf 6.3v electrolytic
capacitors on all my Multicomp boards since they use a 5v supply and they
work great. Knowing that this board has power supplies on board this time,
I checked the schematic and 470uf 6.3v caps are called for in this design
as well so to make sure the caps fit, that is the value I would get. I
hope this helps.
Kip Koon
http://www.cocopedia.com/wiki/index.php/Kip_Koon
*Sent:* Tuesday, October 20, 2015 9:57 AM
*To:* N8VEM
*Subject:* Re: [N8VEM: 20261] Re: Grant Searle's multicomputer - Cyclone
IV
Ok I have a bit of a question. I have all the parts now except for the
470uf cap's. Where has anyone found ones that fit the board? The ones I
have are too large diameter wise. I can probably make them work but it
would be ugly looking.
Thanks
David
Hi David,
In case you haven't done any SMD soldering I recommend you solder the SD
socket first and use the thinnest solder you can find. You only need a
touch. Also I recommend a dab of solder on each side of the socket to hold
it down on the board. Once the FPGA sockets are in place it is difficult
to get to the SD socket pins as the space is limited.
Also, place the connectors on the FPGA board and then position the
assembly on the mother board ready to solder. That way the FPGA module
will keep the connectors positioned correctly for easy insertion/removal
of the FPGA later on.
Good luck with your build!
Cheers!
Max
Well I received my bare board yesterday. Now time to start ordering any
parts that I don't already have :)
My apologies for taking a while getting parts together - I've got parts
coming from all over the world.
Meanwhile, listing on ebay for a kit
http://www.ebay.com.au/itm/171949947181 but with one small catch, no
680R resistors, but to make up for this, have added some extra bits so all
the pcb is fully populated.
Also a listing for the bare PCB http://www.ebay.com.au/itm/171949946751
This is the last kit for a few weeks, but I have more bare PCBs available.
Going off on a crazy tangent, I have been thinking how to use pins on the
FPGA as general purpose I/O pins. There are 20+8 = 30 pins running the ram
chips - it could be possible to create a block of ram inside the fpga of
say, 4k and map this into the memory mapping vhdl, so that this block was
always enabled. If, say, this block was the bottom block of 64k, or the top
block, or a known location, then you could write some Z80 assembly to run
code in this location, and it would run without accessing external ram.
Then you could map ports so that the ram pins can be outputs or inputs.
I'm still dreaming of using some of the cheap touchscreens out there that
are full color, but need lots of pins to drive them (16 bit bus and another
6 control pins).
Another crazy idea might be to use the spare ram on the fgpa (I think
there is over 16k available) to do some sort of better resolution on the
VGA monitor.
Has anyone got a board working and is keen to delve into vhdl and try a few things?
Also, I updated my website with the latest code from Max. He has some
great ideas to put some extra things in the bootloader rom - hardware
diagnostics and that sort of thing. Stay tuned for some nifty improvements
there.
Cheers, James Moxham
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Bill Lewis
2015-10-20 16:57:36 UTC
Permalink
For the two caps on the switching regulators, I used Digi-Key 1189-2177-ND

330UF 20% 10V RADIAL
105°C Long Life, Low Impedance, High Ripple Current

This is a high reliability capacitor intended for switching regulator
service.

https://www.digikey.com/product-detail/en/10ZLJ330M6.3X11/1189-2177-ND/3563160

Bill
Post by RHKoolaap
Hi David,
What voltage rating did you buy? I’ve been using 470uf 6.3v electrolytic
capacitors on all my Multicomp boards since they use a 5v supply and they
work great. Knowing that this board has power supplies on board this time,
I checked the schematic and 470uf 6.3v caps are called for in this design
as well so to make sure the caps fit, that is the value I would get. I
hope this helps.
Kip Koon
http://www.cocopedia.com/wiki/index.php/Kip_Koon
*Sent:* Tuesday, October 20, 2015 9:57 AM
*To:* N8VEM
*Subject:* Re: [N8VEM: 20261] Re: Grant Searle's multicomputer - Cyclone
IV
Ok I have a bit of a question. I have all the parts now except for the
470uf cap's. Where has anyone found ones that fit the board? The ones I
have are too large diameter wise. I can probably make them work but it
would be ugly looking.
Thanks
David
Hi David,
In case you haven't done any SMD soldering I recommend you solder the SD
socket first and use the thinnest solder you can find. You only need a
touch. Also I recommend a dab of solder on each side of the socket to hold
it down on the board. Once the FPGA sockets are in place it is difficult
to get to the SD socket pins as the space is limited.
Also, place the connectors on the FPGA board and then position the
assembly on the mother board ready to solder. That way the FPGA module
will keep the connectors positioned correctly for easy insertion/removal
of the FPGA later on.
Good luck with your build!
Cheers!
Max
Well I received my bare board yesterday. Now time to start ordering any
parts that I don't already have :)
My apologies for taking a while getting parts together - I've got parts
coming from all over the world.
Meanwhile, listing on ebay for a kit
http://www.ebay.com.au/itm/171949947181 but with one small catch, no
680R resistors, but to make up for this, have added some extra bits so all
the pcb is fully populated.
Also a listing for the bare PCB http://www.ebay.com.au/itm/171949946751
This is the last kit for a few weeks, but I have more bare PCBs available.
Going off on a crazy tangent, I have been thinking how to use pins on the
FPGA as general purpose I/O pins. There are 20+8 = 30 pins running the ram
chips - it could be possible to create a block of ram inside the fpga of
say, 4k and map this into the memory mapping vhdl, so that this block was
always enabled. If, say, this block was the bottom block of 64k, or the top
block, or a known location, then you could write some Z80 assembly to run
code in this location, and it would run without accessing external ram.
Then you could map ports so that the ram pins can be outputs or inputs.
I'm still dreaming of using some of the cheap touchscreens out there that
are full color, but need lots of pins to drive them (16 bit bus and another
6 control pins).
Another crazy idea might be to use the spare ram on the fgpa (I think
there is over 16k available) to do some sort of better resolution on the
VGA monitor.
Has anyone got a board working and is keen to delve into vhdl and try a few things?
Also, I updated my website with the latest code from Max. He has some
great ideas to put some extra things in the bootloader rom - hardware
diagnostics and that sort of thing. Stay tuned for some nifty improvements
there.
Cheers, James Moxham
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
David Jones
2015-10-20 17:48:00 UTC
Permalink
Thanks. Did that fit in the board ok? I seen those but I was worried the
diameter would still be too large.

David
Post by Bill Lewis
For the two caps on the switching regulators, I used Digi-Key 1189-2177-ND
330UF 20% 10V RADIAL
105°C Long Life, Low Impedance, High Ripple Current
This is a high reliability capacitor intended for switching regulator
service.
https://www.digikey.com/product-detail/en/10ZLJ330M6.3X11/1189-2177-ND/3563160
Bill
Post by RHKoolaap
Hi David,
What voltage rating did you buy? I’ve been using 470uf 6.3v electrolytic
capacitors on all my Multicomp boards since they use a 5v supply and they
work great. Knowing that this board has power supplies on board this time,
I checked the schematic and 470uf 6.3v caps are called for in this design
as well so to make sure the caps fit, that is the value I would get. I
hope this helps.
Kip Koon
http://www.cocopedia.com/wiki/index.php/Kip_Koon
Behalf Of *David Jones
*Sent:* Tuesday, October 20, 2015 9:57 AM
*To:* N8VEM
*Subject:* Re: [N8VEM: 20261] Re: Grant Searle's multicomputer - Cyclone
IV
Ok I have a bit of a question. I have all the parts now except for the
470uf cap's. Where has anyone found ones that fit the board? The ones I
have are too large diameter wise. I can probably make them work but it
would be ugly looking.
Thanks
David
Hi David,
In case you haven't done any SMD soldering I recommend you solder the SD
socket first and use the thinnest solder you can find. You only need a
touch. Also I recommend a dab of solder on each side of the socket to hold
it down on the board. Once the FPGA sockets are in place it is difficult
to get to the SD socket pins as the space is limited.
Also, place the connectors on the FPGA board and then position the
assembly on the mother board ready to solder. That way the FPGA module
will keep the connectors positioned correctly for easy insertion/removal
of the FPGA later on.
Good luck with your build!
Cheers!
Max
Well I received my bare board yesterday. Now time to start ordering any
parts that I don't already have :)
My apologies for taking a while getting parts together - I've got parts
coming from all over the world.
Meanwhile, listing on ebay for a kit
http://www.ebay.com.au/itm/171949947181 but with one small catch, no
680R resistors, but to make up for this, have added some extra bits so all
the pcb is fully populated.
Also a listing for the bare PCB http://www.ebay.com.au/itm/171949946751
This is the last kit for a few weeks, but I have more bare PCBs available.
Going off on a crazy tangent, I have been thinking how to use pins on the
FPGA as general purpose I/O pins. There are 20+8 = 30 pins running the ram
chips - it could be possible to create a block of ram inside the fpga of
say, 4k and map this into the memory mapping vhdl, so that this block was
always enabled. If, say, this block was the bottom block of 64k, or the top
block, or a known location, then you could write some Z80 assembly to run
code in this location, and it would run without accessing external ram.
Then you could map ports so that the ram pins can be outputs or inputs.
I'm still dreaming of using some of the cheap touchscreens out there that
are full color, but need lots of pins to drive them (16 bit bus and another
6 control pins).
Another crazy idea might be to use the spare ram on the fgpa (I think
there is over 16k available) to do some sort of better resolution on the
VGA monitor.
Has anyone got a board working and is keen to delve into vhdl and try a few things?
Also, I updated my website with the latest code from Max. He has some
great ideas to put some extra things in the bootloader rom - hardware
diagnostics and that sort of thing. Stay tuned for some nifty improvements
there.
Cheers, James Moxham
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Bill Lewis
2015-10-20 18:24:20 UTC
Permalink
Yes, the capacitor fits in the space.

For the inductor on the 3.3V regulator, I used Digi-Key RLB0912-101KL-ND

https://www.digikey.com/product-detail/en/RLB0912-101KL/RLB0912-101KL-ND/2352767

The leads on that one do not line up perfectly with the holes and I had to
bend/tweak them a bit.
But electrically it works nicely with the regulator chip.

Also, the HV version of the reg isn't necessary. LM2574N-3.3 works.
Post by David Jones
Thanks. Did that fit in the board ok? I seen those but I was worried the
diameter would still be too large.
David
Post by Bill Lewis
For the two caps on the switching regulators, I used Digi-Key
1189-2177-ND
330UF 20% 10V RADIAL
105°C Long Life, Low Impedance, High Ripple Current
This is a high reliability capacitor intended for switching regulator
service.
https://www.digikey.com/product-detail/en/10ZLJ330M6.3X11/1189-2177-ND/3563160
Bill
Post by RHKoolaap
Hi David,
What voltage rating did you buy? I’ve been using 470uf 6.3v
electrolytic capacitors on all my Multicomp boards since they use a 5v
supply and they work great. Knowing that this board has power supplies on
board this time, I checked the schematic and 470uf 6.3v caps are called for
in this design as well so to make sure the caps fit, that is the value I
would get. I hope this helps.
Kip Koon
http://www.cocopedia.com/wiki/index.php/Kip_Koon
Behalf Of *David Jones
*Sent:* Tuesday, October 20, 2015 9:57 AM
*To:* N8VEM
*Subject:* Re: [N8VEM: 20261] Re: Grant Searle's multicomputer -
Cyclone IV
Ok I have a bit of a question. I have all the parts now except for the
470uf cap's. Where has anyone found ones that fit the board? The ones I
have are too large diameter wise. I can probably make them work but it
would be ugly looking.
Thanks
David
Hi David,
In case you haven't done any SMD soldering I recommend you solder the SD
socket first and use the thinnest solder you can find. You only need a
touch. Also I recommend a dab of solder on each side of the socket to hold
it down on the board. Once the FPGA sockets are in place it is difficult
to get to the SD socket pins as the space is limited.
Also, place the connectors on the FPGA board and then position the
assembly on the mother board ready to solder. That way the FPGA module
will keep the connectors positioned correctly for easy insertion/removal
of the FPGA later on.
Good luck with your build!
Cheers!
Max
Well I received my bare board yesterday. Now time to start ordering any
parts that I don't already have :)
My apologies for taking a while getting parts together - I've got parts
coming from all over the world.
Meanwhile, listing on ebay for a kit
http://www.ebay.com.au/itm/171949947181 but with one small catch, no
680R resistors, but to make up for this, have added some extra bits so all
the pcb is fully populated.
Also a listing for the bare PCB http://www.ebay.com.au/itm/171949946751
This is the last kit for a few weeks, but I have more bare PCBs available.
Going off on a crazy tangent, I have been thinking how to use pins on
the FPGA as general purpose I/O pins. There are 20+8 = 30 pins running the
ram chips - it could be possible to create a block of ram inside the fpga
of say, 4k and map this into the memory mapping vhdl, so that this block
was always enabled. If, say, this block was the bottom block of 64k, or the
top block, or a known location, then you could write some Z80 assembly to
run code in this location, and it would run without accessing external ram.
Then you could map ports so that the ram pins can be outputs or inputs.
I'm still dreaming of using some of the cheap touchscreens out there
that are full color, but need lots of pins to drive them (16 bit bus and
another 6 control pins).
Another crazy idea might be to use the spare ram on the fgpa (I think
there is over 16k available) to do some sort of better resolution on the
VGA monitor.
Has anyone got a board working and is keen to delve into vhdl and try a few things?
Also, I updated my website with the latest code from Max. He has some
great ideas to put some extra things in the bootloader rom - hardware
diagnostics and that sort of thing. Stay tuned for some nifty improvements
there.
Cheers, James Moxham
--
You received this message because you are subscribed to the Google
Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google
Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
James Moxham
2015-10-20 21:57:39 UTC
Permalink
Hi David,

The size is a bit of a design compromise trying to get it all to fit on a
smaller board - sorry about that. Look for lower voltage caps eg 10V or
even 6V3 - they are much smaller.

Cheers, James Moxham
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Alan Jones
2015-10-22 01:27:06 UTC
Permalink
James,

I have all the components I need to start building the Cyclone IV.

I got all the parts out tonight that you sent so I can inventory and plan my build.

What is the date of the current parts list?

The part list I am looking at is dated 6/08/15.



How many other Cyclone IV builders do we have in our group so far?



Best Regards,

Al, N8WQ





From: ***@googlegroups.com [mailto:***@googlegroups.com] On Behalf Of James Moxham
Sent: Tuesday, October 20, 2015 5:58 PM
To: ***@googlegroups.com
Subject: Re: [N8VEM: 20272] Re: Grant Searle's multicomputer - Cyclone IV



Hi David,



The size is a bit of a design compromise trying to get it all to fit on a smaller board - sorry about that. Look for lower voltage caps eg 10V or even 6V3 - they are much smaller.



Cheers, James Moxham
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Kip Koon
2015-10-22 02:13:58 UTC
Permalink
Hi Al,

I’m have begun my Cyclone IV Multicomp build, but it’s taking a bit of time due to me having several projects going on at once! :) I’ll get it going though.



Kip Koon

***@sc.rr.com

http://www.cocopedia.com/wiki/index.php/Kip_Koon





From: ***@googlegroups.com [mailto:***@googlegroups.com] On Behalf Of Alan Jones
Sent: Wednesday, October 21, 2015 9:27 PM
To: ***@googlegroups.com
Subject: RE: [N8VEM: 20283] Re: Grant Searle's multicomputer - Cyclone IV



James,

I have all the components I need to start building the Cyclone IV.

I got all the parts out tonight that you sent so I can inventory and plan my build.

What is the date of the current parts list?

The part list I am looking at is dated 6/08/15.



How many other Cyclone IV builders do we have in our group so far?



Best Regards,

Al, N8WQ





From: ***@googlegroups.com [mailto:***@googlegroups.com] On Behalf Of James Moxham
Sent: Tuesday, October 20, 2015 5:58 PM
To: ***@googlegroups.com
Subject: Re: [N8VEM: 20272] Re: Grant Searle's multicomputer - Cyclone IV



Hi David,



The size is a bit of a design compromise trying to get it all to fit on a smaller board - sorry about that. Look for lower voltage caps eg 10V or even 6V3 - they are much smaller.



Cheers, James Moxham
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
James Moxham
2015-10-22 12:42:29 UTC
Permalink
Hi Alan,

Great to hear you are ready to build a board. The parts list is the latest
one. Some parts are optional - eg for a very minimal build, you could have
it running off just one serial port, and leave out VGA, keyboard, one of
the ram chips and the esp8266 and the other two serial ports. And if
running off a 5V supply, no need for the 5V reg.

Max is producing some amazing software updates every few days. He has a
new 'rom' that can do all sorts of diagnostic tests, which should be very
handy if something isn't working properly.

Cheers, James
Post by RHKoolaap
James,
I have all the components I need to start building the Cyclone IV.
I got all the parts out tonight that you sent so I can inventory and plan my build.
What is the date of the current parts list?
The part list I am looking at is dated 6/08/15.
How many other Cyclone IV builders do we have in our group so far?
Best Regards,
Al, N8WQ
Sent: Tuesday, October 20, 2015 5:58 PM
Subject: Re: [N8VEM: 20272] Re: Grant Searle's multicomputer - Cyclone IV
Hi David,
The size is a bit of a design compromise trying to get it all to fit on
a smaller board - sorry about that. Look for lower voltage caps eg 10V
or even 6V3 - >they are much smaller.
Cheers, James Moxham
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
David Jones
2015-10-22 01:43:34 UTC
Permalink
Hi James

No problem. I sure understand. I have all the parts and will be building
it this weekend when I get a chance. I'll temporarily use the cap's I have
until the smaller ones come in. I lucked out and the 25v one fit. It's
just the smaller ones I have problem with. FYI, I decided to fully
populate the board while I was at it.

Thanks David

On Tuesday, October 20, 2015 at 5:57:47 PM UTC-4, James Moxham (Dr_Acula)
Post by RHKoolaap
Hi David,
The size is a bit of a design compromise trying to get it all to fit on a
smaller board - sorry about that. Look for lower voltage caps eg 10V or
even 6V3 - they are much smaller.
Cheers, James Moxham
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Loading...