• This repository has been archived on 05/Apr/2024
  • Stars
    star
    189
  • Rank 204,649 (Top 5 %)
  • Language
    TypeScript
  • Created over 4 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Easily create a WiFi Access Point or WiFi repeater with balenaOS

WiFi Repeater

WiFi Repeater project is a utility to dynamically extend an existing wired or wireless network. To achieve this the utility uses the onboard WiFi chip to create an access point you can connect your devices to. To enable internet access you can either plug an ethernet cable (AP mode) or use a secondary WiFi interface (by using a USB WiFi dongle) to connect to an internet enabled network.

WiFi Repeater can work in the following modes:

  • Access Point: extend an existing ethernet connection with an access point network
  • Repeater: extend an existing wireless connection with an access point network. Requires the use of a USB Wifi dongle (see this list for recommended dongles)

WiFi Repeater modes of operation

How it works

WiFi Repeater will automatically scan your network and check each device's capabilities. It will then attempt to configure the devices to work in Access Point mode and if that is not possible it will switch to Repeater mode. You do not need to pre configure the device to work in either mode.

For Access Point mode it needs:

  • Internet connectivity via Ethernet
  • Wireless device with AP capabilities (such as the onboard WiFi chip in Raspberry Pi devices)

For Repeater mode it needs:

  • Wireless device with AP capabilities (such as the onboard WiFi chip in Raspberry Pi devices)
  • Secondary wireless device and valid credentials for a wireless network.

Required hardware

This project has been developed and tested with Raspberry Pi 3 and 4 though it should work with any board that supports balenaOS.

Usage

Mode: Access Point

Requirement: provide network access through the ethernet port

  1. Flash your device with balenaOS
  2. Deploy this app
  3. Set environment variables (or use defaults)
Env var Description Default
AP_SSID Access point network name. WiFi Repeater
AP_PASSWORD Access point network password. charlietheunicorn

Mode: Repeater

Requirement: provide network access through a wireless network. Also requires a USB WiFi dongle.

  1. Flash your device with balenaOS
  2. Deploy this app
  3. Connect the USB WiFi dongle
  4. Set environment variables (or use defaults)
Env var Description Default
AP_SSID Access point network name. WiFi Repeater
AP_PASSWORD Access point network password. charlietheunicorn
WIFI_SSID WiFi network name
WIFI_PASSWORD WiFi network password

LED patterns

In case something goes wrong WiFi repeater will produce a series of blinking patterns with the ACT LED (next to PWR LED) to help troubleshoot the issue. Valid patterns are the following:

LED pattern Problem Description Solution (AP mode) Solution (Repeater mode)
2 blinks Could not find a wireless device with Access Point capabilities Wireless devices detected don't support Access Point mode. Use a WiFi chipset that supports AP mode or a WiFi dongle. Use a WiFi chipset that supports AP mode or a WiFi dongle.
3 blinks Could not find a secondary wireless device Ethernet is disconnected or has no internet access. Switched to repeater mode but could not find a secondary wireless device. Provide internet access via Ethernet cable. Provide a secondary wireless device by using a WiFi dongle.
4 blinks WiFi credentials for secondary wireless device not provided. Ethernet is disconnected or has no internet access. Switched to repeater mode but could not find WiFi credentials. Provide internet access via Ethernet cable. Provide valid WiFi credentials
5 blinks No internet access Ethernet is disconnected or has no internet access. Switched to repeater mode, connected to WiFi but still have no internet access. Provide internet access via Ethernet cable. Ensure the target WiFi has internet access.

More Repositories

1

balena-dash

Build a Raspberry Pi based desktop dashboard for stats, photos, videos and more!
Shell
431
star
2

balena-sense

Take readings from a BME680 or similar sensor on a Raspberry Pi, store with InfluxDB and view with Grafana
Shell
284
star
3

balena-cam

Network Camera with Raspberry Pi and WebRTC. Tutorial:
JavaScript
174
star
4

inkyshot

Get a daily random inspirational quote delivered direct to your desk with Inkyshot. Build multiple Inkyshots and share the inspiration with your friends, family and loved ones ❀️
Python
115
star
5

rosetta-at-home

EJS
80
star
6

balena-node-red

a node-red application with balena-supervisor support, can be managed remotely via balena publicURL
JavaScript
60
star
7

audio

Audio building block for balenaOS, based on pulseaudio.
Shell
31
star
8

bluetooth

Optimized bluetooth agent for balenaOS. Based on BlueZ 5.0.
Python
23
star
9

dashboard

Grafana dashboard block with auto-visualization of InfluxDB databases to get your data visualized instantly!
Python
23
star
10

connector

Auto-configured data connector block based on Telegraf
Python
15
star
11

xserver

A simple X11 server block
Shell
15
star
12

sensor

Auto-detects connected i2c sensors and published data on HTTP or MQTT.
Python
14
star
13

fbcp

fbcp driver for SPI based displays for Raspberry Pis via fbcp-ili9341
Dockerfile
14
star
14

multiroom

Set up multiroom audio for your fleet of devices. Uses the Snapcast audio player.
Shell
9
star
15

autohupr

Automatically keep your balenaOS host release up-to-date with this block!
TypeScript
8
star
16

plate-recognizer

Using balena to easily deploy Plate Recognizer to one or more Raspberry Pi 4 devices.
Shell
7
star
17

log2screen

Shell
7
star
18

project-template

Project template for new Balena projects
Dockerfile
7
star
19

dbus

Shell
6
star
20

pulse

A block for counting pulses on a Raspberry Pi GPIO pin.
Python
4
star
21

video-capture

Provide an RTSP stream for a connected video source.
C
3
star
22

browsercontrol

HTML
3
star
23

logwatcher

TypeScript
3
star
24

balena-openvino

experiments aimed at creating an openvino balena block
C
1
star
25

lockr-block

Create or remove application update locks with the return code of any command.
TypeScript
1
star