├── boards
├── bc26.json
├── m66.json
├── bc66.json
├── mc60.json
├── bg95.json
├── bg77.json
├── bg96.json
├── ec21.json
├── ec25.json
├── bc66-te-b.json
├── Olimex-NB-IoT-DevKit.json
└── Olimex-NB-IoT-DevKit.py
├── platform.py
├── .github
└── FUNDING.yml
├── platform.json
└── README.md
/boards/bc26.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Quectel BC26 module",
3 | "url": "https://www.quectel.com/product/bc66.htm",
4 | "build": {
5 | "core": "bc66",
6 | "f_cpu": "78000000L",
7 | "mcu": "ARM, MT2625",
8 | "variant": "bc66-te-b"
9 | },
10 | "debug": {
11 | "tools": {
12 | "uart": {
13 | "onboard": true,
14 | "extra_cmds": [],
15 | "load_cmd": [],
16 | "server": {}
17 | }
18 | }
19 | },
20 | "frameworks": ["opencpu"],
21 | "vendor": "Quectel",
22 | "upload": {
23 | "maximum_ram_size": 100000,
24 | "maximum_size": 200000
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/boards/m66.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Quectel M66 module",
3 | "url": "https://www.quectel.com/product/m66.htm",
4 | "build": {
5 | "core": "m66",
6 | "f_cpu": "260000000L",
7 | "mcu": "ARM, MT6261",
8 | "variant": "m66"
9 | },
10 | "debug": {
11 | "tools": {
12 | "uart": {
13 | "onboard": true,
14 | "extra_cmds": [],
15 | "load_cmd": [],
16 | "server": {}
17 | }
18 | }
19 | },
20 | "frameworks": ["opencpu", "arduino"],
21 | "vendor": "Quectel",
22 | "upload": {
23 | "maximum_ram_size": 102400,
24 | "maximum_size": 368640
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/boards/bc66.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Quectel BC66 module",
3 | "url": "https://www.quectel.com/product/bc66.htm",
4 | "build": {
5 | "core": "bc66",
6 | "f_cpu": "78000000L",
7 | "mcu": "ARM, MT2625",
8 | "variant": "bc66-te-b"
9 | },
10 | "debug": {
11 | "tools": {
12 | "uart": {
13 | "onboard": true,
14 | "extra_cmds": [],
15 | "load_cmd": [],
16 | "server": {}
17 | }
18 | }
19 | },
20 | "frameworks": ["opencpu", "arduino"],
21 | "vendor": "Quectel",
22 | "upload": {
23 | "maximum_ram_size": 100000,
24 | "maximum_size": 200000
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/boards/mc60.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Quectel MC60 module",
3 | "url": "https://www.quectel.com/product/mc60.htm",
4 | "build": {
5 | "core": "mc60",
6 | "f_cpu": "260000000L",
7 | "mcu": "ARM, MT2503",
8 | "variant": "mc60"
9 | },
10 | "debug": {
11 | "tools": {
12 | "uart": {
13 | "onboard": true,
14 | "extra_cmds": [],
15 | "load_cmd": [],
16 | "server": {}
17 | }
18 | }
19 | },
20 | "frameworks": ["opencpu", "arduino"],
21 | "vendor": "Quectel",
22 | "upload": {
23 | "maximum_ram_size": 102400,
24 | "maximum_size": 327680
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/boards/bg95.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Quectel BG95 module",
3 | "url": "https://www.quectel.com/product/bg95.htm",
4 | "build": {
5 | "core": "bg95",
6 | "f_cpu": "1200000000L",
7 | "mcu": "ARM, MDM9205",
8 | "variant": "bg95"
9 | },
10 | "debug": {
11 | "tools": {
12 | "uart": {
13 | "onboard": true,
14 | "extra_cmds": [],
15 | "load_cmd": [],
16 | "server": {}
17 | }
18 | }
19 | },
20 | "frameworks": ["threadx", "arduino"],
21 | "vendor": "Quectel",
22 | "upload": {
23 | "maximum_ram_size": 2621000,
24 | "maximum_size": 1310000
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/platform.py:
--------------------------------------------------------------------------------
1 | # WizIO 2019 Georgi Angelov
2 | # http://www.wizio.eu/
3 | # https://github.com/Wiz-IO/platform-quectel
4 |
5 | from platform import system
6 | from platformio.managers.platform import PlatformBase
7 |
8 | class QuectelPlatform(PlatformBase):
9 | def configure_default_packages(self, variables, targets):
10 | framework = variables.get("pioframework", [])
11 | if variables["board"].startswith('ec2'):
12 | del self.packages["toolchain-gccarmnoneeabi"]
13 | else:
14 | del self.packages["toolchain-gcc-ec2x"]
15 | return PlatformBase.configure_default_packages(self, variables, targets)
--------------------------------------------------------------------------------
/boards/bg77.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Quectel BG77 module",
3 | "url": "https://www.quectel.com/product/bg77.htm",
4 | "build": {
5 | "core": "bg77",
6 | "f_cpu": "1200000000L",
7 | "mcu": "ARM, MDM9205",
8 | "variant": "bg77"
9 | },
10 | "debug": {
11 | "tools": {
12 | "uart": {
13 | "onboard": true,
14 | "extra_cmds": [],
15 | "load_cmd": [],
16 | "server": {}
17 | }
18 | }
19 | },
20 | "frameworks": ["threadx", "arduino"],
21 | "vendor": "Quectel",
22 | "upload": {
23 | "maximum_ram_size": 2621000,
24 | "maximum_size": 1310000
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/boards/bg96.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Quectel BG96 module",
3 | "url": "https://www.quectel.com/product/bg96.htm",
4 | "build": {
5 | "core": "bg96",
6 | "f_cpu": "1200000000L",
7 | "mcu": "ARM, MDM9206",
8 | "variant": "bg96"
9 | },
10 | "debug": {
11 | "tools": {
12 | "uart": {
13 | "onboard": true,
14 | "extra_cmds": [],
15 | "load_cmd": [],
16 | "server": {}
17 | }
18 | }
19 | },
20 | "frameworks": ["threadx", "arduino"],
21 | "vendor": "Quectel",
22 | "upload": {
23 | "maximum_ram_size": 3145729,
24 | "maximum_size": 3145729
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/boards/ec21.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Quectel EC2x module",
3 | "url": "https://www.quectel.com/product/ec25.htm",
4 | "build": {
5 | "core": "ec25",
6 | "f_cpu": "1200000000L",
7 | "mcu": "ARM, MDM9607",
8 | "variant": "ec25"
9 | },
10 | "debug": {
11 | "tools": {
12 | "uart": {
13 | "onboard": true,
14 | "extra_cmds": [],
15 | "load_cmd": [],
16 | "server": {}
17 | }
18 | }
19 | },
20 | "frameworks": ["openlinux", "arduino"],
21 | "vendor": "Quectel",
22 | "upload": {
23 | "maximum_ram_size": 10485761,
24 | "maximum_size": 10485761
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/boards/ec25.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Quectel EC2x module",
3 | "url": "https://www.quectel.com/product/ec25.htm",
4 | "build": {
5 | "core": "ec25",
6 | "f_cpu": "1200000000L",
7 | "mcu": "ARM, MDM9607",
8 | "variant": "ec25"
9 | },
10 | "debug": {
11 | "tools": {
12 | "uart": {
13 | "onboard": true,
14 | "extra_cmds": [],
15 | "load_cmd": [],
16 | "server": {}
17 | }
18 | }
19 | },
20 | "frameworks": ["openlinux", "arduino"],
21 | "vendor": "Quectel",
22 | "upload": {
23 | "maximum_ram_size": 10485761,
24 | "maximum_size": 10485761
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/boards/bc66-te-b.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Quectel BC66NB-TE-B",
3 | "url": "https://www.quectel.com/product/bc66.htm",
4 | "build": {
5 | "core": "bc66",
6 | "f_cpu": "78000000L",
7 | "mcu": "ARM, MT2625",
8 | "variant": "bc66-te-b"
9 | },
10 | "debug": {
11 | "tools": {
12 | "uart": {
13 | "onboard": true,
14 | "extra_cmds": [],
15 | "load_cmd": [],
16 | "server": {}
17 | }
18 | }
19 | },
20 | "frameworks": ["opencpu", "arduino"],
21 | "vendor": "Quectel",
22 | "upload": {
23 | "maximum_ram_size": 100000,
24 | "maximum_size": 200000
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/boards/Olimex-NB-IoT-DevKit.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Olimex NB-IoT-DevKit",
3 | "url": "https://www.olimex.com",
4 | "build": {
5 | "core": "bc66",
6 | "f_cpu": "78000000L",
7 | "mcu": "ARM, MT2625",
8 | "variant": "bc66-te-b"
9 | },
10 | "debug": {
11 | "tools": {
12 | "uart": {
13 | "onboard": true,
14 | "extra_cmds": [],
15 | "load_cmd": [],
16 | "server": {}
17 | }
18 | }
19 | },
20 | "frameworks": ["opencpu", "arduino"],
21 | "vendor": "Olimex",
22 | "upload": {
23 | "maximum_ram_size": 100000,
24 | "maximum_size": 200000,
25 | "plugin": "Olimex-NB-IoT-DevKit"
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
4 | patreon: # Replace with a single Patreon username
5 | open_collective: # Replace with a single Open Collective username
6 | ko_fi: # Replace with a single Ko-fi username
7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9 | liberapay: # Replace with a single Liberapay username
10 | issuehunt: # Replace with a single IssueHunt username
11 | otechie: # Replace with a single Otechie username
12 | custom: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ESUP9LCZMZTD6
13 |
--------------------------------------------------------------------------------
/boards/Olimex-NB-IoT-DevKit.py:
--------------------------------------------------------------------------------
1 | from __future__ import print_function
2 | import time
3 | from serial import Serial
4 |
5 | ###################################################
6 |
7 | def togglePowerOn(s, t):
8 | s.dtr = 0
9 | time.sleep(t)
10 | s.dtr = 1
11 |
12 | def toggleReset(s, t):
13 | s.rts = 0
14 | time.sleep(t)
15 | s.rts = 1
16 |
17 | ###################################################
18 |
19 | def onBoot(s):
20 | togglePowerOn(s, 0.6)
21 | toggleReset(s, 0.1)
22 | print(' AUTO-START-READY ', end = '')
23 |
24 | def onBootStep(s, step):
25 | pass
26 |
27 | def onExit(s):
28 | time.sleep(0.1)
29 | toggleReset(s, 0.6)
30 | togglePowerOn(s, 0.6)
31 | print( '< AUTO-RESET >')
--------------------------------------------------------------------------------
/platform.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "quectel",
3 | "title": "Quectel",
4 | "description": "Quectel development platform 2018 Georgi Angelov",
5 | "url": "https://github.com/Wiz-IO/platform-quectel",
6 | "homepage": "http://www.wizio.eu/",
7 | "license": "Apache-2.0",
8 | "engines": { "platformio": "^3.0.0" },
9 | "repository": {
10 | "type": "git",
11 | "url": "https://github.com/Wiz-IO/platform-quectel.git"
12 | },
13 | "version": "2.1.03",
14 | "packageRepositories": [
15 | "https://dl.bintray.com/platformio/dl-packages/manifest.json",
16 | "http://dl.platformio.org/packages/manifest.json"
17 | ],
18 | "frameworks": {
19 | "opencpu": {
20 | "package": "framework-quectel",
21 | "script": "builder/frameworks/opencpu.py"
22 | },
23 | "openlinux": {
24 | "package": "framework-quectel",
25 | "script": "builder/frameworks/openlinux.py"
26 | },
27 | "threadx": {
28 | "package": "framework-quectel",
29 | "script": "builder/frameworks/threadx.py"
30 | },
31 | "arduino": {
32 | "package": "framework-quectel",
33 | "script": "builder/frameworks/arduino.py"
34 | }
35 | },
36 | "packages": {
37 | "framework-quectel": {
38 | "type": "framework",
39 | "version": "https://github.com/Wiz-IO/framework-quectel.git"
40 | },
41 | "toolchain-gccarmnoneeabi": {
42 | "type": "toolchain",
43 | "version": "=1.70201.0"
44 | },
45 | "toolchain-gcc-ec2x": {
46 | "type": "toolchain",
47 | "version": "https://github.com/Wiz-IO/LIB/raw/master/quectel/toolchain-gcc-ec2x-v1.0.0.zip"
48 | },
49 | "tool-quectel": {
50 | "type": "uploader",
51 | "version": "https://github.com/Wiz-IO/tool-quectel.git",
52 | "optional": true
53 | }
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Quectel development platform for [PlatformIO](http://platformio.org)
2 |
3 | ## Тhe project is frozen indefinitely - lack of support from stakeholders...
4 | **I will not describe the reasons because they are threatening me with a legal responsibility
**
5 | **I will delete the Framework ( Source Codes ) due to license restrictions
**
6 | **TIP: If you have an alternative - run away from Quectel**
7 |
8 | **A few words in the beginning**
9 | * **Version: 2.1.03** ( [look here, if there is something new](https://github.com/Wiz-IO/platform-quectel/wiki/FIX) )
10 | * * [NEW SDK for BC66 more info here](https://github.com/Wiz-IO/platform-quectel/wiki/SDK-BC66)
11 | * * Basic Arduino for EC25
12 | * This project not an official product of Quectel and is based on **reverse engineering**
13 | * Frameworks:
14 | * * OpenCPU ( M66, MC60, BC66 )
15 | * * ThreadX ( BG96 ) (note: BG95 BG77 comming soon )
16 | * * OpenLinux ( EC21, EC25 )
17 | * * Arduino ( BC66, M66, BG96, EC2x )
18 | * **Windows**, Linux, macOS ( test and report )
19 | * Read [WIKI](https://github.com/Wiz-IO/platform-quectel/wiki/PLATFORM-QUECTEL)
20 | * [Examples BC66](https://github.com/Wiz-IO/platformio-quectel-examples/tree/master/BC66_SDK)
21 | * [Examples](https://github.com/Wiz-IO/platformio-quectel-examples)
22 |
23 | **it should look like this...**
24 |
25 | 
26 |
27 | Video
28 |
29 | https://youtu.be/YvHy1MLqH70
30 |
31 | https://www.youtube.com/watch?v=DJ0nZS5HwHU
32 |
33 | 
34 |
35 | 
36 |
37 | ## Install Platform
38 |
39 | _Python 2 & 3 compatable in process, if issue - report_
40 |
41 | PIO Home > Platforms > Advanced Installation
42 |
43 | paste https://github.com/Wiz-IO/platform-quectel
44 |
45 | **How to: [WIKI](https://github.com/Wiz-IO/platform-quectel/wiki/PLATFORM-QUECTEL)**
46 | and [EXAMPLES](https://github.com/Wiz-IO/platformio-quectel-examples)
47 |
48 | ## Fast Uninstal
49 | * goto C:\Users\USER_NAME.platformio\platforms
50 | * delete folder **quectel** ( builders )
51 | * delete folder **framework-quectel** ( sources )
52 | * delete folder tool-quectel ( any tools, _may not delete_ )
53 | * delete folder toolchain-gccarmnoneeabi (compiler, _may not delete_ )
54 |
55 | ## Thanks to
56 |
57 | * Quectel Support
58 | * Redferne Bellini
59 | * Ajay Bhargav
60 | * ชัยวัฒน์ แซ่ฮุ้ย ( Art of Destroy )
61 | * Ivan Kravets ( PlatformIO )
62 |
63 | **Support links**
64 |
65 | * [Forum Quectel](https://forums.quectel.com/)
66 | * [Support Quectel](https://www.quectel.com/support/contact.htm)
67 | * [Forum PlatformIO](https://community.platformio.org)
68 | *
69 |
70 | >If you want to help / support:
71 | [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ESUP9LCZMZTD6)
72 |
--------------------------------------------------------------------------------