User Tools

Site Tools


toh:devolo:dlan-pro-wireless-500-plus

Devolo dlan pro wireless 500 plus

Please transfer the content of this device over to devolo_dlan_pro_wireless_500_plus

Warning: This is preliminary information, it might contain mistakes.

Warning: Also make sure to read the status section to see what is expected to work and what has not been tested, documented or investigated yet.

The dlan pro wireless 500 plus (also spelled "dlan wireless 500+") is a device with:

  • WiFi (compatible with the ath9k driver)
  • 3 ethernet ports (They can be configured with "swconfig")
  • A PLC interface
  • 128MB of RAM
  • About 7.5MB of usable flash space for OpenWrt

Devolo, the device manufacturer, added support for it in OpenWrt. This is great!

This page attempts to document the device to help users install and use OpenWrt on it.

Hardware usage

PLC

Warning: This section is a work in progress and is not completed

Preparing the pib file

DAK=$(rkey secret.key -D)
NMK=$(rkey secret.key -M)
modpib -v -M ${MAC} -N ${NMK} -D ${DAK} 2555.pib
setpib 2555.pib 7 byte 0

Switch

By default, the switch configuration allow devices on the different Ethernet ports to talk to the dlan pro wireless 500 plus, but do not allow such devices to talk to other devices on a different Ethernet port of the switch, this can be very confusing.

To allow devices to talk to other devices on a different Ethernet port, the switch configuration needs to be changed.

To change it temporarily, until the next boot/reboot, you can run the following command:

swconfig dev switch0 set enable_vlan 1

Or to do the change it in a more permanent way, you can add the following to /etc/config/network:

config 'switch' 'switch0'
option 'enable_vlan' '1'
option 'apply' '1'

It will then be applied at next reboot.

It is probably also possible to do the change trough other ways, like trough the web interface (luci).

Status

TODO:

  • Find how to use the PLC/powerline part of the device and document it.

Tested:

  • WiFi in client mode
  • Ethernet
  • The LEDS
  • The switch

Installation procedure

The devices comes with a bootloader called u-boot. It's the first software that runs on the device.

At boot, if the internal button is pressed, the bootloader will load and flash a file named "uploadfile" from a tftp server at 192.168.0.100.

This permits us to easily install OpenWrt, but it will erase the original system while doing it. That means that we cannot backup the original system by using this installation procedure.

Preparation

So to install OpenWrt, you need to do a bit of preparation first.

Setup tftp server

Knowing what is going on

Installation

Then get a power strip with a button and put the power strip on the table where your computer is located and plug the device(The "dlan pro 500 wireless plus") in it, to easily power-on/power-off the device.

You also need to get a screwdriver that can press the internal button: That button is barely visible from the outside, it is hidden under the black cover, on the bottom-right of the device. It can be pressed by using a screwdriver in the second hole from the bottom-right.

Then to make the device install OpenWrt:

  • Power it off (with the power strip button for instance) and start pressing the hidden-button.
  • Power on the device (with the power strip button for instance), while keeping pressing the hidden-button.
  • The device will then start downloading OpenWrt. This will only be visible on your laptop with tshark, or the dnsmasq logs, as described above.
  • At this point you can stop pressing the button, if you are not sure, you should rather wait a bit more and only stop pressing the button when the WiFi led becomes blue and start blinking (this happens when it starts flashing OpenWrt).
  • The device won't respond to pings during the flashing, even when it is downloading the file.
  • Do not turn off the device during that procedure. At the end it will reboot and the LEDs will then stop being blue.

More advanced information

Sources

As required by the GPL, devolo publish u-boot source code. Most of the information below is derived from that source code.

The sources can be found on devolo websites as:

  • gpl-source-dlan-pro-500-wireless-plus.tar.bz2 FIXME Please provide link
  • oss-license-info-dlan-pro-500-wireless-plus.pdf FIXME Please provide link

Storage and installation procedure

The system is stored on an SPI flash which is mapped in memory and starts at 0x9f000000. Here is the partitioning:

mtdparts=ath-nor0:mtdparts=ath-nor0:256k(Bootloader),64k(BootConfig),64k(Config1),64k(Config2),1088k(Kernel),6592k(Filesystem),7680k@0x70000(Firmware1),64k@0x7f0000(ART),8192k@0x9f000000(FullFlash)

At power up, if the internal button is pressed, u-boot will initiate the TFTP reflash procedure. TFTP reflash procedure:

  • u-boot will save the environment variables that it will override (IP addresses and so on).
  • It then override the environment with the following configuration:
    • IP address of the dlan: 192.168.0.249
    • IP address of the TFTP server: 192.168.0.100
  • It then loads an image to memory ("tftp 0x8006000 uploadfile").
  • After that it restores the original the environment.
  • It the download didn't fail, it then erases the kernel and rootfs partitions ("erase 0x9f070000 + 0x780000")
  • If the download didn't fail and if the downloaded image is smaller than the kernel+rootfs partition size, it flashes it to that partition ("cp.b 0x8006000 0x9f070000 0x<transfer size>")

Related source code:

  • The machine configuration is in include/configs/db12x.h
  • The tftp update logic is in common/main.c

Hardware

The device has:

  • 128 MB of RAM
  • 8 MB of flash, provided by a "SPANSION FL064PIF" (WSON-8 circuit package)

Here is the flash configuration with the "openwrt-15.05.1-ar71xx-generic-dlan-pro-500-wp-squashfs-sysupgrade.bin" image

root@OpenWrt:~# cat /proc/mtd
dev: size erasesize name
mtd0: 00040000 00010000 "u-boot"
mtd1: 00010000 00010000 "u-boot-env"
mtd2: 00010000 00010000 "Config1"
mtd3: 00010000 00010000 "Config2"
mtd4: 00780000 00010000 "firmware"
mtd5: 00120000 00010000 "kernel"
mtd6: 00660000 00010000 "rootfs"
mtd7: 004d0000 00010000 "rootfs_data"
mtd8: 00010000 00010000 "art"

Note that the RAM size is automatically detected by u-boot (by looking when the address space wraps around).

Pictures

The pictures below are also licensed under the creative commons cc-by-sa:

PCB

The hardware is made of two PCBs stacked together with pin-header-connectors:

  • The upper PCB has the "power supply" part.
  • The lower PCB has the "Access point" part.

/!\ WARNING /!\ Since the power supply is integrated into the unit, you should not open it.

  • The voltage and current provided by your house's electricity can kill you.
  • Operating the device while it's opened can kill you.
  • Opening the device while it's unplugged, can also kill you, this is because it has capacitors that can hold some electricity for a while.

DO NOT IGNORE THIS WARNING. If you die, you will not be able to contribute to free and open source software anymore.

In doubt, DO NOT OPEN THE DEVICE. If you open it, YOU MIGHT DIE.

Because of the above I didn't try to find the serial port on this device.

There is an empty SOIC-8 emplacement on the "Access point PCB" that isn't populated, but the pins aren't connected to the WSON-8 flash chip pins.

PCB Pictures:

The details (chip marking names and so on) are inside the pictures EXIF, they can for instance be viewed with okular.

U-boot version

The u-boot has very early init code from atheros (grep for FPGA in the diff).

See also

The following hardware also has some official OpenWrt images but lacks documentation:

  • dLAN pro 1200+ WiFi ac

License

Tags

toh/devolo/dlan-pro-wireless-500-plus.txt · Last modified: 2017/05/22 11:40 by GNUtoo