5 ms·
"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
by SillyUsername 3y 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/ 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 https://github.com/KodeMunkie/gameboycameralib
- monocasa 3y agoAdding 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.
- adamjc 3y 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/ https://randomnerdtutorials.com/esp32-dual-core-arduino-ide/ Doesn't it? :)
- wkjagt 3y agoI’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 3y agoNo 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
- deleted 3y ago[deleted]
- adql 3y agoOther 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.