TP-Link TL-WR1043ND

Одно из недорогих устройств, с поддержкой Gigabit Ethernet. Производитель указывает: 3 съемные всенаправленные антенны (RP-SMA разъем) и максимальную мощность передатчика в 24dBm (251 mw, v1.x, v2.x). Примечание: максимальная мощность передатчика и перечень доступных для использования каналов может отличаться в некоторых странах!

Версия/Модель H/W Ревизия Дата запуска S/N Поддержка версии OpenWrt Спецификация модели
v1.1 - - Backfire 10.03 Как в WR941ND.
v1.4 - - Backfire 10.03 Same v1 board as v1.1
v1.5 - - Backfire 10.03 Same v1 board as v1.1
v1.6 - - Backfire 10.03 Аналогично
v1.7 - - Backfire 10.03.1-rc4 Аналогично
v1.8 - - Backfire 10.03.1-rc6 or trunk Аналогично
(DE)v1.0 - - Backfire 10.03.1-rc4 Аналогично, Немецкий WebUI
v2.1 - 2013-06-18 Barrier Breaker 14.07
HW V1.x HW V2.x
HW Версия Процессор Память Флеш Network Gigabit USB Serial JTag
1.x Atheros AR9132@400MHz 32MB 8MB 4×1 Да Да Да Да
2.x Qualcomm Atheros QCA9558@720MHz 64MB 8MB 4×1 Да Да Да Нет

See paragraphs Hardware or Tags for more details.

  1. downloads Вы должны загрузить стабильную версию прошивки, в имени которой содержатся слова Factory и SquashFS.
  2. generic.flashing Затем, загрузить этот файл прошивки на ваш роутер.
  • Самый быстрый способ - это скачать готовый собранный trunk образ, имя файла - openwrt-ar71xx-tl-wr1043nd-v1-squashfs-factory.bin.
    • Wi-Fi работает сразу после установки прошивки.
  • Самый надежный способ - скачать готовый стабильный образ прошивки, имя файла - openwrt-ar71xx-tl-wr1043nd-v1-squashfs-factory.bin.
    • Внимание! Этот образ прошивки не имеет модулей поддержки Wi-Fi. Вы можете легко установить недостающие пакеты на раздел jffs2 позже: opkg update, затем: opkg install kmod-ath9k wpad-mini. UPDATE: Backfire (10.03.1, r29592) имеет все модули wifi внутри прошивки.
  • Вы всегда можете собрать прошивку сами, на основе Kamikaze или Backfire. Выберите платформу 'Atheros AR71xx/AT7240/AR913x' и используйте 'TP-Link WR1043ND v1' профиль для сборки.

It appears that in order to use the “Firmware upgrade” option in the original firmware for installing OpenWRT, the WR1043ND must be connected to internet, or at least to a dhcp server on its WAN port - otherwise it won't flash the OpenWRT image, but come up with original firmware again after reboot. UPDATE: not a problem with hardware v1.8 running stock firmware 20110429: leaving connected back to back the Windows client PC performing the upgrade was good enough.

Для лучшего понимания, пожалуйста прочтите flash.layout. Там вы найдете много полезной информации.

Теперь рассмотрим краткую характеристику разделов флеш-памяти конкретного устройства:

TP-Link WR1043ND Flash Layout stock firmware
Layer0 m25p80 spi0.0: m25p64 8192KiB
Layer1 mtd0 mtd1 mtd3
Size in KiB 128KiB 8000KiB 64KiB
Name u-boot firmware art
mountpoint none / none
filesystem none SquashFS? none
TP-Link WR1043ND Visual Flash Layout OpenWrt
Offset 0 128 1408 2944 8128
x64KiB Blocks oo oooooooooooooooooooo oooooooooooooooooooooooo ooooooooooooooooooooooooooooooooooooooooooooooooooooooo o
TP-Link WR1043ND Flash Layout
Layer0 m25p80 spi0.0: m25p64 8192KiB
Layer1 mtd0 u-boot 128KiB mtd5 firmware 8000KiB mtd4 art 64KiB
Layer2 mtd1 kernel 1280KiB mtd2 rootfs 6720KiB
mountpoint /
filesystem mini_fo
Layer3 mtd3 rootfs_data 5184KiB
Size in KiB 128KiB 1280KiB 1536KiB 5184KiB 64KiB
Name u-boot kernel rootfs_data art
mountpoint none none /rom /overlay none
filesystem none none SquashFS JFFS2 none

ART = Atheros Radio Test - раздел, который содержит MAC-адреса и данные калибровки wifi (EEPROM). Если раздел отсутствует либо поврежден, - драйвер ath9k не может быть запущен (и соответственно, беспроводная связь работать не будет).

Установите openwrt-ar71xx-tl-wr1043ndv1-squashfs-factory.bin используя “Firmware Upgrade” веб-интерфейса оригинальной прошивки.

Перепрошивать десятки или сотни устройств вручную через веб-интерфейс непрактично. В этом случае можно использовать следующий скрипт:

#!/bin/bash

# Файл с образом прошивки -- первый и единственный аргумент командной строки.
#
# Второй вызов curl возвращается с ошибкой таймаут, но это нормально.
# После завершения работы скрипта можно отключить Ethernet-кабель
# и начать перепрошивку следующего устройства, но обязательно ОСТАВЬТЕ
# включенным ПИТАНИЕ, пока процесс перепрошивки не завершится! После
# успешной перепрошивки раутер сбрасывается автоматически (все светодиоды
# одновременно высвечиваются один раз примерно на полсекунды).

curl \
  --user admin:admin \
  --user-agent 'Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:12.0) Gecko/20100101 Firefox/12.0' \
  --referer 'http://192.168.1.1/userRpm/SoftwareUpgradeRpm.htm' \
  --form "Filename=@$1" -F 'Upgrade=Upgrade' \
  http://192.168.1.1/incoming/Firmware.htm > /dev/null

sleep 1

curl \
  --max-time 2 \
  --user admin:admin \
  --user-agent 'Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:12.0) Gecko/20100101 Firefox/12.0' \
  --referer 'http://192.168.1.1/incoming/Firmware.htm' \
  http://192.168.1.1/userRpm/FirmwareUpdateTemp.htm >  /dev/null

If you want to upgrade using TFTP you follow these steps (as an alternative to the above install process).

Quick howto recover from bad flash. (full log)

Requirements:

  • terminal program (e.g. minicom) set to 115200 8N1, no flow control
  • file named code.bin containing openwrt firmware.
  • tftpd server with an address 192.168.0.5 (configurable with setenv command, printenv first if unsure)

The simplest tftpd server to use is dnsmasq. Install and run with dnsmasq --enable-tftp --tftp-root=/code.bindirectory

Commands:

After you see Autobooting in 1 seconds type tpl and hit enter to get into command promt.

erase 0xbf020000 +7c0000 # 7c0000: size of the firmware (be aware that you may have a different size thus bricking your router)
tftpboot 0x81000000 code.bin
cp.b 0x81000000 0xbf020000 0x7c0000
bootm 0xbf020000

If you do not want to bother with running a tftpd server on your computer, especially considering the security concerns, you can also use a Kermit client to transfer the new image. It may take forever and a half (15-20min) to copy, but it's easier and more secure than running a tftpd server. These instructions assume you're using a Linux system, but they will give you all you need to do the same on a Windows box.

Requirements:

  • terminal program (e.g. minicom) set to 115200 8N1, no flow control
  • file named code.bin containing openwrt firmware.
  • Kermit client (these instructions will involve using C-Kermit under Linux)

In your terminal program you type:

erase 0xbf020000 +7c0000 # 7c0000: size of the firmware (be aware that you may have a different size thus bricking your router)
loadb 0x81000000

Hint: After you see Autobooting in 1 seconds type tpl and hit enter to get into command promt.

Fire up C-Kermit and run the following commands (or configure your Kermit client to these parameters):

set line /dev/ttyUSB0 # Just make sure you got the right USB interface
set speed 115200
set carrier-watch off
set handshake none
set flow-control none
robust
set file type bin
set file name lit
set rec pack 1000
set send pack 1000
set window 5
send code.bin # Make sure you include a proper path to the file. That's why I just kept it in /home/$user

After the 15-20min file transfer, the new firmware should be on your router and you can continue in terminal:

cp.b 0x81000000 0xbf020000 0x7c0000
bootm 0xbf020000

Warning!
This section describes actions that might damage your device or firmware. Proceed with care!

In case of the WR1043ND there is a catch: You download the stock firmware from the OEM: http://www.tplink.com/en/support/download/?model=TL-WR1043ND

  • in case the file name of this firmware file does not contain the word “boot” in it, you can simply revert back to original firmware
  • in case the file name of this firmware file does contain the word “boot” in it, you need to cut off parts of the image file before flashing it:

An example of an image file with the word “boot” in it is wr1043nv1_en_3_9_17_up_boot(091118).bin.

Cut the first 0x20200 (that is 131,584 = 257*512) Bytes from original firmware:

dd if=orig.bin of=tplink.bin skip=257 bs=512

This has been confirmed by supertom64

После прошивки, начинайте Базовую настройку.
Сконфигурируйте ваше Интернет-соединение, настройте беспроводную связь, USB-порты, и т.д.

Сетевые настройки по-умолчанию:

Имя интерфейса Описание Настройки по-умолчанию
br-lan LAN & WiFi 192.168.1.1/24
eth0 LAN ports (1 to 4) + WAN Нет
wlan0 WiFi Отключен

Порты коммутатора с 1 по 4 подключены к внешним портам LAN(1-4), как они помечены на корпусе, порт 0 — разъём WAN на корпусе. 5 порт подключен внутри к самому роутеру. Это иллюстрирует таблица ниже:

Порт Порт коммутатора
Internet (WAN) 0
LAN 1 1
LAN 2 2
LAN 3 3
LAN 4 4
GMII 5

В апп. версии 2, у процессора два независимых порта, каждый из которых может быть использован для создания trunk, или access-интерфейса. Соответствие внутренних портов внешним разъёмам и портам процессора показано на рисунке ниже:

Некоторые нюансы, касающиеся версии 10.03.1-rc4 на аппаратной версии 1.8 смотрите здесь.

OpenWrt Failsafe Mode

Включите ваш маршрутизатор. После того, как индикатор 'SYS' начнет мигать, нажмите и удерживайте кнопку QSS (Находится на передней панели справа), до тех пор, пока индикатор 'SYS' не начнет мигать быстрее.

Вы увидите что-то подобное:

.
No valid address in Flash. Using fixed address
: cfg1 0xf cfg2 0x7114
eth0 up
eth0
Autobooting in 1 seconds

Введите

tpl

в течении 1 секунды. Затем используйте этот метод - OEM installation using the TFTP and RS232 method

Architecture: MIPS
Vendor: Qualcomm Atheros
bootloader: U-Boot
System-On-Chip: AR9132 rev 2 (MIPS 24Kc V7.4)
CPU/Speed 24Kc V7.4 400 Mhz
Flash-Chip: ST 25P64V6P
Flash size: 8192 KiB
RAM: 32 MiB
Wireless: Atheros AR9103 2.4ghz 802.11bgn
Ethernet: RealTek RTL8366RB 5-port Gigabit switch w/ vlan support, swconfig
Internet: н/д
USB: Yes 1 x 2.0
Serial: Yes
JTAG: Yes

Микросхема Realtek 8366RB поддерживает: VLAN, Jumbo Frames (не поддерживается SoC), bandwidth control, port priority, storm filtering, QoS, ACL. Не все эти функции поддерживаются прошивкой openwrt в данный момент. Поддерживаемые VLAN IDs: 1-15 (VLAN Configuration Mode 2 ?). Подробнее: Ticket #7977

See → performance for results and performance for help for measuring

Измерения дешевым ваттметром показали, что в режиме простоя устройство потребляет 6,9 Вт, а при нагрузке - 9 Вт.

Обратите внимание: Это действие лишает вас гарантии! Корпус WR1043N состоит из четырех частей:

  • Верхняя часть корпуса (белая, с логотипом)
  • Нижняя часть (белая, с наклейкой)
  • Фронтальная панель (прозрачная, черная)
  • Внешняя рамка (черная, с прорезями для охлаждения)

Устройство крепится с помощью двух винтов (винты находятся под резиновыми ножками). Верх и низ корпуса соединяются с помощью двух защелок и системы направляющих, которые находятся спереди устройства.

  1. Снимите все антенны.
  2. Отклейте резиновые ножки сзади роутера, и открутите два винта.
  3. Открутите все гайки в разьеме антенны и аккуратно протолкните разьем внутрь корпуса. Не применяйте черезмерной силы, если у вас не получилось, - оставьте их на месте и будьте осторожны при снятии внешней рамки корпуса, не заденьте кабели.
  4. Push one of the bottom screws back into place to lift the top cover, and keep it that way using a finger.
  5. With the top slightly open, push the bottom cover away. Use a screwdriver if you can't reach it with your fingers.
  6. If you have unscrewed the antenna connectors, now you can remove outer frame. Otherwise just carefully slide it out of the way: this will expose the clips that keep the top and bottom covers together.
  7. With a flathead screwdriver or similar tool, gently pry the two front clips apart. Each clip has two latches and is located near the corners, next to the black front. Put your screwdriver behind the latches and push it towards the ethernet ports.
  8. Now the top cover can slide out the vertical guides on the black front.
  9. The black front also has three plastic hooks that go into matching holes in the bottom cover. To remove it, pull the front away and then push it down.

Фото вы можете найти тут

Сборка корпуса

  1. Place the board on the bottom cover, so that the two plastic pins at the front keep it in place.
  2. If you undid the antenna connectors, put them back in and tighten the nuts.
  3. Place the outer frame behind the board and make sure it sits flush to the connectors.
  4. Insert the hooks of the front into the holes in the bottom cover, don't push it in yet.
  5. Make the top cover slide into the vertical guides on the front. Don't push it down yet.
  6. Push the front towards the back so the hooks are engaged, then push down the top cover.
  7. Fasten the screws and re-apply the rubber feet.

port.serial general information about the serial port, serial port cable, etc. How to connect to Serial Port:

Solder a header as shown in the picture or wires with a connector directly. The device uses TTL @ 3.3V and not a standard RS-232 Serial that operates between 3 and 15V, so do not try to connect it to a common serial adapter: you will certainly fry the serial circuit or even the whole board. There are plenty of USB to TTL and RS-232 to TTL available on the market, just be careful with the voltage: the standard is 5V and it may also damage your board. Look for the ones with 3.3V or with both voltages and a way to switch between them.

Don’t forget that the TX pin of the serial port must linked to the RX pin of the router and the RX to TX!

port.jtag общая информация про JTAG-порт, JTAG-кабель, и т.д.

JTAG Line:

http://forum.openwrt.org/viewtopic.php?pid=79931#p79931

Software:

Download EJTAG Debrick Utility 3.0.1

Backup:

Backup wholeflash:

tjtag3.exe -backup:custom /fc:25 /window:bf000000 /start:bf000000 /length:00800000

Backup UBoot:

tjtag3.exe -backup:custom /fc:25 /window:bf000000 /start:bf000000 /length:00020000

Резервная копия Прошивки(firmware):

