Merge branch 'docs-update' into main

This commit is contained in:
noon92 2025-02-04 12:53:31 +02:00 • committed by GitHub
commit 216d10b19d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 12 additions and 265 deletions

View file

@ -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.
<!--stackedit_data:
eyJoaXN0b3J5IjpbMTE3Mjg3OTE0N119
-->

View file

@ -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 <u>.7z</u> 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 <kbd>WIN</kbd>+<kbd>R</kbd> 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.

View file

@ -1,108 +0,0 @@
## Supported Hardware
| Hardware | Confirmed working | Expected to work | Notes |
|-|-|-|--|
|LoRa radios (working with Meshtasticd)|<li>[Waveshare RPi LoRa hat without GNSS](https://www.waveshare.com/sx1262-lorawan-hat.htm?sku=22002)*<li>[Seeed Wio SX1262](https://www.seeedstudio.com/Wio-SX1262-Wireless-Module-p-5981.html)<li>[Ebyte E220900M30S](https://aliexpress.com/item/4000543921245.html)<li>AI Thinker RA-01SH<li>[Heltec HT-RA62](https://www.aliexpress.com/item/1005005445349105.html)|<li>Ebyte E22-900mm22s<li>[Ebyte E22-900m22s](https://www.aliexpress.com/item/1005001808069127.html)<li>Any SPI LoRa radio that's Meshtastic compatible|*Waveshare RPi hat is not recommended as it has issues with sending longer messages.|
|MicroSD cards|<li>[Kingston Endurance 32gb](https://www.kingston.com/en/memory-cards/high-endurance-microsd-card)<li>[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...)<br>The faster the better! Consider sticking with "endurance" cards, especially for remotely deployed nodes.|
|RTC (real time clock)|<li>[DS3231M](https://vi.aliexpress.com/item/1005007143842437.html)<li>[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|<li>USB hubs (powered or not)<li>Thumb drives<li>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.<br>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|
|-----------------------|-------|------------|------------|-----|
|**<u>Realtek:** | | | | |
|rtl8187 | | | | |
|rtl8187b | | | | |
|rtl8188[cr]u | | | | |
|rtl8188cu | | | | |
|rtl8188ee | | | | |
|rtl8188eu<br>rtl8188eus<br>rtl8188cus|✔️|✔️|Idle: 0.25w<br>TXing: 0.4w<br>Off: 0.026w|Model tested:<br>[TP-LINK TL-WN725N **V2**](https://techinfodepot.shoutwiki.com/wiki/TP-LINK_TL-WN725N_v2): working<br>[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:<br>[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:<br>[TP-LINK Archer T3U](https://techinfodepot.shoutwiki.com/wiki/TP-LINK_Archer_T3U): **NOT** working|
|rtl8821ae | | | | |
|rtl8821au |✔️ |❌ | |Tested:<br>[TP-Link Archer T2U Plus](https://www.tp-link.com/us/home-networking/usb-adapter/archer-t2u-plus/): **NOT** working|
|rtl8xxx other | | | | |
| | | | | |
|**<u>Mediatek:** | | | | |
|mt7601u |✔️ |✔️ |Idle: 0.739w|Tested:<br>[Genbasic RF 2A4M1](https://www.amazon.com/dp/B0BNFKJPXS): working|
|mt76x0u | | | | |
|mt76x2u | | | | |
|mt7663s | | | | |
|mt7663u | | | | |
| | | | | |
|**<u>Atheros:** | | | | |
|ar5008 | | | | |
|ar5523 | | | | |
|ar6003 | | | | |
|ar6004 | | | | |
|ar9001 | | | | |
|ar9002 | | | | |
|ar9170 | | | | |
|ar9271 |✔️ |❔ | |Tested:<br>[TP-Link TL-WR722N **V1**](https://techinfodepot.shoutwiki.com/wiki/TP-LINK_TL-WN722N_v1.x): working<br>[Penguin Wireless TPE-N150USB](https://www.thinkpenguin.com/gnu-linux/penguin-wireless-n-usb-adapter-gnu-linux-tpe-n150usb): buggy<br>[Generic AR9271 w/SMA antenna](https://www.aliexpress.com/item/1005007556237899.html): buggy<br>Work in progress|
|ar9k | | | | |
|ath11k | | | | |
|ar10k | | | | |
|wcn3660 | | | | |
|wcn3680 | | | | |
| | | | | |
|**<u>Ralink:** | | | | |
|rt2501/rt73 | | | | |
|rt2571 | | | | |
|rt2571w | | | | |
|rt2572 | | | | |
|rt2573 | | | | |
|rt25xx | | | | |
|rt2671 | | | | |
|rt27xx | | | | |
|rt28xx | | | | |
|rt28xx unknown | | | | |
|rt30xx | | | | |
|rt3070 |✔️ |❔ | |Tested:<br>[Alfa AWUS036NEH](https://techinfodepot.shoutwiki.com/wiki/ALFA_Network_AWUS036NEH): buggy|
|rt33xx | | | | |
|rt3573 | | | | |
|rt35xx | | | | |
|rt53xx | | | | |
|rt55xx | | | | |
| | | | | |
|**<u>Atmel:** | | | | |
|at76c503 | | | | |
|at76c505 | | | | |
|at76c505a | | | | |
| | | | | |
|**<u>Microchip Atmel:**| | | | |
|wilc1000 | | | | |
| | | | | |
|**<u>Zydas:** | | | | |
|zd1201 | | | | |
|zd1211 | | | | |
|zd1211b | | | | |
| | | | | |
|**<u>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 | | | | |

View file

@ -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).
<a href download="assets/femtofox-config.txt">[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).
<br>
### 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 |
|--|--|--|--|
| <p align="center">⚠️<br>**──────────**<br>1 very long blink, lasting 5 seconds</center> | Failed to mount USB drive. Ignoring. | • Invalid filesystem<br>• Corrupted partition table<br>• Defective USB drive<br>• Defective USB OTG adapter | • Use a supported partition (FAT32, exFAT, NTFS, ext4)<br>• Repair partition table<br>• Try another USB drive<br>• Try another USB OTG adapter |
| <p align="center">⚠️<br>**───&nbsp;&nbsp;&nbsp;───**<br>2 long blinks, each lasting 1.5 seconds</center> | 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 |
| <p align="center">⚠️<br>**───&nbsp;&nbsp;&nbsp;───&nbsp;&nbsp;&nbsp;───**<br>3 long blinks, each lasting 1.5 seconds</center> | USB drive mounted successfully but femtofox-config.txt was not found. Ignoring. | Config file missing. | Create configuration file as described above. |
| <p align="center">⚠️<br>**───&nbsp;&nbsp;&nbsp;───&nbsp;&nbsp;&nbsp;───&nbsp;&nbsp;&nbsp;───&nbsp;&nbsp;&nbsp;───**<br>5 long blinks, each lasting 1.5 seconds</center> | 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. |
| <p align="center">⚠️<br>**──&nbsp;&nbsp;&nbsp;──&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;-**<br>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.<br>• Configuration file may contain improper data. | • Try again.<br>• Check configuration file contents as described above.<br>• Check the log.<br><br>This pattern may flash before other patterns. The pattern will repeat once for each failed setting. |
| <p align="center">✅<br>**·&nbsp;&nbsp;&nbsp;·&nbsp;&nbsp;&nbsp;·&nbsp;&nbsp;&nbsp;·&nbsp;&nbsp;&nbsp;·&nbsp;&nbsp;&nbsp;·&nbsp;&nbsp;&nbsp;·&nbsp;&nbsp;&nbsp;·&nbsp;&nbsp;&nbsp;·&nbsp;&nbsp;&nbsp;·**<br>10 very fast blinks, each lasting 1/8th of a second</center> | 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.<br>Note that the "success" boot code will flash if at least one setting is successfully read - even if the setting was not implemented successfully. | |
| <p align="center">✅<br>**─&nbsp;&nbsp;&nbsp;─&nbsp;&nbsp;&nbsp;─&nbsp;&nbsp;&nbsp;─&nbsp;&nbsp;&nbsp;─**<br>5 medium blinks, each lasting 0.5 seconds</center> | 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.
<!--stackedit_data:
eyJoaXN0b3J5IjpbLTE5OTAxODA3OSwtMjYyOTMyNDldfQ==
> \[!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.