├── 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 | ![Project](https://raw.githubusercontent.com/Wiz-IO/platform-opencpu/master/platform.png) 26 | 27 | Video 28 | 29 | https://youtu.be/YvHy1MLqH70 30 | 31 | https://www.youtube.com/watch?v=DJ0nZS5HwHU 32 | 33 | ![Project](https://raw.githubusercontent.com/Wiz-IO/LIB/master/images/bc66-oled.jpg) 34 | 35 | ![Project](https://raw.githubusercontent.com/Wiz-IO/platform-opencpu/master/on_linux.png) 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 | [![paypal](https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ESUP9LCZMZTD6) 72 | --------------------------------------------------------------------------------