Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 16:48 24 Nov 2024 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : Standardization Please .. ?

     Page 1 of 5    
Author Message
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4222
Posted: 07:59am 13 Sep 2024
Copy link to clipboard 
Print this post

All,

Peter has created a very versatile platform around the RP2040 and RP2350 (pico) chips.
In the early days of PicoMite, life was pretty simple. There was a standard pinning of the chip that was supported. But since then, more and more hardware configurations became supported (audio DAC's, variable VGA pinout, etc..)
And people started playing with game controllers, and USB keyboards.

In summary, we have 20-50 more or less active members in the Pico "Community" that use 20-50 different hardware platforms.
Appart from the fact that it costs a lot of time to debug all these platforms with each release of MMBasic (an not all members have time to actively go through test runs with each MMBasic release), it is also a nightmare to make software that others can use.

I personally find this a roadblock with the games I have worked on. Should the game be controlled by PS2 keyboard ? Console ? USB keyboard ? NES controller ? SNES controller ? Nunchuck ? WII classic controller ? PS3 controller ? PS4 controller ? Game*Mite keys ? And similar (near future, or present) with the multitude of graphics modes on the RP2350 and the PSRAM yes or no.

I know it is far too late to make this call, but I would appreciate a narrowing down in all the options. Because I am not motivated to implement all possible variants (in programs) for maximum 1 user of each variant.

Why did to C64 build up such a huge collection of games: IT DID NOT CHANGE OVER 15 YEARS. You could write code for the base platform, and everyone could run it. As long as you kept to the basic machine.

I suggest we define the "2350 platform" and stick with it. If that platform is the OLIMEX, fine. Then that is what it is.

Volhout
Edited 2024-09-13 18:02 by Volhout
PicomiteVGA PETSCII ROBOTS
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4222
Posted: 08:16am 13 Sep 2024
Copy link to clipboard 
Print this post

Note that I have spend all my free time last 3 weeks testing MMBasic 6.0.0 beta ON THE RP2040 VGA platform. I did not even start with testing the USB VGA version.

If we do not limit the number of platforms, MMBasic releases will go out UN-TESTED.
And that will, long term, be bad for the acceptance of MMBasic.

Volhout
PicomiteVGA PETSCII ROBOTS
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6778
Posted: 08:36am 13 Sep 2024
Copy link to clipboard 
Print this post

There are too many options for controllers:
USB (but not all systems have it)
USB keyboard (can be unresponsive but easy to program. Not all systems have USB)
PS2 Keyboard (responsive but clumsy but easy to program. Not all systems have PS2)
I2C (good system but controllers tend to have proprietary connectors)
NES/SNES (easy to implement. Cheap controllers can be very poor, good ones difficult to find. No standard connector and all proprietary)

Please can we standardise on I2C? It's cheap with good support in MMBasic and can do just about anything. The Olimex has it too. So does the Micromite. :)

I attempted a "standard" I2C controller ages ago but got no takers and I'm not expecting any now. The main problem is in getting a suitable case and buttons that people will accept, I think. It's not feasible to have one that isn't 3D printed. The WII Classic is close to perfect in many ways but is hopelessly obsolete now (as is all the WII system).

PicoGAME attempted to give some sort of a standard but used too many GPIO pins. I would now go for a system where joysticks had to contain, or have an adapter that contained, an I2C converter chip of some sort. Don't use 5 GPIO pins when 2 will do more.
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
Turbo46

Guru

Joined: 24/12/2017
Location: Australia
Posts: 1611
Posted: 08:36am 13 Sep 2024
Copy link to clipboard 
Print this post

  Volhout said  Should the game be controlled by PS2 keyboard ? Console ? USB keyboard ? NES controller ? SNES controller ? Nunchuck ? WII classic controller ? PS3 controller ? PS4 controller ? Game*Mite keys ?


Amen.

Bill
Keep safe. Live long and prosper.
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4222
Posted: 08:45am 13 Sep 2024
Copy link to clipboard 
Print this post

@Mick,

With I2C you mean support of the WII classic controller ?
Or are you referring the a NES controller with I2C interface (that is not sold by Aliexpress).

Anyway, I think standardization can be achieved when we offer a solution. I.e. an interface from OLIMEX (if that is the platform) to the WII controller that everybody simply can put togeter or obtain cheap.

USB can also be a solution (although I don't have it yet), but then the "standardized" (RP2350) platform should have a USB connector for it (and one for the keyboard, so the platform should have minimal a 2 channel on board hub. That way you can also achieve standardization. But that platform does not exist. So it has to be created (your "beta" ?

Volhout
Edited 2024-09-13 18:52 by Volhout
PicomiteVGA PETSCII ROBOTS
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6778
Posted: 08:54am 13 Sep 2024
Copy link to clipboard 
Print this post

The hardware side should be I2C IMHO. What the actual controller is is a different question. :)

Ideally there should be a "PicoController" which connects via I2c, using a standard, easily available connector and which has a standard interface into MMBasic.

In my dreams it has a RP2040 in it as the interface. This responds to a fixed I2C address to allow its own address to be changed under software control. In this way several controllers can share the same I2C bus, unlike the WII system. The Classics all have the same address and the Pico only has 2 I2C ports.
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6778
Posted: 08:59am 13 Sep 2024
Copy link to clipboard 
Print this post

Having "our own" controller gives a fixed standard that everyone can work with.

My experiments led to one with an analogue joystick (which can also be a direction switch) and six buttons arranged as a 4-button pad + two others. Powered by a RP2040-Zero. The case problem is a killer though. :(
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4222
Posted: 09:06am 13 Sep 2024
Copy link to clipboard 
Print this post

Mick,

I understand your position. But to make this happen, we have to provide the community with controllers, and PicoMite platforms that are compatible. Is this something we can do (building PCB's, housings, cables, putting them together (some 20-50 pieces of each).

Of coarse some can be supplied as kits. But some will need to be assembled. I think the only one who has done this more or less under their own control are BigMick and Tom with the Game*Mite. Geoff is using Silicon Chips magazine to do this kind of distribution, and run the financial risk.

I think the risk would be lower if we just provide the picomite platform, and tell people that want to play games: this is what to buy. This is all there ever will be supported, so adhere to it.

Volhout
Edited 2024-09-13 19:10 by Volhout
PicomiteVGA PETSCII ROBOTS
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4222
Posted: 09:13am 13 Sep 2024
Copy link to clipboard 
Print this post

  Mixtel90 said  In this way several controllers can share the same I2C bus, unlike the WII system. The Classics all have the same address and the Pico only has 2 I2C ports.


Actually.... not needed. I created a 2 player game once (CIRCLE). No-one on the forum could play it since we are all "loners". That was in essence response I got. Then I made "CIRCLE-ONE" with single player support and AI for the second player. And that is actually used on Geoff's PicoGAME platform. And Tom's Game*Mite.

Volhout
Edited 2024-09-13 19:15 by Volhout
PicomiteVGA PETSCII ROBOTS
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4036
Posted: 09:19am 13 Sep 2024
Copy link to clipboard 
Print this post

Common sense dictates I stay out of this ...

... but I was never known for my common sense .

Mick, we need to have a pact. You will get over your obsession with I2C and RJ45 connectors and I will forswear the 4021 shift register and DB9 connector .

Assuming we are talking about a Pico based CMM2 "replacement" then IMO the standard should be USB-C power, DVI (HDMI), 3.5mm Audio jack, inbuilt 4-port USB hub with type A connectors, any spare I/O out on a user port. No PS/2.

The PicoMite USB firmware(s) includes support for various USB controllers including (I believe) PS3, XBox and SNES style (e.g. Buffalo classic USB controller), there are even "Atari" style joysticks with USB which I'm sure Peter could be persuaded to cater for if we send him one.

Hopefully @bigmik will forgive me, but he already designed a RP2040 board (with VGA rather than DVI) to this spec but I'm not sure he has ever pushed it because he was unsatisfied that the USB is a bit "flakey" ... I think this is more due to the limitations of the TinyUSB stack than anything we have control over ... personally I think the USB support is "good enough".

One (of no doubt many) problem is that the USB ICs and connector required are all SMD so not the easiest to handle in the usual "@Mixtel90 thru-hole design" (which I personally love the hobbyist aesthetic of).

Note we don't have to agree on a single board, we just need to agree on connector types and pin allocations to create an "MSX type" standard that multiple people can implement if they wish.

Dives for cover,

Tom
Edited 2024-09-13 19:21 by thwill
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6778
Posted: 09:25am 13 Sep 2024
Copy link to clipboard 
Print this post

But why be restricted by what's happening at the moment? No, we have no 2 (or more) player games *now*, but a controller could possibly be used on future platforms as we would have full control over its capabilities.

A fairly simple system is possible if you don't mind it not looking commercial. My test rig is pretty much this and could fairly easily be a PCB with top and bottom of plastic or PCB material. I used stripboard 100mm x 55mm and it's not too bad. A little wider with rounded corners might be better. It would be a fairly similar construction to the Game*Mite.
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6778
Posted: 09:30am 13 Sep 2024
Copy link to clipboard 
Print this post

  Quote  
Assuming we are talking about a Pico based CMM2 "replacement" then IMO the standard should be USB-C power, DVI (HDMI), 3.5mm Audio jack, inbuilt 4-port USB hub with type A connectors, any spare I/O out on a user port. No PS/2.


Done it. That's what's coming up. Alpha, Beta and Gamma are exactly that (but with added I2C goodness as it can be good for IO expansion). I've used a cheap USB 4-port hub module. The chip itself is easy to use though, apparently, but it's SMD only.


Alpha - the prototype. Running but doesn't count.

Bete - based on the PGA2350 and has a nice GPIO port

Gamma - based on the Pico 2. Small GPIO port inside only

All fit the same case
All use the same ports
All have very similar circuit & BOM

Front & rear panel PCBs will be available to fit the case

There will be a version of Gamma with no surface mount soldering at all.

From my manual:
  Quote  
Ports Used

GP0 I2C SDA Front panel - with optional pull up resistor
COM1 TX Front panel (and ESP8266 RX on Gamma)
GP1 I2C SCL Front panel - with optional pull up resistor
COM1 RX Front panel (and ESP8266 TX on Gamma)
GP2 I2C2 SDA System I2C and front panel (with fixed pull up resistor)
GP3 I2C2 SCL System I2C and front panel (with fixed pull up resistor)
GP4, GP5, GP6, GP7 micro SD card
GP8, GP9 Console serial port
GP10, GP11 PWM audio
GP12 to GP19 Video output
GP20 WS2812B data signal

Additionally, on the Beta system the ESP8266 signals are connected as follows:

GP28 COM1 TX ESP8266 RX
GP29 COM1 RX ESP8266 TX

This allows COM1 to be used by the ESP8266 and I2C to be used via the front panel simultaneously, a feature not possible on the Gamma due to there not being alternative pins available for COM1.


.
Edited 2024-09-13 19:43 by Mixtel90
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
Gerad
Regular Member

Joined: 10/01/2024
Location: Germany
Posts: 42
Posted: 09:46am 13 Sep 2024
Copy link to clipboard 
Print this post

Hello
What I don't understand, picomite has the wonderful advanced graphics. Webmite does not. Why ? This is something I really miss. Is it a problem with wifi ?

Gerad
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4036
Posted: 09:56am 13 Sep 2024
Copy link to clipboard 
Print this post

  Gerad said  Hello
What I don't understand, picomite has the wonderful advanced graphics. Webmite does not. Why ? This is something I really miss. Is it a problem with wifi ?

Gerad


No, it's a problem with computing resources, the RP2040 has enough to do VGA graphics or it has enough to do WiFi, it doesn't have enough to do both at the same time.

Best wishes,

Tom
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4222
Posted: 09:58am 13 Sep 2024
Copy link to clipboard 
Print this post

  Gerad said  Hello
What I don't understand, picomite has the wonderful advanced graphics. Webmite does not. Why ? This is something I really miss. Is it a problem with wifi ?

Gerad


Memory...??? In Webmite you can create a framebuffer, but that is single layer.

Volhout
PicomiteVGA PETSCII ROBOTS
 
PhenixRising
Guru

Joined: 07/11/2023
Location: United Kingdom
Posts: 857
Posted: 10:02am 13 Sep 2024
Copy link to clipboard 
Print this post

For me, these are happy problems...so much activity, development and options.

Exciting times  

"CMM2 replacement"????
Say it isn't so. I'm only now discovering the new V2 and it has me seriously excited.
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6778
Posted: 10:08am 13 Sep 2024
Copy link to clipboard 
Print this post

My PZController test rig.


and my idea for a PCB. It got longer, as I mentioned. The RP2040-Zero is soldered to the back of the board. Only rear protection is needed with this arrangement, which makes life a lot easier.


Yes, Tom, I don't mind changing to USB for a controller standard at all. It's just a case of making sure that USB is always implemented on systems that will be used to play games.
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4036
Posted: 10:11am 13 Sep 2024
Copy link to clipboard 
Print this post

  PhenixRising said  For me, these are happy problems...so much activity, development and options.

Exciting times  

"CMM2 replacement"????
Say it isn't so. I'm only now discovering the new V2 and it has me seriously excited.


I quoted "replacement" in my statement, the CMM2 doesn't need replacing ... though I'm still not a fan of it's Wii controller scheme. However it does sometimes seem like:

  Quote  “The CMM2 are extinct, their fire has gone out of the universe. You, my friend, are all that's left of their religion.”


... and that the best bet for excitement and new interest is coming from the Pico.

Best wishes,

Tom
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4036
Posted: 10:17am 13 Sep 2024
Copy link to clipboard 
Print this post

  Mixtel90 said  My PZController test rig.


It's very nice Mick and I'd be very proud to have concocted it myself, but with regards standards it is IMO a dead-end.

  Quote  Yes, Tom, I don't mind changing to USB for a controller standard at all. It's just a case of making sure that USB is always implemented on systems that will be used to play games.


I think @Volhout is suggesting that "we" set a standard and say "this is it for games playing, like it or lump it".

Best wishes,

Tom
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6778
Posted: 10:58am 13 Sep 2024
Copy link to clipboard 
Print this post

IMHO Volhout is right. The difficult bit is to find the standard to use. There are so many of them to choose from. :)

This is *exactly* why PZee-control was thought up. There are no standards, every games console has its own and even when they are similar they have different connectors. The only thing approaching a standard is the Atari "5-switch" joystick with it's original, standard wiring. My thoughts were that with our own standard we aren't at the mercy of the games market controller availability. We have the power to define *everything* about it, hardware, firmware & games.

Basically everything except a keyboard or the aforementioned joystick is a dead end at the moment - there are no alternatives. If we want anything more we have to either create it or find a commercial device and hope that it will still be available in the future.
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
     Page 1 of 5    
Print this page
© JAQ Software 2024