The Arduboy is ALMOST exactly what I was looking for. How involved would it be to use what you’ve made here to make a homemade version of my own with some minor differences?
At least 120x100 screen (black and white, like Arduboy)
At least 100KiB ROM
At least 8 buttons (i.e. D-pad, start, three action buttons)
Support two square waves, a triangle wave, and a noise channel (right now it supports two notes?)
Is this something like “buy slightly different parts and you can put it together,” or “you’d need to create most of it from scratch?”
There is no display that are with such resolution. You got128x96 ones, but they are rare.
You also want to look for SPI interface (6-7 pins), and SSD1306(or 1309) as display driver.
Keep in mind that 128x64 is what most people (include me) have.
You need quite some hacking to get it to work. @Mr. Blinky can probably tell you more.
When you get your own Mega32U4 chip, you can add as many buttons as you wish.
Remember that most people only have 6 buttons, though.
That, you will have to look at the Arduino Leonardo data sheet.
If it don’t then it don’t. But it’s probably more capable than what you think it can.
Half-half.
If you know how to solder to solder, the you’d have a head start.
If you don’t, you can also bread-board your Arduboy.
The instruction set is basically the same (maybe even identical), although I think the cycle count for some of the instructions is different (to account for the increased progmem address space). The bigger differences are probably going to come from the peripherals, specifically the timers, and the lack of native USB on the one chip. A custom Arduboy2 lib should hide all the differences (except for the lack of native USB for the few apps that use it).
There is also a thread on these forums (with some source code) for the Smart Response XE that uses a similar ‘enhanced’ AVR chip (ATmega128RFA1).
@CDR_Xavier Thanks for the warm welcome! @Pharap Thanks for finding that screen. I don’t know how fast I2C is in practice. 30Hz would be OK as far as refresh rate. As far as binary compatibility, it would be nice-to-have, of course, but I would plan to make my own games mainly so it wouldn’t be a big deal if it didn’t exist. @serisman I think if I actually did do this, I’d want to use the ATmega1284P with a controller chip, that way I could connect it to a controller with USB Type C form factor. @Dreamer3 I have no idea how sound works on the Arduboy. Is it all in software right now?
My takeaway here is that there is not a binary-compatible microcontroller with at least 128KiB flash memory and USB support, and I would probably have to make library changes to get this sort of thing working. That sounds like it might be beyond the scope of what I have time to do right now.
Well, the speaker is wired to one/two? ADC pins… so with the ADC and hardware timers you can essentially send out 8-bit audio… you just have to mix it (if you have multiple channels/noise/etc) to a single 8-bit channel. Or you can do simpler things like just blinking the pin on/off at a certain frequency (ala, tones) to produce a single tone.
Wait, maybe it’s 10-bit audio… I forget, though that’s harder to mix since you’re on an 8-bit CPU (at least the Arduboy proper is).
So while 30FPS is technically possible if you limit the display to 120x100, it would consume 90% of the processor’s time? Too bad. Sounds like I would definitely need to a different display, then.
I found out (with my display tests, and arduboy emulator) that the resolution of the screen sometimes does not really matter
Sometimes it’s simply the size. While the 1.3 inch screen requires very good eye sight persons to view the tinyfont, the 1.54 inch screens are much more clear.
I am looking for big 128x64 ones with SSD1306 via SPI too.
unrelated
Which one does Arduboy ran on? 4 pin SPI or 3 pin SPI?
My 0.96 display support both SPI, plus IIC.
He didn’t specify the driver, though. :(
I just need to hope it’s SSD 1306.
Is SSD 1309 compatiable with SSD 1306? I thought Mr.Blinky had a few issues with pixels moving to the right…