Wireless tophat


the esp8266 is most used but the esp32 is newer so thats to be expected its a direct upgrade and there is a fair bit of work dont on compatibility, it also adds bluetooth4.0 which might be a better option for local wireless pokitto to pokitto


It may be convenient to design an hat with the pcb version of esp8266 rather than the esp-01 for better form factor, access to more pins and extensibility of the circuitry.

the esp8266 does have SPI interface so it MIGHT be possible to use it as a coprocessor for some memory intensive tasks; about the power consumption, using the bare pcb allows to use a lower voltage than esp-01, adding a backup battery/cap for handling spikes, and an easier management of power saving modes, which could be used to synchronise other tasks with external devices in an optimal way so to avoid too much current absorbed by external loads


I agree with going for the esp12 variants they usually come with more flash
Im unsure of adding a battery
The pokitto seems to provide more then enugh power.

There would not be an easy way to recharge it

Atm i have no design in place for additional components then the esp, the board design is just a adaptor


Im putting it up for a vote wich one do you like and would buy if available

  • Cheap wireless hat with wifi
  • Powerful wireless hat with wifi and Bluetooth

0 voters


I understand, actually for the time being and for prototyping wireless applications simple - - >better.

As for the battery /cap, I had in mind those little cell batteries, few mm in diameter, that are usually found eg in GPS modules to keep the temporary memory alive during shutdown. They just have to be connected to a power source enough to power the module, and get recharged when said source is active. Although for spikes a simple additional backup cap may be enough, just not to damage pokitto power pins.


Esp32 have many different option. You can get lower cpu freq for reducing power, deep sleep and light sleep modes, disabling one core if you using dual core model or using ulp co-processor. Esp8266 is around $2 and esp32 is around $4. Its not huge difference for price. Also you can get bl/ble and other cool features with esp32 which esp8266 dont have


idk where your getting them but that sounds to cheap for the esp32

i do not yet own a esp32 but i might just get one to try it, if anyone has experience with it give me a call (dm)


You can found at eBay or AliExpress.
I have not too much experience but I have two esp32 board (with oled and LoRa module). If you want to try something before you took your module just PM me (I’m at different city until Friday.)


Ebay and aliexpress aren what I would call a stable supplier. I know im not expecting allot to be made but still want something like a RS, mouser, digikey or some other resposible seller that can be trusted to diliver and not get lost in shipping or something


It’s ether the esp32 or the esp8266
Even the 8266 could be used as a couple processor if needed and that’s like under 2-3 bucks for consumers
The wifi can also do wireless communication to other pokitto Wich might be more reliable than ir transevers

(Also downloading programs directly to the SD card would be nice)

Hat Ideas

Are those really the only wifi options available?

I’m not saying they’re bad options, but I think it’s worth investigating other options as well.

It might be more reliable, but IR is slightly more fun because it’s more retro. :P

I’d love to try to communicate with my Tamagotchi,
or control my Pokitto with a TV remote (and my TV with a Pokitto).

Now I think about it, is the ESP32’s software layer open source?
Because on the espressif website it says:

Engineered for mobile devices, wearable electronics and IoT applications, ESP32 achieves ultra-low power consumption with a combination of several types of proprietary software.

If that’s the case then @drummyfish probably won’t be happy :P

Semi-related, just found this:

Lua :D


Esp8266 is the cheapest wifichip
Esp32 is the cheapest wifi + BLE chip

And there powerful as there programmable Wich most are not

It’s not fully open source but so is the nxp chip in the pokitto so can’t do much about it none of these modules are opensource especially the low budget ones


Kinda reminds me of the SuperGameboy, the Sega 32X, and the SNES Starfox cartridge.


I’m not sure BLE would work very well.

Regular Bluetooth is good for bidirectional communication but BLE isn’t becuase it functions differently.

BLE is designed for things that only need to exchange small amounts of data at an infrequent rate.
BLE is intended to spend most of its time in ‘sleep mode’ and then only wake up briefly to connect for a few milliseconds, send all its data at once and then go to sleep again.

Multiplayer would probably be constant transfer of data, so I think ‘Bluetooth Classic’ would be more suitable for multiplayer.


I’m not convinced that power is needed.

The SPI connection is always going to be the bottleneck, no matter how powerful the chips are on either side of the connection.

Besides which, what would it be used for?

I’m not sure it would be usable as a GPU because of the SPI bottleneck.
Even if it was it would be a bit of synchronisation headache since the other processor would effectively be like a separate thread.

