Huawei E303 Cellular Modem Discussion


Hi All,
I wanted to open up a thread specifically for issues relating to projects using the Huawei E303 Cellular Modem. This modem is currently in our store and is being distributed with the Raspberry Pi and BeagleBone KS kits.

One thing that makes dealing with this modem tricky is that there are a ton of them out there for sale and even though the model number and hardware revision may be exactly the same, differences in firmware can create differences with connecting to different networks.

We’ve just learned this the hard way as it seems like the modems we have in our store don’t seem to work on 3G in the US (or at least here in Chicago) and can only get a 2G connection. We know that the hardware can do it because we have another E303 here with Claro firmware on it that can get 3G in the US. Not a huge deal as our data plans aren’t exactly designed for watching Youtube anyway, but I’m sure we’d all like a faster connection.

I’m looking into finding a firmware that solves this problem but if anyone on here has already found one that works, please pass it along.


I’ve noticed the IMEI is 861862005295085 and the Serial number is U9C8YA9251701524 on all the konekt E303s I have. I would have expected both to be unique on every device. They are unique on the non-konekt E303s I have.

I wonder if there is an initialization step that assigns unique numbers and system characteristics like which services to look for on which frequencies.

The Konekt sim in another E303 that does do 3G but not HiLink, in a PC, seems to change connections constantly when connected between green(2G), blue(3G), and cyan(3G+). So I think the sim is correct.


Hmm yeah I hadn’t noticed that either but it appears that mine has the same IMEI. That part doesn’t appear to prevent it from getting online but you might be right about needing to do an extra initialization step.
We just bought these from a distributor on Ali Baba so there isn’t exactly someone we can go to for support but we’ll keep digging around. I can get the modem into serial mode and send it AT commands (working on a tutorial for that) so that might be a possible solution as well.


Alright so we’ve dug into this a lot and it looks like these modems just won’t do 3G in the US, though it will work in most of the world.
These modems only support WCDMA 2100 for 3G service which isn’t used in the US.
We’re looking into finding a version of the E303 that will work and we’ll send out those for free to whoever got one of these 2G modems and would like a 3G.
We’ll get that arranged very soon and I’ll post here with updates on the process.


Update: We found some US modems and are ordering them. These will be carrier branded but it seems like the best we can do at the moment and as long as they work that’s the really important thing.
People who got the international ones and are in the US will get a duplicate of their order with the US ones.
I think we can expect to ship these by the end of next week.
The main thing this will hold up is the the Raspberry Pi and Beaglebone kits. We’ll ship the international ones very soon, but we’ll hold the US ones until we have the US modems in stock.
If anyone wants to place an order for the modems, we’ll ship them as soon as we get them in stock.


Well we’ve got some bad news and some good news.
Bad news: the supplier that we placed an order with didn’t actually have enough in stock and so we had to cancel that order and find a new supplier. That hunt isn’t exactly easy.
Good news: We may go with a slightly better model (also with HiLink and everything) since the E303 is getting to be hard to find at the frequencies we need.

So we’re looking at a couple options right now and will probably place an order with a new supplier in the next day or so.

Thanks for your patience. We’ll keep you guys posted.


Good news: We found a new supplier and the modems are on the way! Right now, it looks like we’ll have them in our hands by the end of next week and so they should ship out to all of you the week of the 22nd.


Duplicate IMEI numbers violate the IMEI Allocation and Approval Guidelines and would lead me to believe those modems are illegitimate clones or have some other issue in their pedigree. IMEI numbers are not intended to be changed by users, only at the time of manufacture, so they are not duplicate because of some needed configuration by users.

Also, since network providers can and do block and blacklist IMEIs of stolen phones, having a whole run with the same number opens you to the chance of having your device blocked (along with what: 100s? 1000s? More? of others) by a blacklist intended to block a single device.

This gives me some sense of concern/alarm about the parts being purchased for these products.


