Hi. New to the Community

Hi all! As someone who grew up in the 80’s (o.k. let’s get the old man jokes out of the way), let me just say I think this is da bomb! So my journey to here started a few years ago. When covid hit, I needed a hobby and soon got into collecting and restoring vintage LED/LCD watches. I always loved them growing up. For those of you laughing at how “lame” they are - you need to remember that even as recently as the 1990s - there were no smartphones (at least not as capable as what we have today) so the digital watch was the portable information system. Just as phones started to take over, the digital watches got to the point where they were digital organizers and some of them even played games.

About a year ago, I started watching some videos on arduino and various microcontrollers. They seemed really cool and I liked both the hardware and software aspects of them. Certainly fit in with my interests of digital watches and other portable tech. Then it hit me: Make my own digital watch from a microcontroller! Game on. So I started learning to program esp32 microcontrollers because I wanted the watch to be able to set itself via wi-fi. I also learned a ton about hardware and even designed the pcb (all this was in the last 12 months or so). I am at the point where I have a nice prototype hardware setup on a breadboard (see attached). I have written about 60% of the code for the watch to include the menu system. As I said, I have a pcb mainboard designed and on it’s way. BUT one of the things I really wanted to include is a couple of games. So I did a search and VOILA here I am.

So this is my question: Can the Arduboy games and/or environment be run from within my watch code? I am using an SH1106 oled and have 4 total buttons and a piezo buzzer. I would need a way to map my buttons and sound to the Arduboy inputs. I am not sure if I am really looking to see if I can use an emulator to play the games or just a way to launch the Arduboy from within my code. Although I will say, I am not looking to make this a gaming console…it is a watch that has a FEW (maybe 5 or 6) games.

Any advice? Also, I do respect what this community has done and have no problem purchasing an Arduboy or donating to the community since there has been a lot of great work done here.

Thanks in advance!
Fish

1 Like

You may wish to look at the ESPboy for inspiration, although it’s based on the ESP8266 , not ESP32. @ESPboy (Roman) has ported most of the Arduboy libraries to it, as well as a good number of Arduboy games.

1 Like

I’ve been curious to port to the ESP32 but as far as I know nobody has done it with the entire library. I’ve got individual games running a couple times but it was using an adapted version of the u8glib library.

As far as I understand the ESP8266 and ESP32 are different enough that the library may not be of much help any more than starting from the 32u4 but I’m not the expert!

Hi and welcome to the community. I actually made a little ESP32 device a while ago that I was eventually going to port Arduboy games to, but never did. If I feel a little inspired today or this week, I may try get part of the library ported to the ESP32. Better than just having the thing sit on my desk and collect dust lol.

Good luck with your watch, looks good!

I’ll check it out. Thanks!!

Hi. Yes, the u8g2 library is what I am using. The dev (oliver) is extremely responsive to questions on github. He has even implemented user suggestions from time-to-time. Anyway, I’m not advanced enough to know how to port to the esp32, but i’ll look into it and Scott’s suggestion on ESPboy.

I will look at the ESPboy. Also, feel free to be inspired…lol

Thanks for the response! You guys are a really helpful bunch!

Fish

Oops, sorry, accidentally typed the wrong thing there. I meant my device, not the ESPboy.

Hey Ard:
Have you seen this port? ESP32_Arduboy/src at master · tonym128/ESP32_Arduboy · GitHub
It looks like there was an attempt to integrate a bunch of different displays. I’m working with the basic SH1106. Anyway, I am still looking around to see if anything was done for the esp32 but this is all I can find. I love all the work that has been done here and would really like to adapt the Arduboy environment so that I can run some .hex files from other projects - but as a beginner, it is just way over my head. When I am done my watch, I may circle back around and spend some time messing here.

Fish

I don’t know what ‘other projects’ you mean, but .hex files contain machine code, so they’ll only run for a device with the same architecture and pin configuration as the one they were compiled for.

E.g. a .hex compiled for Arduboy would only run on a compatible AVR CPU with the same pin layout and hardware configuration (including an SSD1306-compatible screen over SPI).

Often you’re better off recompiling from source.

Theoretically it is possible to make an AVR emulator on ESP32 and then it will be able to play hex

It is, but writing an emulator is typically a lot more effort than porting a few libraries.

1 Like

Though if the source isn’t available for the program and you only have the .hex file, you might need an emulator.

1 Like

As far as I’m aware there’s only one game to which that applies - Starduino.

There may be more, particularly in cases where a game has been published outside of the forum (e.g. on a blog or Twitter, or on GitHub with no corresponding forum topic), but that’s still likely to be a small minority of games.

(If you want to get technical, there’s also a number of games that don’t have licences or use non-permissive licences which mean you’re technically not allowed to recompile them for other platforms, but in practice that isn’t likely to be an issue.)

That’s not to say it wouldn’t be desirable to have an emulator rather than porting libraries, just that the required effort likely outweighs the benefits.

Though now at least thanks to @brow1067’s work there’s at least something in a suitable language to use as a basis for creating something that might run on ESP, so it might be a bit less work than it otherwise would have been (but still more work than porting the Arduboy2 library).

1 Like

@fishbone wants to be able to run different Arduboy games from their own digital clock shell. there aren’t many ways to do that. the emulator is one of them. maybe it’s also possible with some recompiled to native ESP32 code Arduboy games and using ESP32 RTOS functions to switch between tasks. but I’m not sure.

Hey all:
Like I said, I’m really new to this so I can’t help but feel this discussion is the result of me asking a stupid question. I am dedicated to the esp32 for my current project but maybe when I finish that, I could circle back to the Arduboy and the ATmega32 chips and get some experience with the software running on it’s native platform. However, I think you guys all rock and I like this community.

Fish

I haven’t. I’ll look into it to see what tonym128 did and see if it’s something feasible for someone of my skill level.

Oh, right. I’m working with an ST7789 (though I forgot if it was one of the variants or just the standard one).

Just got my thing out of it’s shelf and downloaded the Arduboy2 source code! I’ll attempt to port the library maybe this evening, or at least this week. Don’t know if I’ll try getting the audio working since my device doesn’t support audio, but I’ll first try getting input and the display working.