Tuesday, 5 January 2021

ZX-Spectrum on the MEGA65

From the beginning, it was our hope and intention that the MEGA65 would be able to run multiple cores, allowing it to be many different computers and consoles.  This is why we built the whole Flash Menu framework, that allows a user to select which core to load when powering up by holding down the SCROLL LOCK key when powering on, like this:

 

We already have an Amiga core being ported, although it is not finished, while we work out some issues with our HyperRAM controller.  But in the meantime, Sy2002 has managed to largely port a Spectrum core from the ZX-Uno project, as you can read below.  So this is a really nice achievement, as it means that you can run the two main camps of 8-bit  systems on the MEGA65: The Commodore 64/65 and now the ZX Spectrum family -- all with our really nice keyboard and case for a very authentic experience.

We are still working on the bootstrap ROM, but it already gives you the ability to select which exact model you wish to operate as:

The ZX-UNO is designed to run mainly as Sinclair ZX Spectrum machines (48K/128K/+2a)

with DivMMC support (MMC/SD/SDHC storage), ULA+ (multi-color, high resolution graphics),

turbo sound (double AY chip), among other things.

 

The ZX-UNO hardware, software, logo and concept have been created by the ZX-UNO TEAM

(Superfo, AVillena, McLeod, Quest, Hark0) and released under Creative Commons Attribution-

ShareAlike Licence.

 

So thanks to their hard work, you can already have a lot of Spectrummy fun with a MEGA65, as the following images show:






 



The ZX-UNO being completely open source matches the spirit of the MEGA65 perfectly!


Saturday, 12 December 2020

Announcing the MEGA65 Developer Support Programme

Howdy folks! We thought it was time to (very slightly) formalise our MEGA65 Developer Supporter Programme (M65DSP).  We have already been informally finding solutions to help people get access to MEGA65 development hardware, for folks who don't have an official DevKit.  We now want to make it clear that we are keen to support folks who would like to develop software, games, tools, documentation, promotion or other goodies for the MEGA65 platform.


What are the eligibility requirements for the MEGA65 Developer Support Programme?

Unlike some developer programmes, we don't require you to have a promissory letter to the value of US$4.7M, a private island or a double-degree in rocket science and underwater basket weaving! All you need to do is to have a clear idea of what you intend to do or to create, and explain that to us.

To be clear: If you can't afford any hardware, this is not necessarily an impediment. We have some R2 PCBs, Nexys4 development boards and other bits an pieces that we can potentially make available.  But if you are able to afford your own development hardware, that will make it easier for us to support more developers, and thus help even more cool goodies come out for the MEGA65 sooner.

I'm convinced. So where and how do I sign up?

You have several options:

1. Carry your One Ring of Windows 98SE Installation (CD or DVD) to the summit of Mount Doom and throw it into the Schicksals Kluft, and await pickup by the first cooperative oversized avian.

2. However, recognising the difficulty of definitively locating Mount Doom on modern maps, you may instead simply fill out the contact form on the MEGA65 website, explaining that you would like to be considered for the MEGA65 Developer Support Programme, and what you would like to make for the MEGA65 (or if you prefer, volunteering to work on whatever we think is most needed at the time).

3. Attempt to convince an existing DevKit owner to temporarily or permanently part with their MEGA65 DevKit in return for some object of mystical value*.

4. Move house to live conveniently near to a known MEGA65, and dig a secret tunnel that allows you to access the MEGA65 when its owner is sleeping.  Be sure to mend and polish the shoes of the owner, so that they think it's just fairies, and don't become suspicious.

5.  Enrol in a PhD programme related to the MEGA65 or MEGAphone, and maybe even get paid to do awesome 8-bit goodness for three years.  In this post-COVID world, it probably isn't even necessary to move to Adelaide to do this (although we have basically eliminated COVID, and have awesome beaches and stuff that we are all free to use again). In case you think I am joking about this, I'm not: There are opportunities to study the education of students in CS using 8-bit systems, the development of resilient and secure communications systems around the MEGAphone hand-held, including hybrid space-terrestrial mesh networks, FPGA-based cryptography and all sorts of other fun and interesting things.

* We cannot guarantee success of this method.  We recommend MEGA65 owners verify the actual value and function of such mystical value before accepting a trade. The origin of any Palantíri should be subjected to particularly thorough scrutiny.

I'm not convinced, yet. What should I do?

Hmm.... Look closely at this watch swing on it's chain... Closer... Deeper...

Tuesday, 1 December 2020

DevKits are appearing around the world!

 It has been a sheer delight the past few days, as people have begun receiving and assembling their MEGA65 DevKits, and even started to create things using them!