tjtag3.exe -backup:custom /fc:25 /window:bf000000 /start:bf020000 /length:00800000
В Н И М А Н И Е
К сожалению, в данный момент НЕ возможно восстановить (unbrick) роутер через JTAG (нет доступа к flashrom). Поэтому, будьте осторожны, не удаляйте bootloader.

port.gpio The AR913x platform provides 22 GPIOs. Some of them are used by the router for status LEDs, buttons and to communicate with the RTL8366RB. The table below shows the results of some investigation:

Voltage level at GPIO in output-mode gpioX/value in input-mode when GPIO is:
GPIO Common Name PCB Name gpioX/value=1 gpioX/value=0 Floating Pulled to GND Pulled to Vcc
0
1 USB D18=D9 0V 3.3V 1 1 1
2 SYS D19=D8 0V 3.3V 1 1 1
3 RESET SW6 3.3V 0V 1 0 1
4
5 QSS D31=D10 3.3V 0V 0 0 1
6
7 QSS-Button SW8=SW9 3.3V 0V 1 0 1
8 Setting data direction to output and value to 0 causes hard reset of the SoC
9 WLAN D11=D7 0V 3.3V 1 1 1
10 P1-Tx overriden by tty-kernel module 1 0 1
11
12
13 P1-Rx 3.3V 0V 0 0 1
14
15
16
17
18 Data line of the RTL8366RB
19 Clock line of the RTL8366RB
20 GPIO20 3.3V 0V 1 0 1
21

To make the GPIOs available via sysfs, the required ones have to be exported to userspace, as it is explained on a page of the Squidge-Project. Kernel modules occupying that resource need to be removed before (e.g. “leds-gpio” and “gpio-buttons”). In output-mode, voltage levels of the GPIOs were measured against GND, after the value 1 or 0 had been written to /sys/class/gpio/gpioX/value. In input-mode, the value of the file /sys/class/gpio/gpioX/value was read when the GPIO was floating (initial state), pulled to GND or pulled to Vcc.

Пример конфигурации светодиодов смотрите в секции LED в led_configuration.

WR1043ND имеет 10 светодиодов:

Имя Надпись Внутреннее имя Trigger
Power PWR tl-wr1043nd:green:power N/A
System SYS tl-wr1043nd:green:system heartbeat
Wireless LAN WLAN tl-wr1043nd:green:wlan netdev:wlan0
LAN Port 4 4 unknown N/A
LAN Port 3 3 unknown N/A
LAN Port 2 2 unknown N/A
LAN Port 1 1 unknown N/A
Wide Area Network WAN tl-wr1043nd:green:wan N/A
Universal Serial Bus USB tl-wr1043nd:green:usb ledtrig-usbdev
Quick Security Setup QSS tl-wr1043nd:green:qss User preference

Модуль управления светодиодами ledtrig-usbdev доступен только с версии Attitude Adjustment (Trunk). В версии Backfire он доступен только в самоскомпилированных образах с использованием этих патчей.

см. hardware.button

У TP-Link TL-WR1043ND V1.х есть две кнопки:

Кнопка Событие
Reset reset
Quick Security Setup QSS

У TP-Link TL-WR1043ND V2.x есть две кнопки:

Кнопка Событие
Wireless On/Off ?
WPS/Reset ?

В апп. версии 1.х, кнопка 'QSS' находится спереди, ее легко можно нажать пальцем. Кнопка 'Reset' находится сзади устройства, требуется что-нибудь тонкое (скрепка, иголка) для того чтобы нажать на нее.

В апп. версии 2.х, обе кнопки расположены сзади, возле портов, нажать на них легко пальцем.

generic.debrick

Примечание: Если вы случайно брикнули свой роутер, перезаписав загрузчик попробуйте следующее:

  1. Отпаяйте Spansion SPI-Flash (datasheet) от платы. Я использую аллюминиевую фольгу, чтобы защитить остальные элементы платы от излишнего нагрева и выпаиваю микросхему при помощи фена паяльной станции. Получается отлично.
  2. Найдите способ подключить SPI флеш к чему-либо с SPI интерфейсом.... Я использовал AVR микроконтроллер. Тут Вы можете скачать документацию с дополнительной информацией. Attention, the PDF is mirrored and it is intended to manufacuring boards with the direct toner method.
  3. Прошейте bootloader на флеш-память. Я взял bootloader с аналогичного wr1043nd.
  4. Припаяйте чип назад на роутер, соблюдая ключ.
  5. The router shall now be unbricked.
  1. you could read about bootloader in general and about Das U-Boot/Configuration of U-Boot in particular.
  2. the uboot version you find on the 1043 is a fork of mainline U-Boot version 1.1.4 from 2005-12-17 see here. You can / you cannot FIXME take a current mainline version of uboot and simply cross-compile it for WR1043ND! TP-Link-Version: http://www.tp-link.com/support/gpl.asp. It contains the file u-boot-ap83.tar.bz2 which is about 6,06 MiB in size, deflate this as well. The deflated source code will occupy about 37MiB of space, start with reading the README.
  3. also see ftp://ftp.denx.de/pub/u-boot/ and compare the versions.
  4. you may be able to cross compile the code with the OpenWrt toolchain Buildroot. See toolchain for guidance. But you may need to use other toolchain to crosscompile, like the ELDK (Embedded Linux Development Kit).
  5. :!: Problem: you cannot test your bootloader, because for some obscure reason, you don't have write access to the flash via JTAG.

Look at target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr1043nd.c

static struct mtd_partition tl_wr1043nd_partitions[] = {
  {
    .name   = "u-boot",
    .offset   = 0,
    .size   = 0x020000,
    .mask_flags = MTD_WRITEABLE,
  } , {
    .name   = "kernel",
    .offset   = 0x020000,
    .size   = 0x140000,
  } , {
    .name   = "rootfs",
    .offset   = 0x160000,
    .size   = 0x690000,
  } , {
    .name   = "art",
    .offset   = 0x7f0000,
    .size   = 0x010000,
    .mask_flags = MTD_WRITEABLE,
  } , {
    .name   = "firmware",
    .offset   = 0x020000,
    .size   = 0x7d0000,
  }
};

Remove the line

.mask_flags = MTD_WRITEABLE,

for the partition named “u-boot” to make it writeable.

  • Сделайте дамп uboot раздела этой командой
    cat /dev/mtd0 > /tmp/uboot.org
  • На смещении 0x1FC00 Обычно находится MAC-адрес. Вы можете изменить его с помощью любого hex-редактора. Я использую dhex.
  • После изменения MAC-адреса и убедившись, что раздел uboot доступен для записи, вы можете прошить модифицированный образ обратно:
    mtd write /tmp/uboot.mod u-boot

    где “uboot.mod” - имя файла вашего измененного образа.

Внимание: Мы не несем никакой ответственности, за Ваши действия или бездействия, за физический, финансовый, моральный или любой другой ущерб. Помните, вскрывая роутер, Вы лишаетесь гарантии.
Данный материал не является пошаговым руководством: Вы должны понимать, что Вы делаете.
Вы были предупреждены.

Устройство использует DDR1 16Mbit x 16bit (16Mibit*16=256 mebibit. 256 mebibit/8=32MiByte) чип с частотой 400MHz. Замените его на любой 32Mbit x 16bit чип. 333MHz чипы, вместо 400МГц, также работают отлично. Такого типа чипы найти довольно сложно. Самый простой способ их найти - снять их с DDR-SODIMM модуля памяти. Так как нет 64Mbit x 16Bit DDR1 чипов → мод 128 МБ памяти невозможен!

Проверенные микросхемы памяти:

  • Hynix HY5DU121622DTP-D43 (From Mustang DDR-SODIMM 512 MB)
  • Infineon HYB25D512160BE (From Infineon DDR-SODIMM 512 MB)

Также могут работать:

Тип | ID Code | Производитель | DDR |32Mx16 |PC400 TSOP Pb Free |HY5DU121622DTP-D43-C |Hynix | DDR |32Mx16 |PC400 TSOP Pb Free |H5DU5162ETR-E3C |Hynix | DDR |32Mx16 |PC400 Pb Free |K4H511638G-LCCC |Samsung | DDR |32Mx16 |PC400 Pb Free |K4H511638J-LCCC |Samsung | DDR |32Mx16 |PC400 |A3S12D40ETP-G5 |Zentel | DDR |32Mx16 |PC400 |NT5DS32M16BS-5T |Nanya | DDR |32Mx16 |PC400 PB Free |P3S12D40ETP-GUTT |Mira | DDR |32Mx16 |PC333 CL2.5 TSOP |MT46V32M16TG-6T:F |Micron | DDR |32Mx16 |PC333 CL2.5 TSOP |MT46V32M16P-6T:F |Micron | DDR |32Mx16 |PC333 PB Free TSOP |EDD5116ADTA-6B-E |Elpida | DDR |32Mx16 |PC333 PB Free TSOP |HYB25D512160CE-6 |Qimonda | DDR |32Mx16 |PC333 PB Free TSOP |HYB25D512160CEL-6 |Qimonda | DDR |32Mx16 |PC333 PB Free TSOP |HYB25D512160DE-6 |Qimonda |

Убедитесь, что роутер “увидел” все 64МБ оперативной памяти (используя PuTTY):

1.nvram set sdram_init=0x0013
2.nvram commit
3.reboot
root@OpenWrt:~# free
total used free shared buffers
Mem: 62104 17472 44632 0 1392
Total: 62104 17472 44632

An I²C-bus can easily be added using the GPIO-lines of the AR913x-SoC. So far, the only usable ones which have been confirmed to work are GPIO 5 (the QSS-LED, easily solderable at D10,left pin with '+') as SDA and GPIO 20 (labeled on the pcb, next to the RAM chip) as SCL. There are only two pull-up resistors of 4,7k-10k needed, which have to be soldered between the apropriate GPIO line and Vcc (found at the spot labeled TP3V3, about 2 cm above the WiFi-shielding). The common ground can be obtained from the TP_GND spot (between P1 and the flash chip). Remember this bus runs at 3.3V level, when connecting I²C-devices. Unfortunately the precompiled packages don't seem to work properly, so building from sources is most likely necessary. Therefore, make sure the apropriate part of your OpenWRT-config file looks like that:

#
# I2C support
#
CONFIG_PACKAGE_kmod-i2c-core=y
CONFIG_PACKAGE_kmod-i2c-algo-bit=y
# CONFIG_PACKAGE_kmod-i2c-algo-pca is not set
# CONFIG_PACKAGE_kmod-i2c-algo-pcf is not set
CONFIG_PACKAGE_kmod-i2c-gpio=y
CONFIG_PACKAGE_kmod-i2c-gpio-custom=y

Besides that, check in the kernel-config, that the support for I²C character device is selected. In the kernel config file the appropriate line should look like that:

CONFIG_I2C_CHARDEV=m

To load the kernel module, do a:

insmod i2c-gpio-custom bus0=0,5,20

In many cases, GPIO 5 will already be occupied by the leds-gpio kernel module - causing the above command to fail. In case you don't need the leds at all, you can just unload the leds-gpio kernel module, remove the package or disable it in the OpenWRT-configuration. As an alternative, you can just release the binding of the QSS-LED in sysfs - thus keeping the function of the other LEDs.

Though not really a modification of the internal hardware, the I²C Tiny-USB adapter allows you to extend your router with an I²C bus over USB. It is not as cheap as the I²C-GPIO mod, but will not risk your warranty. Remember this bus runs at 5V level, when connecting I²C-devices.

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2021/10/15 09:06
  • by bobafetthotmail