How to fix permission denied flashing Prusa Firmware on Arch Linux

I ran into a permissions issue flashing an update to my 3D printer “Prusa MK3S+” on Arch Linux and the fix was easier than expected.

For background, this is my first time doing this so I wasn’t too sure about the procedure, the printer beeped before print to let me know there’s newer firmware available and I should upgrade. I checked online and found these instructions on the Prusa help site for how to flash firmware. It seems easy enough:

  1. Connect the printer to the laptop with USB
  2. Go to Menu → Configuration → Flash printer firmware
  3. choose the .hex file you downloaded from the Prusa website

that’s it!

However, when I clicked the “Flash!” button I got the following error message from the flasher’s log output:

avrdude-slic3r: ser_open(): can't open device "/dev/ttyACM0": Permission denied
avrdude-slic3r: Could not open port: /dev/ttyACM0

Continue reading →

Ebiten vs PyGame

The following is a copy of a response I wrote to a university student asking in the Ebiten Discord server whether they should use Ebiten or PyGame for their first time making a game:

Having used both I can say that PyGame provides much more out of the box but that this is not just a pro but also a con. For example in pygame there is a concept of “sprite” that has movement and you can tell it move left, move right etc. In Ebiten it surprised me to find that there is no such thing but it’s nice for two reasons: Continue reading →