I want to make my first hardware project and I've heard a lot about the Arduino so I'm asking here to see if it will work for my needs. (* ^ ω ^)
My goal is to have an alarm clock, the LCD screen will be very simple, typical digit display where the digit lights that make up the numbers and stuff can be turned on or off (I guess another word is not pixels but digit lights if that makes any sense) --- However if it's overall easier to have an LCD screen that would also work and I can just render the digits like emulating them.
I would ideally want a 4Mhz processor but 8Mhz will do since it seems to be more common. I do want onboard ROM and SRAM as being pretty important but I need an address space at least up to 0x4FF, but 16-bit address space bus would be most ideal.
With my rough markup, I want 0xFF amount of internal ROM but I may double that, I want external ram and external rom via an SD card that's banked each 0xFF in size (more on that below and again may double those numbers), Non-battery backed internal RAM of 0xFF in size, and a section of RAM reserved for hardware control of size 0xFF (individual digits lights, sound, etc...). I want the processor to linearly have access to this space from address 0x000 to 0x4FF even though they may reside in different components
Part of the control RAM will be internal banking bytes at fixed location to determine banking number for reading from external rom and reading/writing to external ram
In an ideal situation, the internal ROM will just contain very minimal code to prepare to run off the SD Card which will then take over and run the clock. at any time the SD Card could be removed as well as any External RAM data that was programmed to be saved, modified, deleted, whatever, then placed back in the clock effectively allowing reprogramming of the clock or giving a totally different purpose, it'd be up to me.
Internal RAM would just be temporary working RAM for when the clock is on and for the programming to use and the control section of the internal RAM also an additional 0xFF bytes would be for actual rendering and direct control
If your wondering what the point of this is, theres absolutely no point at all, it's more or less a life-long dream to accomplish I just never got into hardware before to accomplish it. It just seems super cool to be able to have total control over the internal workings of something as simple as an alarm clock and to have a full capability to hack around with it, make it do different things, or perhaps make a game or something crazy with those 9 or so lights, maybe even a config screen or multiple screens, maybe change the audio pulsing, maybe have a customizable greeting message, I don't know the sky would be the limit on this completely pointless but fun sounding project (⌒‿⌒)
Here's the rough memory map I have in mind (⌒ω⌒)
0x000-0x0FF - Internal ROM
0x100-0x1FF - External ROM on SD Card
0x200-0x2FF - External RAM on SD Card
0x300-0x3FF - Internal RAM
0x400-0x4FF - Control (Digits, Sound, External Banking etc...)
But I'm posting here not just to ask if Arduino would be suitable but if things need to be simplified much further, like if I'm going over the top and it'd be better to just have 1 form of memory for example or something or I dunno, I'm willing to take other suggestions (´・ᴗ・ ` )
Thanks in advance (๑˃ᴗ˂)