AVR Laptop Pushes The Limits Of 8-Bit

If you saw a device that had a laptop form factor playing sound and video, alt-tabbing over to play a game or take some notes, then back to the video — well, that’s normal; that’s what laptops do. If you learned the heart of this machine was an Arduino-compatible AVR microcontroller board, you’d probably do the same spit-take we did. Well, put down your coffee, because [Vladimir]’s AVR Laptop project really is that impressive.

The micro at the heart of this amazing laptop is an ATmega2560. That’s a pretty powerful chip by 8-bit microcontroller standards, but it’s still an 8-bit microcontroller, so getting the FreeRTOS-based system and all of the functions he wants onboard took some careful coding. The ST7920 128×64 monochrome LCD isn’t being driven by any standard library, for example — [Vladimir] built his own driver that does only what he wants. Even in 1-bit color, getting 24 fps video playback was a challenge, especially with sound, and the write-up gets into how that was accomplished.

The code is pending review before release, but we do look forward to seeing how he pulled it all off. In the meantime, we can at least watch it in action in the demo video embedded below.

The vibe of making an 8-bit machine do things you don’t expect to fit in 8 bits reminds us of SymbOS for the Z80. For the sysadmins out there, we’ve also seen an AVR web server.

Thanks to [Vladimir] for the tip!

40 thoughts on “AVR Laptop Pushes The Limits Of 8-Bit”

  1. This is impressive.
    I wonder why he didn’t opt for an OLED display. The contrast (and likely response time as well) would have been so much better.

    1. OLED displays at the same resolution are noticeably smaller physically. For a case this size, it would have been too tiny

        1. You can’t but writing to an OLED is generally done by 8 or more pixel tall rows, not the individual pixel.
          For an 8×8 tile character that’s 8 bites sent to the display. If you upscaled you’d need to send a more more info and time communicating with the display.

    1. Haven’t measured the actual power draw or runtime yet. But I’ve left it on overnight a few times — still running in the morning.

        1. The description and logs are my own writing. English isn’t my first language, so I ran it through a translator, but every word is mine — I spent a lot of time on it

          1. If you’re using AI to speak the language better than you can, how do you know it’s saying the same thing?

            After all, the LLM is built to sound convincing, which is easier done if it’s something you don’t understand. This is why we disclose where and how the AI is used, so the readers can evaluate the text accordingly. For example, a simple spell check should not change the meaning of a sentence, but an LLM used for spell-checking can change the contents of the entire document, which you wouldn’t necessarily know if you can’t read the language properly.

          2. “If you’re using AI to speak the language better than you can, how do you know it’s saying the same thing?” – I understand technical English perfectly well – it’s what I’ve been working with for years: articles, documentation, datasheets. I’m able to check the translation and, if needed, correct certain parts after the AI. So I know the translation accurately reflects what I wanted to say. But writing in English from scratch is a different matter, I understand it better than I write it.

          3. I find it better to write bad English than undermine credibility by smoothing it over with AI, because as readers we can’t tell the difference.

      1. I guess that’s yet another reason to avoid YouTube like the plague it is.

        I don’t keep cookies and if I disable my custom uBlock filters which hide comments and “recommended videos” column, the results are sometimes both scary and hilarious at the same time.

        For example if I open my browser and watch a single DIY video on car repairs, The Mighty Algorithm immediately decides that I’m probably male, 35+ and from disadvantaged background. Then it starts feeding me far-right politics, anti-EU conspiracy theories and other extremist crap.

        If I restart my browser and watch some gaming video, The Mighty Algorithm now think’s I’m a 12 years old boy and then tries to drown me in Minecraft, GTA Online or “running from cops on my Kukirin e-scooter challenge” videos.

        I know Google’s game and I’m not playing it, so their futile attempts to grab my attention are at best laughable. But for general population – it’s outright terrifying how quickly a typical dad could be sucked into political extremism just from watching an innocent video on how to replace oil filter.

      2. This is not entirely true, it’s just not everyone understands the perils of accepting a free first dose. Yes you are offered to generate an AI thumbnail when you upload, but it’s your choice to accept it. Assuming the author of the video is a consenting adult it was a conscious (?) decision.

        1. Kid? This is firmly late 2000s language. People who were teens using that language in the late 2000s are not kids anymore.

    1. Bounce B. No need to say a word, just go. No one will miss you or care. Actually scratch that, everyone will be glad you did and for once you wouldn’t be jerk.

  2. I have been playing with ESP32-S3 and -P4 dev modules, and FreeRTOS is the key to everything, since I can have each peripheral being serviced in its own task, instead of having to figure out how to make everything non-blocking. I’m really glad to see that this works even on an AVR MCU.

  3. Amazing! Thank you for sharing.

    Arduino Mega was in my to-do list, too, just priority ~#20. Yes, I can totally see this being the modern clone of a 1980s “pocket computer”, and now that I see that someone actually ha made one, ie, it is possible, better get to work on my version. Who knows, it may even work out.

  4. I can’t wait to see more of it if and when it gets released. Although it’s getting old, the AVR platform always struck me as a good one to build a “computer” around. I always got hamstrung on the video out with things like the Arduboy though, good to see someone like-minded pulling together their own implementation.

  5. Amazing performance, Vladimir!
    I assume that getting the multi tasking software glitch-free was probably the hardest part.

    1. Thanks! Yes, getting multitasking to work reliably was definitely hard. When Alt-Tab switching finally worked – that was something else. Far beyond the usual Arduino territory. But even that isn’t the limit. I’m planning to keep developing the project (external SRAM, separate memory banks per task, a dedicated AVR for the display). So hopefully I’ll surprise the community again.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.