Jump to content
tschak909

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

Recommended Posts

#Atari8bit #FujiNet Atari Touch Typing is now in the Educational/ folder on atari-apps.irata.online, Both Beginner and Intermediate/Advanced courses are there, and have been altered to load from disk.

 

 

 

  • Like 2

Share this post


Link to post
Share on other sites

On boot there's always configuration program in D1, which later is replaced with mouning either from TNFS or SD. But if nothing is mounted, I can see that configurator is still there, even after reboot from it's menu (OPTION).

Is there a way of having no disk in FujiNet's D1 to allow co-working with other SIO drives? I think it would be nice if after OPTION configurator was gone from D1 and come back again after FN's reset or power off/power on?

Edited by Jacques
  • Like 1

Share this post


Link to post
Share on other sites
20 minutes ago, Jacques said:

Is there a way of having no disk in FujiNet's D1 to allow co-working with other SIO drives? I think it would be nice if after OPTION configurator was gone from D1 and come back again after FN's reset or power off/power on?

Just boot something else from D1:; FujiNet doesn’t boot if another device responds to the SIO boot request from the Atari first. 

Share this post


Link to post
Share on other sites

Thanks and indeed, just found it out, too, while playing with concurrent use of SIO2SD. Smart 🙂

  • Like 1

Share this post


Link to post
Share on other sites

@bocianu has now done another test app in MAD Pascal, a weather app that fetches from HTTP and parses the resulting JSON! :) More refinements to come! :)

 

  • Like 10

Share this post


Link to post
Share on other sites

So today was all about getting up to speed on the unit testing framework that's part of PLATFORM.IO. (unity-C)

 

For those who don't do software development:

 

Unit tests are a great way to specify how to test functional parts of a program, by breaking everything down into functional units that contain expected inputs and outputs, and the needed logic to be able to transform the inputs to those outputs.

 

They can't reliably be used to test user facing parts of the program (usually---there are some crazy clever exceptions, see tools like Selenium.), but they can be used to test the non-user facing parts.

 

Usually, you try to write the tests and their data (fixtures) first, and then write code until those tests pass, but all too often, the thrill of just seeing if something will work in the first place, will override the instinct to slow down and write unit tests for every little thing being worked on. (I know, it's a horrible excuse!) 

 

So now, given the complexity of the N: device, and given that it has a LOT of moving parts, ALL of which MUST work perfectly, I've finally stopped, and made myself start writing unit tests from which to pattern the code. The goal here is to not only use it to make sure that the code is correct NOW, but to make it possible to track regressions in the code over time (because some changes may very well break other parts of the code unintentionally)

 

PLATFORM.IO provides a tests/ folder in our project, and now it's being used. I have an example in there which tests the base protocol adapter for its translation (ATASCII<->ASCII) end of line logic.

https://github.com/FujiNetWIFI/fujinet-platformio/blob/network-rewrite/test/tests.cpp

 

You can see here, that each test_ is in its own function, and each test is atomic, taking care of setting up the conditions for the test, doing the test, asserting against the result, and tearing down things created during setup of each test.

 

Each one winds up being a line item on the test report, with a pass/fail. If the test fails, it shows the intended value, and the actual value.

 

Here's a screenie from my dev system showing all the translation tests passing:

image.thumb.png.863f767181e7f4a2e9f699e8b8b372db.png

 

(I do not know why the uart errors are happening, but they do not affect the tests.)

 

 If you're watching close enough, you'll see that unit testing completely replaces the normal running firmware code with just the code for unit tests. This means the unit tests overwrite the fujinet firmware (and the device can't function as a fujinet until re-flashed with the usual firmware), but this ensures that the tests themselves are running on the actual hardware.

 

Hopefully this makes sense.

 

-Thom

  • Like 2

Share this post


Link to post
Share on other sites
6 hours ago, tschak909 said:

@bocianu has now done another test app in MAD Pascal, a weather app that fetches from HTTP and parses the resulting JSON! :) More refinements to come! :)

 

BBS Express Pro modules need to be written to support this. This is big.

:)

 

Share this post


Link to post
Share on other sites
18 hours ago, Fierodoug5 said:

Thanx Gavin!

Glad to see it made it safe and sound! Enjoy! Would love a review on the site if you have time. 

Best,

