Skip to content

SanPollo/PerryFi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PerryFi

  1. Introduction
  2. Licences
  3. Obtaining the PCB
  4. BOM
  5. Connector
  6. Flashing the ESP8266
  7. PerryFi Configuration
  8. Command Reference
  9. Included Software
  10. Building QTERM
  11. Links

Introduction

PerryFi is a wifi modem expansion for Amstrad PCW computers. It is a PCB based on VapourSoft's PCW WiFi Modem schematic. The PCW WiFI Modem itself is a fork of Retro WiFi Modem by mecparts, who in turn cites inspiration from a message thread on the VCF forums, Paul Rickards's WiFi232, and Daniel Jameson's Virtual Modem for ESP8266.

The PCW does not contain the electronics for an RS232 serial port built in, and required a CPS8256 serial interface to connect to an analogue modem or serial printer.

The PerryFi combines a serial interface with an ESP8266 microcontroller. The ESP8266 is perfect for this task, as it has a built in TCP/IP network stack, wifi connectivity, and its default firmware uses Hayes modem-style AT commands.

PerryFi is designed to either plug into the PCW Backplane, or directly into the back of the PCW using the expansion edge connector. Please check the Connector section for more information.

image

Index


Licences

The licence details for each part of this project are in their respective subdirectories, in a file called LICENSE.md, where this has been possible to determine.

Both VapourSoft's PCW WiFi Modem schematic, and the mecparts's Retro WiFi Modem firmware for the ESP8266 are both licensed under the terms of the GNU General Public License v3.0, so please check this before modifying or redistributing.

The older CP/M utilities included are believed to be public domain.

The PerryFi PCB is licensed under the CERN Open Hardware Licence Version 2: CERN-OHL-S, as is the rest of the content in this repo. Please make sure you read and understand the terms of this licence if you plan to build, sell or release modified versions of the PerryFi.

Index


Obtaining the PCB

You can either order this directly from its project page on PCBWay, or from downloading the gerbers, and uploading them to your favourite PCB manufacturer. I highly recommend JLCPCB.

image

Index


BOM

Ref Qty Part Source
C1 1 22uF 16V Electrolytical Capacitor Mouser
C2 - C9 8 0.1uF / 100 nF (104) Ceramic Capacitor Mouser
CONN 1** 2x25-pin 90-deg Keyed Male Box Header OR AliExpress
50-pin Female Edge Connector AliExpress
IC1 1*** Z80 DART eBay
R1 1 3k3 Resistor Mouser
SKT IC1 1 40-pin IC DIP Socket Mouser
SKT U1 1 24-pin IC DIP Socket Mouser
SKT U2 2* 6-pin SIL PIN Socket Mouser
SKT U3 2 8-pin SIL PIN Socket Mouser
SKT U4 - U6 3* 14-pin IC DIP Socket Mouser
SKT U7 1* 16-pin DIP Socket Mouser
U1 1 8253 / 8254 Programmable Interval Timer eBay
U2 1 BOB-12009 3.3 to 5v Bidirectional Logic Converter Mouser
U3 1 WEMOS D1 mini AliExpress
U4 1 74LS74 Mouser
U5 1 74LS32 Mouser
U6 1 74LS00 Mouser
U7 1 74LS138 Mouser

* Optional.

** See Connector section below.

*** Make sure you order a Z80 DART and not a Z80 CPU, or Z80-PIO.

For the two vintage chips, IC1 and U1, to avoid fake vintage chips, I highly recommend buying from a European seller on eBay.

Please note that the Sources I have specified are based on research I did after assembling my prototypes, and are there for your convenience. Double-check each component before ordering, and let me know if there are any issues, or if the links were useful by raising an issue.

Index


Connector

PerryFi can either be connected to the PCW using a PCW Backplane, or directly with an edge connector.

Note, if you are using the backplane, that the connector will be mounted on the very edge of the PerryFi board. Therefore, it is not possible to solder it flush to the board unless you use something like Blu Tac to raise it up a little.

PCW Backplane

For use with the PCW Backplane, fit the 90-degree box header to the component side of the board.

Edge Connector

Note that PerryFi has not yet been tested directly connected to the expansion port, so if you do this, and have confirmed that there are no issues, please log an issue so I can update this documentation.

If you decide to using an edge connector, the connector must be mounted on the reverse side of the PCB, with the component side facing outwards.

