From d652664126cc687d348aa2d8a2616b7af0012270 Mon Sep 17 00:00:00 2001 From: Kevin Hester Date: Sat, 20 Mar 2021 13:35:27 +0800 Subject: [PATCH] TODO updates --- docs/software/TODO.md | 122 ++++++++++++++++++++++-------------------- 1 file changed, 63 insertions(+), 59 deletions(-) diff --git a/docs/software/TODO.md b/docs/software/TODO.md index 29a28758..aff62aaa 100644 --- a/docs/software/TODO.md +++ b/docs/software/TODO.md @@ -4,6 +4,8 @@ You probably don't care about this section - skip to the next one. ## before next release +* document how to do remote admin +* firmware OTA updates of is_router true nodes fails? * DONE timestamps on oled screen are wrong - don't seem to be updating based on message rx (actually: this is expected behavior when no node on the mesh has GPS time) * DONE add ch-del * DONE channel hash suffixes are wrong on android @@ -13,23 +15,21 @@ You probably don't care about this section - skip to the next one. * DONE test 1.1 firmware update on android * DONE test 1.2.10 firmware update on android * DONE test link sharing on android -* luxon bug report - seeing rx acks for nodes that are not on the network -* document how to do remote admin +* FIXED? luxon bug report - seeing rx acks for nodes that are not on the network * DONE release py * DONE show GPS time only if we know what global time is -* android should always provide time to nodes - so that it is easier for the mesh to learn the current time -* nrf52 should preserve local time across reset -* firmware OTA updates of is_router true nodes fails? - -## 1.2 cleanup & multichannel support: +* DONE android should always provide time to nodes - so that it is easier for the mesh to learn the current time + +## MQTT + +## Multichannel support * DONE cleanup the external notification and serial plugins * non ack version of stress test fails sometimes! - -* tx fault test has a bug #734 +* tx fault test has a bug #734 - * turn off fault 8: https://github.com/meshtastic/Meshtastic-device/issues/734 * DONE move device types into an enum in nodeinfo -* fix android to use new device types for firmware update - +* DONE fix android to use new device types for firmware update +* nrf52 should preserve local time across reset * cdcacm bug on nrf52: emittx thinks it emitted but client sees nothing. works again later * nrf52: segger logs have errors in formatting that should be impossible (because not going through serial, try stalling on segger) * DONE call RouterPlugin for *all* packets - not just Router packets @@ -57,12 +57,11 @@ You probably don't care about this section - skip to the next one. * DONE release protobufs * DONE release to developers * DONE fix setch-fast in python tool -* turn off fault 8: https://github.com/meshtastic/Meshtastic-device/issues/734 * age out pendingrequests in the python API * DONE stress test channel download from python, sometimes it seems like we don't get all replies, bug was due to simultaneous android connection * DONE combine acks and responses in a single message if possible (do routing plugin LAST and drop ACK if someone else has already replied) * DONE don't send packets we received from the phone BACK TOWARDS THE PHONE (possibly use fromnode 0 for packets the phone sends?) -* fix 1.1.50 android debug panel display +* DONE fix 1.1.50 android debug panel display * DONE test android channel setting * DONE release to users * DONE warn in android app about unset regions @@ -71,20 +70,20 @@ You probably don't care about this section - skip to the next one. * DONE clean up python channel usage * DONE use bindToChannel to limit admin access for remote nodes * DONE move channels and radio config out of device settings -* test remote info and remote settings changes +* DONE test remote info and remote settings changes * make python tests more exhaustive -* pick default random admin key +* DONE pick default random admin key * exclude admin channels from URL? * make a way to share just secondary channels via URL -* use single byte 'well known' channel names for the four default channel names (longslow etc), and for admin, gpio, etc... +* generalize the concept of "shortstrings" use it for both PSKs and well known channel names. Possibly use a ShortString class. +* use single byte 'well known' channel names for admin, gpio, etc... * use presence of gpio channel to enable gpio ops, same for serial etc... -* restrict gpio & serial & settings operations to the admin channel (unless local to the current node) -* add channel restrictions for plugins (and restrict routing plugin to the "control" channel) +* DONE restrict gpio & serial & settings operations to the admin channel (unless local to the current node) +* DONE add channel restrictions for plugins (and restrict routing plugin to the "control" channel) * stress test multi channel * DONE investigate @mc-hamster report of heap corruption * DONE use set-user from android * untrusted users should not be allowed to provide bogus times (via position broadcasts) to the rest of the mesh. Invent a new lowest quality notion of UntrustedTime. -* generalize the concept of "shortstrings" use it for both PSKs and well known channel names. Possibly use a ShortString class. * use portuino TCP connection to debug with python API * document the relationship between want_response (indicating remote node received it) and want_ack (indicating that this message should be sent reliably - and also get acks from the first rx node and naks if it is never delivered) * DONE android should stop fetching channels once we've reached our first empty channel definition (hasSettings == true) @@ -96,18 +95,21 @@ You probably don't care about this section - skip to the next one. * allow chaning packets in single transmission - to increase airtime efficiency and amortize packet overhead * DONE move most parts of meshpacket into the Data packet, so that we can chain multiple Data for sending when they all have a common destination and key. * when selecting a MeshPacket for transmit, scan the TX queue for any Data packets we can merge together as a WirePayload. In the low level send/rx code expand that into multiple MeshPackets as needed (thus 'hiding' from MeshPacket that over the wire we send multiple datapackets -* confirm we are still calling the plugins for messages inbound from the phone (or generated locally) -* confirm we are still multi hop routing flood broadcasts -* confirm we are still doing resends on unicast reliable packets +* DONE confirm we are still calling the plugins for messages inbound from the phone (or generated locally) +* DONE confirm we are still multi hop routing flood broadcasts +* DONE confirm we are still doing resends on unicast reliable packets * add history to routed packets: https://meshtastic.discourse.group/t/packet-source-tracking/2764/2 * add support for full DSR unicast delivery * DONE move acks into routing * DONE make all subpackets different versions of data * DONE move routing control into a data packet * have phoneapi done via plugin (will allow multiple simultaneous API clients - stop disabling BLE while using phone API) +* use reference counting and dynamic sizing for meshpackets. +* let multiple PhoneAPI endpoints work at once +* allow multiple simultaneous bluetooth connections (create the bluetooth phoneapi instance dynamically based on client id) * DONE figure out how to add micro_delta to position, make it so that phone apps don't need to understand it? * only send battery updates a max of once a minute -* add python channel selection for sending +* DONE add python channel selection for sending * DONE record recevied channel in meshpacket * test remote settings operations (confirm it works 3 hops away) * DONE make a primaryChannel global and properly maintain it when the phone sends setChannel @@ -118,42 +120,6 @@ You probably don't care about this section - skip to the next one. are allowed on any channel (this lets the local user do anything)." Probably by adding a "secure_local_interface" settings bool. * DOUBLE CHECK android app can still upgrade 1.1 and 1.0 loads -eink: - -* DONE check email of reported issues -* DONE turn off vbus driving (in bootloader) -* new battery level sensing -* current draw no good -* DONE: fix backlight -* DONE - USB is busted because of power enable mode? -* test CPU voltage? something is bad with RAM (removing eink module does not help) -* test that board leaves bootloader always -* test USB - works in bootloader -* test LEDs -* Test BME280 -* test gps -* check GPS fast locking -* tested! dlora -* test eink backlight -* tested! eink -* test buttons -* test battery charging -* test serial flash -* send updated app and bootloader image -* OHH BME280! THAT IS GREAT! -* make new screen work, ask for datasheet -* say I think you could ship this -* leds seem busted -* fix hw_model: "nrf52unknown" -* use larger icon for meshtastic logo -* send email about variants & faster flash programming - https://github.com/geeksville/Meshtastic-esp32/commit/f110225173a77326aac029321cdb6491bfa640f6 -* send PR for bootloader -* fix nrf52 time/date -* send new master bin file -* send email about low power mode problems -* support new flash chip in appload, possibly use low power mode -* swbug! stuck busy tx occurred! - For app cleanup: * use structured logging to kep logs in ram. Also send logs as packets to api clients @@ -205,6 +171,44 @@ This should nicely help 'router' nodes do the right thing when long range, or if * turn on amazon reviews support * add a tablet layout (with map next to messages) in the android app +# Completed + +## eink 1.0 + +* DONE check email of reported issues +* DONE turn off vbus driving (in bootloader) +* new battery level sensing +* current draw no good +* DONE: fix backlight +* DONE - USB is busted because of power enable mode? +* test CPU voltage? something is bad with RAM (removing eink module does not help) +* test that board leaves bootloader always +* test USB - works in bootloader +* test LEDs +* Test BME280 +* test gps +* check GPS fast locking +* tested! dlora +* test eink backlight +* tested! eink +* test buttons +* test battery charging +* test serial flash +* send updated app and bootloader image +* OHH BME280! THAT IS GREAT! +* make new screen work, ask for datasheet +* say I think you could ship this +* leds seem busted +* fix hw_model: "nrf52unknown" +* use larger icon for meshtastic logo +* send email about variants & faster flash programming - https://github.com/geeksville/Meshtastic-esp32/commit/f110225173a77326aac029321cdb6491bfa640f6 +* send PR for bootloader +* fix nrf52 time/date +* send new master bin file +* send email about low power mode problems +* support new flash chip in appload, possibly use low power mode +* swbug! stuck busy tx occurred! + # Old docs to merge MESH RADIO PROTOCOL