News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_d_kef

CYBOARD for Amstrad CPC – Yet another hardware project

Started by d_kef, 20:15, 08 February 23

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

d_kef

Quote from: d_kef on 18:30, 09 February 23
Quote from: TotO on 18:24, 09 February 23
Quote from: d_kef on 16:25, 09 February 23Some people want more..... Soeme people want less.... Well you can't make everyone happy :D :D
Hehe. I just said that, because it is interresting to have your Ethernet standalone feature in MX4 format to plug on a MotherX4, when a lot of people already own the compatible mass storage (X-MASS) the ROM/RAM expansion (X-MEM) to complete this setup.
I know... That's why I plan to design one.

Ok. The truth is that it's almost ready. It also has a name - Net4CPC.
I couldn't resist.......

d_kef
Net4CPC is now on github.
Mind you that the design has yet to be tested for errors; it seems OK to me but you never know.

So now there is a stand alone network solution that would make a great companion to e.g. X-MASS or Albireo.
And there is already software that make use of it.

Speeking of which, I've also uploaded the KCNet utilities for Cyboard and Net4CPC on github.

d_kef

Prodatron


GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

zhulien

Quote from: d_kef on 10:43, 16 February 23
Quote from: zhulien on 07:17, 15 February 23what is the fastest you can stream data from a good server with the Cyboard? - if you repeatedly fetch e.g. a 100 byte file over a minute - how many kb's come down?  I am really interested in the number of calls it can make per second.
I'll have to make some tests and report back.
With CP/M don't expect too much, the real limitation is the OS.
With SymbOS we'll see....

d_kef
The test can be to ram repeatedly, not nessary to disc... for the purpose of online realtime games.

d_kef

Quote from: zhulien on 10:19, 17 February 23
Quote from: d_kef on 10:43, 16 February 23
Quote from: zhulien on 07:17, 15 February 23what is the fastest you can stream data from a good server with the Cyboard? - if you repeatedly fetch e.g. a 100 byte file over a minute - how many kb's come down?  I am really interested in the number of calls it can make per second.
I'll have to make some tests and report back.
With CP/M don't expect too much, the real limitation is the OS.
With SymbOS we'll see....

d_kef
The test can be to ram repeatedly, not nessary to disc... for the purpose of online realtime games.
Today I found some time to do some generic speed test.
The test was done between a CPC and a PC connected to the same ethernet switch.
The PC was running a small loopback TCP/IP server that I made just for this purpose.
The loopback server works like this: it listens for TPC connections, reads a stream of data and then sends them back to the client. Then it repeats the receive and send procedure until the socket is closed.
The CPC was running the loopback TCP/IP client.
The loopback client works like this: it sends 100 bytes of data and a control character. Then it waits to receive data from the server. It stores the received data to memory and then retransmits the data it received to the server. The send / receive procedure repeats 100 times.

There's no check in the programs for data errors. I was checking visually with Wireshark that after 100 repetitions the data received were the same as those transmitted in the first place.

The time for completing the data "ping pong" is about 400ms. That's about 20KBytes/s downstream.
This speed is consistent for more than 100 repetitions (I tested with up to 1000).
Not bad for a 8-bit system.

d_kef

zhulien



Prodatron

20KB/s is really good!
For the test I would use bigger sizes than 100bytes, or not? Better 2KB or even more, so that the W5100 buffer is fully used.

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

zhulien

That 20kb/second is in a single request right? if only 2.5 requests per second are made (100 bytes each way) then the total is about 500 bytes/second in ping pong? (or is my calculation wrong)

d_kef

No. 400ms for 100 x 100bytes send and receive.
In other words 400ms to send 10000 bytes and receive them back in packets of 100.

d_kef 

zhulien

For a multiplayer arcade game where we don't keep a socket open, we need to make a request and get a response.  My POC from my pc using javascript to my server gives max about 15 calls per second to both make a call and get a response.  I put a hard limit of 10 for consistency across different devices. 

d_kef

Ok. I'll try to reproduce it.


Edit*
Open socket, send 101 bytes, receive 101 bytes, close socket: just under 81ms
See attachment You cannot view this attachment.

d_kef


zhulien

wow, that's great.  what that means is... about 12 calls per second which is pretty good.  if they are blocking calls (z80 waiting for a response) then we can perhaps half that for gameplay logic to be processed - but more ideally, if they are non-blocking calls... (z80 continues but checks for a status) then we can approach that 10 per second and have even more CPU time for game play logic.

I'd say that is pretty fantastic - if anyone wants to make a multiplayer action / arcade game of some sort - happy to help - at the server-side.  

Can net4cpc work along-side M4 or is it compatible with it?

