D-Link DIR-859 A3 AC1750 works with DIR-869 A1 image

Bought a D-Link DIR-859 A3 AC1750 a few days ago. After some research, discovered that the components are almost identical to the LEDE-supported DIR-869:
Qualcomm QCA9563 SoC
Qualcomm QCA9880 802.11ac radio
Qualcomm QCA8337N GbE switch
16 MB flash, 64 MB RAM
No USB ports

Although physically they look very different, the only relevant difference I see so far is the DIR-859 has 8 LEDs while the DIR-869 (I don't have one) only has one or two (white/orange).

So I installed dir-869-a1-squashfs-factory.bin (17.01.4 stable 10/18/2017) to the DIR-859 via emergency room. It works very well so far.

The power LED and 4 LAN LED lights work as expected, but the WPS button is mapped as the reset button, so pressing it resets the router. A recent Nov commit fixes the power LED mapping for the DIR-869, but moves the power LED functionality to the internet LED instead for the DIR-859.

I'll do a git pull request to once I figure out the correct gpio mapping of the buttons and LEDs for the DIR-859.

2 Likes

Hi.
I'm just a little bit interested in your DIR-859 (A3). I have a DIR-859, and I'm not that pleased with it, so I would like to put OpenWRT on it. However OpenWRT only supports Snapshots for the DIR-859, but I need a GUI for it. Do you still run a DIR-869 OpenWRT Stable build on you DIR-859 with success?
Best regards
Gronhund

1 Like

I'm interested to know about this too! My dlink is Dir-859 A2.

I put the latest DD-WRT on instead (38381). Works perfectly (once I got a hold of some of the odd GUI stuff in DD-WRT like not to add before I have saved). OpenWRT is probably great, but I need the GUI.

For dd-wrt, what you install? Dir-859 A1 or dir-869 A1?

I installed DIR-859 A1 to an A3. Snapshot works really good but when I installed LuCi I had the Wireless Network enabled but dhcp would not work. After a GUI restart from LuCi it quickly entered the Emergency Room and after that, I went back to DDWRT too.

Someone has tested the latest version with the DIR-859 A3? It is supposed to be compatible, right?
https://openwrt.org/toh/hwdata/d-link/d-link_dir-859_a1

The latest firmware versions from D-Link will no longer accept the factory.bin format currently used by OpenWRT via the normal update procedure, so you'd have to flash via the emergency recovery, which only works with older browsers.

I'm trying to add support for the 'new style' image that can be flashed directly from the D-Link Web UI:

As I do not own DIR-859 myself, I could only verify image generation against the official firmware images available from D-Link, and it looks good so far.

However, before opening a pull request I would like to have someone confirm that the image is really accepted by the DIR-859 stock firmware:
openwrt-ath79-generic-dlink_dir-859-a1-squashfs-factory.bin

Is there any difference regarding versions A1 and A3? I could only find reva3 images on the German D-Link ftp, but they should be compatible to any rev A devices.

1 Like

Sorry for necroposting. Anyway since this question is unanswered, here you go.

I do own a DIR-859 A3 and I am successfully using the DIR-859 A1 image with the A3 version without any major problems. However I have some observations:

  1. I was able to install the "factory.bin" via recovery mode. However after rebooting the router weirdly reverted to the stock firmware.
  2. The issue above can solved by: (a) Install "factory.bin" via recovery mode. Right after and without rebooting, install "sysupgrade.bin" (I installed via LuCI). With this OpenWRT installation now persists a router reboot.
  3. I live and purchased this router in Brazil, where it was advertised as a "high power" router (1000mW, see box image below), but it seems to be either a US or CA version. With OpenWRT I can only achieve this power in 5Ghz (30dBm/1000mW) with wifi region set to Brazil. In 2.4Ghz it was limiting to 20dBm/100mW. I then changed country to US for the 2.4Ghz band and now I am able to increase power to 28dBm/630mW (but not to 30dBm/1000mW as I would need/expect).

So besides the remarks above everything else is just working fine using DIR-859 A1 image on a DIR-859 A3 device.

BTW, the stock firmware of this router is terrible, and it is really difficult to find a DD-WRT stable build, so that's why I am using OpenWRT. But both stock and DD-WRT allows to configure 30dBm/1000mW in both 2.4 and 5GHz bands (I need a high power router, and this was the reason I purchased this model).

I would really appreciate if anyone knows a way how to enable 30dBm/1000mW in the 2.4 Ghz (as it was advertised and sold here in Brazil).

Thanks!

1 Like

Can you please also test with the image linked by @s_2 ?
As I understand, a confirmation for his image is all that's missing for him to create a PR and get the A3 officially supported.

1 Like

This is also how the installation procedure was described in the pull request when the device was added

and someone mentioned the same procedure would be required for DIR-842 as well, though I couldn't reproduce it (not sure whether this is solved using the encrypted factory images, or maybe it occurs only upon first flashing to OpenWrt?).

Sorry for not updating this thread earlier, but I meanwhile got a DIR-859 for testing and my pull request to add encrypted images (that no longer need the quirky recovery method, which doesn't work with all browsers) for DIR-842 was updated to also include DIR-859, but as of now this is still open:

I actually intended to make a few more changes to DIR-859 (but only minor stuff e.g. spi-max-frequency and the switch reset gpio), and maybe also re-open the abandoned PR someone made for DIR-869 (high power variant in the orange/black case), which could share a dtsi with DIR-859, but I was waiting for the encryption PR to be merged first, rather than opening yet another PR for the same device, that would only cause a merge conflict when the other one would be merged...

The images for DIR-859 A1 and A3 should be the same however (here in Germany only A3 images are offered for download by D-Link), even if they made changes to the power amplifiers, this would be handled by the wireless driver based on the art partition (which seems to be detected correctly, otherwise you couldn't even set such high transmit power values), so this really must be driver issue, however I'm not really familiar with that.

Someone suggests it might be due to the value being calculated differently for devices with three antennas:

Could you compare the output of e.g. iw scan (if you're using Linux) for DD-WRT / stock vs. OpenWRT, to see if the capabilities are actually reported differently in the beacon frames?

2 Likes

Yep, I will test. However I have this router in a family cottage where we go only for the weekends (so I do not have it at hand now).

I am saving the image to my laptop now and I will probably test during this weekend.

Thanks!

So I understand that you were able to successfully test flashing the factory.bin with your changes from the stock firmware and so there is no need for additional testing of your image, right?

Excellent! And it makes sense to wait for the encryption PR to be merged first.

It is a possibility, but then I would expect the same behavior both for 2.4 and 5Ghz bands. However I can set 30dBm for 5Ghz and 28dBM is the max for the 2.4Ghz band.

I may further investigate this, but since this router is "in production" I will need to temporarily set another router in place as a replacement for the DIR-859 so this may take a while.

Thanks!

Yes, flashing from the newest version of the OEM Web UI is working now (older versions need the unencrypted image, just like the recovery), I just checked on my server, the image was built from master only two weeks ago, so it should be quite current regarding ath9k drivers.

Which version did you use for testing? The v19 stable image is quite outdated, usually lots of things happen to the wireless stuff between versions, so you might want to try to sysupgrade to the latest snapshot first (which doesn't come with LuCI, but if your network settings are kept this should not be much of an issue).

Again, this seems to be mostly a driver issue, if it persists in the latest master snapshots, you should probably open a new thread (using a title that has better chances to be found by experts on the wireless stuff) and include the relevant parts from dmesg output etc.

// edit: there actually hasn't been so much change to ath9k recently, maybe this commit could be related that slightly reduces the limitations caused by antenna gain:
https://git.openwrt.org/?p=openwrt/openwrt.git;a=commitdiff;h=01142665b74787defcce8839a6ce825568a083d8;hp=e00e6fa90e65beaaa395070fe4d71b298fb01576

1 Like

Thank you! I am using the latest v19 stable (19.07.6). During the weekend I will give the snapshot image a try. Thanks!

OK, an update regarding the 2.4GHz power issue I described previously (2.4GHz radio limited to 28dBm when the maximum should be 30dBm).

I just purchased a second (and brand new) DIR-859 A3 to use as an access point at home. I then installed OpenWRT (19.07.7) right out of the box. Interestingly enough I was able to set the 2.4Ghz radio to 30dBm on the new device with OpenWRT!

The good news then is that this issue seems to be specific to my old unit and it is not an OpenWRT issue (or so it seems).

Back to the previous device (also a DIR-859 A3 being used in a family cottage), I`ve made some tests:

  1. Reverted back to stock firmware, restored factory defaults, reinstalled OpenWRT from stock firmware, restored factory defaults again, no success. 2.4 GHz radio was still limited do 28 dBm.

  2. Reverted back to stock firmware, restored factory defaults, installed DD-WRT from stock firmware, restored factory defaults again, tested the radios, everything was fine, I was successfully able to set 2.4 GHz radio to 30dBm with DD-WRT (I did not run a iw scan however).

  3. Reverted back to stock firmware a second time (from DD-WRT), restored factory defaults, reinstalled OpenWRT (19.07.7), restored factory defaults again. In OpenWRT 2.4 Ghz radio was still limited do 28 dBm on this unit.

So the only difference between the two devices is that in the old DIR-859 A3 I've used DD-WRT for quite some time, and I also tested some previous versions of OpenWRT, while on the new device I upgraded directly from stock firmware to OpenWRT 19.09.7.

At this point my only theory is that perhaps in the process of installing DD-WRT and switching back and forth to OpenWRT and Stock firmware might at some point changed some radio configuration in the ART partition. However all radios are working fine except the 2.4 GHz radio being limited to 28dBm, so it does not look like the ART partition is corrupted.

Perhaps I could try dumping the ART partition from the new device and restoring it to the old device, but this is something I have never done before. For now I believe I will keep it running at 28dBm since everything else is working just fine.

While reviewing dmesg log messages from DIR-859 A3, I've found the following error:

[ 0.489352] ag71xx 19000000.eth: invalid MAC address, using random address

This error seems to be related to the eth0 MAC address.

Comparing with a TP-Link Archer C7 running OpenWRT, the MAC address for eth0 and eth0.1 of this device are the same:

Archer C7 v4 - OpenWRT 19.07.7:

(...)
eth0      Link encap:Ethernet  HWaddr B0:4E:XX:XX:XB:CA
          inet6 addr: fe80::b24e:26ff:xxxx:xxxx/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:474115 errors:0 dropped:0 overruns:0 frame:0
          TX packets:236257 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:52777484 (50.3 MiB)  TX bytes:23294705 (22.2 MiB)
          Interrupt:4

eth0.1    Link encap:Ethernet  HWaddr B0:4E:XX:XX:XB:CA
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:202412 errors:0 dropped:0 overruns:0 frame:0
          TX packets:164299 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:15163643 (14.4 MiB)  TX bytes:14393587 (13.7 MiB)
(...)

However looking at the DIR-859 A3 MAC addresses, the eth0 MAC address seems to be randomly generated per dmesg error:

D-Link DIR-859 A3 - OpenWRT 19.07.7:

(...)
eth0      Link encap:Ethernet  HWaddr 9E:43:XX:XX:X0:FA
          inet6 addr: fe80::9c43:8ff:xxxx:xxxx/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2982327 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1733490 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3568268645 (3.3 GiB)  TX bytes:587813731 (560.5 MiB)
          Interrupt:4

eth0.1    Link encap:Ethernet  HWaddr 90:8D:XX:XX:X5:B4
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:51664 errors:0 dropped:0 overruns:0 frame:0
          TX packets:102764 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:5924707 (5.6 MiB)  TX bytes:79200556 (75.5 MiB)
(...)

The eth0.1 MAC address is correct, as well as all other DIR-859 MAC addresses (Wifi, ...) that start with 90:8D which matches the vendor MAC address printed in the label under the router.

So it seems that the eth0 MAC address is being randomly generated. I believe it is a minor issue without any negative impact, but since I noticed it I just wanted to share here.

I can set 30dBm using Panama country

But I'm having trouble with the 2.4 GHz Wi-Fi, the speed most of the time limits it to around 30 Mb/s, depending on the destination, and the client disconnects frequently.

Wed Mar 10 17:54:12 2021 daemon.notice hostapd: wlan1: AP-STA-DISCONNECTED 38:9a:f6:xx:xx:xx
Wed Mar 10 17:54:12 2021 daemon.info hostapd: wlan1: STA 38:9a:f6:xx:xx:xx IEEE 802.11: authenticated
Wed Mar 10 17:54:12 2021 daemon.info hostapd: wlan1: STA 38:9a:f6:xx:xx:xx IEEE 802.11: associated (aid 1)
Wed Mar 10 17:54:12 2021 daemon.notice hostapd: wlan1: AP-STA-CONNECTED 38:9a:f6:xx:xx:xx
Wed Mar 10 17:54:12 2021 daemon.info hostapd: wlan1: STA 38:9a:f6:xx:xx:xx WPA: pairwise key handshake completed (RSN)
Wed Mar 10 17:54:12 2021 daemon.info dnsmasq-dhcp[2191]: DHCPDISCOVER(br-lan) 38:9a:f6:xx:xx:xx
Wed Mar 10 17:54:12 2021 daemon.info dnsmasq-dhcp[2191]: DHCPOFFER(br-lan) 192.168.36.7 38:9a:f6:xx:xx:xx
Wed Mar 10 17:54:12 2021 daemon.info dnsmasq-dhcp[2191]: DHCPREQUEST(br-lan) 192.168.36.7 38:9a:f6:xx:xx:xx
Wed Mar 10 17:54:12 2021 daemon.info dnsmasq-dhcp[2191]: DHCPACK(br-lan) 192.168.36.7 38:9a:f6:xx:xx:xx Galaxy-J7-Prime

I tried various versions, and config reset, but same problem.