diff --git a/README.md b/README.md index fabacd4..a3b8310 100644 --- a/README.md +++ b/README.md @@ -8,21 +8,20 @@ The Luckfox Pico Mini is the postage stamp sized heart of the Femtofox - a compa - [Features](#features) - Specifications - coming soon -- [Supported hardware](./supported_hardware.md) -- [Installation guide](./foxbuntu_install.md) +- [Supported hardware](https://github.com/femtofox/femtofox/wiki/Supported-Hardware) +- [Installation guide](https://github.com/femtofox/femtofox/wiki/Getting-Started) - How to order - coming soon -- DIY instructions - coming soon -- [Networking](#networking) -- [USB configuration tool](./usb_config.md) +- [DIY instructions](https://github.com/femtofox/Femtofox_Community_Hardware) +- [USB configuration tool](https://github.com/femtofox/femtofox/wiki/USB-Config-Tool) ### Features -* Tiny size (63x54mm for the Kitchen Sink Edition, 65x30mm for the Smol Edition). Roughly equivalent to a standard Raspberry Pi hat and Pi Zero respectively. -* Power efficiency (~0.27-0.4w average, depending on radio and mesh congestion) +* Tiny size (63x54mm for Femtofox, 65x30mm for the Smol Edition). Equivalent to a standard Raspberry Pi hat and Pi Zero respectively. +* Power efficient (~0.27-0.4w average, depending on radio and mesh congestion) * Full Linux CLI (Ubuntu) via our pre-built Foxbuntu image * Meshtastic native client support via SPI -* USB host support - attach USB peripherals (see [supported hardware](supported_hardware.md)) -* USB wifi support (see [supported hardware](supported_hardware.md)) -* RTC support for timekeeping (see [supported hardware](supported_hardware.md)) +* USB host support - attach USB peripherals +* USB wifi support +* RTC support for timekeeping **Accomplished:** - [x] Meshtastic native client controlling a LoRa radio (see [supported hardware](supported_hardware.md)) @@ -40,40 +39,9 @@ The Luckfox Pico Mini is the postage stamp sized heart of the Femtofox - a compa - [x] Allow editing of config files by plugging in thumb drive - [x] Ability to activate or deactivate WIFI via Meshtastic admin -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 utilized for NTP via [Chrony](https://chrony-project.org/). - -### [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 guide](foxbuntu_install.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](assets/images/luckfox_pinout.png) -![pinout](assets/images/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/foxbuntu_install.md b/foxbuntu_install.md deleted file mode 100644 index add4de2..0000000 --- a/foxbuntu_install.md +++ /dev/null @@ -1,25 +0,0 @@ - -## Foxbuntu Installation Guide -### Requirements for installing Foxbuntu -To install Foxbuntu, you'll need the following: -1. microSD card. You can select one from [supported hardware](supported_hardware.md), but any card over 8gb and supporting UHS-I *should* work - 2. microSD card reader for your computer - 3. A method to configure the Fox: - * USB OTG adapter (USB-C to USB-A) and a USB flash drive, OR - * USB-C cable to connect the Fox to your computer (Femtofox Pro only), OR - * USB UART serial adapter connected to UART2 (serial debug pins), OR - * An ethernet cable (models with ethernet port) -4. A Femtofox (duh!) - -### Installation instructions -1. Download the latest stable [Foxbuntu release](https://github.com/noon92/femtofox/releases). At the bottom of the release, click the .7z file to download. -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. The microSD slot is on the back of the board. -4. Configure the Femtofox using one of the following methods: - * For USB config, following the instructions on the [USB Configuration Tool](usb_config.md) page, prepare your USB flash drive with your desired settings. Using a USB OTG adapter, plug the USB flash drive into the *data* USB port (the port on the Luckfox. - * On Femtofox Pro, connect the *Power USB-C port* to your PC with a cable, and open a serial console application such as PuTTY for windows. Select your the Femtofox's COM port (find the correct COM port in Windows hitting WIN+R and entering `cmd /k wmic path Win32_SerialPort get DeviceID, Description && pause`. The port should be named "USB-SERIAL CH340". - * Use a USB UART serial adapter to connect to UART2 (serial debug pins). - * Use an ethernet cable and SSH in. Femtofox's default hostname is femtofox.local. -5. Connect the Femtofox to power, either via the *power USB-C port* (Pro model only, on the same side as the ethernet port) or via the power-in JST power plug. Using the USB-C port on the Luckfox is possible, but will prevent usage of USB peripherals. -6. The Femtofox will perform its first boot. This can take up to 5 minutes (subsequent boots ~40 seconds). When boot is complete, the USR LED will blink 5 times, 1/2 a second each. -7. Default username and password is `femto`:`femto`. You are required to change the password on first login. diff --git a/supported_hardware.md b/supported_hardware.md deleted file mode 100644 index 741bf46..0000000 --- a/supported_hardware.md +++ /dev/null @@ -1,108 +0,0 @@ -## 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.
    Some users have reported that USB-C flash drives do not work. This requires more study.| - -### 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 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 | | | | | -|rtl8812bu |✔️ |❌ | |Tested:
    [TP-LINK Archer T3U](https://techinfodepot.shoutwiki.com/wiki/TP-LINK_Archer_T3U): **NOT** working| -|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 deleted file mode 100644 index 1ace2d6..0000000 --- a/usb_config.md +++ /dev/null @@ -1,88 +0,0 @@ - - -## USB Configuration Tool -To configure some Femtofox settings such as wifi, you can insert a USB flash drive containing a configuration file. On boot, the system will automatically recognize, mount and implement the settings you specify. The tool can also be run from the `femto-config` tool, in the `Utilities` menu. - -Configurable settings are: -- Wifi SSID -- Wifi PSK (password) -- Wifi country -- Timezone -- Activity LED (blinky light - disable for minor power savings) -- Meshtastic: - - [LoRa radio model](https://github.com/femtofox/femtofox/blob/main/supported_hardware.md) - - [URL](https://meshtastic.org/docs/software/python/cli/#--seturl-seturl) (used to configure LoRa settings/channels and generate the QR code) - - Security: [public key](https://meshtastic.org/docs/configuration/radio/security/#public-key) - - Security: [private key](https://meshtastic.org/docs/configuration/radio/security/#private-key) - - Security: Add [Admin Key](https://meshtastic.org/docs/configuration/radio/security/#admin-key) - - Security: Clear Admin Key List - - Security: [Legacy Admin Channel](https://meshtastic.org/docs/configuration/radio/security/#admin-channel-enabled) 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 settings you would like to change (CaSe sEnSiTiVe). - -[Get an example USB configuration file here](assets/femtofox-config.txt) -``` -wifi_ssid="Your SSID name" -wifi_psk="wifipassword" -wifi_country="US" -timezone="America/New_York" -act_led="enable" -meshtastic_lora_radio="ebyte-e22-900m30s" -meshtastic_url="https://meshtastic.org/e/#CgMSAQESCAgBOAFAA0gB" -#meshtastic_public_key="XX=" -#meshtastic_private_key="XX=" -meshtastic_admin_key="XX=" -meshtastic_legacy_admin="true" -dont_run_if_log_exists="true" -``` -> [!NOTE] -> Enter as many or as few settings as you like. -> -> For `wifi_country`, insert your country's [ISO/IEC alpha2 two letter country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) (such as US, GB, DE, IN, etc.) 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-900m30s` -> `ebyte-e22-900m22s` -> `ebyte-e80-900m22s` (experimental) -> - `heltec-ht-ra62` -> `seeed-wio-sx1262` -> `waveshare-sx126x-xxxm` -> `ai-thinker-ra-01sh` -> `sx1262_tcxo` (for Ebyte E22-900M30SM, Ebyte E22-900M22S, Heltec HT-RA62, Seeed Wio SX1262) -> - `sx1262_xtal` (for AiThinker RA01SH, and Waveshare Pi hat) -> - `lr1121_tcxo` (experimental, for Ebyte E80-900M2213S) -> - `none` _(for simulated radio) -> -> 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="clear"`. - -> [!NOTE] -> `dont_run_if_log_exists="true"` will prevent the USB configuration tool from working if there's a log present on the USB drive, indicating it has already been run. There is also an LED boot code for this, described below. - -**To apply your configuration, reboot the Femtofox with the USB drive plugged in, or run `sudo femto-config` - `Utilites` - `Run USB configuration tool`. 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](assets/images/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 | -|

    ⚠️
    **───   ───**
    2 long blinks, each lasting 1.5 seconds | femtofox-config.txt is configured to skip if log exists. | USB drive mounted successfully but femtofox-config.txt contains `dont_run_if_log_exists="true"` and a log is present on the USB drive. Ignoring. | Remove log from USB drive or remove `dont_run_if_log_exists` line from femtofox-config.txt | -|

    ⚠️
    **───   ───   ───**
    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 second, 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.| | Hooray! | -> \[!NOTE\] -> Boot codes can appear in sequence - for example: one long (4 second) blink, followed by 5 medium (half second) blinks means the USB drive failed to mount, and that the boot sequence is complete. -