So I just spent a few hours doing an investigating on the Heltec CubeCell boards. These boards were interesting (though they don’t have bluetooth) because:
Cheap
Super low power draw (similar to the NRF52s in that regard)
A good sx1262 radio paired with the CPU
Could have been a great ‘solar powered repeater’ board
Alas - after a fair amount of measurements and efforts, I don’t think Meshtastic could run on these boards easily. And even with a fair amount of work features would be highly limited. The problem is that these boards only have 16KB of RAM, which just isn’t enough for what we need. Currently with a bit of trimming it looks like we could barely get by with about 20KB of RAM - and that gives no room for the future.
Do you think it would be feasible for someone to build a barebones repeater firmware that would be capable of running on the inexpensive cubecell, and remain compatible with the meshtastic protocol? I’m sitting on a dozen or so cubecell boards, and I’m thinking about trying to build such a thing, but it would be really helpful to know if you think that’s feasible before I sink too much time into it.
The lack of bluetooth and wifi radios really appeals to me, since they’re really just dead weight on a remote repeater.
Anyway, if you do think it’s feasible to make a lower level repeater, any guidance you have would be much appreciated.
Alas - no can do. That’s the application I thought cubecell would be great for but alas definitely not enough RAM. Totally stripped and running very lean to do what we do requires about 20KB of RAM (4KB more than the cubecell has). And that doesn’t even allow for all the cool stuff which would be especially useful for a repeater node - in particular store-and-forward delayed messaging.
So IMO a bummer, but not the right CPU for this application. I think the two best architectures for this use-case are currently ESP32 (because has wifi and usually lots of FLASH/RAM) or NRF52 (because always on bluetooth is basically ‘free’ + super low power draw and still fast/enough RAM).
I bet with some really careful trimming and running super bare 16KB is ‘doable’ - but absolutely no headroom. So IMO there are other architectures out there (and hopefully new devices soon) that solve this problem better with more room for the future.
Here’s my notes from my memory investigation when I was trying to make cubecell work:
Thanks so much for your detailed answer! I’ll probably still see if I can get these little guys to listen to a meshtastic network, and once I’m there, maybe see if I can get one to digipeat. I know it probably won’t be useful to anyone else, but I think it could still be a fun project. If I come up with anything interesting, I’ll share it here.