• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

68net - a modern SCSI to Ethernet board

ronan

Well-known member
Hello everyone !

I had been looking to connect my SE/30 to the internet but I struggled to find PDS boards that would fit in it, and all SCSI to Ethernet boxes that I found were missing floppies with drivers. Moreover most of this stuff was in the US so shipping would be really expensive. Then I found about scuznet, a modern design by @saybur. It was really interesting because it was made to work with an unpatched Nuvotech driver. But there was a few things I did want to change/improve to the design, including the fact that it would be really cool to be able to upgrade the firmware by USB so that the community could easily develop and upgrade the firmware.

So I decided to create a new design based on scuznet. Here are the main things I changed/added to the original design :

  • The microcontroller is replaced by a STM32 (ARM chip) that will be upgradable by USB. In the future it also means a firmware could handle Ethernet over USB, and you could share files between your modern computer just by connecting to you vintage mac by USB;
  • The board is self powered by the SCSI bus
  • In case external power is need (such as on the Macintosh Plus I guess) it can be provided by USB (instead of a power jack on the original design)
  • I added mouting holes to the PCB so that we can design an acrylic case later
  • I removed the SD Card slot because I like thing that does a simple task but does it well (Good design is as little design as possible)
  • Designed in Kicad 5 (instead of Kicad 4)



Of course all this is and will be open source forever ! Here is the link to 68net repo : https://github.com/ronangaillard/68net

One cool thing about the design is that we could remove the ethernet part and create new board with other peripherals (sd card, WiFi, ...)

I'll attach to this post the schematics and a rendered image of the board. Don't hesitate to give feedback as I'd like to create a community around this board. The main purpose is to make something cheap, open source, community driven, but reliable.

68net render.png

Next steps are :

  • Wait for some feedbacks and eventually tweak a bit the current design (~1 week)
  • Manufacture some boards and assemble them (~1 month as boards will get manufactured in China)
  • Write an initial firmware and make sure design works as expected (~1 week to get basic stuff running)
  • Port the Nuvotech protocol to the board (and find a way to make it work with A/UX if time is found) (depending on so much things)
  • Try to distribute the board as a kit or pre-assembled (let's first talk with @saybur about this point) (depending on so much things)



I would like to thank @saybur for his original design and the feedback he already provided to me on his original thread.

Hope you'll like it and that we will be able to bring many 68k macs on the internet :)  

Don't hesitate to suggest a better name !  :D  

Best,

Ronan

View attachment 68net - schematics.pdf

 
Last edited by a moderator:

erichelgeson

Well-known member
Very nice! Interesting to use the STM32 - You've probably seen the Arduino scsi thread which also uses a STM32 https://68kmla.org/forums/topic/61045-arduino-scsi-device-work-in-progress/ 

What I'm struggling with is how to power it reliably - some have mentioned in that thread that their scsi bus for whatever reason does not supply a stable 5v. Also the Mac Plus does not supply term power. Would be interested to know what you're thinking on that point.

How are you handling termination enable/disable?

Will probably buy one because I cant help myself :)

 

ronan

Well-known member
Yes I saw that thread, really interesting resources ;)

On my design power can be provided by the SCSI bus or/and the USB port. The board has some circuitry that automatically switches between these two sources, so for the end user it is really convenient. On a mac that has a stable SCSI 5V, you just have to plug the board, on other macs plug the board and the USB connected to a USB wall charger and that's it :)  It also means the board can be connected to the Mac turned on while updating the firmware, which will also be super convenient while developing a new firmware.

There is one big difference between my design and the Arduino scsi thread one is that my design communicate with the SCSI bus at 2.85V (actually 2.63V at the moment) which is more "SCSI friendly". And one more thing, the design I suggest is "software bug" proof : even if you flash a bad firmware it will never be able to fry the board and/or the Mac it's connected to. All this is done thanks to the chips behind the SCSI connector you see on the rendered design. On the Arduino scsi thread one if you make a mistake while developing, or if you flash the wrong firmware it could destroy the stm32 of the mac SCSI chip. Talking at 2.85V will also improve compatibility with other computers other than the compact Macs, so it's good to increase the community size :)

How are you handling termination enable/disable?


Termination is always enabled. I'm wondering if this is really an issue. I know the SCSI2SD allows to disable it. But having it always enabled should not be an issue at all.

If you think of a counter example let me know, I'll see how to upgrade the design :)

Will probably buy one because I cant help myself :)


:D  I hope you'll be able to have one as quickly as possible :D  

 

ronan

Well-known member
How are you handling termination enable/disable?


Ok, you were right this is something important. I fixed the design so that you will now be able to enable/disable termination using a jumper :)  

Untitled 2.png

 
Last edited by a moderator:

erichelgeson

Well-known member
enable/disable termination using a jumper
Great! Ya I was testing yesterday with a zip(term enabled) -> apple cdrom -> rascsi (term enabled) and the chain wasn't working. Though in all likelihood your device will usually be the last.

The board has some circuitry that automatically switches between these two sources, so for the end user it is really convenient.
Could you explain this a bit more how this works? I'd like to add something similar to arscsino - but pretty new to hardware design. Thanks for the detailed blog post too!

 

ronan

Well-known member
Could you explain this a bit more how this works? I'd like to add something similar to arscsino - but pretty new to hardware design.


Sure ! this is quite easy you'll see :

image.png

Ignore PWR_FLAG this is a symbol needed for Kicad to prevent a warning.

- +5V is actually the 5V from my USB port

- TPWR is the TPWR pin from SCSI