You’re definitely correct that this isn’t up to the spec and if anyone runs into any trouble using it because of the IMEI issue then we’ll get them a new device.
We made a concerted effort on that batch to try to get generic, non-carrier modems in order to provide a better user experience and it looks like we got a little burned by that. Along with the generic modem, we got a generic firmware without unique numbers.
That being said, these devices do still work fine. We couldn’t get 3G in the US, but I was still able to get a solid 2G connection in my testing and send and receive data with no problems.
I also want to mention that the US devices are carrier branded and so they should all have unique IMEIs.

All of this annoying stuff is a big reason why we’re building the Dash. You don’t need to worry about any weirdness like this with the Dash because we’re sourcing our parts directly from manufacturers or official distributors. IMEIs on the Dash will be valid and unique.

With these modems we basically just wanted to offer an alternative reward in the Kickstarter for people who wanted to build IoT devices or mess around with the Konekt Cloud on their platform of choice without having to wait for the Dash to be finished.


It looks like the US modems are going to make it here from our supplier tomorrow. We’ll get them tested and if all is well then we’ll send them to our warehouse by the end of the day. This means that we could get them shipped out to all of you as soon as Monday.


Good news:

3G service in the US! We’re going to get these modems to our warehouse ASAP. Expect them to ship out to you all on Tuesday.


Most people should have their modems by now. Feel free to use this thread to post any questions or tips for getting them up and running with their devices.


I’m just going to do a bit of a link dump in here for useful information on the E303.

First off, our tutorials on the RPi and BeagleBone:

This is a special URL that switches the E303 out of HiLink (web interface) mode and into modem/serial mode:

Good instructions on installing the correct drivers on Windows so that once you switch the modem into that mode it’ll attach to a COM port and you can send it commands or use the Huawei Mobile Partner utility:

I’ll post more info on some specific AT commands soon.


New E303 blog post about controlling with AT commands:


There are undocumented API calls to the hilink web interface see here and here.
I was looking to see if there may also be calls to get the MCC/MNC/LAC/CellId of the connected cell as you might do with AT commands?


@pfafman Those are great links. I haven’t seen those before. Thanks for posting. I’ll look around a bit and see if I can find what you’re looking for.


I finally had a chance to look at this page. Apologies for the delay.
This stuff is great.
Unfortunately, I couldn’t find anything to get the cell ID, but if you use the api/net/current-plmn endpoint you can at least get the MCC/MNC of the network.


Is there a way to get current time from the Huawei E303? I tried AT+CCLK and also AT^NWTIME but only got errors. Maybe these features are not available on E303 or is there something to be done first, to enable such functions?


I’ve resorted to doing an HTTP HEAD request to to get the time. Would be nice if, when the Dash Pro firmware gets an update, to have network time available (if the cellular chip gives you that). Having near-correct time is important for some HTTPS functionality.

One other thing to note is that, when making an initial PPP link, there is a delay while the tunnel is established: you can’t immediately use the link. Once the tunnel is set up, even if the link is shut down, it seems to persist for some time and can be reused, provided you get the same IP address in a new PPP incarnation.


Hello, I am using the Huawei E303 dongle on the Raspberry Pi and have been having issues when following the tutorial [AT Commands with Huawei E303][1] to switch the HiLink into serial mode.

When I first plug in the dongle lsusb gives me "Bus 001 Device 011: ID 12d1:1f01 Huawei

When I run the command "usb_modeswitch -v 0x12d1 -p 0x1f01 -V 0x12d1 -P 0x1001 -M “55534243000000000000000000000611060000000000000000000000000000” and re-type lsusb I get “Bus 001 Device 011: ID 12d1:1442 Huawei Technologies Co., Ltd.”

I have tried using the command modprobe usbserial vendor=0x12d1 product=0x1001 and also retyping the usb_modeswitch command with -I on the end and still makes no difference.

Once I type “screen /dev/ttyUSB0” I get the error “Cannot exec /dev/ttyUSB0 no such file or directory”

Any suggestions?