ZigbeeCoordinator: Difference between revisions
No edit summary |
|||
Line 40: | Line 40: | ||
I downloaded the [https://github.com/kirovilya/CCLib CCLib toolchain] from GitHub and made the following changes: | I downloaded the [https://github.com/kirovilya/CCLib CCLib toolchain] from GitHub and made the following changes: | ||
<pre> | |||
diff --git a/Arduino/CCLib/Examples/CCLib_proxy/CCLib_proxy.ino b/Arduino/CCLib/Examples/CCLib_proxy/CCLib_proxy.ino | |||
index 1ba6949..b47d4da 100644 | |||
--- a/Arduino/CCLib/Examples/CCLib_proxy/CCLib_proxy.ino | |||
+++ b/Arduino/CCLib/Examples/CCLib_proxy/CCLib_proxy.ino | |||
@@ -35,10 +35,10 @@ | |||
//////////////////////////////////////// | |||
// Pinout configuration (Configured for Arduino Leonardo) | |||
-int CC_RST = 5; | |||
-int CC_DC = 4; | |||
-int CC_DD_I = 3; | |||
-int CC_DD_O = 2; | |||
+int CC_RST = D8; | |||
+int CC_DC = D7; | |||
+int CC_DD_I = D6; | |||
+int CC_DD_O = D5; | |||
// Change this if you are using an external led | |||
int LED = LED_BUILTIN; | |||
</pre> | |||
I compiled it using platformio, using the following platformio.ini settings: | |||
<pre> | |||
[platformio] | |||
src_dir = . | |||
[env:default] | |||
platform = espressif8266 | |||
board = d1_mini | |||
framework = arduino | |||
monitor_speed = 9600 | |||
upload_speed = 921600 | |||
</pre> | |||
Then enter the CCLib/Python directory and try to see if the programming tool can find the USB stick: | |||
./cc_info.py -E | |||
If it's found, you should see all kinds of information about the CC2531. | |||
TODO document: | |||
* download the HEX file | |||
* edit the HEX file | |||
* command to program the HEX file | |||
* ask for patience | |||
=== Software === | === Software === |
Revision as of 13:49, 10 March 2019
Project ZigbeeCoordinator | |
---|---|
File:NoPicture.jpg | |
Flashing a CC2531 USB dongle with Zigbee coordinator firmware | |
Status | In progress |
Contact | bertrik |
Last Update | 2019-03-10 |
What
This page describes the steps I performed to flash a generic CC2531 USB stick with firmware to make it act as a Zigbee coordinator. Zigbee is a wireless protocol to communicate with wireless appliances in your home, for example Ikea TRADFRI lamps.
Steps to do:
- buy the hardware, i.e. the CC2531 stick and the adapter cable
- wire up an ESP8266 Wemos D1 mini as a programmer
- build the ESP8266 Arduino sketch
- download, build and run the programmer utility
Hardware
I ordered this CC2531 stick plus the debug connector.
By default, the stick shows up in the system log as follows:
[58101.234023] usb 1-3: New USB device found, idVendor=0451, idProduct=16ae, bcdDevice= 1.17 [58101.234030] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [58101.234033] usb 1-3: Product: CC2531 USB Dongle [58101.234037] usb 1-3: Manufacturer: Texas Instruments
It was connected to an ESP8266 Wemos D1 mini for re-programming.
I wired this up as follows:
- press the flatcable onto the stick, with the red wire away from the USB connector
- press the flatcable onto the programming adapter, with the red wire towards pin 1
Wiring up:
- Wemos D1 pin GND -> breadboard -> adapter GND (pin 1)
- Wemos D1 pin D8 -> breadboard -> adapter RESETn (pin 7)
- Wemos D1 pin D7 -> breadboard -> adapter DC (pin 3)
- Wemos D1 pin D6 -> breadboard -> adapter DD (pin 4)
- Wemos D1 pin D5 -> breadboard connected to D6!
I downloaded the CCLib toolchain from GitHub and made the following changes:
diff --git a/Arduino/CCLib/Examples/CCLib_proxy/CCLib_proxy.ino b/Arduino/CCLib/Examples/CCLib_proxy/CCLib_proxy.ino index 1ba6949..b47d4da 100644 --- a/Arduino/CCLib/Examples/CCLib_proxy/CCLib_proxy.ino +++ b/Arduino/CCLib/Examples/CCLib_proxy/CCLib_proxy.ino @@ -35,10 +35,10 @@ //////////////////////////////////////// // Pinout configuration (Configured for Arduino Leonardo) -int CC_RST = 5; -int CC_DC = 4; -int CC_DD_I = 3; -int CC_DD_O = 2; +int CC_RST = D8; +int CC_DC = D7; +int CC_DD_I = D6; +int CC_DD_O = D5; // Change this if you are using an external led int LED = LED_BUILTIN;
I compiled it using platformio, using the following platformio.ini settings:
[platformio] src_dir = . [env:default] platform = espressif8266 board = d1_mini framework = arduino monitor_speed = 9600 upload_speed = 921600
Then enter the CCLib/Python directory and try to see if the programming tool can find the USB stick:
./cc_info.py -E
If it's found, you should see all kinds of information about the CC2531.
TODO document:
- download the HEX file
- edit the HEX file
- command to program the HEX file
- ask for patience