Sunday, April 16, 2017

Prototype MEGA65 PCBs at Revision 2017

This weekend many of the MEGA65 team are at the Revision 2017 demo party.

Excitingly, they have with them the first prototype PCBs for the MEGA65 mainboard, thanks to Antti's amazing work.

So, before we get any further, it is time for some pictures.

First, here is the bare PCB before being populated:


Then with just the bare minimum components for initial testing by Antti:



Having real hardware, even if it is 18,000km away from me was a very exciting moment!

However, excitement had to give way to hard work, if we wanted the MEGA65 to actually run on the new PCB during the party.

First step, update the mega65-core repository to add a branch (m65pcb) with a target for the new board, and work out all the pin assignments.  That process took longer than I would have liked, but after a day or so, we had kickstart running, and the new 24-bit VGA output working.

The Nexys4 boards have only 12-bit VGA output, so I decided to make a quick routine to draw a vertical colour gradient by writing the contents of $D012 (current VIC-II raster line) into $D100 (red channel of palette entry 0).  It was pleasing (via skype video call) to see this all working.


Then the next step was to solder on a microSD slot to a set of test pads.  The final PCBs will of course have a microSD slot on them, but the time crunch for revision meant that these first prototypes didn't.  Fortunately, the PMOD connectors also aren't wired up, so it was possible for the guys to use a PMOD microSD adapter, and link the test pads to the appropriate pins.




Note that in the above image an incompatible SDHC card is visible. We're still working on adding SDHC support.  After switching it for a 2GB SD card, and putting the appropriate files on there, the familiar C65 boot screen appeared.  No photo of that, because if you are reading this, you probably already know what it looks like.

What I didn't mention above, was that after some initial problems with the VGA output, we realised the VDAC chip on these prototypes is only rated to a 170MHz dotclock.  The MEGA65 currently is still using a 1200p 60Hz video mode, with a dotclock of 193MHz.  As a result, the VDAC was not happy, and there was no image.  Solution: lie to the VDAC and claim our dotclock is only half what it really is. Result: it samples only every other pixel, which makes the horizontal non-integer scaling in 80 column mode look uglier than normal.  This will of course be fixed for future PCBs.



Then we found some problems with the keyboard interface. Basically there is cross-talk of some sort, or possibly weak pull-ups in the FPGA not allowing lines to float back high quickly enough.  This causes some strange problems with phantom keys being pressed:


However, these problems are when we are using real C65 keyboards with the PCB.  Needless to say, this is a very nice step forward in usability and authentic feel.

Time constraints also meant that the joystick ports lacked pull-ups (they are on separate lines from the keyboard, so that we can make MEGA65 software work more happily with keyboard + joysticks simultaneously).  Antti confirmed that with pull-ups, we can read those lines just fine.  Hopefully we will be able to update the bitstream soon to enable them before the end of the party.


 Speaking of bitstreams, we are loading the bitstreams onto a 32MB SPI flash on the PCB.  We can set this to configure the FPGA on power-on at 66MHz and 4-bit parallel, for a total 33MB/sec. As the bitstream is ~9MB, this gives a power-on time of 0.25 - 0.3 seconds -- very nice.

Finally, we have some of the folks celebrating and presenting the PCBs at the party:





23 comments:

  1. Great seeing some news and progress. :)

    ReplyDelete
    Replies
    1. Thanks -- it is also great for us to see some significant progress as well, after everyone has been so busy with life lately.

      Paul.

      Delete
  2. Very exciting, can't wait to get my hands on one!

    ReplyDelete
  3. Great work !!! Looks really good

    ReplyDelete
  4. Replies
    1. Grüße an dich auch! Es sieht als ob, fast alle Leute um dem MEGA65 wohnen entweder in Australien oder Deutschland.

      MfG
      Paul.

      Delete
  5. Greetings from USA and this is very exciting news! Best success and can't wait until I can finally purchase this!

    ReplyDelete
  6. Absolut great work !

    Will there be an extra Interface for real SIDs or will they only Emulate in Software ?

    MS

    ReplyDelete
    Replies
    1. Our plan has been to have sockets for real SIDs, however, I am not sure whether this will still be possible internally, or whether it will require use of a cartridge.

      Delete
    2. Thanks for the answer. Would be cool to use real SIDs optional !

      Delete
    3. Maybe Swinsid Ultimate ? :-)

      Delete
    4. Yes, the SwinSID Ultimate is now reaching the point where it can be considered a sensible and acceptable SID replacement. If we have sockets for SIDs on the M65, then it will accept SwinSIDs. There is also a lot of potential for the SID implementation we have in the FPGA to be similarly improved. Basically we want to keep the options open for people to follow their preferences and explore. The MEGA65 is all about exploration renewed!

      Delete
  7. Amazing, really can't wait for this!

    ReplyDelete
  8. Nice!

    Good to see some real progress at last. If this design is more or less set in stone, i assume that it will be possible to connect the SID's via a simple expansion board to one of the PMOD connectors?

    Also, I am a little curious about how the rewrite of the (new) core goes ;)

    ReplyDelete
    Replies
    1. Hello,

      We hope to have SID sockets on the 2nd rev of the board. Failing that, it will be possible to have a cartridge with real SIDs.

      As for updating the core to use the new board, that's ongoing, but we are very time pressed at the moment, so it might be a few weeks before the next update on that front -- but a lot is happening behind the scenes.

      Paul.

      Delete
  9. I have one question to ask. Do you know the price for this motherboard? I want to know how many month would it take me to save up for it.

    ReplyDelete
  10. Unfortunately we have no idea of the cost of the PCB at this point in time.

    ReplyDelete
  11. Paul, my understanding that it will be a four digit number, isn't it?

    ReplyDelete
    Replies
    1. Hello,

      We really don't know at this stage. I'd hope that the PCB wouldn't be that expensive, though.

      Paul.

      Delete
  12. I really, really, really, really, SERIOUSLY HERE, REALLLLLLLY, UNBELIEVABLY REALLLLLY want this!!

    But if it is going to cost me like anywhere between 1,300 to 1,700 dollars I may just keep it as just dreams only.

    ReplyDelete
  13. Are there new Info (04.2017 -- 12.2017)

    ReplyDelete
    Replies
    1. Hallo,

      ja, es gibt seit April doch Forschritte. Nicht so viel, wie wir gehoffen könnte, aber mehr als wir gefurchtet. Ich habe unterwegs circa hälfte des Jahres gewesen und dass hat nicht geholfen. Aber jetzt arbeiten wir an lizenzungen, fehlende Eigenschaften, Gehäuse, Tastatur u.s.w. Endlich ist es auch hier in Australien Sommer und das bedeutet, dass ich etwas mehr Zeit haben, mehr auf dem M65 zu arbeiten.

      Yes, there has been progress since April. Not as much as we would like, but more than we might have feared. We have been working on missing features, the case, licensing and various other bits and pieces. Much of the trouble has been that I have been travelling for about half of the past year. However, summer is finally here in Australia, so I am hoping to have a bit more time to work on the M65 for a while.

      Paul.

      Delete