diff --git a/README.md b/README.md
index 0d3bf1f..1fb5ce5 100644
--- a/README.md
+++ b/README.md
@@ -1,183 +1,78 @@
----
-
-
----
-
-
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.
There are four methods to get online:
-sudo luckfox-config. This is not really recommended, but can be used in a pinch.| 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.

-
-+# 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. + + + + +> [!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)|[!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.
| Hardware | -Confirmed working | -Expected to work | -Notes | -
|---|---|---|---|
| LoRa radios (working with Meshtasticd) | -*Waveshare RPi hat is not recommended as it has issues with sending longer messages. | -||
| MicroSD cards | -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) | -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 | -- | RAK4630 and 4631 are the same. | -
| USB wifi adapter chipsets | -- | - | See below | -
| Misc. hardware | -- | If power draw exceeds supply, the device will reboot, bootloop or hard crash. Unpowered USB hubs seem to be notorious for causing reboots. | -
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: 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.739w | -Tested: 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 | -- | - | - | - |
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:
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
-
-Formeshtastic_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.txtfile 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 addbase64:to the beginning (meshtastic_admin_key="base64:T/b8EGvi/Nqi6GyGefJt/jOQr+5uWHHZuBavkNcUwWQ=").Clearing the
-meshtastic_admin_keylist: 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, entermeshtastic_admin_key="0", withoutbase64:.
--[!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).
-
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.
-
| LED blink pattern | -Meaning | -Possible causes | -Solutions | -
|---|---|---|---|
________________ 1 very long blink, lasting 5 seconds |
-Failed to mount USB drive. Ignoring. | -||
_____ _____ _____ 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. | -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. | -- | - |
-+> [!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). +[!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.