Jump to content
IGNORED

XEP-80 on Raspbery Pi Pico


cbelcher

Recommended Posts

I just used a DOS 2.5 disk with the XEP80 driver renamed to AUTORUN.SYS, attached are the 2 images I made.

I put them on a SIDE3 cart on a standard 800XL and booted from the loader, will put the .ATR on my S-Drive

and boot that way too.

 

EDIT: I just put it on my S-Drive, but booted into SDX on the SIDE3, at the command line I typed

D1:ALTXEP80.SYS

and I now have the XEP80 screen on my monitor, so I'm using the driver off the Altirra Additions disk.

 

Still can't believe how sharp and clear that display is :)

 

If yours is not working after using the driver and UF2 files I posted then it's probably  a simple

wiring mistake.

 

I am powering my Pico off the joystick port, I've not connected that button on the diagram either

I suspect it's for a reset, but didn't have a button 🤓

XEP80 SDX Drivers.atrXEP80_Boot_Disk-DX5087-PAL.atr

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

Got it working!  A thing of beauty.

 

Think it was your drivers, although I noted the schematic picture had pin 38 of the pico tied to ground and the creator wrote a text file using pin 3 - so I wired that up too.  There are many many ground pins on the Pico - doubt it is the issue.

 

Great picture and simple build. 

Link to comment
Share on other sites

1 hour ago, cbelcher said:

Think it was your drivers, although I noted the schematic picture had pin 38 of the pico tied to ground and the creator wrote a text file using pin 3 - so I wired that up too.  There are many many ground pins on the Pico - doubt it is the issue.

Either pin would work according to the pinout diagram.  The pinout diagram for the Pico is easy to find if you need to double-check, but just in case...

pico-pinout.svg

Link to comment
Share on other sites

  • 2 weeks later...
4 hours ago, reifsnyderb said:

Is the source code available for the XEP-80 drivers used with this?  My thought is that it could be the starting point for a modernized replacement of a Bit3-80 and/or a 1090 card for the 1090XL.

I doubt they are of much use, because the XEP-80 is connected to the joystick port. I found Phaeron's XEP-80 drivers in his Altirra source zipfile inside src/Kernel/source/Additions/xep80*

It might be helpful though as a template to see how to override the standard CIO handlers if you want to implement something similar for the 1090 or Bit3 card.

2 hours ago, mytek said:

I really like where this is going 👍

 

Looks like it'll make the XEP80 and the XEP80-II obsolete once its in a more finalized form. Good stuff :)

Fore sure! And it'll work properly in PAL land.

Link to comment
Share on other sites

5 hours ago, reifsnyderb said:

Is the source code available for the XEP-80 drivers used with this?  My thought is that it could be the starting point for a modernized replacement of a Bit3-80 and/or a 1090 card for the 1090XL.

The GitHub repo was linked in the first post...

 

https://github.com/maaakit/PicoDVI/tree/xep80/software/apps/xep80/doc

 

It's a fork of the original project, with the XEP80 driver added to it, so it's not visible from the top level of the repo tree.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

1 hour ago, spicyjack said:

The GitHub repo was linked in the first post...

 

https://github.com/maaakit/PicoDVI/tree/xep80/software/apps/xep80/doc

 

It's a fork of the original project, with the XEP80 driver added to it, so it's not visible from the top level of the repo tree.

It looks like there might be enough information to make a modified driver.  A 1090 card could easily supply the driver.  I suppose with a modified OS, the 800 could pull the driver off of the card as well.

Link to comment
Share on other sites

an 800 with the PBI mod more than likely already has a pbi aware rom installed.

that being said the 1090 rumored 800 SIO model may have had a bus card and sio cable to handle an initial poll to bring the 1090 into the mix.

that is part of why I like the AVGcart so much, it's close to that vision.

Edited by _The Doctor__
Link to comment
Share on other sites

13 hours ago, reifsnyderb said:

@ivop:  There would have to be changes made, of course.  I was thinking along the lines of taking the data being sent via the joystick port and putting it on a register.  Thanks for the link the Phaeron's XEP-80 drivers.  Maybe that would be of some help.  

Oh, I see. I wasn't aware of the fact that the Bit3 card and the 1090 card use the same NS405 chip. How's the output signal on those? More in line with NTSC/PAL standards or are they the same?

Link to comment
Share on other sites

20 minutes ago, ivop said:

Oh, I see. I wasn't aware of the fact that the Bit3 card and the 1090 card use the same NS405 chip. How's the output signal on those? More in line with NTSC/PAL standards or are they the same?

Going from memory, I think all 3 cards use different chips.  There's not much commonality.  The 1090 card and Bit3 card appear to require an older composite video monitor.  I've been unable to use either on the composite video input on a modern TV.  As far as any specifics, I don't know too much about monitor and TV signals so I can't be of much use other than to say that my testing shows they don't work for me.  I've also read that using these cards is "hit or miss" with modern composite video TV's.

 

My thought is that a 1090 card could easily supply the drivers and allow for serial I/O via a couple registers.  Atari already has a register range set aside for the 80 column card, so it makes sense to use a register in that range.  By sticking with serial I/O, even through a parallel interface, it would allow maximum re-use of existing code, simplify the interface, and limit the amount of required level shifting circuitry.  Looking at what has been done for the Raspberry Pi Pico, I think it would be possible to supply both DVI and composite video output without too much trouble.

Link to comment
Share on other sites

32 minutes ago, reifsnyderb said:

Going from memory, I think all 3 cards use different chips.  There's not much commonality.  The 1090 card and Bit3 card appear to require an older composite video monitor.  I've been unable to use either on the composite video input on a modern TV.  As far as any specifics, I don't know too much about monitor and TV signals so I can't be of much use other than to say that my testing shows they don't work for me.  I've also read that using these cards is "hit or miss" with modern composite video TV's.

 

My thought is that a 1090 card could easily supply the drivers and allow for serial I/O via a couple registers.  Atari already has a register range set aside for the 80 column card, so it makes sense to use a register in that range.  By sticking with serial I/O, even through a parallel interface, it would allow maximum re-use of existing code, simplify the interface, and limit the amount of required level shifting circuitry.  Looking at what has been done for the Raspberry Pi Pico, I think it would be possible to supply both DVI and composite video output without too much trouble.

Thanks for the explanation. IIUC you want the XEP-80 connected to a different serial connection instead of the joystick port? Keep in mind that its protocol uses 9 databits instead of 8 in between a start and a stop bit.

 

Edit: you could of course design your own protocol to talk to a Pico with DVI output that uses the more common 8 databits, which fits neatly into one register.

Edited by ivop
Link to comment
Share on other sites

2 minutes ago, ivop said:

Thanks for the explanation. IIUC you want the XEP-80 connected to a different serial connection instead of the joystick port? Keep in mind that its protocol uses 9 databits instead of 8 in between a start and a stop bit.
 

The 1090 would be a parallel port connection.  Atari reserved $D1F8-$D1FD for the 80 column card.  My thought is to do something like the following:

 

Use $D1F8 as the register, set D0 as TX, and D1 as RX.  I'd have to check but one of those would be read and the other write.  (I suppose it would be possible to just use D0, and have it read from one latch and write to another, too.)  A single 74F74 chip would be able to operate as the latch for the register and level shifting would only be required for going from the 74F74 to the Raspberry Pi Pico.  Nice and simple.

 

The XEP drivers would be loaded, upon boot-up, by the 1090 system and they could be kept in the 1090's ROM so as to save memory.  The XEP's drivers should only need to be adapted from using PORTA (or PORTB) to the 1090 register.  Simple changes.

 

Some may say:  But why not take advantage of parallel I/O?  My answer is that this sort of serial I/O is a lot simpler, the driver changes would be minimal, the SIO bus would be free'd up anyhow, and screen I/O doesn't have to be at full parallel bus speeds anyhow.

 

 

 

  • Like 1
Link to comment
Share on other sites

So - it was my first time using JLCPCB's assembly service and I thought I was making it easier using their EasyEDA software...

Made one mistake myself and then found out the Pi Pico in their library had a footprint - WITHOUT plated through holes.  

But with a little board rework, I would call it success!

 

I need to clean up the mistakes before I consider posting the board files somewhere.

 

 

XEP80 board.jpg

  • Like 10
Link to comment
Share on other sites

7 minutes ago, cbelcher said:

So - it was my first time using JLCPCB's assembly service and I thought I was making it easier using their EasyEDA software...

Made one mistake myself and then found out the Pi Pico in their library had a footprint - WITHOUT plated through holes.  

But with a little board rework, I would call it success!

 

I need to clean up the mistakes before I consider posting the board files somewhere.

 

 

XEP80 board.jpg

Looks good!  Are the resistors on the other side?

 

I've noticed the Raspberry Pi Pico footprint I found for KiCAD has both the pads and plated through holes.  For my purposes, I modified the footprint and removed the through holes.

Link to comment
Share on other sites

The resistors and the level shifter circuit are under the Pico on the Topside.

 

My plan was to have the Pico socketed so it could go into other projects if needed.

 

I will have some of my reworked boards if anyone is interested.  I will have pin headers on them to solve the not plated through problem and a bodge wire to fix a pin misassignment.

 

  • Like 3
Link to comment
Share on other sites

  • 2 weeks later...
On 6/4/2023 at 11:11 AM, TGB1718 said:

I managed to build this today, have to admit the quality of the text is stunning, only on a breadboard at the moment, but works fine,

looks a bit fuzzy at the top, but that's just the angle I had the mobile when recording this..

 

Ignore the vertical lines on the monitor, it's a faulty one, but handy for testing things like this.

 

Also ignore the other components on the breadboard, just leftovers from something else, they are not connected,

only the Pico, HDMI interface and the lever shifter.

 

Edit: Here's the .UF2 file :)

 

 

20230604_160545.jpg

xep80.uf2 83 kB · 7 downloads

 

I went back looking at where my problem was with the first build - and it seems that your uf2 file is the working one and it differs in a hex editor from the one posted on the Polish forum (which I cannot get to work).

Did you build it yourself or where did you find it?

Link to comment
Share on other sites

6 hours ago, cbelcher said:

I went back looking at where my problem was with the first build - and it seems that your uf2 file is the working one and it differs in a hex editor from the one posted on the Polish forum (which I cannot get to work).

Did you build it yourself or where did you find it?

I downloaded the latest version off GitHub, installed the Pico SDK on one of my Raspberry Pi's and built it myself :)

No one was more surprised it actually compiled as I've had issues with the SDK in the past, although that was on

Windows (good old Linux, can always rely on any flavour of Unix)

Link to comment
Share on other sites

On 6/22/2023 at 12:02 AM, cbelcher said:

So - it was my first time using JLCPCB's assembly service and I thought I was making it easier using their EasyEDA software...

Made one mistake myself and then found out the Pi Pico in their library had a footprint - WITHOUT plated through holes.  

But with a little board rework, I would call it success!

 

I need to clean up the mistakes before I consider posting the board files somewhere.

 

 

XEP80 board.jpg

Can You be so kind and upload pcb / github / jlcpcb project link. Or can I buy 2x?

Edited by Matej
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...