diff --git a/README.md b/README.md index 0d3bf1f..1fb5ce5 100644 --- a/README.md +++ b/README.md @@ -1,183 +1,78 @@ ---- - - ---- - -

Femtofox    The tiny, low power Linux Meshtastic node

-

The Luckfox Pico Mini is a compact and power efficient Linux capable board, capable of running Ubuntu. Femtofox is an expansion of the Luckfox’s capabilities, combining a customized Ubuntu image with a custom PCB, integrating it with a LoRa radio to create a power efficient, cheap and small Meshtastic Linux node.

-

Features:

- -

Accomplished:

- -

Project goals:

- -

Login for the images is femto:fox. Root is root:root.

-

The preconfigured images will reboot every 24 hours. If the internal clock is accurate, this will be at 3am. Reboot timing is set in crontab. To keep accurate time, an RTC module can be installed (see supported hardware) or internet connectivity can be maintained for NTP. If no authoritative time source is found, time will be set to 2024-01-01 00:00 on boot.

-

Supported hardware - click here

-

Networking:

-

There are four methods to get online:

-
    -
  1. Ethernet over USB - most adapters should be supported, but I’ve only tested the RTL8152 chipset.
  2. -
  3. USB wifi (see supported hardware).
  4. -
  5. Preconfigured Ubuntu images: ethernet via the castellated pins at the bottom of the board. See pinout at the bottom of this readme.
  6. -
  7. RDNIS via usb - see this guide. Note that in the preconfigured images USB is set to host mode, so you’ll have to switch back to peripheral with sudo luckfox-config. This is not really recommended, but can be used in a pinch.
  8. -
-

Installation - connection to Meshtastic node via UART or USB:

-
    -
  1. Download the most recent OS image in releases.
  2. -
  3. Flash the image your MicroSD card using Balena Etcher or your favorite flashing program. You will likely get a warning that the image appears to be invalid or has no partition table. This is normal.
  4. -
  5. Insert the microSD card into the Luckfox Pico Mini.
  6. -
  7. Configure the system with a USB drive as described in USB Configuration Tool.
  8. -
-

Pinout:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Pin #Pin IDFunctionLuckfoxPin #Pin IDFunction
1VBus5V in/out221V81.8V out
2GND21GND
33V33.3V out204C11v8 IO, SARADC
4/421B2Debug UART2-TX194C01v8 IO, SARADC
5/431B3Debug UART2-RX18/40A43v3 IO
6/481C0CS0, IO17/551C7IRQ, IO
7/491C1CLK, IO16/541C6BUSY, IO
8/501C2MOSI, IO15/591D3i2c SCL
9/511C3MISO, IO14/581D2i2c SDA
10/521C4UART4-TX13/571D1UART3-RX, NRST
11/531C5UART4-RX12/561D0UART3-TX, RXEN

Pin ID explanation: 1C6 = GPIO bank 1, group C, pin 6.
-In Meshtasticd’s config.yaml we use GPIO bank 1, and subtract 32 from the pin number.

-

pinout
-pinout

-
-

[!NOTE]
-The information on this page is given without warranty or guarantee. Links to vendors of products are for informational purposes only.
-Meshtastic® is a registered trademark of Meshtastic LLC. Meshtastic software components are released under various licenses, see GitHub for details. No warranty is provided - use at your own risk.

-
+# Femtofox    The tiny, low power Linux Meshtastic node +#### The Luckfox Pico Mini is a compact and power efficient Linux capable board, capable of running Ubuntu. Femtofox is an expansion of the Luckfox's capabilities, combining a customized Ubuntu image with a custom PCB, integrating it with a LoRa radio to create a power efficient, cheap and small Meshtastic Linux node. +**Features:** +* Tiny size (63x54mm for the Kitchen Sink Edition, 65x30mm for the Smol Edition). Roughly equivalent to a Raspberry Pi and Pi Zero. +* Power efficiency (~0.38w) +* Full Linux CLI (Ubuntu) via our pre-built Foxbuntu image +* Meshtastic native client support via SPI +* USB host support +* Wifi over USB +* RTC support + +**Accomplished:** +- [x] Meshtastic native client controlling a LoRa radio (see [supported hardware](supported_hardware.md)) +- [x] WIFI over USB (see [supported hardware](supported_hardware.md)) +- [x] Ethernet over USB (see [supported hardware](supported_hardware.md)) +- [x] Ethernet over pins (see *Networking* below and wiring diagram at bottom of page) +- [x] UART communications with Meshtastic nodes (2 pin pairs) such as RAK Wisblock +- [x] USB serial communications with Meshtastic nodes (see [supported hardware](supported_hardware.md)) +- [x] USB mass storage +- [x] Real time clock (RTC) support (see [supported hardware](supported_hardware.md)) +- [x] Activity LED disabled. User LED will blink for 5 seconds when boot is complete +- [x] Pressing the "BOOT" button triggers reboot +- [x] Ability to reconfigure wifi via USB flash drive +- [x] Meshtasticd to run LoRa radio over SPI (accomplished, updated image and instructions coming soon) +- [x] Allow editing of config files by plugging in thumb drive +- [x] Ability to activate or deactivate WIFI via Meshtastic admin + +**Project goals:** +* A solar-deployable Meshtastic node running Linux, without needing a giant solar panel / battery +* Wifi capabilities (with ability to disable/enable wifi via mesh for power savings) + +Login for the images is `femto:fox`. Root is `root:root`. + +The preconfigured images will reboot every 24 hours. If the internal clock is accurate, this will be at 3am. Reboot timing is set in `crontab`. To keep accurate time, an RTC module can be installed (see [supported hardware](supported_hardware.md)) or internet connectivity can be maintained for NTP. If no authoritative time source is found, time will be set to 2024-01-01 00:00 on boot. + +### [Supported hardware - click here](supported_hardware.md) + +### Networking: +There are four methods to get online: +1. Ethernet over USB - most adapters should be supported, but I've only tested the RTL8152 chipset. +2. USB wifi (see [supported hardware](supported_hardware.md)). +3. Preconfigured Ubuntu images: ethernet via the castellated pins at the bottom of the board. See pinout at the bottom of this readme. +4. RDNIS via usb - [see this guide](https://web.archive.org/web/20241006173648/https://wiki.luckfox.com/Luckfox-Pico/Luckfox-Pico-Network-Sharing-1/). Note that in the preconfigured images USB is set to host mode, so you'll have to switch back to peripheral with `sudo luckfox-config`. This is not really recommended, but can be used in a pinch. + +### Installation - connection to Meshtastic node via UART or USB: + +1. Download the most recent OS image in [releases](https://github.com/noon92/femtofox/releases). +2. Flash the image your MicroSD card using [Balena Etcher](https://etcher.balena.io/) or your favorite flashing program. You will likely get a warning that the image appears to be invalid or has no partition table. This is normal. +3. Insert the microSD card into the Luckfox Pico Mini. +4. Configure the system with a USB drive as described in [USB Configuration Tool](usb_config.md). + +### Pinout: +|Pin #|Pin ID |Function |Luckfox |Pin #|Pin ID |Function | +|-----|-------|--------------|--------|-----|-------|--------------| +|1 |VBus |5V in/out | |22 |1V8 |1.8V out | +|2 |GND | | |21 |GND | | +|3 |3V3 |3.3V out | |20 |4C1 |1v8 IO, SARADC| +|4/42 |1B2 |Debug UART2-TX| |19 |4C0 |1v8 IO, SARADC| +|5/43 |1B3 |Debug UART2-RX| |18/4 |0A4 |3v3 IO | +|6/48 |1C0 |CS0, IO | |17/55|1C7 |IRQ, IO | +|7/49 |1C1 |CLK, IO | |16/54|1C6 |BUSY, IO | +|8/50 |1C2 |MOSI, IO | |15/59|1D3 |i2c SCL | +|9/51 |1C3 |MISO, IO | |14/58|1D2 |i2c SDA | +|10/52|1C4 |UART4-TX | |13/57|1D1 |UART3-RX, NRST| +|11/53|1C5 |UART4-RX | |12/56|1D0 |UART3-TX, RXEN| + +Pin ID explanation: **1C6** = GPIO bank **1**, group **C**, pin **6**. +In Meshtasticd's config.yaml we use GPIO bank 1, and subtract 32 from the pin number. + +![pinout](https://github.com/noon92/luckfox/blob/main/luckfox_pinout.png) +![pinout](https://github.com/noon92/luckfox/blob/main/luckfox_pico_mini_original_wiring_diagram.jpg) + +> [!NOTE] +> The information on this page is given without warranty or guarantee. Links to vendors of products are for informational purposes only. +> Meshtastic® is a registered trademark of Meshtastic LLC. Meshtastic software components are released under various licenses, see GitHub for details. No warranty is provided - use at your own risk. diff --git a/supported_hardware.md b/supported_hardware.md index 86af20f..7da1375 100644 --- a/supported_hardware.md +++ b/supported_hardware.md @@ -1,714 +1,107 @@ ---- +## Supported Hardware +| Hardware | Confirmed working | Expected to work | Notes | +|-|-|-|--| +|LoRa radios (working with Meshtasticd)|
  • [Waveshare RPi LoRa hat without GNSS](https://www.waveshare.com/sx1262-lorawan-hat.htm?sku=22002)*
  • [Seeed Wio SX1262](https://www.seeedstudio.com/Wio-SX1262-Wireless-Module-p-5981.html)
  • [Ebyte E220900M30S](https://aliexpress.com/item/4000543921245.html)
  • AI Thinker RA-01SH
  • [Heltec HT-RA62](https://www.aliexpress.com/item/1005005445349105.html)|
  • Ebyte E22-900mm22s
  • [Ebyte E22-900m22s](https://www.aliexpress.com/item/1005001808069127.html)
  • Any SPI LoRa radio that's Meshtastic compatible|*Waveshare RPi hat is not recommended as it has issues with sending longer messages.| | +|MicroSD cards|
  • [Kingston Endurance 32gb](https://www.kingston.com/en/memory-cards/high-endurance-microsd-card)
  • [Sandisk Ultra UHS-I 32gb](https://shop.sandisk.com/products/memory-cards/microsd-cards/sandisk-ultra-uhs-i-microsd?sku=SDSQUA4-032G-GN6MA)|Any reasonably fast (UHS-I or better) card with 8gb or more|Stick with reputable manufacturers (Kingston, PNY Samsung, Sandisk, Transcend...)
    The faster the better! Consider sticking with "endurance" cards, especially for remotely deployed nodes.| | +|RTC (real time clock)|
  • [DS3231M](https://vi.aliexpress.com/item/1005007143842437.html)
  • [DS1307](https://vi.aliexpress.com/item/1005007143542894.html)|DS1337, DS1338, DS1340, other DS3231 variants |Some DS3231 modules are listed as having a supercapacitor - these are usually actually lithium coin cells.| | +|Meshtastic nodes|USB+UART: [RAK4631 with RAK19007 or RAK19003 base board](https://store.rakwireless.com/products/wisblock-meshtastic-starter-kit)| |RAK4630 and 4631 are the same.| | +|USB wifi adapter chipsets|||See below | | +|Misc. hardware|
  • USB hubs (powered or not)
  • Thumb drives
  • SD card readers||If power draw exceeds supply, the device will reboot, bootloop or hard crash. Unpowered USB hubs seem to be notorious for causing reboots.| | +### Wifi chipsets +The following wifi chipsets/devices have their drivers included in the OS images. Most of these have not been tested. Note that power consumption metrics are for a specific version of a chipset and may not apply to all implementations. ---- - -

    Supported Hardware

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    HardwareConfirmed workingExpected to workNotes
    LoRa radios (working with Meshtasticd)
  • Waveshare RPi LoRa hat without GNSS*
  • Seeed Wio SX1262
  • Ebyte E220900M30S
  • AI Thinker RA-01SH
  • Heltec HT-RA62
  • Ebyte E22-900mm22s
  • Ebyte E22-900m22s
  • Any SPI LoRa radio that’s Meshtastic compatible
  • *Waveshare RPi hat is not recommended as it has issues with sending longer messages.
    MicroSD cards
  • Kingston Endurance 32gb
  • Sandisk Ultra UHS-I 32gb
  • Any reasonably fast (UHS-I or better) card with 8gb or moreStick with reputable manufacturers (Kingston, PNY Samsung, Sandisk, Transcend…)
    The faster the better! Consider sticking with “endurance” cards, especially for remotely deployed nodes.
    RTC (real time clock)
  • DS3231M
  • DS1307
  • DS1337, DS1338, DS1340, other DS3231 variantsSome DS3231 modules are listed as having a supercapacitor - these are usually actually lithium coin cells.
    Meshtastic nodesUSB+UART: RAK4631 with RAK19007 or RAK19003 base boardRAK4630 and 4631 are the same.
    USB wifi adapter chipsetsSee below
    Misc. hardware
  • USB hubs (powered or not)
  • Thumb drives
  • SD card readers
  • If power draw exceeds supply, the device will reboot, bootloop or hard crash. Unpowered USB hubs seem to be notorious for causing reboots.

    Wifi chipsets

    -

    The following wifi chipsets/devices have their drivers included in the OS images. Most of these have not been tested. Note that power consumption metrics are for a specific version of a chipset and may not apply to all implementations.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Chipset:Tested?Recommended?Power usageNotes
    Realtek:
    rtl8187
    rtl8187b
    rtl8188[cr]u
    rtl8188cu
    rtl8188ee
    rtl8188eu
    rtl8188eus
    rtl8188cus
    ✔️✔️Idle: 0.25w
    TXing: 0.4w
    Off: 0.026w
    Model tested:
    TP-LINK TL-WN725N V2: working
    TP-Link TL-WR722N V4: working (v2, v3 should be identical)
    rtl8188ru
    rtl819[12]cu
    rtl8191cu
    rtl8192ce
    rtl8192cu✔️❔Tested:
    Edimax EW-7811Un: working
    rtl8192de
    rtl8192e
    rtl8192ee
    rtl8192eu✔️❌Buggy
    rtl8192se
    rtl8273,8188,8191,8192
    rtl8712u
    rtl8723ae
    rtl8723au
    rtl8723be
    rtl8821ae
    rtl8821au✔️❌Tested:
    TP-Link Archer T2U Plus: NOT working
    rtl8xxx other
    Mediatek:
    mt7601u✔️✔️Idle: 0.739wTested:
    Genbasic RF 2A4M1: working
    mt76x0u
    mt76x2u
    mt7663s
    mt7663u
    Atheros:
    ar5008
    ar5523
    ar6003
    ar6004
    ar9001
    ar9002
    ar9170
    ar9271✔️❔Tested:
    TP-Link TL-WR722N V1: working
    Penguin Wireless TPE-N150USB: buggy
    Generic AR9271 w/SMA antenna: buggy
    Work in progress
    ar9k
    ath11k
    ar10k
    wcn3660
    wcn3680
    Ralink:
    rt2501/rt73
    rt2571
    rt2571w
    rt2572
    rt2573
    rt25xx
    rt2671
    rt27xx
    rt28xx
    rt28xx unknown
    rt30xx
    rt3070✔️❔Tested:
    Alfa AWUS036NEH: buggy
    rt33xx
    rt3573
    rt35xx
    rt53xx
    rt55xx
    Atmel:
    at76c503
    at76c505
    at76c505a
    Microchip Atmel:
    wilc1000
    Zydas:
    zd1201
    zd1211
    zd1211b
    RNDIS USB:
    Asus WL169gE
    Belkin F5D7051
    BT Voyager 1055
    Buffalo WLI-U2-KG125S
    BUFFALO WLI-USB-G54
    Eminent EM4045
    Linksys WUSB54GSC
    Linksys WUSB54GSv1
    Linksys WUSB54GSv2
    U.S. Robotics USR5420
    U.S. Robotics USR5421
    +|Chipset: |Tested?|Recommended?|Power usage |Notes| +|-----------------------|-------|------------|------------|-----| +|**Realtek:** | | | | | +|rtl8187 | | | | | +|rtl8187b | | | | | +|rtl8188[cr]u | | | | | +|rtl8188cu | | | | | +|rtl8188ee | | | | | +|rtl8188eu
    rtl8188eus
    rtl8188cus|✔️|✔️|Idle: 0.25w
    TXing: 0.4w
    Off: 0.026w|Model tested:
    [TP-LINK TL-WN725N **V2**](https://techinfodepot.shoutwiki.com/wiki/TP-LINK_TL-WN725N_v2): working
    [TP-Link TL-WR722N **V4**](https://techinfodepot.shoutwiki.com/wiki/TP-LINK_TL-WN722N_v1.x): working (v2, v3 *should* be identical)| +|rtl8188ru | | | | | +|rtl819[12]cu | | | | | +|rtl8191cu | | | | | +|rtl8192ce | | | | | +|rtl8192cu |✔️ |❔ | |Tested:
    [Edimax EW-7811Un](https://techinfodepot.shoutwiki.com/wiki/Edimax_EW-7811Un): working| +|rtl8192de | | | | | +|rtl8192e | | | | | +|rtl8192ee | | | | | +|rtl8192eu |✔️ |❌ | |Buggy| +|rtl8192se | | | | | +|rtl8273,8188,8191,8192 | | | | | +|rtl8712u | | | | | +|rtl8723ae | | | | | +|rtl8723au | | | | | +|rtl8723be | | | | | +|rtl8821ae | | | | | +|rtl8821au |✔️ |❌ | |Tested:
    [TP-Link Archer T2U Plus](https://www.tp-link.com/us/home-networking/usb-adapter/archer-t2u-plus/): **NOT** working| +|rtl8xxx other | | | | | +| | | | | | +|**Mediatek:** | | | | | +|mt7601u |✔️ |✔️ |Idle: 0.739w|Tested:
    [Genbasic RF 2A4M1](https://www.amazon.com/dp/B0BNFKJPXS): working| +|mt76x0u | | | | | +|mt76x2u | | | | | +|mt7663s | | | | | +|mt7663u | | | | | +| | | | | | +|**Atheros:** | | | | | +|ar5008 | | | | | +|ar5523 | | | | | +|ar6003 | | | | | +|ar6004 | | | | | +|ar9001 | | | | | +|ar9002 | | | | | +|ar9170 | | | | | +|ar9271 |✔️ |❔ | |Tested:
    [TP-Link TL-WR722N **V1**](https://techinfodepot.shoutwiki.com/wiki/TP-LINK_TL-WN722N_v1.x): working
    [Penguin Wireless TPE-N150USB](https://www.thinkpenguin.com/gnu-linux/penguin-wireless-n-usb-adapter-gnu-linux-tpe-n150usb): buggy
    [Generic AR9271 w/SMA antenna](https://www.aliexpress.com/item/1005007556237899.html): buggy
    Work in progress| +|ar9k | | | | | +|ath11k | | | | | +|ar10k | | | | | +|wcn3660 | | | | | +|wcn3680 | | | | | +| | | | | | +|**Ralink:** | | | | | +|rt2501/rt73 | | | | | +|rt2571 | | | | | +|rt2571w | | | | | +|rt2572 | | | | | +|rt2573 | | | | | +|rt25xx | | | | | +|rt2671 | | | | | +|rt27xx | | | | | +|rt28xx | | | | | +|rt28xx unknown | | | | | +|rt30xx | | | | | +|rt3070 |✔️ |❔ | |Tested:
    [Alfa AWUS036NEH](https://techinfodepot.shoutwiki.com/wiki/ALFA_Network_AWUS036NEH): buggy| +|rt33xx | | | | | +|rt3573 | | | | | +|rt35xx | | | | | +|rt53xx | | | | | +|rt55xx | | | | | +| | | | | | +|**Atmel:** | | | | | +|at76c503 | | | | | +|at76c505 | | | | | +|at76c505a | | | | | +| | | | | | +|**Microchip Atmel:**| | | | | +|wilc1000 | | | | | +| | | | | | +|**Zydas:** | | | | | +|zd1201 | | | | | +|zd1211 | | | | | +|zd1211b | | | | | +| | | | | | +|**RNDIS USB:** | | | | | +|Asus WL169gE | | | | | +|Belkin F5D7051 | | | | | +|BT Voyager 1055 | | | | | +|Buffalo WLI-U2-KG125S | | | | | +|BUFFALO WLI-USB-G54 | | | | | +|Eminent EM4045 | | | | | +|Linksys WUSB54GSC | | | | | +|Linksys WUSB54GSv1 | | | | | +|Linksys WUSB54GSv2 | | | | | +|U.S. Robotics USR5420 | | | | | +|U.S. Robotics USR5421 | | | | | diff --git a/usb_config.md b/usb_config.md index 9842544..44d78e4 100644 --- a/usb_config.md +++ b/usb_config.md @@ -1,29 +1,23 @@ ---- +## USB Configuration Tool +To configure some Femtofox settings such as wifi, you can insert a USB flash drive containing a configuration file. The system will automatically recognize, mount and implement the settings you specify. +Configurable settings are: ---- + - Wifi SSID + - Wifi PSK (password) + - Wifi country + - Timezone + - Meshtastic: + - LoRa radio model + - [URL](https://meshtastic.org/docs/software/python/cli/#--seturl-seturl) (used to configure LoRa settings and channels) + - Security: Add Admin Key + - Security: Clear Admin Key List + - Security: [Legacy Admin Channel](https://meshtastic.org/docs/configuration/radio/security/#admin-channel-enabled) enable/disable -

    USB Configuration Tool

    -

    To configure some Femtofox settings such as wifi, you can insert a USB flash drive containing a configuration file. The system will automatically recognize, mount and implement the settings you specify.
    -Configurable settings are:

    -
      -
    • Wifi SSID
    • -
    • Wifi PSK (password)
    • -
    • Wifi country
    • -
    • Timezone
    • -
    • Meshtastic: -
        -
      • LoRa radio model
      • -
      • URL (used to configure LoRa settings and channels)
      • -
      • Security: Add Admin Key
      • -
      • Security: Clear Admin Key List
      • -
      • Security: Legacy Admin Channel enable/disable
      • -
      -
    • -
    -

    Instructions

    -

    The USB drive must be formatted with a single FAT32, exFAT, NTFS (read only - log will not be saved to drive) or ext4 partition. Add a file named femtofox-config.txt and whichever of the the following lines you want to set, keeping in mind this is CaSe sEnSiTiVe:

    -
    wifi_ssid="Your SSID name"
    +### Instructions
    +The USB drive must be formatted with a single FAT32, exFAT, NTFS (read only - log will not be saved to drive) or ext4 partition. Add a file named `femtofox-config.txt` and whichever of the the following lines you want to set, keeping in mind this is CaSe sEnSiTiVe:
    +```
    +wifi_ssid="Your SSID name"
     wifi_psk="wifipassword"
     wifi_country="US"
     timezone="America/New_York"
    @@ -31,89 +25,49 @@ meshtastic_lora_radio="ebyte-e22-900m30s"
     meshtastic_url="https://meshtastic.org/e/#CgMSAQESCAgBOAFAA0gB"
     meshtastic_admin_key="base64:T/b8EGvi/Nqi6GyGefJt/jOQr+5uWHHZuBavkNcUwWQ="
     meshtastic_legacy_admin="true"
    -
    -
    -

    [!NOTE]
    -Enter as many or as few settings as you like.

    -

    For wifi_country, insert your country’s two letter code (such as CA or IN) in capital letters.

    -

    Use a timezone as it appears in the tz database.

    -

    Meshtastic
    -For meshtastic_lora_radio, choose your radio from the supported hardware list.
    -Options are:

    -
      -
    • ebyte-e22-900m30sm
    • -
    • ebyte-e22-900m22s
    • -
    • e22-900mm22s
    • -
    • heltec-ht-ra62
    • -
    • seeed-wio-sx1262
    • -
    • waveshare-sx126x-xxxm
    • -
    • ai-thinker-ra-01sh
    • -
    • none (for simradio)
    • -
    -

    Important: You cannot set URL and security settings in the same operation - if you must set both, set the URL first, then edit the femtofox-config.txt file on the USB drive to remove the URL and add in your security settings.

    -

    To add a meshtastic_admin_key, copy it from the app and add base64: to the beginning (meshtastic_admin_key="base64:T/b8EGvi/Nqi6GyGefJt/jOQr+5uWHHZuBavkNcUwWQ=").

    -

    Clearing the meshtastic_admin_key list: The admin key list can contain up to three keys - if more are added they will be ignored. The USB configuration tool supports clearing the admin key list, after which you will need to re-add your admin key/s in a second operation. To clear the admin key list, enter meshtastic_admin_key="0", without base64:.

    -
    -
    -

    [!CAUTION]
    -Attempting to set wifi settings via USB configuration tool without a wifi adapter connected will lead to a 5 minute hang while the configuration tool runs - either disconnect and reconnect power or wait the full 5 minutes to to recover.

    -
    -

    To apply your configuration, reboot the Femtofox with the USB drive plugged in. No other USB drives can be plugged in at the same time.
    -A log (femtofox-config.log) is saved to /home/femto and the USB drive (except on NTFS, which is read only).
    -

    -

    Boot codes

    -

    When the Femtofox is finished booting, it will blink its User LED (see below) in a pattern which can be used to gather info on its status or help diagnose issues.
    -LEDs

    +``` +> [!NOTE] +> Enter as many or as few settings as you like. +> +> For `wifi_country`, insert your country's two letter code (such as CA or IN) in capital letters. +> +> Use a timezone as it appears in [the tz database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). +> +> **Meshtastic** +> For `meshtastic_lora_radio`, choose your radio from the supported hardware list. +> Options are: +> * `ebyte-e22-900m30sm` +> * `ebyte-e22-900m22s` +> * `e22-900mm22s` +> * `heltec-ht-ra62` +> * `seeed-wio-sx1262` +> * `waveshare-sx126x-xxxm` +> * `ai-thinker-ra-01sh` +> * `none` *(for simradio)* +> +> **Important:** You cannot set URL and security settings in the same operation - if you must set both, set the URL first, then edit the `femtofox-config.txt` file on the USB drive to remove the URL and add in your security settings. +> +>To add a `meshtastic_admin_key`, copy it from the app and add `base64:` to the beginning (`meshtastic_admin_key="base64:T/b8EGvi/Nqi6GyGefJt/jOQr+5uWHHZuBavkNcUwWQ="`). +> +> Clearing the `meshtastic_admin_key` list: The admin key list can contain up to three keys - *if more are added they will be ignored*. The USB configuration tool supports clearing the admin key list, after which you will need to re-add your admin key/s in a second operation. To clear the admin key list, enter `meshtastic_admin_key="0"`, without `base64:`. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    LED blink patternMeaningPossible causesSolutions
    ⚠️
    ________________
    1 very long blink, lasting 5 seconds
    Failed to mount USB drive. Ignoring.
  • Invalid filesystem
  • Corrupted partition table
  • Defective USB drive
  • Defective USB OTG adapter
  • Use a supported partition (FAT32, exFAT, NTFS, ext4)
  • Repair partition table
  • Try another USB drive
  • Try another USB OTG adapter
  • ⚠️
    _____  _____  _____
    3 long blinks, each lasting 1.5 seconds
    USB drive mounted successfully but femtofox-config.txt was not found. Ignoring.Config file missing.Create configuration file as described above.
    ⚠️
    _____  _____  _____  _____  _____
    5 long blinks, each lasting 1.5 seconds
    USB drive mounted successfully and femtofox-config.txt was found but did not contain readable configuration data. Ignoring.Configuration file improperly formatted or contains no data.Check configuration file contents as described above.
    ⚠️
    ___  ___  _  _  ___  ___  _  _
    2 long blinks, each lasting 1 seconds, then 2 short blinks, each lasting 1/4 of a second. Repeats twice
    Error while trying to implement a Meshtastic setting after 3 attempts. Some settings may have been implemented successfully.
  • The error may be transient.
  • Configuration file may contain improper data.
  • Try again.
  • Check configuration file contents as described above.
  • Check the log.

    This pattern may flash before other patterns. The pattern will repeat once for each failed setting.
  • ✅
    . . . . . . . . . .
    10 very fast blinks, each lasting 1/8th of a second
    USB drive mounted successfully, and femtofox-config.txt was found and contained configuration data which was sent for deployment. Any affected services will now restart. You can disconnect the USB drive.This does not mean that the information in the config file is correct - only that it was readable.
    Note that the “success” boot code will flash if at least one setting is successfully read - even if the setting was not implemented successfully.
    ✅
    __  __  __  __  __
    5 medium blinks, each lasting 0.5 seconds
    Boot complete. Appears on every successful boot and always appears last.
    -

    [!NOTE]
    -Boot codes can appear in sequence - for example: one long (4 second) blink, followed by 5 medium (half second) blinks means the attempt to mount the USB drive failed, and that boot is complete.

    -
    +> [!CAUTION] +> Attempting to set wifi settings via USB configuration tool without a wifi adapter connected will lead to a 5 minute hang while the configuration tool runs - either disconnect and reconnect power or wait the full 5 minutes to to recover. +**To apply your configuration, reboot the Femtofox with the USB drive plugged in. No other USB drives can be plugged in at the same time.** +A log (`femtofox-config.log`) is saved to `/home/femto` and the USB drive (except on NTFS, which is read only). +
    +### Boot codes +When the Femtofox is finished booting, it will blink its User LED (see below) in a pattern which can be used to gather info on its status or help diagnose issues. +![LEDs](https://github.com/noon92/femtofox/blob/main/leds.png) +| LED blink pattern | Meaning | Possible causes | Solutions | +|--|--|--|--| +|
    ⚠️
    ________________
    1 very long blink, lasting 5 seconds| Failed to mount USB drive. Ignoring.|
  • Invalid filesystem
  • Corrupted partition table
  • Defective USB drive
  • Defective USB OTG adapter |
  • Use a supported partition (FAT32, exFAT, NTFS, ext4)
  • Repair partition table
  • Try another USB drive
  • Try another USB OTG adapter | +|
    ⚠️
    \_\_\_\_\_  \_\_\_\_\_  \_\_\_\_\_
    3 long blinks, each lasting 1.5 seconds | USB drive mounted successfully but femtofox-config.txt was not found. Ignoring.| Config file missing. | Create configuration file as described above. | +|
    ⚠️
    \_\_\_\_\_  \_\_\_\_\_  \_\_\_\_\_  \_\_\_\_\_  \_\_\_\_\_
    5 long blinks, each lasting 1.5 seconds | USB drive mounted successfully and femtofox-config.txt was found but did not contain readable configuration data. Ignoring.| Configuration file improperly formatted or contains no data. | Check configuration file contents as described above. | +|
    ⚠️
    \_\_\_  \_\_\_  \_  \_  \_\_\_  \_\_\_  \_  \_
    2 long blinks, each lasting 1 seconds, then 2 short blinks, each lasting 1/4 of a second. Repeats twice | Error while trying to implement a Meshtastic setting after 3 attempts. Some settings may have been implemented successfully.|
  • The error may be transient.
  • Configuration file may contain improper data. |
  • Try again.
  • Check configuration file contents as described above.
  • Check the log.

    This pattern may flash before other patterns. The pattern will repeat once for each failed setting.| +|
    ✅
    . . . . . . . . . .
    10 very fast blinks, each lasting 1/8th of a second | USB drive mounted successfully, and femtofox-config.txt was found and contained configuration data which was sent for deployment. Any affected services will now restart. You can disconnect the USB drive. | This does not mean that the information in the config file is correct - only that it was readable.
    Note that the "success" boot code will flash if at least one setting is successfully read - even if the setting was not implemented successfully.| +|
    ✅
    \_\_  \_\_  \_\_  \_\_  \_\_
    5 medium blinks, each lasting 0.5 seconds | Boot complete. Appears on every successful boot and always appears last.| | | + +> [!NOTE] +> Boot codes can appear in sequence - for example: one long (4 second) blink, followed by 5 medium (half second) blinks means the attempt to mount the USB drive failed, and that boot is complete.