Getting started Again

I was part of the Kickstarter, but I haven’t been on the site since 6 months after the hardware arrived. I’m having trouble getting started again and have a few basic questions:

  1. I installed the FX chip into my Arduboy. How do I update the pre-installed list of games to include my own?
  2. Is development in Python a thing now? How do I get started writing games in python?

Hints or links to related threads will be greatly appreciated.

No. The Arduboy does not run Python, it doesn’t have the resources.

Python is dynamically typed and bytecode based, so you need a faster CPU with more memory to be able to make any decent sized program with it.

Theoretically you could potentially run a very minimal version of Python on the Arduboy, but it would probably be so minimal that it would be too impractical to make any decent sized program with it.

The Arduboy uses C++.

Other compiled languages like C and Nim are possible, but there’s no standardised infrastructure for them, so any use of any other language would take a fair bit of work to set up.

Thank you. Skimming through the new messages I saw “Python” popping up in the the message summaries and I thought that someone had ported micro-python to the arduboy; I just wasn’t seeing any messages describing how. It requires 256k of memory to pull off, but I thought with the FX chip that someone may have figured it out.

Not in the cards. :slight_smile:

Thanks again.

1 Like

Probably because most of the tools for transferring data onto the FX chip are Python scripts.

Data on the FX chip isn’t directly executable and can’t (practically) be written to at runtime. I.e. it’s only really useful for readonly data.

That’s not a bad thing though. There’s a lot you can do with readonly data.

Theoretically you could have a bytecode-based scripting language, but it would have to be more low level or more specialised than Python.

I’m not sure where you got the 256KB metric from though (I’ve never been able to find a decent metric for micropython’s requirements), or whether that’s supposed to be for the interpreter itself or includes space for object allocation.

I pulled the 256k number off of the homepage for micropython. It requires 256k of program space and 16k of ram. I imagine that the running interpreter requires much less space than a shell you can type in.

Ah, I see. (I missed it the first time because I had ‘Whole Words’ toggled on my search bar.)

Yeah… that’s not happening.

Arduboy’s AVR chip has 32KB of flash/progmem (of which 4KB is reserved for the bootloader) and 2.5KB of RAM (of which 1KB is used by the screen buffer). As I mentioned before, you can’t execute machine code directly from the FX chip, so even if you had a 256KB chip it wouldn’t make a difference.

These kinds of metrics (measuring the resources a program uses) are never perfect anyway - the same source code will compile to different sizes depending on the architecture and optimisation settings.

Probably not that much less. The most expensive part of a shell is usually the font rendering code (and any extra fancy features like command history). If you stick to a fixed-width font and store it as a grid of letters, and maybe don’t have any fancy features (like command history) then it’s probably not that expensive.

If you separated the two, the interpreter itself is almost guaranteed to be much larger than the shell simply because parsing can be quite complex.

At any rate, running a REPL on a system without a keyboard would be a bit pointless. :P

The stuff you need for making your own new flash cart is here:

I’m going to work on making a more clear example once the FX finishes production and ships. I think there are some tools that will come out that make it easier too. I’d like to make it a drag and drop interface.

1 Like

Thanks for the info. It is in interesting coincidence that I happened back onto the site just at the FX was making its debut. :slight_smile: I”m doing research for a summer “Game Design” course that I am teaching. I am hoping the Arduboy will fit in. Maybe I will start working on those tools myself.

Okay, I read through the home page of the GitHub site. And I think I get how the update works on both the Windows and Arduboy sites. Here is my next question for you:

How does flash bin file get updated? The obvious goal is to build it to include the games the students have developed. Is there a simple “How To” Hiding somewhere?

1 Like