Arduboy

   Arduboy is an [1]Arduino-based, extremely tiny indie/"retro" handheld
   [2]open gaming console, about the size of a credit card, with monochrome
   (black&white) display; it was one of the earliest during the open console
   boom and is at the same time among the best in many aspects (construction,
   hardware, community, games, price, ...). Not only is it one of the top
   open consoles out there, it is also one of the most [3]minimalist and a
   great way to get into low level [4]programming, learning [5]C, [6]embedded
   development etc. Even for a normie not intending to program it it's just a
   super cool toy to play old nostalgic games on and flex with around
   friends. [7]We can really recommend getting Arduboy ASAP to anyone
   remotely interested in this kind of stuff. Arduboy is a bit similar to the
   original [8]Gamebuino (the one with monochrome screen), it may have been
   inspired by it. The official website is https://www.arduboy.com/.

   _________
  |.-------.|
  ||ARDUBOY||
  ||_______||
  |         |
  | _||_ /O |
  | ";;" O/ |
  |_________|

   Hasted (but very good) Arduboy ASCII art.

   Arduboy has a number of [9]hack/mods, both official and unofficial, see
   e.g. Arduboy FX (version that comes with memory for games so one doesn't
   have to use external PC to switch between them) or Arduboy Mini (yet
   physically smaller version).

   { Let's make it clear I AM NOT PAID for this article :D Reading through it
   it sounds like I'm shilling it super hard but it's really just that I like
   Arduboy, it was my first open console and I owe it my change in direction
   in programming. Of course, Arduboy does have its flaws, it's still
   something designed for profit, it shills [10]open soars, forums need
   [11]JavaScript and it's very possible it will become more spoiled in the
   future, however at the moment it's something quite nice with the amount of
   capitalist [12]bullshit being still tolerable. That may change but as of
   writing this it still seems to be so. ~drummyfish }

   Arduboy is not very expensive, one can even build it at home, there is
   documentation. The one you buy has excellent construction, it doesn't
   suffer from any shortcomings often seen in other such devices (hard to
   press buttons, display visibility angles, ... ), the monochrome display is
   tiny but very good, with great contrast, it is joy to just look at; some
   people even managed to "fake" multiple shades of gray by fast pixel
   flickering. Seeing games on this display is somehow magical.

   As can be judged from the name, Arduboy is based on [13]Arduino (the
   famous [14]free hardware platform), seems like Arduino Leonardo. The
   console is very small not only physically but also by its [15]hardware
   specification, and that even compared to other open consoles -- Arduboy
   only has 2.5 KB of [16]RAM which is really low, however this is good for
   learning [17]good programming and testing minimalist software; [18]less is
   more. Besides this there is 1 KB of [19]EEPROM (for things like game
   saves, ...) and 32 KB of flash memory (memory for the program itself -- as
   RAM is so low, one often tries to store data here). The [20]CPU is 8bit
   ATmega32u4 clocked at 16 MHz (also not very much, good for minimalism).
   It's an [21]AVR CPU which has a Harvard architecture, i.e. program resides
   in different memory than the data; this can be something new to PC
   programmers as you have to think what (and how) to place into the program
   memory (flash) vs the [22]RAM (as there is very little RAM); basically you
   have to use the PROGMEM macro to tell Arduino you want something placed in
   the flash (however that data will then be read-only; the whole PROGMEM
   thing can be a bit of annoyance, but in the end this is how small
   computers work). The vanilla version has no SD card. There are 6 buttons:
   arrows, A and B and that's it -- one often has to think of how to make
   clever controls with this limited number of buttons (another kind of
   minimalist exercise). The display is monochrome, 128x64 pixels. For
   programming one typically uses Arduino IDE and the official Arduboy
   library ([23]FOSS), but it's easy to do everything from the [24]command
   line. There is also some kind of speaker for making beeps. Arduboy also
   has a good [25]emulator, something that greatly helps with development
   which also isn't standard in the open console world.

   Arduboy way designed by Kevin Bates through Kickstarter in 2015, He still
   keeps improving it and regularly gets involved in discussions on the
   official forums, that's pretty cool, he shares details and ideas about
   what he's currently doing, he gets involved in discussing [26]hacks etc.
   The community is also very nice and greatly active itself -- yes, there
   are probably some rules on the forums, most people are absolute uber
   noobs, but it just seems like politics, furriness and similar poison just
   doesn't get discussed there, everyone just shares games, advice on
   programming etc., it's pretty bearable. In this it's similar to
   [27]Pokitto -- there the community is also nice, active, with the creator
   getting involved a lot.

   Games, mostly made by the users themselves, can either be found on the
   official website or in Erwin's Arduboy game collection
   (https://arduboy.ried.cl/) which as of writing this lists something over
   300 games -- some are pretty impressive, like Arduventure, a
   pokemon-look-alike RPG game with quite huge world (very impressive for
   such tiny amount of memory), MicroCity, Catacombs of the Damned or various
   other similar [28]raycasting 3Dish games. If you don't have Arduboy yet,
   you can play any game in the emulator (which even runs in the browser),
   however the experience of playing on the small device cannot indeed be
   replicated. The console can only hold one game at a time, so you always
   have to upload another one through USB if you want to switch, though the
   Arduboy FX mod addresses this by adding additional game memory to the
   console. Game progress is saved in EEPROM so you shouldn't lose your save
   states by uploading a new game (unless that game carelessly uses the same
   space in EEPROM for its own savestates). Great many of the games are
   [29]FOSS, i.e. come with a free [30]license or at least with the source
   code, only a minority has secret source code. Some [31]LRS software run on
   Arduboy, e.g. [32]SAF, so also games like [33]microTD and [34]smolchess,
   though for example [35]Anarch is too much for this small hardware.
   [36]Comun [37]C interpreter also ran on Arduboy.

   How [38]free is it? Quite a lot, though probably not 100% (if spying is
   your concern then know this small thing probably won't even be capable of
   trying to hurt you this way). Arduboy Schematics are available { Not sure
   about license. ~drummyfish }, forums have tons of additional documentation
   and tutorials, Arduboy library is free licensed (BSD 3 clause), Arduino
   itself also uses free licenses (though of course it won't likely be free
   down to individual transistors...), games are very often free too. Being a
   minimalist computer there is a great deal of practical freedom. All in
   all, it's one of the most "overall" free things you can get.

Links:
1. arduino.md
2. open_console.md
3. minimalism.md
4. programming.md
5. c.md
6. embedded.md
7. lrs.md
8. gamebuino.md
9. hacking.md
10. open_source.md
11. js.md
12. bullshit.md
13. arduino.md
14. free_hardware.md
15. hardware.md
16. ram.md
17. lrs.md
18. less_is_more.md
19. eeprom.md
20. cpu.md
21. avr.md
22. ram.md
23. foss.md
24. cli.md
25. emulator.md
26. hacking.md
27. pokitto.md
28. raycasting.md
29. foss.md
30. license.md
31. lrs.md
32. saf.md
33. utd.md
34. smallchesslib.md
35. anarch.md
36. comun.md
37. c.md
38. free_software.md