Gavin

Share this post


Link to post
Share on other sites

I made a video I call Fujinet for Dummies that just shows some simple setup of the unit and some of what Fujinet can do for the people just getting their units, or those on the fence on if they want/need it. Hope it is helpful to some. 

 

Edited by Fierodoug5
  • Like 6

Share this post


Link to post
Share on other sites

Awesome! I have a video that I'll publicly release after VCF East (it's being premiered there) that is FujiNet in 15 minutes. :)

  • Like 5

Share this post


Link to post
Share on other sites

If I use FujiNet for my BBS, can I pull this info? What about RSS feeds? I want to incorporate certain RSS feeds into my BBS Message bases.

Share this post


Link to post
Share on other sites

Reading about the SAM system in FujiNet made me wonder about that audio input and using it as a way to play MP3 files, either from the network or stored on the local microSD card, and having the audio fed in for mixing with the 8-bit's audio output.  It looks like the DAC output from the ESP32 going to the SIO_AUDIOIN line is only 8-bit, so the quality wouldn't be great.  I don't think you'd want the audio data to actually be passed through the SIO bus, as the bitrate to get anything reasonable is too high.

Share this post


Link to post
Share on other sites
1 hour ago, Kyle22 said:

If I use FujiNet for my BBS, can I pull this info? What about RSS feeds? I want to incorporate certain RSS feeds into my BBS Message bases.

It will take some creative coding, for sure, as the R: device tends to want the whole bus to itself. This is owing to legacy design (and the fact that they wanted to side-step the issues of SIO interrupts with very underpowered hardware), and nothing we can do anything about, so you will have to disengage concurrent mode to do any traffic with the N: device.

 

My objective is to provide that platform base, I can't write it all.

 

-Thom

Share this post


Link to post
Share on other sites
41 minutes ago, bcombee said:

Reading about the SAM system in FujiNet made me wonder about that audio input and using it as a way to play MP3 files, either from the network or stored on the local microSD card, and having the audio fed in for mixing with the 8-bit's audio output.  It looks like the DAC output from the ESP32 going to the SIO_AUDIOIN line is only 8-bit, so the quality wouldn't be great.  I don't think you'd want the audio data to actually be passed through the SIO bus, as the bitrate to get anything reasonable is too high.

There is indeed an 8-bit DAC, and you can see what we did to make sam work in the lib/sam folder of the fujinet-platformio repository. Anything going over the DAC is immediately heard on the TV speaker.

 

-Thom

  • Thanks 1

Share this post


Link to post
Share on other sites

Will buy FujiNet in future. Want do scifi cyberpunk 2D MMORPG/VirtualWorld for it! Got this idea for long time. Metaverse for small Ataris. Any good network coder, gfx coder? I can do graphics and sprites and soundtrack and sound fx...

  • Like 1

Share this post


Link to post
Share on other sites

I have now put together a GitHub repo (fujinet-sd-card) AND cut a release from it, containing all sorts of useful goodies for your #FujiNet Micro SD card. 

More info here:

 

 

  • Like 1

Share this post


Link to post
Share on other sites

I'm a bit confused about FujiNet, what's the difference between fujinet 1.0 and fujinet 1.1 as they look the same and cost the same?

Is it a hardware change?

I'm really quite interested in getting one of these, but have seen the 2 versions and wondered if it's worth trying to get 1.1 over 1.0.

 

thanks!

Edited by fenrock
links to 1.0 and 1.1

Share this post


Link to post
Share on other sites
9 minutes ago, fenrock said:

I'm a bit confused about FujiNet, what's the difference between fujinet 1.0 and fujinet 1.1 as they look the same and cost the same?

Is it a hardware change?

I'm really quite interested in getting one of these, but have seen the 2 versions and wondered if it's worth trying to get 1.1 over 1.0.

 

thanks!

If you don't have a 1088XEL then you don't need v1.1. I just added a note to the item page at fujinet.online. If you are interested in seeing the hardware status, check the issues on github or see the long hardware thread.

  • Like 1

Share this post


Link to post
Share on other sites
3 minutes ago, mozzwald said:

I just added a note to the item page at fujinet.online

thanks for the info. I'm going to assess what the best option is for all the stuff I want to buy, as I'm based in London.

Share this post


Link to post
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.

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...