Requesting Assistance to Obtain Correct TFTP-Compatible Firmware for EnGenius ESR300 (Discrepancy in FCCID)

Hello OpenWrt community,

I am seeking assistance in obtaining the appropriate firmware for my EnGenius ESR300 router. I encountered an issue during the boot process and now require a suitable firmware image to perform a TFTP installation.

Here are the details of the issue I am facing:

U-boot Ver:1.0.3.5 2013/05/21 10:25:24

Board: Ralink APSoC DRAM:  64 MB
******************************
Software System Reset Occurred
******************************
spi_wait_nsec: 28
spi device id: c2 20 18 c2 20 (2018c220)
find flash: MX25L12805D
Flash size 16MB, sector count = 256
============================================
ASIC 7620_MP (Port5<->None)
Product Name: ESR300
EMBEDAD SWITH init

Please choose the operation:
   2: Load system code then write to Flash via TFTP.
   3: Boot system code via Flash (default).
   9: Load Boot Loader code then write to Flash via TFTP.                                                                                                                                                                                  0

3: System Boot system code via Flash.
## Booting image at bc050000 ...
Bad Magic Number,444C4B36
Enter Senao Recovery Mode


4: System Enter Boot Command Line Interface.

U-Boot 1.1.3 (May 21 2013 - 10:25:24)
        Input Linux Kernel filename
.......Start http[192.168.99.9]..............

Waitting for RX_DMA_BUSY status Start... done

I kindly request your guidance on the following matters:

  1. Assistance in obtaining the correct TFTP-compatible firmware for the EnGenius ESR300 router model. The router is equipped with an MT7620N chipset, indicating that it is most likely an ESR300 model. It operates on the 2.4 GHz band.

  2. Clarification on the discrepancy between the model number and FCCID mentioned on the router's label. The label states "Model No: ESR300," while the FCCID is indicated as "A8J-ESR600" and IC as "10103A-ESR600." I am unsure why there is a difference in the FCCID, which seems to correspond to the ESR600 model, despite my router being the ESR300 model. Any insights or explanations regarding this inconsistency would be greatly appreciated. Here is a photo for the back label:

I have gathered the following specifications for the EnGenius ESR300 router:

  • CPU: MediaTek MT7620N (580 MHz)
  • Flash Memory: 16MB ( Macronix MX25L12845EMI-10G)
  • RAM: 64MB
  • Wireless Standard: IEEE 802.11b/g/n (2.4 GHz band)

For more detailed specifications, please refer to the following website

I apologize for any confusion caused. In the past, I started a thread regarding this issue on the OpenWrt forum, but due to personal circumstances, I had to temporarily leave the internet and could not continue the discussion. I apologize for any inconvenience caused by my absence. The link to the old thread

Thank you for your time and assistance. I am eager to resolve this issue and appreciate any guidance or support provided.

Best regards,
Muntadher Majid

I found an unofficial OpenWrt port that might work: https://github.com/openwrt/openwrt/commit/bc11f26d5578513cc6c427881ef0fa70a15ef6e2

At least, a factory.dlf file with a senao header seems to be generated.

NB: I did a web search for it, I have no clue whether it's actually going to work or not. There is no official OpenWrt support, this user, @mpratt14 never submitted the code.

Maybe @mpratt14 can add some more details?

1 Like

Dear @andyboeh,

Thank you for your response and for finding a potential unofficial OpenWrt port for the EnGenius ESR300 router. I appreciate your efforts in searching for a solution.