In case you missed the action, there are now several first impressions / assembly videos up on youtube:








That first one is from Shallan, who does regular twitch feeds, including writing C64 games -- and now that he has a MEGA65 DevKit, on coding for the MEGA65.  He has already made his own 256-colour image loader, and started working on using the MEGA65's Raster Rewrite Buffer (RRB) to do a thousand hardware drawn 256-colour moving bullets over the top of a 256-colour background, and using only about 10% of the CPU to do it. You can see what a busy 320x200 screen with 1,000+ blobs looks like here:

 

You can hardly even see the background.  This is just one of many uses of the Raster Rewrite buffer -- so expect to hear a lot more of "RRB" being thrown around.

So hop onto Shallan's live twitch feeds or playlist of videos he posts after for the low-down on how to make the MEGA65 do amazing things.

There is also plenty of action elsewhere. For example, there is a CSDB C64 sprite graphics competition, offering a MEGA65 DevKit as a prize, thanks to the generosity of the community!

Anyway, we are just so happy that people are having a great time with the MEGA65, and re-experiencing that joy of Christmas 1982 of receiving their first C64 (or VIC-20 or other home computer), and then diving in to explore the machine, knowing that they were entering exciting and uncharted territory.  

One great point of satisfaction for everyone involved, is how amazingly nice the keyboards have turned out.  We put a huge amount of effort into making the best possible keyboard for the MEGA65 -- from Cherry MX mechanical keys to the double-shot top and front-marked key caps and space bar long enough to land a fully laden A380. And so it has been sheer delight to see people fall in love with the keyboard, and experience sitting down at a device that _is_ a brand new 8-bit era computer for the first time in decades.

I am sure that there will be lots more interesting videos and material coming out, as people get their DevKits setup, and start tinkering.  We hope you enjoy the journey as much as we are!


Wednesday, 25 November 2020

The DevKits have started shipping!

100 MEGA65 DevKits sitting in the warehouse

100 MEGA65 DevKits sitting in the warehouse

77 went into the post

23 MEGA65 DevKits sitting in the warehouse

23 MEGA65 DevKits sitting in the warehouse

...

And by this time tomorrow, my understanding is that all 100 will be underway!

This is of course very big news for us, and more importantly, for the 100 people who ordered the DevKits, and supported the preparation for release of the final machines through their purchase.

So now we just need 2020 to hold off from come further crazy calamity, like, say, an alien invasion that disables all transport logistics, and then hopefully everyone will have their DevKits before Christmas.  We are so looking forward to what people will begin to do with their DevKits!

Now, for those wondering exactly what is in a DevKit, and how to assemble one, we have our great assembly video:

If you can't see the video above, you can get there via https://www.youtube.com/watch?v=WJlWK1pexD8

 

Meanwhile, things have been quiet from my side as I try to get my work finished up for the year, move back from the middle of the Outback to our usual home, get the kids enrolled in their new schools for next year, and a hundred other things.  Hopefully I will start doing some more visible things in coming weeks.

Saturday, 14 November 2020

MEGAphone PCB Changes

Things have been a bit quiet on the blog here, as I have been pretty flat out with work, and starting to plan to move back to the city after nearly a year here in the Outback.  The work on getting the MEGA65 DevKits shipped has been going along steadily over the last few weeks as well, but with less bloggable moments from my side.  What has also being going on, is the work on the next milestone of the MEGAphone grant from the NLnet Foundation.  For those who aren't familiar with this, this is a grant to move the MEGAphone project forward to having a PCB design that is mature enough that we can make a bunch for the community to get hold of, and to innovate on as a platform for resilient and secure communications.

The work on the MEGAphone results in various benefits for the MEGA65 work, as well as the value of making a hand-held MEGA65.  For example, in the last work unit under this grant, the multi-port serial port interface got a complete overhaul, and makes it much easier now to interface multiple serially-connected peripherals to the MEGA65.  People have already been talking about making trap-door wifi adapters, which would make use of this. 

So in short, if a handheld MEGA65 doesn't interest you, there are plenty of side-benefits of the MEGAphone.  One of the potential benefits of today's work unit, is that we think we have found the cause of the speakers connected to the MEGA65 R3 PCB getting hot (we use the same speaker amplifier circuit on both, as yet another commonality between the MEGA65 and handheld MEGAphone).

But enough of that, let's take a look at the 3rd milestone for this grant, and then what we have done to complete it:

3. Determine specifications for MEGAphone r3 hardware prototype

