Jump to content
IGNORED

Astarta-ESP32 Project


LessNick

Recommended Posts

Hello there o/

I bring to your attention my little project "Astarta-ESP32" for Atari XE/XL.

 

About project

 

Astarta-ESP32 is a hardware emulator of some devices for ATARI 8bit:

  • four independent disk drives with an opportunity read/write (D1-D4);
  • tape recorder emulator with the ability to (only) read at standard speed; 
  • real time clock (RTC) via APE TIME protocol (supported by SpartaDOS).

 

esp-wroom-32.jpg

 

This implementation is the second version of the project and is based on the ESP-WROOM-32 microcontroller. The first version was implemented based on the Arduino DUE board. In addition to the ESP32 board itself, the ST7735 display, an SD card module, four buttons (for navigation), a pair of resistors for pairing 3.3 and 5 volts, and, of course, a SIO connector for connecting to an Atari computer are used.

 

In addition to emulating Atari interfacing devices, the ESP32 can:

  • connect to a dedicated WiFi hotspot with a password;
  • synchronize the internal clock with an NTP server on the Internet;
  • provide real-time access to the SD card through the implementation of an FTP server.

 

The FTP server allows you to upload, download, rename, delete both files and directories. There are some restrictions when using ftp. Since, as it turned out, there is no single ftp standard for displaying a list of files, it is likely that some ftp clients may not correctly display a list of files. For example, Total Commander works correctly, creates and deletes files, and displays the correct creation date. There is also a restriction on the characters used, only ASCII is supported, however there are no restrictions on the use of spaces and long file names, the main thing is that the SD card is formatted in FAT32 format.

 

At the moment, several disk image formats are supported: ATR, XFD, partially PRO format (2 of 5 types of protection), as well as XEX pseudo-format (during mounting, a micro-floppy disk is created to which this executable file is “pasted”). There are also plans to support the ATX, DCM, SCP formats, but so far these are just blanks (dummy) for the future. Files in the standard CAS format are supported for loading cassettes.

Now the project is at the pre-alpha stage. This means that the product is not finished and everything is not even in test mode, but rather at the stage of creative search for solutions. The code may not be optimized, and there may be errors in the work. But in any case, you can already build it yourself, take part in testing and help make this project better.

 

Construct

 

As mentioned above, to assemble the construction, you will need the ESP-WROOM-32 board. Perhaps other versions of the boards are also suitable, the main thing is that they are not simplified (with a lesser number of pins). Otherwise, you will have to make changes to the code yourself and reassign the numbers of connected pins.

 

ESP32-SIO.png

 

To work with an SD card, standard SPI pins are used: IO23 - vMOSI, IO19 - vMISO, IO5 - vCS, IO18 - vSCK, and, accordingly, ground and power. My adapter uses a 5 to 3.3v converter, so it is connected to the 5v pin. If your adapter does not have such a converter, you should connect the output to 3.3v, otherwise it will lead to damage to the devices.

 

sd-adapters.jpg

 

And to connect the display, a second SPI (hSPI) is used with the corresponding pins: IO13 - hMOSI, IO15 - hCS, IO4 - hDC, IO14 - hCLK, plus additional signals: IO2 - Reset and IO32 - LED (display backlight). Also, for the display to work, you must connect the ground and power 3.3v.

 

st7735.jpg

 

Interaction with Atari SIO occurs through the second communication port (RX2/TX2). Zero (RX0 / TX0) is used to interact with the PC and upload firmware to the ESP32. If your ESP32 board has only two ports, then you will have to reconnect the corresponding pins and make changes to the code.

 

For ATARI SIO, the 3.3v level is enough, so we can directly connect the DATA IN signal to IO17[TX2], the COMMAND signal to GPIO8[CTS2] without any problems. But for ESP32, the level of 5v is critical, so it must be limited. To do this, we will pass the DATA OUT signal through a block of resistors (values of 1 and 2 kOm) between IO16[RX2] and ground.

 