I understand that the port you found on GitHub (https://github.com/openwrt/openwrt/commit/bc11f26d5578513cc6c427881ef0fa70a15ef6e2) appears to have a factory.dlf file with a Senao header, which could be promising. However, since this port is unofficial and not submitted by @mpratt14, I would like to kindly request more information and guidance on how to proceed with building and using this firmware.

As a newbie to the process of building firmware, I would greatly appreciate it if @mpratt14 or anyone familiar with this port could provide detailed instructions or steps on how to build and flash this firmware onto my EnGenius ESR300 router. Additionally, if there are any specific dependencies, patches, or configurations required, please do share those as well.

I am eager to explore this potential solution and willing to learn. Your guidance and assistance in this matter would be invaluable to me.

Thank you once again for your help, and I look forward to any additional details you can provide.

Best regards,
Muntadher Majid

I'm going to post a pull request for this. I waited because I wanted epg600 to be added first, and I was also preoccupied with other things. the commit messages with instructions are not done yet, but in reality it is exactly the same procedure as for epg600

my recommendation to you is to go ahead and build your own images with my branch on top of the main branch and test the initramfs image

however, do not try to flash something right away, instead load the initramfs-kernel.bin using the TFTP recovery instructions in my commit for epg600

obviously the name of the file is different in this case, you can see what the name of the file must be with the printenv command in the bootloader's console

as you likely know already, TFTP boot does not write to the flash, so if you lose power during TFTP booting you will have to do TFTP again

try all of the basic features of the router during the TFTP boot before flashing with sysupgrade.bin

1 Like

Dear @mpratt14,

Thank you for your prompt response and for your willingness to submit a pull request for the unofficial OpenWrt port for the EnGenius ESR300 router. I appreciate your effort in making this port available to the community.

I understand that you are currently in the process of finalizing the commit messages with instructions for building the firmware. However, based on your recommendation, I would like to proceed with building my own images using your branch on top of the main branch. I have already downloaded your branch as a ZIP file from GitHub.

I attempted to use the "make menuconfig" command within the downloaded branch directory, but encountered some errors related to missing dependencies, specifically Python >= 3.6. Although I have Python 3.10.6 installed on my system, it seems that the build process requires Python >= 3.6. Is there a specific version or additional configuration I should consider to resolve this issue? This is the full log with python version test:


ubuntu@ubuntu:/srv/dev-disk-by-uuid-6D51A3F571A5430B/Misc/esr300/openwrt$ make menuconfig
Checking 'working-make'... ok.
Checking 'case-sensitive-fs'... ok.
Checking 'proper-umask'... ok.
Checking 'gcc'... ok.
Checking 'working-gcc'... ok.
Checking 'g++'... ok.
Checking 'working-g++'... ok.
Checking 'ncurses'... ok.
Checking 'perl-data-dumper'... ok.
Checking 'perl-thread-queue'... ok.
Checking 'tar'... ok.
Checking 'find'... ok.
Checking 'bash'... ok.
Checking 'xargs'... ok.
Checking 'patch'... ok.
Checking 'diff'... ok.
Checking 'cp'... ok.
Checking 'seq'... ok.
Checking 'awk'... ok.
Checking 'grep'... ok.
Checking 'egrep'... ok.
Checking 'getopt'... ok.
Checking 'stat'... ok.
Checking 'unzip'... ok.
Checking 'bzip2'... ok.
Checking 'wget'... ok.
Checking 'install'... ok.
Checking 'perl'... ok.
Checking 'python2-cleanup'... ok.
Checking 'python'... failed.
Checking 'python3'... failed.
Checking 'git'... ok.
Checking 'file'... ok.
Checking 'rsync'... ok.
Checking 'which'... ok.
Checking 'ldconfig-stub'... ok.

Build dependency: Please install Python >= 3.6
Build dependency: Please install Python >= 3.6

Prerequisite check failed. Use FORCE=1 to override.
make: *** [/srv/dev-disk-by-uuid-6D51A3F571A5430B/Misc/esr300/openwrt/include/toplevel.mk:180: staging_dir/host/.prereq-build] Error 1
ubuntu@ubuntu:/srv/dev-disk-by-uuid-6D51A3F571A5430B/Misc/esr300/openwrt$ python
Command 'python' not found, did you mean:
  command 'python3' from deb python3
  command 'python' from deb python-is-python3
ubuntu@ubuntu:/srv/dev-disk-by-uuid-6D51A3F571A5430B/Misc/esr300/openwrt$ python3
Python 3.10.6 (main, May 29 2023, 11:10:38) [GCC 11.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
[1]+  Stopped                 python3
ubuntu@ubuntu:/srv/dev-disk-by-uuid-6D51A3F571A5430B/Misc/esr300/openwrt$ python3 --version
Python 3.10.6

Additionally, I would greatly appreciate it if you could provide detailed instructions on how to utilize your branch and proceed with building and testing the initramfs image for the EnGenius ESR300 router. Specifically, I would like to understand how to load the initramfs-kernel.bin using the TFTP recovery instructions mentioned in your commit for the EPG600.

Furthermore, if there are any specific considerations, such as dependencies, patches, or configurations, please kindly share those details with me. I am eager to learn and follow the proper steps to build and test the firmware.

I sincerely appreciate your guidance and support in this process. Your expertise and assistance are invaluable to me and the community.

Thank you once again for your time and effort.

Best regards,
Muntadher Majid

my branch is very old, and that check for python is known to have issues, or in this case, it is simply behind the time when 3.10 support was officially listed.

you can wait for me to rebase my branch, or you can manually install symlinks python and python3 in staging_dir/host/bin which point to your python 3.10 path on your system and then

touch staging_dir/host/.prereq-build

1 Like

@MuntadherTY I rebased my branch so you can try again

1 Like

Hi @mpratt14,

Thank you for your response and for rebasing your branch. I appreciate your efforts in helping me with this issue.

However, I encountered another problem while running the build process. After some time, I received an error suggesting to use make -j1 V=s to get the full error message. I apologize for not providing the exact error details earlier.

Due to the current internet situation in my region, the government has imposed restrictions on internet access during third-grade students' exams. As a result, my ability to troubleshoot and communicate has been limited.

Considering these circumstances, I kindly request your assistance in building the image on your side if you aren't getting errors.

Once again, I apologize for the delayed response and any inconvenience caused. I truly appreciate your understanding and support.

Best regards,
Muntadher Majid

heres some images, I flashed to my ESR300, and it seems to be ok

remember to load the initramfs-kernel.bin with TFTP first, for testing, and flash sysupgrade.bin with openwrt webpage

https://www.dropbox.com/sh/ldrbgokbbz6rpfh/AABpw46QRI5J_Nw5_8uYs-Rta?dl=1

by the way, the answer to this is: they are exactly the same board

same PCB traces, and solder pad locations, and same SOC chip, almost everything

the only difference is, on the ESR600 there is additionally a PCIe WLAN chip (RT5592 or similar) while in the ESR300 it is simply missing. Basically the 300 and 600 correspond to the total throughput rating that IEEE uses to classify devices (N300 vs N600 vs AC1200, etc.) 2 WLAN radios instead of 1 means double the throughput rating.

Senao is known for sharing FCC IDs between models, as it probably saves them money in their business model, by pushing more units for sale with some of the hardware features missing, but using almost the same board design so they only have to register it once.

1 Like

however, my ESR300 has FCC ID of A8J-ESR300

maybe the rules differ by region, in the bottom right it states US11Y for mine

Dear mpratt14,

Thank you for your clarification and your time. I managed to successfully build the OpenWrt image, and it's working fine. However, I encountered an issue with setting up a WiFi repeater access point using the ESR300 (let's consider it as Router 2) in conjunction with Router 1 and Router 0.

Here's the setup: Router 0 acts as the DHCP server but does not have wireless capabilities, only a LAN connection to Router 1, which serves as the wireless access point with Router 0 as the DHCP server. I connect Router 2 to Router 1 via WiFi and then bridge the br-lan interface to obtain DHCP from Router 1 using relayd_proto_luci. I have also installed LuCI web UI.

The problem arises when I set up the extended WiFi network on Router 2 with password protection. Devices are unable to obtain an IP address when connecting to the extended network with a password. However, if I remove the password (encryption) on the extended network, all devices can connect and obtain DHCP from Router 0 successfully. I have tried different encryption types, but the issue persists.

Interestingly, when connecting to the extended network with a password, the client devices get stuck at "Obtaining IP address." I have made sure to forget the network on the client devices before attempting to reconnect and enter the password.

Could this issue be related to the encryption settings? Any insights or suggestions on resolving this problem would be greatly appreciated.

Thank you once again for your assistance.

Best regards,
Muntadher Majid

ESR300 or similar would not work well as router 2

it has only 1 radio, which cannot be both a client bridge and access point at the same time, especially if there are different encryption modes

the other possibility is IP address conflict. router 1 and 2 must have the address of router 0 as the gateway in LAN interface settings, otherwise it will prefer its own DHCP server

1 Like

Dear mpratt14,

Thank you for your support, time, and reply. I appreciate your insights regarding the limitations of ESR300 as Router 2 in the setup. I understand that using a single radio for both client bridge and access point functions, especially with different encryption modes, can cause issues.

Regarding the IP address conflict, I have ensured that both Router 1 and Router 2 have the address of Router 0 set as the gateway in their LAN interface settings. This way, they should prefer the DHCP server of Router 0.

I have taken your suggestions into consideration, and I would like to try using a USB WiFi adapter, specifically the TL-823N V2, as a client for Router 1 while utilizing the internal radio for extending the network. I attempted to install the "rtl8192eu" package, but I haven't been successful in getting it to work.

If you have any further suggestions or guidance on installing and configuring the TL-WN823N V2 USB WiFi adapter for this purpose, I would greatly appreciate it.

Once again, thank you for your valuable support and time.

Best regards,
Muntadher Majid

you're welcome

at this point I recommend you start a new topic to discuss that USB wifi model, I am not familiar with that one.

1 Like

Dear mpratt14,

Thank you for your prompt response and for offering further assistance. I understand that you are not familiar with the TL-823N V2 USB WiFi adapter, and I appreciate your suggestion to start a new topic to discuss it.

Before we move on, I wanted to express my gratitude for your guidance and support in helping me unbrick my device and successfully build the OpenWrt image for ESR300. Your expertise has been invaluable throughout this process, and I am grateful for the time and effort you have dedicated to helping me.

I will explore the USB WiFi adapter further and start a new discussion if needed. Once again, thank you for your kind assistance.

Best regards,
Muntadher Majid

2 Likes

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.