6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Sun Nov 24, 2024 7:18 am

All times are UTC




Post new topic Reply to topic  [ 32 posts ]  Go to page Previous  1, 2, 3  Next
Author Message
PostPosted: Fri May 12, 2023 4:42 pm 
Offline
User avatar

Joined: Sat Dec 01, 2018 1:53 pm
Posts: 730
Location: Tokyo, Japan
BigEd wrote:
Hmm, yes, good point, barely any RAM...

Well, barely any by Arduino standards. But you can do some pretty nice things in a system with 128 bytes of RAM, I think. (Maybe even an entire video game console! :-))

I think you could do a pretty decent environment with similar aims to the Arduino ecosystem by building it around something like the W65C134S (192 bytes RAM, 4K pre-programmed ROM). It would be similar in that you'd have an IDE and a set of libraries, and you could plug in the board and push a button to flash your code.

Major differences would be that you'd have to have an additional chip for external EEPROM, the IDE would be pretty different because you'd be programming in assembler, not C, and, especially, the IDE would include a simulator so that novice programmers could test and debug their code a lot more easily. (It's just too hard for novice assembly programmers to debug machine-language running on the board itself, I feel.)

And of course the educational value would be much more about "close to the metal" programming, and less about "look at this cool device I produced that can read music files off a FAT-formatted SD card and play them back," or similar relatively large and memory/CPU-intensive projects.

I already have some of this in my personal 8-bit development system, though it doesn't have (and never will have) an IDE, because spending all that effort to make my life more painful just doesn't work for me. (Yeah, I'm more extreme about the command line than even Gordon is.)

_________________
Curt J. Sampson - github.com/0cjs


Top
 Profile  
Reply with quote  
PostPosted: Fri May 12, 2023 5:33 pm 
Offline
User avatar

Joined: Wed Feb 14, 2018 2:33 pm
Posts: 1488
Location: Scotland
cjs wrote:
I already have some of this in my personal 8-bit development system, though it doesn't have (and never will have) an IDE, because spending all that effort to make my life more painful just doesn't work for me. (Yeah, I'm more extreme about the command line than even Gordon is.)


Then you'll love this:

The current cool thing is to connect your MCU to a PC via USB where it looks like a disk drive, write the code in a web browser (or other IDE) then drag the code to the drive of the MCU and watch it execute.

This is real and works today in things like the BBC Micro:Bit and is the plan for the Neo6502:

https://olimex.wordpress.com/2023/04/21 ... r-project/

and who knows what next.

-Gordon

_________________
--
Gordon Henderson.
See my Ruby 6502 and 65816 SBC projects here: https://projects.drogon.net/ruby/


Top
 Profile  
Reply with quote  
PostPosted: Fri May 12, 2023 5:45 pm 
Offline
User avatar

Joined: Wed Feb 14, 2018 2:33 pm
Posts: 1488
Location: Scotland
cjs wrote:
BigEd wrote:
Hmm, yes, good point, barely any RAM...

Well, barely any by Arduino standards. But you can do some pretty nice things in a system with 128 bytes of RAM, I think. (Maybe even an entire video game console! :-))


In the early 80s when I was doing my research into factory automation at uni, we designed our own 6502 boards which were effectively the Arduino of the day - they were the actual controller boards - actually a 2-board system, one with the CPU, RIOT and UV-EPROM and the other with the opto isolators, relays, etc.

It had a 2 or 4KB EPROM and just the 128 bytes of RAM in the RIOT... Seems tiny, but it was far more than enough. Serial was bit-banged to 1200 baud and high-ish level commands were sent to it from the host systems (Latterly a BBC Micro) Each "station" had one of these units and it controlled robots, loading and unloading mechanisms for the machine tools, a bar-code reader to identify pallets on the track and the track control. I wish I had photos of it all, but we weren't as snap-happy back then as we are now..

The original Arduino had 2KB of RAM and 32KB of Flash (and 128 bytes of NVRAM) and I have used them over the years for some quite complex small systems automation projects - they make a great prototyping system before I then make the "proper" system - or at least that's the plan, but 90% of the time, they remain as working prototypes complete with an Arduino2009, Uno, etc. and my own custom IO board(s)

This sort of thing should be possible, but even the 65c134 lacks a lot of the IO required and still needs external RAM and Flash to be usable, sadly, so "steampunk" microcontroller yes, but real-life "IoT" ... nope...

-Gordon

_________________
--
Gordon Henderson.
See my Ruby 6502 and 65816 SBC projects here: https://projects.drogon.net/ruby/


Top
 Profile  
Reply with quote  
PostPosted: Fri May 12, 2023 5:57 pm 
Offline
User avatar

Joined: Sat Dec 01, 2018 1:53 pm
Posts: 730
Location: Tokyo, Japan
drogon wrote:
The current cool thing is to connect your MCU to a PC via USB where it looks like a disk drive, write the code in a web browser (or other IDE) then drag the code to the drive of the MCU and watch it execute.

Yeah, but you need a USB FIFO or serial port or similar for I/O anyway, so I reckon why not keep things simple and just use that for transferring your programs as well. Then you don't even need a microcontroller to handle the interface; you can just have your retro CPU do the work directly.

Quote:
...but even the 65c134 lacks a lot of the IO required and still needs external RAM and Flash to be usable, sadly, so "steampunk" microcontroller yes, but real-life "IoT" ... nope...

Yeah, that's another dividing line between the two world. On the learning side, I was above talking about whether you want to learn high-level (uint16_t x; x = 0x00ff; x++) or low-level (learn how to use a carry bit) programming. For anything connected to the Internet you have to have cryptography, and that's far beyond even an AVR, much less a 6502. Arduino got into that area by porting the libraries to ESPs and suchlike that have network co-processors that handle the protocols and the crypto.

_________________
Curt J. Sampson - github.com/0cjs


Top
 Profile  
Reply with quote  
PostPosted: Sat May 13, 2023 6:05 pm 
Offline
User avatar

Joined: Fri Aug 03, 2018 8:52 am
Posts: 746
Location: Germany
actually this reminds me, i once planned to make a 65C02 or 65816 SBC in an arduino form factor so i could use it with one of those TFT Display + SD Shields.
Attachment:
2b26d6dcb22c1962584eb2b6656f6600dc1ab60f_1024_1024.jpeg
2b26d6dcb22c1962584eb2b6656f6600dc1ab60f_1024_1024.jpeg [ 81.79 KiB | Viewed 1015 times ]

with the idea being that the entire thing could be self contained using the touchscreen as user input, the display as output, and the SD card to hold programs and such.
and if you were to slap a Li-Po battery + protection/charging circuitry on the back, you'd have a functional SBC without needing external wires... like a smartphone but worse in almost every way! :lol:

i made a rough layout for it to see if it were even possible to fit everything between the 2 connectors of the shield:
Attachment:
kicad_vHzzVZe5h7.png
kicad_vHzzVZe5h7.png [ 247.73 KiB | Viewed 1015 times ]

and it seems like you can, and also stay below 100x100mm PCB size!
this board has a 65C02, 65C22, an SST39SF Flash (maybe like 8kB?), 128kB of RAM (maybe banked?), an ATF1504, and an FT240X for Serial.
this would already be quite the feature rich SBC, but keep in mind that i just placed stuff wherever it fit. so i didn't put any thought into routing all of this, so a 4 layer PCB might be required... which gets pretty pricey.
using the *FQP version of the 65C02 and 65C22 would free up quite a lot of space that would allow things to be placed a bit further apart from eachother, which would make routing easier.
and it might also be possible to use a 65816 instead of a 65C02, because there is only 128kB of RAM you would only need to capture 1 bit from the multiplexed Data/Address bus, which the ATF1504 should be able to handle.

.

anyways i'm sorry if this doesn't really fit the topic, as it's more of a standalone SBC that is compatible with an Arduino shield, instead of being an SBC that aims to be as porgammable as an actual Arduino...


Top
 Profile  
Reply with quote  
PostPosted: Sat May 13, 2023 6:44 pm 
Offline
User avatar

Joined: Sat Dec 01, 2018 1:53 pm
Posts: 730
Location: Tokyo, Japan
Proxy wrote:
anyways i'm sorry if this doesn't really fit the topic, as it's more of a standalone SBC that is compatible with an Arduino shield, instead of being an SBC that aims to be as porgammable as an actual Arduino...

Well, in that way it does fit into the topic, since the original device is, as best I can tell, also a standalone SBC that is compatible with an Arduino shield. Yours is just better designed, far more capable, and doesn't use parts that are really hard to get these days (such as a RIOT).

I think "SBCs based on 1970s CPUs compatible with Arduino shields" is kind of a niche market, but then again, so is "SBCs based on 1970s CPUs." If you're going to design and build your own (which everybody and his dog seems to be doing in the retrocomputing world, because it's educational and fun) you might as well design it to use whatever peripherals you find convenient.

_________________
Curt J. Sampson - github.com/0cjs


Top
 Profile  
Reply with quote  
PostPosted: Sat May 13, 2023 9:19 pm 
Offline

Joined: Tue Jul 05, 2005 7:08 pm
Posts: 1043
Location: near Heidelberg, Germany
That all gives me the idea if WDC does not want to include Flash technology into their designs, they could probably make a new version of the 65134 that has internal RAM and does an IPL from an SPI based flash. That would really free a lot of IO on that design

_________________
Author of the GeckOS multitasking operating system, the usb65 stack, designer of the Micro-PET and many more 6502 content: http://6502.org/users/andre/


Top
 Profile  
Reply with quote  
PostPosted: Sat May 13, 2023 9:28 pm 
Offline
User avatar

Joined: Fri Aug 03, 2018 8:52 am
Posts: 746
Location: Germany
a 65C134/265 with hardware SPI that could boot from an external SPI Flash (and has more onboard RAM) would be such an upgrade over the current chips.
sadly, designing new chips is immensly expensive so i honestly doubt WDC will ever release any new or updated chips.


Top
 Profile  
Reply with quote  
PostPosted: Sat May 13, 2023 9:31 pm 
Online
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8546
Location: Southern California
fachat wrote:
That all gives me the idea if WDC does not want to include Flash technology into their designs, they could probably make a new version of the 65134 that has internal RAM and does an IPL from an SPI based flash. That would really free a lot of IO on that design

Check out https://wdc65xx.com/fpga-microcontrollers/

_________________
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?


Top
 Profile  
Reply with quote  
PostPosted: Sun May 14, 2023 4:51 am 
Offline

Joined: Fri Dec 21, 2018 1:05 am
Posts: 1120
Location: Albuquerque NM USA
The problem with Arduino form factor is while it is relatively roomy, 2.1"x3.7" for Arduino Mega, it is not very tall. Such that PLCC can not be socketed--it must be solder down directly. This is a design based on Z80 but you will see the parts are soldered down directly in order to fit inside the Arduino Mega enclosure.
Bill


Attachments:
Zuno.jpg
Zuno.jpg [ 1.58 MiB | Viewed 968 times ]
Top
 Profile  
Reply with quote  
PostPosted: Sun May 14, 2023 7:51 am 
Offline
User avatar

Joined: Fri Aug 03, 2018 8:52 am
Posts: 746
Location: Germany
but the design i showed had them socketed, and fit...?

anyways here a modified mockup that uses the QFP packages:
Attachment:
kicad_PzKZ2wvDIL.png
kicad_PzKZ2wvDIL.png [ 338.37 KiB | Viewed 959 times ]

it does leave a bit more space for the other ICs


Top
 Profile  
Reply with quote  
PostPosted: Sun May 14, 2023 10:41 am 
Offline

Joined: Wed Jan 08, 2014 3:31 pm
Posts: 578
With regards to the height issue. Couldn't you use the headers with the extra long legs and solder them not fully inserted into the PCB? That would allow the shield much more headroom over the IC's.


Top
 Profile  
Reply with quote  
PostPosted: Sun May 14, 2023 12:17 pm 
Offline

Joined: Fri Dec 21, 2018 1:05 am
Posts: 1120
Location: Albuquerque NM USA
The head room restriction is because I want to take advantage of the inexpensive acrylic enclosure readily available on eBay and AliExpress. With custom enclosure it is certainly possible to have more head room.

It is still possible to install low-profile SMT socket on PCB with SMT PLCC footprint but the soldering is fairly tricky. This is a 68K design running CP/M-68K; its flash and CPLD are socketed using SMT sockets and fit within the standard enclosure.
Bill


Attachments:
Kuno.jpg
Kuno.jpg [ 252.33 KiB | Viewed 934 times ]
Top
 Profile  
Reply with quote  
PostPosted: Wed Aug 09, 2023 12:11 pm 
Offline
User avatar

Joined: Sun Dec 26, 2021 8:27 pm
Posts: 182
Thank you all for the comments about my 65uino!

I know it seems almost comically limited but that's absolutely by design. With the 128 bytes of RAM and 4k of ROM you can actually get quite a bit done.

I touch on a few of the comments from this thread in my new video about the serial bootloader :)

https://youtu.be/nOmQd3y3pDw

_________________
---
New new new new new video out! Serial Bootloader for my 65uino
Also, check out: I2C on a 6502 Single Board Computer
and Complete hardware overview of my 6502 SBC R1 :)


Top
 Profile  
Reply with quote  
PostPosted: Wed Aug 09, 2023 4:33 pm 
Offline
User avatar

Joined: Mon Mar 06, 2023 9:26 am
Posts: 88
Location: UK
It's kinda mad to think that a modern CPU could have twice that much in registers alone (32 64-bit registers is 256 bytes)

_________________
probably the youngest person on this forum


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 32 posts ]  Go to page Previous  1, 2, 3  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: