Battery-free Game Boy (2020)
freethegameboy.info
freethegameboy.info
When I wrote mine, something I ran into was realizing that often the CPU and PPU are just doing the same thing over and over and over. If only I could cache all that work.
For example, you don’t modify the previous frame. You have to draw the entire frame every time, writing sprites from OAM memory every time. Sometimes games do clever stuff here for effects, but a lot of the time you’re just drawing the same stuff. Like Tetris is almost completely a routine of drawing almost entirely the same graphics every time. Most of the cycles and OAM writes are just juggling sprites to draw the same layout every time.
I documented the heck out of the PPU because it gave me the second most grief (sound being the worst by far) if you are curious: https://github.com/ablakey/gameboy/blob/master/src/guest/sys... (goodness I’m proud of this project. Don’t tell my boss. He’ll want this level of documentation at work ;) )
Here's a sample from the file:
// For sprites, color 0 is transparency so don't draw anything.
if color == 0 {
continue;
}
This comment is probably not necessary: it would be equally clear if it were written as something like the following: if color == SPRITE_COLOR_TRANSPARENT {
continue;
}
A few lines up is another comment: // Is this specific pixel not on the screen? We already check that x_pos is not off
// the left side earlier, so only need to check that it's not off the right side.
if x_pos + p >= 160 {
continue;
}
If the code were written with a constant, then it would only need to clarify why we don't check the left side here (the only non-obvious thing about the code), so: // Note: bounds testing on the left side is handled earlier
if x_pos + p >= SCREEN_WIDTH {
continue;
}
One last example: // We want to iterate through 160 pixels to draw one scanline.
for col in 0..160u8 {
No comment, similar level of readability: for col in ppu.iterscanlines() {Quite a difference in code readability to the point where the code becomes self-evident. Few people are able to reach a more verbose level of documentation, let alone make sure the code remains understandeable in the future.
I wonder if you googled for this? Googling for “original gameboy battery life” gives nearly this exact quote, but then reading the wikipedia article that it came from reveals that this is talking about the Gameboy Light (1998 - arguably “the original hardware with modern technology to reduce energy consumption”). I went and fact-checked because I remembered that the original original gameboy (1989) had 4 AA batteries and no light ;)
edit. also Nintendo's figures show a lower battery time for the Pocket and Color, so they probably just decided to trade for space/weight.
https://www.nintendo.co.uk/Support/Game-Boy-Pocket-Color/Pro...
Everyone had either the GB and many more people had the GB Pocket because of Pokémon.
Still no backlight.
9 year old me was particularly proud of the self made spring that fit between the batteries.
Adult me would probably put the batteries side by side though.
FYI, I contacted the group to express interest over 2 years ago and never got a response. They are working on a new project with more advanced graphics https://www.techradar.com/features/the-quest-for-the-solar-p...
That's how passive RFID tags work. The tag has a tiny little computer, and you hold it near a thing that emits an electric field that energizes it.
I'm not qualified to determine the plausibility of this, but I hope it's true.
So a bacterium might be able to annoy their neighbor. But that's about it.
If the sun was in some kind of equilibrium with stuff around it (ie. There was a big mirror acting kinda analogously to a ground plane) you could effectively cast a shadow much bigger than yourself.
But that's about it. Visible light is very small.
Like unless this engineer built the Russian woodpecker array
Primitive diodes.
That's literally an antenna[1][2], actually.
They found out it was the metal in two cavity filling that made the teeth vibrate and transmitted sound to their ear.
Not sure if it's just an urban legend or legit, but I like that story.
While the story seems a bit far fetched, having fillings act as diode rectification of an AM signal that is then conducted into sound via the jaw is completely real and has happened to many people, particularly moreso in the past when people more often had metal fillings and very powerful AM signals were more prominent.
The page is ... not short, more people have been thinking about this!
[1]: https://en.wikipedia.org/wiki/Energy_harvesting
[2]: https://en.wikipedia.org/wiki/Energy_harvesting#Ambient-radi...
We've since enveloped the planet with SpaceX satellites. Last I saw a gif, it was terrifying
I think Nicola Tesla experimented with sending energy wireless, at longer distances, over the air. I don't remember what his results were, but man, that guy was so ahead of its time.
The first receiver would be able to drive a loudspeaker through a transformer loud enough you could hear it across a quiet room, so some power there, but only milliwatts.
I have wondered if these days with the zero volt FETS if there would be enough power for a regenerative receiver, some kind of negative resistance version seems most likely.
(Yes, I know all the practical objections. It's an urban legend. I've seen variations involving BBC radio, TV broadcasts, submarine communications, overhead power lines, the VLF transmitter at Rugby, and a farmer using the energy to milk his cows).
I did have the "frequent power failures". Props to the team on fixing this :)
That worked quite well because the grid's always been pretty reliable
Some decisions had deep thoughts behind them, some were made because they spilled their drink while driving.
https://rembo.me/unsorted/gameboy-mods-january/#lg=1&slide=1...
It's why my forearm muscles are so toned ;-)
It's basically the same progression we saw in bitcoin mining: Custom software on a general purpose CPUs, then on GPUs, then programmed on FPGAs, then actual ASICs that are straight up custom silicon to do nothing but check those hashes.
I made this slim PCB a few years ago with a super tiny NFC chip on it that can harvest energy from NFC:
Made it into a business card as you can see.
Around fifteen bucks each.
> Energy Generated: 0.33 mWs actuating and releasing
I assume it means that it generates 0.33 mWs (or mJ, come on) in a full cycle of actuating and releasing. So you have to make 3 button presses per second to generate 1 mW of power.
I looked it up in the paper[0], section 5.2 discusses power consumption/generation and pasted it below (I hope all symbols survived the clipboard).
TL;DR: the buttons generate a very small difference in power generation relative to solar panels. HOWEVER, this still seems to be a significant difference in how quickly the battery drains. If solar panels generate 10.5 mW, and the buttons 0.5 mW, but the system requires 11.5 mW, then this doubles the up-time of the system. That would actually be quit a nice insight to share on the main project page IMO!
> We have measured ENGAGE’s power consumption, looking into overall power consumption whilst first measuring the consumption of MCU together with the FRAM and display. The MCU and FRAM combined consume 11.15 mW and the screen consumes 344.31 μW during game execution taking a ten second average. During idle time the screen only consumes 3.90 μW, resulting in a combined system average power consumption of 11.50 mW. As a comparison, the original Nintendo Game Boy consumes 232.08 mW during game execution, varying slightly per game and cartridge architecture. While not necessarily a useful or meaningful number, we conclude that our platform is more than 20 times more power-efficient than the original Nintendo Game Boy (representing normal technology advancement, but noting that ENGAGE is an emulator). The measurements were conducted using a Fluke 87V [33] multimeter and the X-NUCLEO-LPM01A [123] programmable power supply source with power consumption measurement capability
> Then, to give more insight in the energy harvesting on the ENGAGE platform we have measured the amount of energy the solar panels generate using a Fluke 87V [ 33 ] multimeter and compare this to the energy generated from the buttons. For the buttons we use the minimal energy generation figures from the specification of the harvester [ 153 , summary] as a worst case scenario3. Assuming that a single button press generates a minimum of 0.66 mJ and knowing the amount of button presses per game is specific to the game as per Table 1 , we can assume the buttons generate between 0.66 mJ for one press per second and 1.98 mJ for three presses per second. At 40 klx and 20 klx, the solar panels generated an average of 10.14 mW and 8.33 mW, respectively, i.e. less than the required system average power consumption of 11.50 mW. We can conclude that ENGAGE is mostly powered by solar panels and supplemented by the button presses although the button presses can significantly increase the on-time of the platform, as shown in Section 5.1
There have been many, many really shitty solar projects in the last year, some wasting millions of dollars and euros, and while reasearch is important, it's also important to know what's worth it and what's not.
And your second paragraph feels a bit like an unfair comparison to me. This is a first attempt at seeing if this concept is even remotely feasible, and it uses off-the-shelf parts for that. It's not a company with a lot of money and resources invested in it that produces mediocre final products where the embodied energy of the solar panels is so much more than any energy it saves over its life-time that it's less green than something that runs on batteries. Which, yes, are an annoying feature of modern greenwashing. But this research project is not that.
Why do you assume this? It's academic research, not the R&D department at a company. They're not building a product to sell and they're probably working with a shoestring budget. The goal is to extract as much knowledge and insight as possible from as little hardware as possible.
The difference would be, if the buttons produced a comparable amount of power, where academics could then write "while expensive, with mass production, the cost of buttons will fall to a level to make it economically viable" and product designers would tell their bosses BOM prices for both options, and then a decision would be made.
My previous mouse died because I loved the haptic feeling of the scrollwheel so much I wore it out. Might generate enough energy for a small gameboy-like device.
I knew what you were talking about but couldn't think of the name either. Google was failing me, but thankfully ChatGPT got it first guess - Magnavox Odyssey
I thought it would have been better as a treadle.
There is a long story on this: https://www.theverge.com/2018/4/16/17233946/olpcs-100-laptop...
The third version had solar on the back but was never released: https://en.wikipedia.org/wiki/OLPC_XO-3
"Right now we have interruptions, but[...] that interruption amount is going to continually decrease as we make these systems better and more energy-efficient."
Is that really the case? The limiting factor here is not just the efficiency of harvesting energy. The energy being harvested from the sun and from the button presses has a hard cap at some point, and while I don't know enough about the topic to do the math, I'd have to assume it's not particularly high. Even if you were able to harvest 100% of the sunlight hitting a smartphone (quick Google search says solar panels harvest ~15%), and 100% of the energy from the taps of a user's finger, would that be anywhere close to enough power to run the thing? This seems like more of a conceptual limit than a technological one.
With the ability to scale down the power usage with processors that do a whole lot less it’s certainly practical to get much more out of usable processors.
You can do a lot with, say, 10 watt hours per day and that much is certainly achievable on a hand held device.
A quick check states a Raspberry Pi 4B at 100% CPU draws 6.4W, so in perfect conditions with a perfect panel, it's just about approaching feasible to run a chip on a phone sized panel.
However a Gameboy is much simpler than a Pi. It seems the Gameboy draws about 70-80mA@1.5V, or 0.1W, which is very impressive. I would say that would 100% be physically feasible to power with a gameboy sized solar panel in our lifetime.
Their energy-harvesting switches produce 0.33 milliwatt-seconds when pressed or released.
So you want to be efficient and enter deep sleep whenever possible. If you can have a duty cycle that looks like "Take sensor reading and run computation when button is pressed or when timer elapses, transmit over BLE, update e-ink display, or whatever our device does, then go back to sleep after 2 ms" that's easy - at even absurdly fast update rates of ~20 Hz, you're only using a 4% duty cycle and drawing an average of just 0.07 mW, requiring one button press every 10 seconds or so.
If you've got 3 button clicks per second, you can stay active all the time. But neither a 3 Hz button-press rate, nor a non-sleep-using firmware are reasonable. Of course, when you're bringing in a full ~10 mW of power continuously from the solar panels, the buttons are kind of a nice-to-have, you'd have to mash them at crazy rates to even equal the panels.
They're not even close to the potential efficiency of the processor - they're running an emulator for goodness' sake, which was almost certainly not designed with power saving in mind. If they started from the ground up reverse-engineering the Gameboy functions with the goal of maximizing power efficiency, yes, it's perfectly reasonable to assume that they could run continuously.
Yes! Proceeds to explain no.
The energy harvesting buttons have to be incredibly annoying ergonomically - for gaming, you do NOT want buttons that are really hard to press.
This is something that could deprive people of basic communications and information access.
The mitigation of this seems difficult. Solar panels on the outside of houses can be destroyed by bombing easily, and gasoline powered generators on the inside are loud, expensive, and require ventilation for safety.
How can a people stay connected and continue to communicate under active Russian attacks on their energy grid?
With these thoughts in mind, when I saw this project I smiled, because it approaches the issue from an alternative angle. Who needs a loud and potentially noxious gasoline generator if it is possible to reduce the display draw to an amount that can be successfully powered from incident light?
Such a solution can solve pressing issues in our time and going forward. Quiet, compact, and mobile.
A good solution for the worst possible world.
In 2011, Intel demonstrated a solar powered Pentium chip- they remade the 1994 Pentium it on 32nm. But it was a demo only. The reason it's been so "demo" for over 10 years is because no one thinks solar is possible to run anything portable, but no one questions why so much investment is focused on the latest graphics cards and AI chips like the A100. If there was more consumer demand, you'd see it released yesterday. The solar calculator in 1978 was far more advanced for its time, but now you have most people laughing at such an idea for a few hundred thousand more transistors. Sad.
This bit seems a little disingenuous.
It doesn’t have to be the same experience as playing a game boy, but maybe start off with that: it’s not the same way as playing any console really, having to wait for a few seconds every ten is not only annoying, it won’t work for a significant amount of “computing”.
Plastic packaging. Now with gallium arsenide!
Given improvements in AI and processing power, with some form of decentralised trading, this would be super cool for kids.
An idea I had a while ago but laughed it off as impossible
They didn't just take a console and slap a solar panel on top and wired that into the battery compartment.
They took a new CPU, buttons, etc. and run an inefficient emulator (goes to show how big the energy budget is) with auto save state before turning off from lack of light/button energy.
Arguably, the former is way more useful in the short run, as you could actually use it for more than ten seconds at a time and retrofit any device easily. But as a research project, the latter is way more useful because it might pave the path to this being viable in the future and having an entirely new class of devices.
Is that really how GDPR works (I'm in Europe)?
Who would have thought that a GameBoy would lead to a RealMan?
If you mean power grid is all down, the biggest winner would be those crank style devices or generator installers.