Jump to content
IGNORED

A8PicoCart - UnoCart on a Raspberry Pi Pico


Recommended Posts

5 hours ago, _The Doctor__ said:

can the usb port be located in a place that would be blocked if inserted in the atari,  physical interlock that way... or the cart shell made so it has a slide door that blocks usb hole when inserted in cart slot vice versa etc etc.

 

I am guilty of updating while using many of the cartridge offerings. I plug in and update while it's in machine lots of times.

 

It will work :)

 

Zrzutekranu2023-08-29o23_58_55.png.8286d1177c74937bf43a026ac2b96935.png

 

  • Like 2
Link to comment
Share on other sites

Hi,

 

   The drawback to this is that you can't use an OTG cable and a USB stick for PicoCart storage. For example, see: https://github.com/rppicomidi/pico-usb-host-msc-demo

 

   It might be simplest to just plug an OTG cable into the USB socket to act as a block to accidental connection to a PC, or tape over the socket.

Link to comment
Share on other sites

For those that may have missed it as this topic advanced to another page, I believe this one chip one diode solution may be the best protection approach if a new PCB is going to get made anyway. And there should be enough PCB space to implement it. The main idea is to have the hardware disconnect itself from the RD4 and RD5 pins of the Atari MMU whenever a USB cable gets plugged in and it sub-sequentially gets energized by the connected PC.

 

 

I plan to integrate this into my new 576NUC+ daughter board, and will probably have samples to test in about 2 weeks.

  • Like 2
Link to comment
Share on other sites

18 minutes ago, mytek said:

For those that may have missed it as this topic advanced to another page, I believe this one chip one diode solution may be the best protection approach if a new PCB is going to get made anyway. And there should be enough PCB space to implement it. The main idea is to have the hardware disconnect itself from the RD4 and RD5 pins of the Atari MMU whenever a USB cable gets plugged in and it sub-sequentially gets energized by the connected PC.

 

 

I plan to integrate this into my new 576NUC+ daughter board, and will probably have samples to test in about 2 weeks.

So, just that one diode between +5V and VSYS pin #39? That might be easy enough to add in even without a PCB change. I'll look into doing that on mine, just to be safe.

 

Thanks @mytek!

 

Link to comment
Share on other sites

2 hours ago, bfollowell said:

So, just that one diode between +5V and VSYS pin #39? That might be easy enough to add in even without a PCB change. I'll look into doing that on mine, just to be safe.

 

Thanks @mytek!

 

 

2 hours ago, mytek said:

one chip one diode solution

No not quite, the diode only prevents the Atari from back feeding power into the USB connected PC. For full protection you also need something to disconnect the Pico board from the RD pins of the Atari MMU, and that's where the 74HCT4053 chip comes into play.

 

74HCT4053.png.e5e152706025dcde795e05d32a9155cc.png

 

It contains 3 SPDT switches inside, which are individually controlled via a 'control' pin. Think of them like solid-state relays.

  • Like 1
Link to comment
Share on other sites

51 minutes ago, mytek said:

 

No not quite, the diode only prevents the Atari from back feeding power into the USB connected PC. For full protection you also need something to disconnect the Pico board from the RD pins of the Atari MMU, and that's where the 74HCT4053 chip comes into play.

 

74HCT4053.png.e5e152706025dcde795e05d32a9155cc.png

 

It contains 3 SPDT switches inside, which are individually controlled via a 'control' pin. Think of them like solid-state relays.

I don't know how I missed that. I guess I was focusing on the simple. Oh well, it won't really be a concern for mine as that's not how I use my 8-bits and they're not really near a computer with USB, So I'm not overly concerned with this first revision. I look forward to seeing your final design though, and maybe working it into a future revision of the PCB.

 

  • Like 1
Link to comment
Share on other sites

5 hours ago, bfollowell said:

I look forward to seeing your final design though, and maybe working it into a future revision of the PCB.

I'll be sure to report back after I get the sample boards ordered and assembled ;-)

Link to comment
Share on other sites

I quite like the idea of the pico rotated by 90 degrees such that the USB socket is pointing downwards towards the cartridge port.

I've had a quick look at the shell and it looks like I can accomodate that without too many changes.

 

There don't seem to be any major downsides to this approach for the standalone cartridge.

 

Stay tuned.

 

Robin

  • Like 6
Link to comment
Share on other sites

2 hours ago, E474 said:

Is the "Do not plug in USB cable while cart is in 8-bit" worth adding to the PicoCart ROM as a nag screen?

I wouldn't suggest it, unless the plan is to have a version without the nag screen. Because there might be versions of the hardware that don't require it.

Link to comment
Share on other sites

2 hours ago, mytek said:

I wouldn't suggest it, unless the plan is to have a version without the nag screen. Because there might be versions of the hardware that don't require it.

True, but maybe control the behavior with a check for "NAG.TXT", and if it's missing don't nag.

  • Like 1
Link to comment
Share on other sites

Quick question:

 

I'm bread-boarding this project at the moment, and using @Dropcheck's cartridge breakout board on an 800XL, and 10 cm (4 inch) wires to connect to the breadboard. It's a bit cramped, is it OK to use 20 cm (8 inch) wires, or will I run into issues? Obviously I can just try it out, but is there a wire length after which I will run into timing problems (newbie question)?

Link to comment
Share on other sites

2 hours ago, E474 said:

True, but maybe control the behavior with a check for "NAG.TXT", and if it's missing don't nag.

The funny thing is people will tune this out very quickly. For instance, at my shop I kept forgetting to shut-off the AC when I was leaving for the day, so I put a big sign in BOLD letters on the exit door that said "TURN OFF AC". Guess what -  I still occasionally forget to turn it off.

 

I think a nag screen only works if it's triggered by something to pop up. If it's there all the time it gets ignored. There's nothing to trigger such an event on the A8Pico Cart.

EDIT: at least nothing controlled by the firmware. However monitoring the USB power does act as a flag for the event, but that has to be done in hardware.

 

So getting back to the sign on the exit door,.. If the very act of opening the door at the end of the work day would cause a sign to pop out of the wall, or flash, or any other kind of attention getting behavior was associated with it, it would likely work every time. But if one were to go to all that trouble, it would probably be even better to simply have that attention getting event turn off the AC for me. This is what I am developing in the RD4/5 protection circuit, who's purpose is to automatically disconnect the A8Pico from those signals anytime that the A8Pico's USB port gets plugged into an active PC.

 

In about 2 weeks I'll know for sure if this circuit works properly in real life. At that point it would be a relatively simple matter to apply that idea to the A8Pico Cart's PCB, while only adding about $1 to the cost. No firmware change required. If I was proficient in Ki-Cad I would do the mods myself to the Cart PCB. Although I am well versed in using a proprietary PCB layout application, but because Robin released the A8Pico Cart PCB based on Ki-Cad, it would be best to do the revisions using that same application. However I'm sure there are many people on AtariAge that do use Ki-Cad, so perhaps one of them can offer to do this.

  • Like 3
Link to comment
Share on other sites

1 hour ago, E474 said:

Quick question:

 

I'm bread-boarding this project at the moment, and using @Dropcheck's cartridge breakout board on an 800XL, and 10 cm (4 inch) wires to connect to the breadboard. It's a bit cramped, is it OK to use 20 cm (8 inch) wires, or will I run into issues? Obviously I can just try it out, but is there a wire length after which I will run into timing problems (newbie question)?

It may be too long. It also depends on what type of cables you're using - multicore or single core, and the thickness of the cable. Remember, the limitations for the O2 bus are 130pF for the Sally processor. Of course, the cartridge is connected to BO2 (Buffered Phase 2), but still, connecting higher capacitances to these lines creates interference.

 

Actually, I wanted to do a similar test but anticipated similar problems.

 

Try to shorten the cables as much as possible and use good quality ones. Alternatively, you can also run BO2 through a 74F08 gate, or even replace the 74LS08 with a 74F08, or best with an O2/Fixer. This will reduce the number of issues.

  • Like 1
Link to comment
Share on other sites

2 hours ago, E474 said:

I'm bread-boarding this project at the moment, and using @Dropcheck's cartridge breakout board on an 800XL, and 10 cm (4 inch) wires to connect to the breadboard. It's a bit cramped, is it OK to use 20 cm (8 inch) wires, or will I run into issues? Obviously I can just try it out, but is there a wire length after which I will run into timing problems (newbie question)?

You should be fine - I've just checked my parts drawer and I'm pretty sure when I was prototyping I used a pack of 30cm long F-F jumper wires. Worked perfectly.

 

The main problem is the cables coming loose rather than the wire length in my experience.

 

Robin

  • Like 5
Link to comment
Share on other sites

Hi @Piotr D. Kaczorowski, @electrotrains, @mytek!

 

   I have 10 cm and 20 cm cables from AliExpress (see items listed by vendor: https://www.aliexpress.com/store/912189981 ). I think I will switch over to 20 cm cables as the 10 cm ones are a bit short, and probably will come loose quite easily, as @electrotrains says. I also have some 50 cm cables from eBay seller "berrybase" in Germany, that might be slightly higher quality, but it's difficult to tell just by looking, but will only give those a try as a last resort. I'm trying to keep it as simple as possible as I don't have a lot of hardware experience, so would have to read up on the details before going the 74F08 route, but I appreciate the pointer! 

 

  For the nag screen, I think you can monitor USB events in software on the Pico, but I'm not sure what you would actually be able to do about it, apart from maybe flashing the Pico's LED. It's just that putting it in the loader is a step up from the Manual, which a lot of people only consult as a last resort.

 

Having a protection circuit sounds ideal, I've just started working with KiCad myself (I've watched the 10 part Youtube series by Shawn Hymel at: 

 

 

   But haven't done anything creative with KiCad yet.

 

   Well, hopefully should have everything up and running by tomorrow, I'll post any progress I make just in case anyone wants to try this route too.

  • Like 1
Link to comment
Share on other sites

@E474

 

The "F" series circuits operate up to 125MHz. They achieve this speed due to the technology they are made of. One of the factors is that they introduce low capacitance. Therefore, on the Atari board, by replacing the 74LS08, you eliminate the increase in parasitic capacitance on the clock signal lines. I checked almost 20 Atari boards with various LS, HCT, and F series circuits. The relationships between the O0 and BO2 signals measured on Antic were different. Sometimes, for example, Side3 did not work at the shortest response time. So it's not speed that matters, but capacitance. The 74F08N changes the capacitance on the line and improves stability. However, this is not enough if you have an Ultimate 1MB, VBXE, Rapidus in your computer and additionally connect something like Side3 externally. O2/Fixer has even better characteristics and allows the use of an additional four twin BO2 signals. The stability issue has therefore been solved.

 

BTW.. I made own 15cm wires 😜

  • Like 1
Link to comment
Share on other sites

20 hours ago, Piotr D. Kaczorowski said:

@E474

 

The "F" series circuits operate up to 125MHz. They achieve this speed due to the technology they are made of. One of the factors is that they introduce low capacitance. Therefore, on the Atari board, by replacing the 74LS08, you eliminate the increase in parasitic capacitance on the clock signal lines. I checked almost 20 Atari boards with various LS, HCT, and F series circuits. The relationships between the O0 and BO2 signals measured on Antic were different. Sometimes, for example, Side3 did not work at the shortest response time. So it's not speed that matters, but capacitance. The 74F08N changes the capacitance on the line and improves stability. However, this is not enough if you have an Ultimate 1MB, VBXE, Rapidus in your computer and additionally connect something like Side3 externally. O2/Fixer has even better characteristics and allows the use of an additional four twin BO2 signals. The stability issue has therefore been solved.

 

BTW.. I made own 15cm wires 😜

 

Hi @Piotr D. Kaczorowski,

 

Thanks for the info, I just checked in the Antic series on the PBI bus (Antic Vol. 3, No.11, March 1985) and the advice was that you should use HCT rather than HC, but I guess this was before F series chips were available. This is really where I would be asking for advice, assuming I could come up with a circuit in the first place.

 

I've also got the wire and crimps/crimping tool for making DuPont wires, but I find it a bit slow and fiddly, and the lengths would be at most 15 cm, with some being a bit shorter due to having to redo some of the crimps. Hopefully I'll improve with practice, but if I had to make 120 wires, that would be no small undertaking.

 

 

  • Like 1
Link to comment
Share on other sites

19 hours ago, E474 said:

Thanks for the info, I just checked in the Antic series on the PBI bus (Antic Vol. 3, No.11, March 1985) and the advice was that you should use HCT rather than HC, but I guess this was before F series chips were available.

 

The recommendation to use 74HCT parts is for components on the board attached to the PBI. Not for replacing the the 74LS clock buffer as discussed earlier in this thread. The 74F logic family was available long before 1985.

 

Replacing the PHI2 74LS08 clock buffer with a 74F08 is a risky idea. It would help in many cases, but in some cases it might make things even worse. It could make thing worse because, precisely because being much faster, it would alter the original timing.

 

When you design some kind of expansion or accelerator, you target a stock machine and you test on a stock machine. At least. IMHO, that's the correct way to do it unless you specifically include, or recommend, another hardware modification. The timing on a stock machine includes the delay generated by the slower 74LS chip. A correct design would then be optimized for including that delay. You remove that delay and the design timing is not optimized anymore. That doesn't mean it won't work because there are always some tolerance, but working on non ideal conditions could create more problems.

 

Combining multiple hardware addons would be always problematic in this regard. Specially with design by different developers. There is probably no ideal universal solution. Again, I'm talking about the timing and clock skew. This is besides the issues related to clock signal quality. I was hit by the timing issue when designing FX Antic. It possibly might not work when combined with some CPU accelerators. Of for that matter, with any CPU replacement that alters the original timing significantly enough.

 

Edit: Sorry if we are hijacking the thread. Might perhaps be better to move somewhere else.

Edited by ijor
  • Like 1
Link to comment
Share on other sites

1 hour ago, ijor said:

 

... 74F08....

 

"F" - First help :)    I tested more then 20 motherboards, and more then 30 sets of Atari ICs this year.  The main problem was parasitic capacitance not timings.  I had different results on timings. The best part is that NMOS technology is more analog then we think at start.  It works a bit like a set of vessels and water faucets... The parameters and their ranges can be quite broad. An important factor, however, is the connection of elements - for example, the number of attached TTLs and the line capacity in pF, to which our extension creators didn't give much importance.  If you're interested, I'd be happy to share my experiences in a private conversation or on another thread. 

  • Like 1
Link to comment
Share on other sites

3 hours ago, Piotr D. Kaczorowski said:

 

"F" - First help :)    I tested more then 20 motherboards, and more then 30 sets of Atari ICs this year.  The main problem was parasitic capacitance not timings.  I had different results on timings. The best part is that NMOS technology is more analog then we think at start.  It works a bit like a set of vessels and water faucets... The parameters and their ranges can be quite broad. An important factor, however, is the connection of elements - for example, the number of attached TTLs and the line capacity in pF, to which our extension creators didn't give much importance.  If you're interested, I'd be happy to share my experiences in a private conversation or on another thread. 

This would make a good topic, not only to help understand what Atari where doing or not doing whilst trying to mitigate noise and parasitic capacitance, but also to find mods or tips that can be implemented to improve our existing systems.

 

 

 

  • Like 1
Link to comment
Share on other sites

On 9/2/2023 at 12:59 AM, Retrocactus said:

Just received my batch of PCBs from JLCPCB and soldered it up...works great! Thanks @electrotrains

 

 

IMG_9849 2.JPG

IMG_9853 2.JPG

 

This month, I will be placing some orders with JLCPCB, so I will also have the A8PicoCart :)

 

Link to comment
Share on other sites

Have just managed to boot up a bread boarded PicoCart!

I used 10 cm wires, but used a Cartridge breakout board with the header pins on the back of the PCB, so the bread board could sit comfortably on the top of the 800XL.

Now to start hacking around with the firmware, etc.

IMG_20230906_155611.jpg

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