d_kef

What do you mean? If it is possible for example to have both connected on the same CPC and use the M4's SD card and Net4CPC's network?

d_kef

zhulien

Are cyboard and net4cpc the same product or 2 separate products? Also are they available assembled by anyone?

d_kef

Quote from: zhulien on 16:51, 22 February 23Are cyboard and net4cpc the same product or 2 separate products? Also are they available assembled by anyone?
Cyboard contains the functionality of Net4CPC.
The 2 interfaces use the same Ethernet module.
So software written for Net4CPC is compatible with Cyboard.
There are only 2 prototype Cyboards and I'm expecting to have a Net4CPC ready next week but for now I don't plan to build more.
But it's open hardware so anyone can build their own.

d_kef

zhulien

what is the price of a made cyboard and net4cpc?

GUNHED

Quote from: d_kef on 17:04, 22 February 23Cyboard contains the functionality of Net4CPC.
The 2 interfaces use the same Ethernet module.
Since I'm not too much into internet stuff.... What can Cyboard do, but not the M4 card?
Trying to understand the commons and differences.

Quote from: d_kef on 17:04, 22 February 23There are only 2 prototype Cyboards and I'm expecting to have a Net4CPC ready next week but for now I don't plan to build more.
But it's open hardware so anyone can build their own.
From my experiences the CPC scene contains few persons soldering their own hardware. But if there is enough interest, then maybe some producer could do a batch.
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

d_kef

Quote from: zhulien on 15:41, 22 February 23Can net4cpc work along-side M4 or is it compatible with it?

I did some tests and It works just fine. I loaded CP/M from the SD card and used the KCNet utilities to setup my Net4CPC and then logged in to my favorite BBS.
I even pinged successfully the M4's WiFi.
Now that I think about it I have the first CPC with dual network interface... Woo-hoo!!!  :D :D :D

@Prodatron I wonder if I can load both network drivers in SymbOS and what will happen with the network applications!? 

d_kef 

d_kef

Quote from: zhulien on 05:58, 23 February 23what is the price of a made cyboard and net4cpc?
The components cost is about 65.00 EUR for Cyboard and about 30.00 EUR for Net4CPC.
The W5100S module alone costs about 25.00 EUR

So the price for a made board will be the above plus manufucturing cost plus whatever margin the producer thinks fair.

d_kef


d_kef

Quote from: GUNHED on 13:23, 23 February 23Since I'm not too much into internet stuff.... What can Cyboard do, but not the M4 card?
Trying to understand the commons and differences.
Regarding the networking, the M4 has an integrated web server which is a unique feature. Besides that it's all about what the software can do. I mean if you take for example SymbOS, you load the driver for whatever interface you have and then all networking apps and games behave exactly the same. They don't even care or know anything about the interface you have.

Of course the low level routines that setup the network hardware and cope with the TCP/IP stack are quite trivial in M4 and a bit more challenging in Net4CPC.(at least to my understanding)

d_kef


Prodatron

Quote from: d_kef on 22:09, 23 February 23@Prodatron I wonder if I can load both network drivers in SymbOS and what will happen with the network applications!?
The Network Daemon refuses double execution. If you start it twice (no matter with which network driver), the second one will check, if it's already running and quit itself immediately.
As it has a unique ID, with which the apps are communicating, it wouldn't make sense to run it two times. So you can either run the M4 driver or the Cyboard/Net4CPC driver.
Not sure, if it makes sense to implement multiple interface support in SymbOS. CPC working as a firewall? ;D

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

GUNHED

My question was targeting the hardware side.
Anyway, I'll have a closer look at that in decent time.  :)
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

d_kef

Quote from: GUNHED on 16:42, 24 February 23My question was targeting the hardware side.
Anyway, I'll have a closer look at that in decent time.  :)
Well, on the hardware side FutureOS already supports half of it - mouse and RTC. :D

So the only thing that Cyboard offers more than M4 is the mouse interface.
On the other hand M4 offers upper and lower ROM expansion, cartridge emulation and a web portal for easy configuration and file exchange.

d_kef

GUNHED

Looking forward to see a well documentation for this project some day, this will help programmers.  :) :) :)
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

d_kef

Quote from: GUNHED on 14:29, 28 February 23Looking forward to see a well documentation for this project some day, this will help programmers.  :) :) :)
I know that being mainly a hardware project it's a bit underdocumented.
The W5100S is very well documented though. WizNET offers a very detailed datasheet with flow diagrams and programming examples that can help any programmer.
For reference, you can also take a look at the Z80 code of the low level and high level W5100 routines in the
KCnet utilities for Net4CPC.
d_kef

Powered by SMFPacks Menu Editor Mod