To navigate through the menu sections, four buttons are used, which are connected to the corresponding signals: IO33 - Back (Cancel), IO25 - Up, IO26 - Down, IO27 - Select. As shown by a little experience of use, such navigation leaves much to be desired. In large lists, you have to press the same button (up/down) many times to find the desired file. Therefore, there are ideas to try using a micro-joystick or even an encoder.

 

joy-encoder.jpg

 

You can find more detailed build instructions on the project's github page.

 

Here I will give just a couple more photos of the screen device:

 

astarta-esp32.jpg

 

ui-mainmenu.jpg ui-selectimage.jpg

 ui-disk.jpg ui-eject.jpg

ui-play.jpg

 

I also periodically publish various materials on the project on twitter, where you can see additional photos and videos of the device.

 

 

  • Like 18
  • Thanks 1
Link to comment
Share on other sites

A couple of things:

 

1. Your description and photos make no mention of the PCB that all the components are soldered to, what are the details of this.

 

2. Is it "touch screen", would make selection using a slide bar a lot simpler than navigation buttons.

 

3. Appreciate it has the WiFi element, but seems overly complex to build compared to an S-Drive Max 

Link to comment
Share on other sites

20 minutes ago, TGB1718 said:

A couple of things:

 

1. Your description and photos make no mention of the PCB that all the components are soldered to, what are the details of this.

At this stage, this is just a prototype. Therefore, there is no board and everything is connected by wires.

 

20 minutes ago, TGB1718 said:

2. Is it "touch screen", would make selection using a slide bar a lot simpler than navigation buttons.

I initially did not plan a complex construct, so the most inexpensive display available was chosen.

In the future, I think we can consider such an implementation as an option.

 

20 minutes ago, TGB1718 said:

3. Appreciate it has the WiFi element, but seems overly complex to build compared to an S-Drive Max 

The cost of ESP32 is quite low (at least at the time of purchase it was so, now of course everything could have changed several times).

 

The implementation of emulation of disk drives and a tape recorder is only part of what was planned, but even now I can say with confidence that it is much more convenient to upload new files via FTP than to rearrange the SD card every time.

  • Like 2
Link to comment
Share on other sites

Not bad at all !

The biggest advantage for me is,

I have the needed parts in my bargain bin/drawer. And the tft display gives a better overview then the 1602 of the SIO2SD.

Think, I'll give it a try next spare time.

Thank you very much for sharing your work!

 

Stefan 

 

By the way... is that "chip shortage" all

over the world, or is the problem related

to the 'new german inability' (that lasts already a couple of years) ?

Edited by Stefan Both
  • Like 2
Link to comment
Share on other sites

1 hour ago, Stefan Both said:

By the way... is that "chip shortage" all

over the world, or is the problem related

to the 'new german inability' (that lasts already a couple of years) ?

It's making things hard or impossible to get in USA as well.  I would say it's definitely a global issue.

Link to comment
Share on other sites

4 minutes ago, pkriek said:

great idea, how do you connect this to an tv?

 

Hmm, ... maybe you misunderstood, but this is not an atari emulator. It's just a peripheral device, which realise disk drive and cassette recorder that connects to a REAL Atari via a SIO connector. :)

  • Like 1
Link to comment
Share on other sites

19 minutes ago, Tillek said:

I'm just shocked that the FujiNet crowd hasn't swooped in and chastised you for not working with them on that instead of going out and doing your own ESP32 project.

I really hope this doesn't happen. ;)

The main reason for the creation of the project is the inability to purchase already created devices, both for financial and territorial reasons.

 

  • Like 3
Link to comment
Share on other sites

21 hours ago, LessNick said:

The main reason for the creation of the project is the inability to purchase already created devices, both for financial and territorial reasons.

 

If that's not a secret, could you tell us where you live?

Mainly to understand through what trouble people all over the world have to go, to enjoy their hobby. 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...