Skip to content

Commit

Permalink
[repo] Updated readme and fw targets
Browse files Browse the repository at this point in the history
  • Loading branch information
giuliof committed Oct 1, 2022
1 parent 9f00449 commit 744dc31
Show file tree
Hide file tree
Showing 5 changed files with 76 additions and 6 deletions.
69 changes: 68 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,81 @@ Homemade floppy disk emulator for Apple II series computers

> :warning: **Work in progress**: read carefully the README before trying to reproduce this project!
![tinyDiskII](tinyDiskII.png)
![tinyDiskII](docs/tinyDiskII.png)

tinyDiskII is able to simulate an [Apple Disk II](https://it.wikipedia.org/wiki/Disk_II) both in reading and writing.
Disk images are stored into a FAT16 formatted SD Card.
Each disk image must be a DOS 3.3 floppy image, saved as .NIC.
A cross platform .NIC <-> .DSK conversion tool will be available soon on this repository.
Floppy formatting is currently not supported, but it is currently under developement.

## BOM

| Reference(s) | Description | Notes |
| :-------------------------------------------- | :-----------------------: | :--------------------: |
| C1, C2, C3, C4, C5, C6, C8, C9, C10, C11, C12 | 0805 100n Capacitor | |
| D1, D2 | 0805 Red LED | |
| J1 | 2x3 male jumper | ICSP connector |
| J2 | SMD SD Card slot | |
| J3 | THT USB B Mini connector | Mount for USB debug |
| J4 | 2x10 male connector | DiskII connector |
| R5, R6 | 330 | |
| R2, R3, R4, R7, R8, R9, R10, R11, R12, R15 | 10k | |
| R13, R14 | 0 | Replaced with a bridge |
| SW1 | RotaryEncoder with switch | |
| U2 | SN74LVC244 | 5V tolerant buffer |
| U3 | CH340C | Mount for USB debug |
| U4 | ATxmega16A4U-A | MCU |
| U5 | 74AHCT125 | Level shifter |
| U7 | 0.96" OLED I2C | 7-pin model |
| U10 | AP1117-33 | 3v3 linear regulator |


### Do Not Place, reserved for future implementations:

| Reference(s) | Feature |
| :----------- | :--------------------: |
| U1 | Flash/EEPROM interface |
| C12 | " |
| R1 | " |
| C13, C14 | USB ESD |
| R13, R14 | " |
| D3, D4 | " |
| C7 | USB self reset |
| J5 | Debugging connector |

## Schematics and PCB

> :warning: Schematics and PCB layout can be found in `/schematics` folder. Please note that **rev1.0 hardware requires some physical changes**, so if you are interested to fabricare the PCB, check out the following updated schematic first.
![tinyDiskII](docs/tinyDiskII-schematics-corrected.png)

Manual fixes are highlighed with red lines:

- LV_DISK_READ connected to U4 pin 21;
- SD_WP connected to U4 pin 22;
- SD_DETECT connected to U4 pin 23;
- Added 10K pull-up resistor to DISK_WRITE_EN;
- Pin 4 and 16 of U3 are shorted together.

## Firmware

Firmware source code is in `/firmware` folder.
Code can be compiled on a linux/wsl machine through `make` command.
Make sure you have `make` and `avr-gcc` toolchanin installed.
Output binary will be generated as `/firmware/output/tinyDiskII.hex`.

In `/firmware/tests` there are some unit tests that can run on host system.
They can be compiled and executed with:

```
cd firmware/tests
cmake -B build .
cd build
cmake --build .
./tinyDiskII-tests
```

## Contributors and references

The whole projects borns as a custom implementation of Koichi Nishida's SdiskII [[1]](https://tulip-house.ddo.jp/digital/SDISK2/english.html) [[2]](https://github.com/suaide/SDisk2), which I used as a starting point for firmware developement.
3 changes: 3 additions & 0 deletions docs/tinyDiskII-schematics-corrected.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes
2 changes: 1 addition & 1 deletion firmware/makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
######################################################################

# Name of the project
PROJ_NAME := appleii-floppy-emulator
PROJ_NAME := tinyDiskII

## FILES ##
SRCS := main.cpp
Expand Down
8 changes: 4 additions & 4 deletions firmware/tests/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
cmake_minimum_required(VERSION 3.24)

project(tinydiskii-tests)
project(tinyDiskII-tests)

add_executable(tinydiskii-tests
add_executable(tinyDiskII-tests
test_runner.cpp

test_fat_filename.cpp
Expand All @@ -17,5 +17,5 @@ add_executable(tinydiskii-tests
# SdCard image file must be copied in build directory
file(COPY SAMPLEDISK.bin DESTINATION ${CMAKE_CURRENT_BINARY_DIR})

add_test(NAME tinydiskii-tests
COMMAND tinydiskii-tests)
add_test(NAME tinyDiskII-tests
COMMAND tinyDiskII-tests)

0 comments on commit 744dc31

Please sign in to comment.