The PerryFi then fits to the expansion port, as you look at it from the rear of the PCW, so that the WeMos D1 mini is on the top left facing you, and the edge connector is on right hand side, underneath the board.

Index


Flashing the ESP8266

The ESP8266 microcontroller on the WEMOS D1 mini needs to be flashed with the correct firmware. All that is required is a USB-A to USB-C data cable (or USB-A to Micro-USB depending on the WEMOS D1 mini clone you bought). Be aware that many of these cables are designed for power only, and do not have their data lines attached. If your computer is unable to see the ESP8266, try another cable.

There is various different ESP8266 firmware to choose from. However, different firmware uses different AT commands, which may break compatibility with existing utilities.

The included firmware was modified from the Retro WiFi Modem project by VapourWare, and has been tweaked slightly by me.

The instructions below only relate to Windows users, and are guidelines only. If you have trouble getting your computer to see the ESP8266, please search the internet for further help.

Included Firmware

The easiest way to flash the included firmware to the D1 mini's ESP8266 is with the ESP Easy Flasher software as you don't need to know the starting address, only the COM port number, and the file name of the firmware.

  1. Unplug the PerryFi from the PCW or, preferably, remove the WEMOS D1 mini from the PerryFi.
  2. If your D1 mini uses a CH340 for serial, download and install the CH340 driver before proceeding.
  3. Connect the D1 mini into your Windows computer using the relevant USB cable.
  4. Right-click on the Start menu button, and choose Device Manager
  5. Expand the Ports (COM & LPT) section, and look for the ESP8266 device. Make a note the COM port number after it e.g. COM3
  6. Download the latest version of the ESP Easy Flasher software from here, and extract it somewhere you can find it.
  7. Download the firmware from here, and put it in the same folder you extracted ESP Easy Flasher.
  8. Run FlashESP8266.exe from the same folder, and choose the COM port number from step 3, and the firmware.bin file.
  9. Click Upload to ESP.

Building the Firmware

You may wish to tweak the firmware, for example to change the default baud rate, or even to develop it further.

To do this, you will need the Arduino project in the src/RetroWiFiModem directory, the latest version of the Arduino IDE, and the ESP_EEPROM library.

If you need further assistance, please use the Arduino forum.

Index


PerryFi Configuration

To get started, download the included DSK image, and copy the image to your Gotek. Simply boot from your usual DSK image, switch to the floppy and run QTERM5F.COM

The default baud rate for the PerryFi is 9600, and the version of QTerm on the DSK is already set to default to this.

Connect to your Wifi Network

The PerryFi uses Hayes-style AT commands, like an original analogue modem.

First, we give the PerryFi the name by which it will be known on your wifi network. For example, pcw8256 or joyce:

AT$MDNS=pcw8256

Next, we tell the device the name of your wifi network:

AT$SSID=yourwifinetwork

Then the wifi password:

AT$PASS=wifinetworkpassword

Now we bring the connection online:

ATC1

Assuming the connection is successful, save your settings to the PerryFi. You should do this every time you change a setting you want to keep, or it will be reverted the next time the PerryFi is rebooted:

AT&W

Test Your Connection

To check everything is working fine, we connect to the Amstrad BBS hosted by Simulant.

If you check the BBS page above, you will see that the hostname is amstrad.simulant.net, and telnet is listening on port 464. Therefore, we enter the following command:

ATDTamstrad.simulant.uk:464

After a few seconds you should see the welcome page.

At this point, feel free to explore the BBS. If not, simply hang up the connection like so:

+++ATH

Note that this can be used at any time when you are connected to a remote computer to drop the connection.

image

Index


Command Reference

For a complete list of AT commands, including more settings, check the list on the original mecparts GitHub repo.

Index


Included Software

The DSK image contains a selection of comms-related software to get you started.

It is beyond the scope of this documentation to describe how each piece of software works. However, I highly recommend following the guide for setting your PCW's time and date from the internet using NIST on VapourSoft's excellent PCW WiFI Modem wiki.

Index


Building QTERM

You may wish to build QTERM yourself if you want to change one or more of the default options.

To do this, refer to the build instructions. Note that it requires the Programming Utilities from side 3 of the Amstrad PCW system discs.

I recommend using an emulator such as John Elliot's JOYCE, and a tool such as CIFE to transfer files to and from DSK images.

Index


Links

Index

About

Wifi modem PCB for the Amstrad PCW

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors