LEDE Table of Hardware: Dataentries updated


I ran an update of the dataentries, i.e. they were newly created via script.

I added:

  1. "Installation method" + "Flash offset" fields.
    Please let me know your ideas for a descriptive text in the "Comment" column, which I currently filled with "--------> Description goes here". To see this, click any dataentry you like and edit it via the edit button at the lower left of the dataentry box.

  2. LEDE download urls, generated from the available OpenWrt download urls.
    Please take a look at https://wiki.lede-project.org/toh/views/toh_fwdownload and check for any irregularities.


How can We suggest new data columns?

I would like to have a column, that shows by which frameworks the router is supported especially which devices are supported ba gluon and in which state "fully", "broken", "wishlist", ...


What is gluon?


Gluon is a modular framework for creating OpenWrt-based firmwares for wireless mesh nodes. Several Freifunk communities in Germany use Gluon as the foundation of their Freifunk firmwares.



Since gluon seems to be a Freifunk thing, I would expect Freifunk to provide the requested information.

Doesn't Freifunk have an overview of supported devices?


Yes it's for Freifunk.

There is a list on the start page of the documentation but without details. It would be great to use your database with all details and a function to sort to show only these devices


This one has details: https://wiki.freifunk.net/Freifunk_Firmware_Gluon/Hardwareliste


Sure, but that list is a lot of work to keep up-to-date and thus it is not always up to date. It would be much easier, if we could somehow mark the supported devices in your database, so we can extract the data on an extra page for Gluon


or is it possible to create a view with just those 20-odd devices in the URL somehow?


This would help, if it would be possible to search in the Table of Hardware for multiple devices with OR or with a REGEX Regular expression like:


Could you add such an option to the Queries?


What would I have to search for to find out, if it is possible to search for multiple search words?

What is the system called, that the TOH is built upon?


See the dokuwiki data plugin:

In general, filtering for multiple values can be done via creating a new datatable with the filters appropriately set (use filteror / filterand i/o filter).
Be warned: Depending on your query, it can be a PITA to achieve the expected result.


thx, this works! :wink:


indeed, if I use too many filter_or, I get an error:

I created a page like this:

====== Table of Hardware ======

Listing all devices that are supported by Gluon.



++++Filter: Current release|
---- datacloud ----
col       : Supported Current Rel
filter    : Supported Current Rel!=
filter    : Supported Current Rel!=EOL
summarize : 1

---- datatable ----
cols       : Brand, Model, Versions, Supported Current Rel_releasepage, Device Page_page, Device Techdata_pageid
headers    : Brand, Model, Versions, Supported Current Release, Device Page, Device Techdata
align      : l,l,l,l,c
dynfilters : 1
rownumbers : 1
filter     : Model!=@@Model@@
and     : Model!=(EXAMPLE)
and     : Supported Current Rel!=
and     : Supported Current Rel!=EOL

# ar71xx-generic

# * 8devices
or     : Model=Carambola 2
# * ALFA Network
or     : Model=AP121
or     : Model=AP121F
or     : Model=AP121U
or     : Model=Hornet-UB
or     : Model=Tube2H
or     : Model=N2
or     : Model=N5
# * Allnet
or     : Model=ALL0315N
# * AVM
or     : Model=Fritz!Box 4020
# * Buffalo
or     : Model=WZR-HP-AG300H / WZR-600DHP
or     : Model=WZR-HP-G300NH
or     : Model=WZR-HP-G300NH2
or     : Model=WZR-HP-G450H
# * D-Link
or     : Model~*DIR-505
#           (A1, A2)
or     : Model~*DIR-825
#           (B1)
# * GL Innovations
or     : Model=GL-AR150
or     : Model=GL-AR300M
or     : Model=GL-AR750
or     : Model~*GL-iNet 6408A
#           (v1)
or     : Model~*GL-iNet 6416A
#           (v1)
# * Linksys
or     : Model=WRT160NL
# * Netgear
or     : Model~*WNDR3700
#           (v1, v2, v5)
or     : Model=WNDR3800
or     : Model~*WNDRMAC
#           (v2)
# * Onion
or     : Model=Omega
# * OpenMesh
or     : Model=A40
or     : Model=A60
or     : Model~*MR600
#           (v1, v2)
or     : Model~*MR900
#           (v1, v2)
or     : Model~*MR1750
#           (v1, v2)
or     : Model~*OM2P
#           (v1, v2, v4)
or     : Model~*OM2P-HS
#           (v1, v2, v3, v4)
or     : Model=OM2P-LC
or     : Model=OM5P
or     : Model=OM5P-AN
or     : Model~*OM5P-AC
#           (v1, v2)
# * TP-Link
or     : Model~*Archer C5
#           (v1)
or     : Model~*Archer C59
#           (v1)
or     : Model~*Archer C7
#           (v2, v4)
or     : Model~*CPE210
#           (v1.0, v1.1, v2.0)
or     : Model~*CPE220
#           (v1.1)
or     : Model~*CPE510
#           (v1.0, v1.1)
or     : Model~*CPE520
#           (v1.1)
or     : Model=RE450
or     : Model~*TL-WDR3500
#           (v1)
or     : Model~*TL-WDR3600
#           (v1)
or     : Model~*TL-WDR4300
#           (v1)
or     : Model~*TL-WR710N
#           (v1, v2.1)
or     : Model~*TL-WR842N/ND
#           (v1, v2, v3)
or     : Model~*TL-WR1043N/ND
#           (v1, v2, v3, v4, v5)
or     : Model~*TL-WR2543N/ND
#           (v1)
or     : Model~*WBS210
#           (v1.20)
or     : Model~*WBS510
#           (v1.20)
# * Ubiquiti
or     : Model=Air Gateway
or     : Model=Air Gateway LR
or     : Model=Air Gateway PRO
or     : Model=Air Router
or     : Model=Bullet M2/M5
or     : Model=Loco M2/M5
or     : Model=Loco M2/M5 XW
or     : Model=Nanostation M2/M5
or     : Model=Nanostation M2/M5 XW
or     : Model=Picostation M2/M5
or     : Model=Rocket M2/M5
or     : Model=Rocket M2/M5 Ti
or     : Model=Rocket M2/M5 XW
or     : Model=UniFi AC Mesh
or     : Model=UniFi AP
or     : Model=UniFi AP AC Lite
or     : Model=UniFi AP AC LR
or     : Model=UniFi AP AC Pro
or     : Model=UniFi AP LR
or     : Model=UniFi AP Pro
or     : Model=UniFi AP Outdoor
or     : Model=UniFi AP Outdoor+
# * Western Digital
or     : Model=My Net N600
or     : Model=My Net N750

# ar71xx-nand

# * Netgear
or     : Model~*WNDR3700
#           (v4)
or     : Model~*WNDR4300
#           (v1)
# * ZyXEL
or     : Model=NBG6716

# ar71xx-tiny

# * D-Link
or     : Model~*DIR-615
#           (C1)
# * TP-Link
or     : Model~*TL-MR13U
#           (v1)
or     : Model~*TL-MR3020
#           (v1)
or     : Model~*TL-MR3040
#           (v1, v2)
or     : Model~*TL-MR3220
#           (v1, v2)
or     : Model~*TL-MR3420
#           (v1, v2)
or     : Model~*TL-WA701N/ND
#           (v1, v2)
or     : Model~*TL-WA730RE
#           (v1)
or     : Model~*TL-WA750RE
#           (v1)
or     : Model~*TL-WA801N/ND
#           (v1, v2, v3)
or     : Model~*TL-WA830RE
#           (v1, v2)
or     : Model~*TL-WA850RE
#           (v1)
or     : Model~*TL-WA860RE
#           (v1)
or     : Model~*TL-WA901N/ND
#           (v1, v2, v3, v4, v5)
or     : Model~*TL-WA7210N
#           (v2)
or     : Model~*TL-WA7510N
#           (v1)
or     : Model~*TL-WR703N
#           (v1)
or     : Model~*TL-WR710N
#           (v1, v2, v2.1)
or     : Model~*TL-WR740N
#           (v1, v3, v4, v5)
or     : Model~*TL-WR741N/ND
#           (v1, v2, v4, v5)
or     : Model~*TL-WR743N/ND
#           (v1, v2)
or     : Model~*TL-WR841N/ND
#           (v3, v5, v7, v8, v9, v10, v11, v12)
or     : Model~*TL-WR843N/ND
#           (v1)
or     : Model~*TL-WR940N
#           (v1, v2, v3, v4, v5, v6)
or     : Model~*TL-WR941ND
#           (v2, v3, v4, v5, v6)

# brcm2708-bcm2708

# * RaspberryPi 1

# brcm2708-bcm2709

# * RaspberryPi 2

# ipq806x

# * TP-Link
or     : Model=Archer C2600

# mpc85xx-generic

# * TP-Link
or     : Model~*TL-WDR4900
#           (v1)

# ramips-mt7620

# * GL Innovations
or     : Model=GL-MT300A
or     : Model=GL-MT300N
or     : Model=GL-MT750

# ramips-mt7621

# * Ubiquiti
or     : Model=EdgeRouter X
or     : Model=EdgeRouter X-SFP

# ramips-mt7628

# * VoCore
or     : Model=VoCore2

# ramips-rt305x

# * A5-V11
# * D-Link
or     : Model~*DIR-615
#           (D1, D2, D3, D4, H1)
# * VoCore
or     : Model~*VoCore
#           (8M)
or     : Model~*VoCore
#           (16M)

# sunxi

# * LeMaker
or     : Model=Banana Pi M1

# x86-generic

# * x86-generic
# * x86-virtualbox
# * x86-vmware

# See also: [x86 support]

or     : Model=x86-geode

# * x86-geode

# See also: [x86 support]

or     : Model=x86-64

or     : Model=x86-64-generic
or     : Model=x86-64-virtualbox
or     : Model=x86-64-vmware

sort       : Version

But then I get this error:

HY000 1 at most 64 tables in a join:



@thomas: maybe you can set this limit in the postgresql database up to 256 or such? Then we could autogenerate the filter for the Gluon recommended Database like I did


I'm afraid that's not possible, since the data plugin uses sqlite, which is limited to 64:


Maximum Number Of Tables In A Join
SQLite does not support joins containing more than 64 tables. This limit arises from the fact that the SQLite code generator uses bitmaps with one bit per join-table in the query optimizer. SQLite uses an efficient query planner algorithm and so even a large join can be prepared quickly. Hence, there is no mechanism to raise or lower the limit on the number of tables in a join.


First it was about 20-something:

Then 64 were not enough

Your Gluon datatable lists 81 devices....

Hmmm.... 81 out of 1429 total devices in the ToH are roughly 5%.

For that amount of devices I'd be inclined to say: Yes, let's add a new datafield for Gluon support.

Would a simple Gluon support: Yes/No be sufficient?


Thats great! I would suggest to add "gluon support since" and let it be for example "2016.2.7", "2017.1.1", ...
also maybe we can reflect if with flag "BROKEN" or not somehow too. maybe "2016.2.7-BROKEN"


Is it necessary to have the "since" in there?
Is it necessary for the user to know the "since", or is it sufficient for the user to know that gluon support exists?

Are these arbitrary dates, or are those specific versions like OpenWrt's 17.01 or 18.06?
If those are specific versions: Can you please list all possible values?

We have two options how to create this new datafield:

  1. Make it free flow text, i.e. any value / any arbitrary date can be entered
    Disadvantage: Anything can be entered, which may make it difficult to filter later on.
  2. Make it a dropdown with distinct values, e.g. Yes / No / Broken
    Advantage: Clean data, only what is in the dropdown is allowed; easy to filter.
    Restriction to version-independant values avoids future maintenance of the dropdown.

My preference would be 2).


There is a quite long list of releases with certain version numbers: https://github.com/freifunk-gluon/gluon/releases

But you are right, it is not so important to know since when it is supported. Version 2. with only Yes/no/Broken is fine.

If we would like to know since when it is in gluon, we would need a second field for the version, but i think this is not really needed.


Here we go:


Please check for completeness and correctness (which devices should have "Broken" status?).


You can grep for BROKEN in the files at https://github.com/freifunk-gluon/gluon/blob/master/targets/