Jump to content
IGNORED

#FujiNet - a WIP SIO Network Adapter for the Atari 8-bit


tschak909

Recommended Posts

Results of my caching experiment:

 

Basically, grabbing all or partial list of the current directory is much too slow to be of any real use to the directory cache.

 

To return a list of 10 files, is roughly 500ms on the local network.

 

To return a list of 2788 files, is 110385ms, from a remote site. or 110 seconds.

 

This is compounded by the fact that the directory can only be retrieved serially, with no ability to re-position the directory cursor to a specific entry.

 

Given that the round trip for each directory entry can vary wildly between a few to more than a few dozen milliseconds, even with grabbing the directory in its own thread, it will be painfully slow, (and there's no way to query for the number of entries in the directory, so I can't do much in the read-ahead department)

 

So I will most likely need to extend TNFS to add commands for SEEKDIR and TELLDIR, so that I can specifically position an open directory handle, or return its current position, respectively, and maybe return the # of entries in a directory, so that I can scoot things ahead.

 

Will table this for now, and work on other issues.

 

(There's a reason I said it will take a good year to firm things up!)

 

But HEY, The filename ellipsize function I put together works BEAUTIFULLY!

 

ellipsize.thumb.png.581d4237926fc314166167f3130515d0.png

 

-Thom
 

 

  • Like 4
Link to comment
Share on other sites

On the pic above, the Pengo entry, shows "Pengo (1983)(At...(Atari)(US)[!].car".  I am wondering, is the "(At" just before the ellipses the same as the "(At" just after the ellipses?  That is, are you repeating these three characters on both sides due to the total filename being shorter than most?

 If so, it isn't obvious, and thus can be confusing.  Perhaps filenames that fit should be displayed normally?  This also would help if you had a 32 character filename that is just missing the three characters that are replaced by the ellipses.  The name fits but you are obscuring the middle three characters.

So, I guess what I am suggesting is that for filenames of 32 characters (if my count is correct) or less, just display the filename.  I would probably keep the .ext right aligned, though, so you would end up with "Pengo (1983)(Atari)(US)[!]      .car".

 

  • Like 2
Link to comment
Share on other sites

I have now created a program called 'thwap' which I will use for debugging and refining SIO timings on #FujiNet:

https://github.com/FujiNetWIFI/atariwifi/tree/master/diagnostic-tools/thwap

 

To facilitate this, a handful of new SIO commands are added to alter the SIO timing values, in microseconds, specified little-endian order:

https://github.com/FujiNetWIFI/atariwifi/wiki/DIAGNOSTIC%3A-Alter-SIO-Timing-for-T0

https://github.com/FujiNetWIFI/atariwifi/wiki/DIAGNOSTIC%3A-Alter-SIO-Timing-for-T1

https://github.com/FujiNetWIFI/atariwifi/wiki/DIAGNOSTIC%3A-Alter-SIO-Timing-for-T2

https://github.com/FujiNetWIFI/atariwifi/wiki/DIAGNOSTIC%3A-Alter-SIO-Timing-for-T3

https://github.com/FujiNetWIFI/atariwifi/wiki/DIAGNOSTIC%3A-Alter-SIO-Timing-for-T4

https://github.com/FujiNetWIFI/atariwifi/wiki/DIAGNOSTIC%3A-Alter-SIO-Timing-for-T5

 

These commands take effect immediately. Please do not use these unless you are prepared to accept consequences. :)

 

-Thom

  • Like 1
Link to comment
Share on other sites

#FujiNet #Atari8bit am hard at work trying to make the CONFIG program better. The status lines have been changed to mode 2 lines, so that I can fit more status text, and I'm trying to work through ways of dealing with large sets of files in a TNFS directory. Slow work, and not as flashy or glamorous. :)

 

20200212_181056.thumb.jpg.d29060397611b1642408fd595dbd3e71.jpg20200212_181109.thumb.jpg.8b19afe9a27b93e9a0a3287e9f05ddc7.jpg

  • Like 3
Link to comment
Share on other sites

Current Status: (2020-02-16)

 