I assume you know how a diode works. If you apply power to USB, VCC will be 5V (minus some voltage "lost" in the diode but let's forget this for now on).

Same thing if you apply power by plugging SCSI, VCC will we equal to the TPWR voltage.

If you you plug both what happens ?

VCC will be equal to the highest voltage between TPWR and 5V

Let's detail this, at start nothing is plugged so VCC is 0v.

You plug the USB, as we said  VCC  is 5V.

Now let's say you plug TPWR and it's 4.5V. A diode will conduct current only if the voltage at its cathode is lower than its anode, so the diode will not conduct current and VCC will still be 5V.

If TPWR switches to 5.5V for example then its cathode voltage is lower than its anode voltage, so it will conduct and VCC will be 5.5V !

And VCC voltage will not "go up" in the circuit, so if you plug USB you won't have TPWR set to 5V, so everything is separated and safe. And this easy circuit will automatically switch between power sources.

Two things :

- USB voltage is generally between 4.5V and 5.5V

- When a diode conducts current it's voltage is never 0V, we usually say it's around 0.7V. But I use schottky diodes in my design which have a lower voltage drop (around 0.2/0.3V).

The to get the voltage I want I use a regulator like this :

image.png

What you need to make sure is the minimum input voltage you need to get the 3.3V on the output, you usually want to use LDO regulators which have a lower requirement on this. For instance in my design I use the LD1117S33TR from ST, and by looking at the datasheet :

image.png

you see you have a dropout of a bit more than 1V, so you need to have at least 4.4V on the input of the LDO, we'll have to add the voltage dropped on the schottky. To get this let's have a look at the datasheet of the one (RB521S30T1G) I'm using :

image.png

Let's say we are at 25 degrees, and in the worst case the board should draw 200mA, so the voltage drop should be around 0.4V in the worst case.

So all in all the input voltage before the schottky should be 4.8V at least. This is a bit high compared to the lowest voltage USB could theoretically give (4.5V). Most of my USB wall chargers give a bit more than 5V, and I never had issues with such designs and USB so that should be ok. But by explaining all this I'm wondering if I should not find a better regulator with a lower drop out voltage :p  

I hope everything was clear ! Don't hesitate if you have more questions. I'm sorry if the words are sometimes badly chosen as English is not my native language :)  

image.png

EDIT : sorry for the big images, I'm not able to resize them, I don't know why. I did cmd+right click to change size but it does not take effect :/  

 
Last edited by a moderator:

micheledipaola

Well-known member
This is great news, I am really interested - also in buying a card when it will be ready (and for once, shipping will be France to Italy, cheap and fast!!!). Not really a tech-head, but if there's anything I can do to help, I am here.

 

ronan

Well-known member
Great ! Happy that there is some interest in this project ! :)

Yes shipping to Italy should be not that expensive and faster :p  

If you think on a better name than 68net that could be some help :p  (but maybe 68net is fine also !)

 

erichelgeson

Well-known member
I hope everything was clear !
It was - thanks! From my reading/learning that's how I thought it might work but glad to have someone with experience to chat with. If you are a Discord user you should jump on RaSCSI's discords (we talk about all things scsi, scuznet and ardscsino included)

 
Last edited by a moderator:

ronan

Well-known member
It was - thanks! From my reading/learning that's how I thought it might work but glad to have someone with experience to chat with. If you are a Discord user you should jump on RaSCSI's discords (we talk about all things scsi, scuznet and ardscsino included)


Great I'm joining right now ! :)

By the way I'm changing my regulator to a lower dropout voltage : MIC5319-3.3YD5-TR it will be safer for people with bad USB wall charger, and will support SCSI bus with a weak TPWR.

 
Last edited by a moderator:

saybur

Well-known member
I'd suggest swapping the MIC5319 for an alternative 3.3V regulator. SOT-23-5 won't be able to reject all that much heat; if you figure a max draw of ~250mA and a 5V input voltage (worst-case after the diodes), that's a ~100C temperature rise for that package. An alternative might be the MCP1825: it has minimal capacitor requirements, is available in SOT-223, and has a similar dropout voltage.

 

ronan

Well-known member
I'd suggest swapping the MIC5319 for an alternative 3.3V regulator. SOT-23-5 won't be able to reject all that much heat; if you figure a max draw of ~250mA and a 5V input voltage (worst-case after the diodes), that's a ~100C temperature rise for that package. An alternative might be the MCP1825: it has minimal capacitor requirements, is available in SOT-223, and has a similar dropout voltage.


Thanks for your feedback ! I ordered the boards yesterday from jlcpcb, so I'll have to try first with the MIC5319. But I'm preparing a new design with the MCP1825 according to your advice :)

Out of curiosity how did you compute the ~100C temperature ? I would be interested to be able to anticipate better such things.

EDIT : I just found http://ww1.microchip.com/downloads/en/appnotes/00792a.pdf that looks interesting :)

EDIT 2 : so to compute the temperature of the chip I should use its Thermal Resistance Thin SOT23-5 which is 235, multiply that by the dissipated power 1.7x0,2 which is ~80C and then add room temperature (~20C) which gives me a total of 100C. Right ?

 
Last edited by a moderator:

saybur

Well-known member
That's mostly how I figured it, assuming a 250mA load: (5-3.3) * 0.25 * 235 to get the 100C rise. The 250mA was just a ballpark figure, based on the max 180mA the ENC28J60 uses while transmitting plus a random amount extra; you'll probably want to run through what the max current consumption is for the various components to build a power budget and then add a bit extra for safety.

 
Top