Settings

Theme

ESP32 Game Boy Printer (2018)

github.com

66 points by BramLovesYams 2 years ago · 16 comments

Reader

SillyUsername 2 years ago

"Since the whole protocol is bit-banged, it is susceptible to delays caused by other higher priority task"

Ermmm no. Not utilising both cores properly on the ESP32 is a common mistake which causes this (described) behaviour https://randomnerdtutorials.com/esp32-dual-core-arduino-ide/

Ref. me, I wrote a Java Gameboy 2BPP encoder/decoder library and have done multicore ESP32 dev. https://github.com/KodeMunkie/gameboycameralib

  • adamjc 2 years ago

    > Ermmm no.

    Removing the snide 'Well, akshually...' remark from your comment makes you come across like a much better person.

    > Not utilising both cores properly on the ESP32 is a common mistake which causes this (described) behaviour https://randomnerdtutorials.com/esp32-dual-core-arduino-ide/

    Doesn't it? :)

    • wkjagt 2 years ago

      I’m glad I’m no the only one put off by this. I’ve been thinking of making a simple browser extension to hide all the “eeeermmm no”’s from HN.

    • adql 2 years ago

      No it does not. If people took so much care about writing technically correct things (instead of random observation with no substance) as they did whining about irrelevant details the snark wouldn't be needed in the first place

      • dymk 2 years ago

        The snark still wasn’t needed in the first place

      • adamjc 2 years ago

        Well, I'd argue that it makes the message more likely to be ignored. I think winning people over is a useful skill (not even on the internet, but in life)

  • monocasa 2 years ago

    Adding to that, it probably shouldn't need to be bit banged. I've found that SPI peripherals can generally be put into a mode that can speak gameboy link cable. When I wrote a gameboy printer emulator in an arduino that simply spoke over serial instead of over wifi, running the emulation state machine as the highest priority task directly in the SPI interrupt worked great.

  • adql 2 years ago

    Other way to do bitbanging without being (as much) dependant on task timing is using DMA engine to just dump the state of pins and parse it after. Same thing with outputting when you need precise timings, no need to burn a core to bitbang if DMA engine is featureful enough.

favorited 2 years ago

I was looking at this similar project yesterday: https://github.com/mofosyne/arduino-gameboy-printer-emulator

ajsnigrutin 2 years ago

Where's the printer part?

You could connect this to a cheap chinese termal ESC/POS printer and print out the image too... there are probably libraries availble that do most of the esp32->print work.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection