Jump to content
IGNORED

A8PicoCart - UnoCart on a Raspberry Pi Pico


Recommended Posts

Hi All,

 

I got a Raspberry pi pico a few weeks ago to have a play with and forgot about it. Then, after noticing a post here, I realised I couldn't resist having a go at using it to make a multicart for the Atari 8-bit. A couple of PCB revisions later, I'm pretty much done, and proud to announce the A8PicoCart!

 

Unfortunately the official Pico board hasn't got quite enough pins to make a proper multicart - you can emulate 8k and 16k carts, but that's about it. However I discovered that you can buy £3 purple Pico clones from China with 16Megs of flash, USB C and, more importantly, all the GPIO pins broken out, which is just enough to hook up the whole cartridge port.

 

So I've made an Atari 2600 multicart with the official Pico, and an A8 multicart with the purple Pico clone 🙂

(If you are interested in the 2600 version - I posted earlier today about it here).

 

Neither cart has any other components other than a Pico board and the PCB - so this will be a very easy DIY build.

 

Although the RP2040 used in the Pico is not formally 5V tolerant, it is rumoured that the non-ADC pins are, so I've used these, and hoped for the best. No problems so far after many hours of testing firmware versions! I wanted to go for an easy build, so wanted to avoid extra components.

 

The firmware is a purple themed tweaked version of the original UnoCart firmware, though I've added the 4 extra cartridge types recently added to the Ultimate Cart firmware. As there is no SD card, I've also written support to make the cartridge a USB mass storage device, so you can simply plug the cartridge into a PC with a USB cable and copy files over. This provides 15Megs of flash storage onboard for ROMs and ATRs.

 

Oh, and its also very easy to update the firmware on a Pico - just plug into USB with the BOOTSEL button pressed and drag a file onto the device.

 

There are 2 versions of the PCB at present - one with the Pico facing forwards so the status LED can be seen, intended for uncased use on an XE. The other has the Pico facing away so it will fit in a case and there are mounting holes to assist. At some point I will design a 3D printed case for it.

 

As usual I've got a load of spare PCBs, so if anybody wants an assembled board to help me test, get in touch?

 

Robin

 

Pico and even cheaper purple clone

IMG_2113.thumb.jpeg.9761e250095f037b61c458bbab13b36a.jpeg

PCBs

IMG_2136.thumb.jpeg.b9561b1987a2d50c37dbdac19970538d.jpegIMG_2137.thumb.jpeg.28a479b0d6f09830310871ac38682664.jpeg

New Firmware

IMG_2120.thumb.jpeg.fb8484cfccdf3bc88ecebb1fe99f40c6.jpeg

USB Mass storage mode

usb-msc.thumb.png.85070559989c05cc30e9c086fc25097f.png

 

With its 2600 brother

IMG_2139.thumb.jpeg.c9a1301b6f18fb2349870bb5b229bd19.jpeg

  • Like 30
  • Thanks 5
Link to comment
Share on other sites

3 hours ago, mamejay said:

Great project.  Do you have a Github or somewhere that the PCB's and schematic are?  Would love to rework the board and add level shifters.

Curious as to why?  The OP already stated that he hasn't seen a problem thus far without them.

Link to comment
Share on other sites

On 5/23/2023 at 11:34 PM, E474 said:

I'm interested too, but a bit swamped. Is this using PIO on the Pico, btw?

I had intially intended to (and was looking forward to having something new to learn about), but then I read this article which compared a PIO approach with the kind of polling I did in the UnoCart:

 

https://github.com/rhulme/picoROM_pio/blob/master/doc/README.md

 

So - no, not using PIO. No need and it would probably be slower.

Link to comment
Share on other sites

Hi Forrest,

 

I had pretty much everything running at the default clock speed of 125Mhz.

However, I couldn't get XEGS cartridges to work at that speed, so I've upped it to 250Mhz. All reports are that the RP2040 works reliably at this speed, and the standard flash memory is also happy to run at double speed.

 

However, the second couple of purple pico clones arrived with a different brand of 16Meg flash memory on them - zbit rather than winbond and I couldn't get the A8 firmware to work at all at first on these boards.

 

Eventually I found the datasheet for these zbit flash chips and discovered they were rated slightly slower than the winbond chips - they work fine at the default clockspeed, but are (just) above spec when the pico is overclocked. So I've increased the flash divisor for this reason and now the firmware works fine on purple pico clones with both types of flash.

 

This seems to make precious little difference to the speed when acting as a USB mass storage device - I guess the main cost is in the flash sector erase, not the data copy.

 

Robin

Edited by electrotrains
clarity
  • Like 2
Link to comment
Share on other sites

On 5/25/2023 at 2:31 PM, mytek said:

Curious as to why?  The OP already stated that he hasn't seen a problem thus far without them.

Just cause the op has not seen a problem does not mean its fine.  For 30 cents of parts everything can be within manufacturer spec.

  • Like 4
Link to comment
Share on other sites

12 hours ago, mamejay said:

Just cause the op has not seen a problem does not mean its fine.  For 30 cents of parts everything can be within manufacturer spec.

I started the project after reading that the Pico was probably 5v tolerant. If I hadn't read that, I wouldn't have bothered doing the project.

Leaving them out means you can have a multicart with just a PCB and a £2 pico clone - and just about anyone can manage to obtain and solder that.

 

If I was making a commerical project, I'd probably have used level shifters. But this was intended as a quick and easy DIY hobby project for people to build themselves. Using level shifters clouds that aim.

 

That's my point of view - I understand why people feel differently, and they are free to design their own PCBs and update the UnoCart source code themselves 🙂

 

Robin

  • Like 9
Link to comment
Share on other sites

Hi,

 

   I dug down to the AliExpress link for Pico clone 16MB 30 GPIO pin boards at: https://www.aliexpress.com/item/1005004277013272.html?gatewayAdapt=glo2bra

 

   But I'm struggling to find the same board on AliExpress with Wifi, 16MB and 30 GPIO pins, e.g. Purple Pico W clone. Can anyone with better search engine skills post a link?

 

   Also, if you needed to logic level shift all the lines involved (30 for the sake of argument), what would you use? I've seen projects using 74HTC125 chips, but you would need to crowd a lot onto the PCB, what's the proper "hardware hacker" approach (I am not a hardware hacker).

 

Link to comment
Share on other sites

Hi,

 

I'm not sure I've seen such a board - but on the other hand, I haven't been looking! If you do find such a board, it looks like a couple of the GPIO are required for the Wifi chip, though I think there would (only just) be enough left for the Atari cartridge port. Depending what pins had been used for the Wifi, you'd probably need to use a level shifter, since you'd need to use some of the ADC (definately not 5V tolerant) pins for the atari.

 

I used IDT quickswitches to level shift the entire atari bus for the Ultimate Cart - these are easy and bidirectional and don't require extra logic. Just a diode (from memory). But surface mount only, and relatively expensive. You could have a look at the BOM and schematic on my github.

 

Robin

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

Hi @electrotrains,

 

   Thanks for the reply. I had a look at the pictures for the Ultimate Cart, and can see how the IDT QS3245QG level shifters fit in, but I don't have any experience of surface mount parts, and am a bit reluctant to jump in. Presumably you could use a regular through hole (?) IC like the 74HTC125 just for the ADC pins, and wing it for the 5V tolerant pins? Going from the 30 pin edge connector for a cartridge, 2 pins being for GND and +5V, you would need 28 GPIO pins minimum, if I understand things correctly, so all the 26 pin GPIO Pico Ws wouldn't cut it?

 

   It looks like there isn't a 16MB Pico W, so 2MB will have to do.

Link to comment
Share on other sites

On 5/27/2023 at 5:00 PM, E474 said:

But I'm struggling to find the same board on AliExpress with Wifi, 16MB and 30 GPIO pins, e.g. Purple Pico W clone. Can anyone with better search engine skills post a link?

I don't think that this is even technically possible. My assumption is that it takes 4 GPIO pins to connect the WiFi module using SPI. While the purple exposed those extra 4 pins, the Pico W uses them "internally" for the WiFi module.

  • Like 1
Link to comment
Share on other sites

Hi @SvOlli,

 

   Thanks for the heads up, I was googling and found that the Pico W uses SPI for the WiFi, and Wikipedia describes it as a 4 wire protocol, so I think the only way would be a Wifi Dongle on a 30 pin purple Pico, which is probably a higher coding overhead than onboard WiFi. 

 

   I guess alternatives would be ESP32 (not sure there is a board with enough GPIOs) or STM32 board, which I think is still hard to order.

 

   

Link to comment
Share on other sites

7 minutes ago, popmilo said:

Any chance of getting pcb design files for A8 version ? :)
Or is it maybe still in prototype phase so better to wait ?
Already ordered couple of those purple boards, would like to try making picocart on my own.

I will release the source code, PCB design files and 3d print designs for making a case, but I want to make sure it's had a proper test and any issues ironed out first. I have only just finished designing and printing a case, which is really required for anyone that wants to use one of these in an XL.

 

Robin

  • Like 4
  • Thanks 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...