As described in sub-task 2, we wish to make a revision 3 hardware prototype that should have all key functionality included, that would make the device in principle usable by a developer. This means that it must have functioning communications, energy, computation, display and input sub-systems, such that it can be used and programmed without undue complication.

Milestone(s)

  • Combine the errata identified in sub-task 2, together with consideration of the functional requirements of the revision 3 milestone, and identify the design and component changes that this entails to achieve that goal.

  • Determine the revised intended specifications of the device.

  • Determine the revised list of sub-systems required to achieve this

  • Identify the changes to the Bill of Materials for the revision 3 device

  • Sketch out possible schematic changes / PCB floor plans for each of the above, accepting that they may not be final.

  • The milestone shall be considered complete when the four preceding dotpoints have been completed and their results communicated via the MEGA65 blog (https://c65gs.blogspot.com.au), specifically addressing those five points above.


So in the previous milestone, we had collected together all the errata, and actually also completed part of this milestone, by suggesting a number of potential solutions to various of the errata.  This milestone basically transforms that set of errata into a set of concrete design changes for the MEGAphone R4 PCB.

These changes can be largely be lumped into four groups:

1. Corrections to known problems with the MEGAphone R2/R3 PCB, e.g., problems with some of the power control circuits;

2. Improvements to the existing functions, that aren't so much fixing problems, as making things better / more logical, e.g., moving some of the switches around;

3. Adding originally planned but missing sub-systems, e.g., battery charge circuit; and

4. Adding the ability to use a Raspberry Pi Compute Module 3+ as an "Android Co-processor".

Now, the first three are probably no great surprise, but its worth explaining why we want to make it possible to include a Raspberry Pi Compute Module in the MEGAphone, especially when in the MEGA65 we have purposely avoided including any "big" processors.

As a geek and University Academic, I keep thinking about multiple possible uses for the MEGAphone.  First, it is simply a hand-held MEGA65, for retro-fun on the go.  Second, its a phone that you can trust, through the careful security design of the hardware, that isolates all the untrustable parts, like the cellular modem. Third, it is designed to support resilient communications, e.g., including UHF packet radios (or rather connectors for them), so that it can do mesh networking.  Fourth, I have been thinking for a while about the challenge for people who need accessible devices.

The challenge for accessible devices is that while certain kinds of disabilities are fairly well catered for, e.g., impaired sight or hearing, this is not the case for motor control impairments, where special input methods may be required. Think, for example, of Stephen Hawking, who in the latter part of his life controlled computers using a single cheek muscle.  One of the problems I see for people in such situations, is that computers keep advancing very rapidly, and that keeping up with the changes to computers -- or in this case, with mobile phones. We are all familiar with how quickly a phone becomes obsolete, and stops getting updates, and how hard it is to compile your own custom version of Android, let alone modify it to support some custom feature.

So what we have envisaged with the MEGAphone, is that we can have support for an upgradeable co-processor module that can run ordinary Android, unmodified. This means that as newer builds of Android for the module come out, or as the module itself is upgraded over time, the rest of the chasis of the phone can remain unchanged.  By using the FPGA in the MEGAphone to pretent to be a normal touch screen interface, we can make the acessibility layer live entirely in the MEGA65 side, with the Android instance not even realising that it is on the receiving end of an accessibility interface. That is, the user can upgrade Android as often as they want, and even upgrade the processor that it is running on as often as they want, and they won't have to worry about losing their accessibility customisations. 

Also, by having the accessibility layer in the MEGA65 side, it is much more tractable for end-users (or their support networks) to make fully customised accessibility interfaces that suit the capabilities and preferences of the user, rather than having to accept cookie-cutter accessibility solutions.  In this way, we hope to help support the dignity of people living with disability, and help them to more fully participate in the digital world, by allowing them to keep up to date in the mobile phone sphere.

We selected the Raspberry Pi to be this co-processor, as there is a very strong and long-term community around the Pi, including maintaining an up-to-date port of Android. For example, there is a commercial supplier of Android for the Pi, who offer ongoing automatic updates for 5€ per year. Or there are also multiple open-source initiatives as well.  The key here again is choice, which means dignity for the end-user.

If I had to guess the best option for making a sustainable commercial market for the MEGAphone, it would be this one around accessibility. Here in Australia we have a National Disability Insurance Scheme (NDIS) that would effectively be the customer, if we progress things sufficiently.  This is why we have had a student, Luke, working on an initial concept of this, based on the existing R2/R3 PCB, to see what might be possible.  Here is the 3D printed case and jelly switch connected on the MEGAphone's standard joystick port, to allow single-muscle operation: