Board Bring Up Hardware - FujiNetWIFI/fujinet-firmware GitHub Wiki
Assembling the Hardware for FujiNet
This document will take you thru most of the steps needed to source, assemble, and setup the required hardware in conjunction with the FujiNet software project to connect and interface with a new unsupported platform. The software bring up is covered in the Board Bring Up Software document. Both of these have been created with valuable snippets of information that was posted on the Discord server and by research notes and diagrams from various team members working on the FujiNet project and communicating via Discord and Facebook. Since the FujiNet is based on the ESP32 most of the 'bring up' for a platform revolves around the ESP32 Devkit-C and attaching it to the target serial or parallel interface.
If you are reading this, and not on the Discord you should stop by: https://discord.gg/7MfFTvD
Table of Contents
Terms used in this document
- Platform - a specific set of hardware devices from a manufacturer with common IO characteristics. Examples: Atari 8bits (SIO), Apple II (SmartPort), ADAM (ADAMnet), Commodore 64 (IEC).
- FujiNet - a hardware peripheral that uses the ESP32 and various IO connectors to attach to different platforms.
- ESP32 - the heart of the FN, the SOC that runs the firmware and does the work to connect the platforms to the Internet
- BOB - the break-out-box, an add-on device that connects to an Atari FujiNet and provides pins to connect to other devices
- PlatformIO - the development environment that is used to program the firmware for the ESP32. It is available as command line programs or as module for Visual Studio Code.
The ESP32
There is a lot of information available on the Internet about the ESP32, this document will just mention it in passing here because it is the heart of the FujiNet ecosystem. The more you are familiar with the ESP32 and it's functions the more the hardware and software in this project will make sense.
Functional Diagram
The Various Favors of ESP32
/images/fn_hbu_esp32-comparison.png
Please note that the FujiNet software always uses the WROVER
versions - they have more RAM and more Flash than the WROOM
versions. FN devkits use the ESP32-DevKitVCE for development. Using the WROOM version with its smaller ram will cause issues.
Platforms supported with Retail Hardware
These platforms have retail FujiNets that are available to buy fully assembled and are plug-in-play.
Atari 8 bit
The Atari 8bit platform is fully supported and you can purchase a retail FujiNet and use it today. It has fully tested hardware, a CONFIG app for Atari to configure the FN parameters and WEB interface that supports all FujiNet functions.
Coleco ADAM 8 bit
The ADAM platform is fully supported and you can purchase a retail FujiNet and use it today. It has fully tested hardware, a CONFIG app for ADAM to configure the FN parameters and WEB interface that supports most FujiNet functions.
Apple II
The Apple II platform is fully supported and you can purchase a retail FujiNet and use it today. It has fully tested hardware, a CONFIG app for Apple to configure the FujiNet parameters and web interface that supports most FujiNet functions.
Commodore 64
- The Apple II prototype board will boot a C64 with the addition of an IEC cable to connect to the pins on the proto board. You will also need to use a special meatloaf blend of FujiNet in a separate repo- but it does boot, even over HTTP. Hop on the Discord and ask because you will need help for this one at this point in time.
Platforms in Development
All other platforms require a development kit and custom wiring to interface with the FujiNet software ecosystem.
DevKit
Used for any platform that does not already have a specific retail FujiNet device created for it.
- NOTE You will need to buy a ESP32-DevKitC and install it on the Apple II prototype board!
Building a DevKit
Purchase the following equipment to outfit your devkit
Must Purchase:
Should purchase: (no affiliate links, Amazon is just an example)
FujiNet 1.0 as a DevKit
The very first revision of the FujiNet Atari device, a 1.0 board, can be used as a 'devKit' with the addition of a Break-out-Box (BOB) which is available from FujiNet Online Store.
Using the BOB with a 1.0 board (repeat: only the 1.0 boards work) is just like using a DevKit on breadboard.
Apple II
The Apple II (A2) port is using the SmartPort protocol to interface with the Apples. This means the A2 device must have a SmartPort (SP) DB19 interface in order for the FN to work. Apple IIc, IIc+, IIGS all have SP built in. For Apple II+ and IIe you need to get a SP set of ROMs to use in an existing Disk2 controller or use the new YellowStone SP Card from BMOW.
Hardware Purchases
In addition to the DevKit above you need to order some equipment for the FN to connect into the SP on the platform. Below are necessary unless you are going to wire up your own connection from scratch.
Apple II + / e:
- BMOW Yellowstone
- ROM CHIPS - NEED LINK
For IIc, IIc+, GS;
Once you have your Devkit and your DB19 plug you can now connect up the DevKit to the Apple. Below are some diagrams to help.
/images/fn_hbu_bmow-gpio_diagram.png Wire up the ribbon header to the GPIO pins on the ESP32.
/images/fn_hbu_apple_sp_to_gpio_code-comments.png Comments in the code show the mapping between Apple SP, GPIO and Atari SIO.
Commodore 64
The C64 and IEC is working with MeatLoaf'ed Fujinet. See the HOWTO guide for C64 for more info.
There is a IEC connector from Moz that goes right into the Pin outs on the Apple FN Rev 0 & 00 boards that boots the c64!
Video: https://www.youtube.com/watch?v=zNjpFYH9U6k
Other Platforms
These are waiting for your help! Jump in and help us bring FujiNet to all the platforms.
Logic Analyzers
There is a very cheap ($13) USB logic analyzer available from Amazon and used by many of the FN people working on the system. This is best tool to snapshot what is going on with the FN and the target platform.
Here is some info about using it with the FujiNet project.
Purchase
You can pick one up for $13 at Amazon.
https://www.amazon.com/gp/product/B077LSG5P2
HiLetgo USB Logic Analyzer Device With EMI Ferrite Ring USB Cable 24MHz 8CH 24MHz 8 Channel UART IIC SPI Debug
These are Saleae clones, and they use the Saleae software (Mac, Windows, Linux).
Review at BMOW: https://www.bigmessowires.com/2015/01/07/saleae-pro-8-logic-analyzer-review/ (2015)
Software
The open source project Pulseview supports this hardware.
You can also download the Saleae software here:
Using it
For the FujiNet AppleREV 0 and 00 boards use this mapping:
CH0 - RDDATA
CH1 - WREQ
CH2 - WPROT
CH3 - PHI 0
CH4 - PHI 1
CH5 - PHI 2
CH6 - PHI 3
Other systems will have other standard mappings.