Amiga? Arduino? AMeagerBall Gets the Uno Bouncing
When the iconic βBoing Ballβ first debuted 40 years ago, it was a wonder to behold. There was nothing like it in the home compuing world upto that time, and it showed that Commodoreβs new βAmigaβ was a powerhouse sure to last the test of time. Forty years later, the Amiga as we knew it then might not be with us anymore, but [Mark Wilson] is recreating its iconic demo on a microcontrollerβ but not just any microcontroller. βAMeagerBallβ is an Arduino Uno exclusive, and it even tells the time.
Like the original βBoing Ballβ, the demo is running at 320Γ240, though on a touch LCD shield instead of a CRT. Unlike some microcontrollers, the Uno doesnβt have the horsepower to just brute-force emulate a 1980s home computer, so [Mark] has had to recreate the boing ball from scratch. Heβs not doing it with any graphics libraries, either. On the Uno that would be too slow, so [Mark] is driving the LCD directly to its appropriate registers, to stay close enough to the metal to make it work. That means if youβre going to try the code on his GitHub repository, youβll need to be sure to use matching hardware or be prepared to port it.
One of the things about Amigaβs demo that was so impressive is that it hardly made use of the CPU, allowing the Workbench to be pulled up while the ball bounced. Thatβs not the case here, as the UNO doesnβt have any extra graphics chips. Still, [Mark] was able to squeeze enough horsepower out of everyoneβs favourite ATmega to present us with an Amiga-styled clockβ either analog, digital, or in the workbench title bar in that iconic blue-and-white. To keep the clock accurate, heβs squeezed an RTC module in, too. Lovely! The different clocks can be accessed via the touchscreen.
Oh, did we forget to mention that the touchscreen is implemented? This certainly stretches the hardware far enough to be considered a demo. If just a bouncing ball doesnβt work the UNO hard enough for you, try booting Linux.
This isnβt the first bouncing ball demo weβve seen on a microcontroller: Β here are four of them bouncing in an ATtiny85.