You could use it to process incomming data (e.g. to process incoming html), but it depends what you’re then going to do with that data.
The only thing I can think you might want to do is to convert HTML into a more compact format that the Pokitto can display, or to verify the data before passing it on.

I mean the software rather than the hardware.
ARM’s ‘mbed os’ is Apache 2.0 licensed, so it is open source.

It’s worth noting that the Sega 32X was purposely designed to improve the power of the Genesis to act as a stopgap between the Genesis and the Saturn.

I had the GameBoy Player for the GameCube but that was kind of the inverse situation to the Super GameBoy - the GBA wasn’t as powerful as the GameCube.

By the Starfox cartridge I assume you’re referring to the Super FX.


I think you mean it would be like a separate process, since they don’t share memory. They’d have to communicate via message passing, adding a large overhead, making it too slow and limiting for use as a GPU.
On the other hand, that doesn’t mean it wouldn’t work in a setup where all the processing is done on the ESP, and all the Pokitto does is pipe data from it to the LCD (a lot like the GameBoy Player and SuperGameboy). This might be good enough for running modified versions of PocketSprite emulators.

Since this works through the PEX connector, these ideas can be tested/prototyped right now, no need to make hardware to get started.


just to be clear on the esp32

  • Wi-Fi: 802.11 b/g/n
  • Bluetooth: v4.2 BR/EDR and BLE

it can do regular bluetooth and the low enery stuff

with powerfull i mean the abilaty to program it, most chips do not alow it or are very expensive running a openwrt (wich is basicly linux) the cheapest wifi module i found that was not an esp was 25 euro’s while the ESP8266 ESP-01 can be found for under 3 euro’s of ebay

this is dropping the co procesor concept a little though it still could run its own program for maniging the custom local conection to 2 or more pokitto’s

the arduino core for the esp is under lgpl, wich is also the easiest one i found to program alternatives are the nodemcu and mongoose “rtos”


Threads don’t necessarily share all their memory - thread-local storage is a thing. And even processes can share memory.

I refered to threading to emphasise the difficulty involved in coordination and synchronisation.

Messages don’t necessarily have to be large, but the mechanism for sending and receiving the messages would indeed introduce some overhead.

A full frame is 38,720 pixels, running at 60 fps that would be 2,323,200 pixels per second.
So I suppose it’s plausible, but then you’d potentially need buttons on the hat as well, otherwise the Pokitto’s processor then has to send button data to the hat and it’ll get complicated.

To be honest I think it kind of takes the fun out of it.
May as well stick a screen on the hat and call it a new console. :P

Regular bluetooth would work alright for multiplayer.

Even so it’s a powerful chip in its own right.
14.4 times the amount of SRAM on the Pokitto itself.
3.3 to 5 times the clock speed of the Pokitto’s chip.

That’s a shame. I wonder why there’s such a price disparity?

I found the core for esp8266, which is indeed LGPL:

However it’s not all LGPL, the part inside Arduino/tools/sdk is licenced under a customised version of the MIT licence.
It’s the same as the MIT licence apart from one aspect:

Permission is hereby granted for use on ESPRESSIF SYSTEMS ESP8266 only

Which would make it suitable for the Pokitto’s use-case but technically not free software.
Also they only distribute that part precompiled, they don’t provide the source code for it.

I also found the ESP32 WiFi stack, which is marked as being under Apache 2.0 but is distributed precompiled, so the source code is not accessible:

This is extremely odd.

Technically both licences allow the code to be distributed precompiled, but it goes against the spirit of the licences.
Furthermore, the licences allow people to modify and reverse engineer the precompiled code,
so precompiling the code just makes modifying it difficult,
legally there’s nothing stopping someone from modifying it.


Considering we push that many pixels out SPI at over twice that speed, reading, if possible at the same rate, shouldn’t be a problem. Maybe some assembly required.
Getting something to run well on a hat meant primarily for internet connectivity sounds like a fun project.


the one i found ran openwrt wich is rather a brute force aproch also there realy large boards compared to the esp, they probebly have better wireless range but need more power running that

yea its wierd and they had not unlocked the full potential of the chip yet, but there hitting on some wierd IP stuff with there custom risc and im prety sure the wifi part also has some wierd licensing atched to it (remeber theres a hidden tiny basic implementation baked in the silicon for some random reason )
but its a small compromise for us, i have not found a better option especialy for the price point