Close
0%
0%

Wifi enabled Arduboy dev kit

Removing enough of the AC164160 AVR-IOT WG Development Board stock firmware to accommodate a full Arduboy game and some custom traces

Similar projects worth following
AC164160 AVR-IOT WG Development Board was released late last year. Then, in the early days of 2019, 3D gaming came to the Arduboy platform with the release of Starduino, a Star Fox inspired 3D rail shooter. Coincidentally, I found myself in need of a term project idea around this time.

Ultimately, I choose to democratize 3D capability for the largely 2D gaming platform. To debug and establish frame rate data for my term project, I created a shell application for the AVR-IOT WG board that retained standard socket communication, but allowed for an entire Arduboy game to be compiled within the newly reclaimed flash storage and SRAM data space.

This tool helped me create the Rush demo, which I hope with bring more community generated 3D content to the platform.

The project builds in the Atmel Studio 7 IDE. While the direct cloud publishing feature has been lost, connecting to a local server to publish data is easily accomplished. Included is a great deal of pin fakery,  so  do not expect full audio and video from the 4808.  The goal of this project is to enable a new level of debugging for more established game engines on the Arduboy.

While the system does still require Arduboy games to be under their maximum size, Shadow Runner has been ported along with an entirely new demo that renders STL files on the console. 

Specifically, my fork of the demo application for the AVR-IOT board compiles to 23KB program memory, uses 1.3KB dynamic memory, and tracks instructions via an on-board hardware counter. Games under 24KB can run inside the main program loop, enabling custom debug routines over wifi. As a bonus, AVR IOT first games can benefit from an additional 2KB free SRAM available on the debugger while on their way to a full Arduboy release. Stick drive form factor for convenience.

The savings definitely significant. Out of the box the IoT demo uses 2488b of data memory(40.5 % Full) and 39586b of program memory( 80.5 % Full) . 

For the Rush demo, I made a continuously updating frames per second  chart shown in the gallery using C#.

Standard Tesselated Geometry - 11.63 kB - 04/21/2019 at 03:04

Download

  • 1 × USB Micro to USB A Adapter UCEC USB 2.0 Adapter - A-Male To Micro-Male
  • 1 × AC164160 AVR-IOT WG Development Board ATMega4808 based development board with Google Cloud integration
  • 2 × 3D printed shell

  • Relevant Code Snippet

    Blake W. Ford04/21/2019 at 03:14 0 comments

    int main(void)
    {
        application_init();
    
        //Standard Arduino function
        setup();
    
        TCA0.SINGLE.PER = ~0;
        while(gKeepGoing)
        {
            gReportedVerts = 0;
            TCA0.SINGLE.CTRLA |= (TCA_SINGLE_CLKSEL_DIV1024_gc) | (TCA_SINGLE_ENABLE_bm);
    
            //Standard Arduino function
            loop();
    
            TCA0.SINGLE.CTRLA &= ~TCA_SINGLE_ENABLE_bm;
            gCycleCount = TCA0.SINGLE.CNT;
            TCA0.SINGLE.CNT = 0;
    
            runScheduler();
        }
    
        return 0;
    }

View project log

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates