Jump to content
IGNORED

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


tschak909

Recommended Posts

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

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

Link to comment
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

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