meshtastic-firmware/TODO.md

50 wiersze
2.9 KiB
Markdown
Czysty Zwykły widok Historia

2020-02-01 17:46:25 +00:00
# High priority
2020-02-02 16:17:45 +00:00
* solder debug headers to board
2020-02-01 22:23:02 +00:00
* make message send from android go to service, then to mesh radio
* make message receive from radio go through to android
* test loopback tx/rx path code without using radio
2020-02-01 22:23:02 +00:00
* have MeshService keep a node DB by sniffing user messages
* have meshservice send location data on mesh (if device has a GPS)
2020-02-01 17:46:25 +00:00
# Medium priority
2020-02-02 02:45:27 +00:00
* use https://lastminuteengineers.com/esp32-sleep-modes-power-consumption/ association sleep pattern to save power - but see https://github.com/espressif/esp-idf/issues/2070
2020-02-01 19:56:32 +00:00
* correctly map nodeids to nodenums, currently we just do a proof of concept by always doing a broadcast
2020-02-01 17:46:25 +00:00
* add interrupt detach/sleep mode config to lora radio so we can enable deepsleep without panicing
2020-02-01 19:25:07 +00:00
* figure out if we can use PA_BOOST
* scrub default radio config settings for bandwidth/range/speed
* use a freertos thread to remain blocked reading from recvfromAckTimeout, so that we don't need to keep polling it from our main thread
* override peekAtMessage so we can see any messages that pass through our node (even if not broadcast)? would that be useful?
2020-02-02 00:05:12 +00:00
* sendToMesh can currently block for a long time, instead have it just queue a packet for a radio freertos thread
* see section 7.3 of https://cdn.sparkfun.com/assets/learn_tutorials/8/0/4/RFM95_96_97_98W.pdf and have hope radio wake only when a valid packet is received. Possibly even wake the ESP32 from deep sleep via GPIO.
2020-02-02 00:05:12 +00:00
* fix the logo
* do debug logging to android over bluetooth
* break out my bluetooth OTA software as a seperate library so others can use it
2020-02-01 19:25:07 +00:00
# Pre-beta priority
2020-02-02 16:17:45 +00:00
* don't even power on bluetooth until we have some data to send to the android phone. Most of the time we should be sleeping in a lowpower "listening for lora" only mode. Once we have some packets for the phone, then power on bluetooth
until the phone pulls those packets. Ever so often power on bluetooth just so we can see if the phone wants to send some packets. Possibly might need ULP processor to help with this wake process.
2020-02-02 02:45:27 +00:00
* do hibernation mode to get power draw down to 2.5uA https://lastminuteengineers.com/esp32-sleep-modes-power-consumption/
2020-02-01 19:25:07 +00:00
* make sure main cpu is not woken for packets with bad crc or not addressed to this node - do that in the radio hw
* enable fast init inside the gps chip
* dynamically select node nums
* triple check fcc compliance
* allow setting full radio params from android
2020-02-02 16:17:45 +00:00
* pick channel center frequency based on name? "dolphin" would hash to 900Mhz, "cat" to 905MHz etc? Or is that too opaque?
* scan to find channels with low background noise?
* share channel settings over Signal (or qr code) by embedding an an URL which is handled by the MeshUtil app.
2020-02-01 17:46:25 +00:00
2020-02-02 00:05:12 +00:00
# Low priority
* report esp32 device code bugs back to the mothership via android
2020-02-01 17:46:25 +00:00
# Done
* change the partition table to take advantage of the 4MB flash on the wroom: http://docs.platformio.org/en/latest/platforms/espressif32.html#partition-tables
2020-02-01 19:25:07 +00:00
* wrap in nice MeshRadio class
* add mesh send & rx