@tschak909 getting over flu. I did manage to get the FNC tools completely debugged (FSCAN and FNET now work, there is now an FMALL command which will re-mount all device slots after an FNET change. Documentation updated. I did try my hand at a hybrid DOS 2/Boot loadable disk containing CONFIG and the FNC-TOOLS. It works, but the mounting logic will need to be changed so that the built in disk image isn't accidentally swapped out when the host list/device slots are read (I use this behavior in CONFIG). 

 

@jeffpiep Has been rapidly folding in functionality into the PlatformIO tree, and the resulting firmware is not only quite usable, but extremely modular. He paused yesterday, to work on his submission for the 10-liner BASIC contest.

 

@damosan now has his Ice Cream Sandwich prototype, and is working on a version of the relocatable N: device handler. 

 

 

  • Like 6
Link to comment
Share on other sites

Current Status: (2020-02-22)

 

@tschak909 I have now joined @jeffpiep in developing the production firmware. As was said before, it's being done in platform.io, which is a much more robust environment for making microcontroller firmware, versus Arduino IDE.

 

The goal with the production firmware is not only to bring all the various tests together under one roof, but to also do so in a practical and modular fashion to allow more devices to quickly be added, and to keep the code clean and easy to read.

 

platformio.thumb.png.2b2054b8daff3a0b78798cace82b8991.png

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

Finally a managed to build the nodeMCU version on the breadboard, 

Based on info from arduino IDE, I flashed the software and filesystem sucessfully (diskulator), but am unable to boot on the atari.

Measured voltages, all cables, connections, resistors and transistors. 

Now I am not sure whether it is just the software problem or I missed something in hardware.

 

Only thing I omitted is the GPIO2 (CLK out) - is that necessary or just planned for future use ?

 

 

Link to comment
Share on other sites

41 minutes ago, goldy/gmg aka lopez453 said:

Finally a managed to build the nodeMCU version on the breadboard, 

Based on info from arduino IDE, I flashed the software and filesystem sucessfully (diskulator), but am unable to boot on the atari.

Measured voltages, all cables, connections, resistors and transistors. 

Now I am not sure whether it is just the software problem or I missed something in hardware.

 

Only thing I omitted is the GPIO2 (CLK out) - is that necessary or just planned for future use ?

 

 

Can you post some photos of your build? Maybe something will stick out. Clock out is not needed to boot the atari. Try using multilator2modem https://github.com/FujiNetWIFI/atariwifi/tree/master/esp32/tests/multilator2modem

Link to comment
Share on other sites

here is my "meisterstuck" ?

IMG_1221.JPG

 

SIO:

2 - not connected

4,6 gnd shield

8 motor blue external

10 +5v red external

12 not connected

 

1 clkin - grey

3 data in - white

5 data out - green

7 command - pink

9 proceed - brown 

11 audio in - not connected

13 interrupt   yellow

IMG_1215.JPG

IMG_1214.JPG

IMG_1213.JPG

IMG_1211.JPG

IMG_1210.JPG

IMG_1209.JPG

IMG_1207.JPG

IMG_1204.JPG

Edited by goldy/gmg aka lopez453
pinout added
Link to comment
Share on other sites

I've been sick for 2-3 weeks and I've lost track of the progress and changes.

 

What do I need to be current and play around with tools for SDX?   mutilator2modem.ino?  which fnc.atr or fnc-tools.atr?  do I still need an autorun.atr on SPIFFs

 

I think I need the equivalent of an airport "approach card" to get me down each time too much changes. (No I am not a pilot.  I watch a lot of Mayday/Air Crash Investigations/Air disasters type programs).

 

-SteveS

Link to comment
Share on other sites

Multilator2modem is a good one, yes. and yes, you need autorun.atr in the SPIFFS, that is config.

 

You can mount fnc-tools.atr from irata.online :)

 

We are in the process of getting the platform.io (production) version of the firmware firmed up, which has every major piece of functionality merged together, and it's working quite well, I just need to write bring-up instructions.

 

Today has been a _very_ bad day, I had a UPS take out the primary server on irata.online, and I had to spend half the day getting another server built.

 

I've spent the other half of the day completely renovating my lab. :)

 

-Thom

Link to comment
Share on other sites

On 2/23/2020 at 4:05 PM, mozzwald said:

Can you post some photos of your build? Maybe something will stick out. Clock out is not needed to boot the atari. Try using multilator2modem https://github.com/FujiNetWIFI/atariwifi/tree/master/esp32/tests/multilator2modem

I tried to compile multilator2modem (for ESP8266).  TimeLib.h is unresolved.  I didn't find anything relevant under Manage Libraries. 

 

Would someone please point me in the right direction?

 

-SteveS

Link to comment
Share on other sites

4 minutes ago, a8isa1 said:

I tried to compile multilator2modem (for ESP8266).  TimeLib.h is unresolved.  I didn't find anything relevant under Manage Libraries. 

 

Would someone please point me in the right direction?

 

-SteveS

Ah, yes. You need the Time and NTPClient libraries since I added RTC to the multilator2modem code. They are available in the Arduino IDE under Sketch >> Include Library >> Manage Libraries >> Filter/Search

https://www.arduinolibraries.info/libraries/time

https://www.arduinolibraries.info/libraries/ntp-client

  • Thanks 1
Link to comment
Share on other sites

Going forward, the platformIO code will have the requisite time/NTP functions folded in, and generally, any dependency that we pull in, will become part of the tree.

 

I guess now is also the best time to say that we've got most of the functionality we want in, the big missing piece is the N: device, which I am progressing on slowly due to needing very much to recharge my batteries after a 4 and a half month long burst of coding on this firmware. :)

 

So it is on the list to produce the instructions for the platform.io code (and to see just how much of it we can get working on the 8266)...

 

I will point out that if you do go to the ESP32 hardware, the advantages will be: (1) SD card slot, (2) bluetooth support, (3) we have the AUDIOIN hooked up to one of the ESP32 DACs. :)

 

-Thom

Edited by tschak909
  • Like 3
Link to comment
Share on other sites

For those wanting to either help on getting the PLATFORMIO code working on ESP8266, or for those with ESP32's who wish to test the PLATFORM.IO code, I have created bring-up instructions to install VS.Code, PLATFORM.IO, and prepare the environment for development and testing:

https://github.com/FujiNetWIFI/atariwifi/wiki/Board-Bring-up-for-PLATFORM.IO-code

 

If you can, please help out. There is so much to do, a small example is something like this, where the System Volume Information folder should be skipped from any directory output, as it is not useful to #FujiNet users.

https://github.com/FujiNetWIFI/atariwifi/issues/134

  • Like 2
Link to comment
Share on other sites

There have been requests for an ESP32 based FujiNet schematic/BOM/pinout and I have previously directed everyone to the Google Sheet for the pinout. I've now created a schematic that you can use to build one with a ESP32-DEVKITC / NodeMCU32 or the like. The switch can be replaced with something else (or removed if you like), it's there to enable/disable powering FujiNet from the Atari SIO 5V. For the SD Card socket, you probably want a breakout board like this or this.

 

Note: I have not actually used this schematic to build anything. It's based off the FujiNet Dev board I made and *should* work. 

fujinet-esp32-devkitc.thumb.jpg.19064577e164034f90dab18080367a00.jpg

  • Like 3
Link to comment
Share on other sites

On 2/24/2020 at 2:13 AM, mozzwald said:

From what I can see in the photos, it looks correct. You might want to try enabling Network debug in the sketch and see if the nodemcu is communicating with the Atari or even booting.

I made another piece that is working, and older one somehow workden after another reflash, too. No sure what was wrong.

Thank You for support, hope I can contribute somehow...

 

 

 

  • Like 3
Link to comment
Share on other sites

@mozzwald had done a prototype of NTP support implemented via the APE protocol.

 

I have since rewritten it to not need any external libraries, and have incorporated it into the PLATFORM.IO code.

 

IaII9Ba.jpg

 

You can see the code implemented here:

https://github.com/FujiNetWIFI/atariwifi/blob/master/platformio/FujiNet/lib/sio/apetime.cpp

 

Right now, time zones will have to be implemented as a GMT offset, as otherwise the daylight savings calculation/time code to country table would easily fill up memory. A new tool called FTZ will be provided to set the local time zone.

 

-Thom

  • Like 1
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...