SmartPower2
SmartPower2 is a power-supply which has WiFi connectivity to control the voltage to and switch on/off a connected device.
You can also monitor the load current and power consumption remotely on your smartphone, tablet and PC.
Specifications
WiFi MCU module | ESP12E |
---|---|
Output Interface | USB Host, terminal block(+, -) |
Terminal Block Output Voltage | DC 4 ~ 5.3V in 100mV step |
Terminal Block Maximum Output Current | 5A |
USB Host Port Output Voltage | DC 4 ~ 5.3V in 100mV step |
USB Host Port Maximum Output Current | 1A |
DC-Jack Input Voltage | 9~15V |
Measurement | Voltage, Current, Watt, Watt-Hour |
Display | 16×2 I2C Character LCD |
Wireless | WiFi 802.11 b/g/n 2.4 GHz |
Dimensions | 52x46mm |
weight | 18g, 58g(with LCD) |
How to use
0. Connect the included 15V/4A adapter and plug the output cable in the terminal block.
Ensure the DC plug cable is properly connected to negative(black) and positive(red).
Caution! if you plug it the other way, your board will be seriously damaged.
Without WiFi (Standalone mode)
1. Output Power ON/OFF
You can turn the output power on/off using the tact switch on SmartPower2
2. Power monitoring with 16×2 LCD
We recommend connecting the LCD after disconnecting the main power source.
With WiFi (Connected mode)
The webpage supports IE 11+, Edge 13+, Firefox 47+, Chrome 49+, Safari 9.1+, Opera 41+, IOS Safari 9.3+, Android Broswer 4.4+, Chrome for Android 53+
1. WiFi Connection
Default SSID : smartpower2, Password : 12345678
2. Access Web UI
Default webserver ip : 192.168.4.1
1. WiFi Connection | 2. Access Web UI |
---|---|
![]() | ![]() |
3. Home
- Seven Segments : voltage, ampere, watt, watt-hour.
- ON/OFF slide : Output power ON/OFF.
- Start/Stop slide : Watt-hour measurement Start/Stop.
- Voltage slider : Change output voltage.
- Save Default Voltage button : Set default voltage.
4. Settings
- Auto Run checkbox - Output power ON/OFF automatically when you power on the SmartPower2.
- Save Button - Save Network Configuration (SSID, IP Address, Password).
- Reset Button - Initialize User Network Configuration (Factory reset)
With Telnet (Connected mode)
After connection with WiFi, you can get power data via telnet.
[Voltage],[Ampere],[Power],[Watt hour]
$ telnet 192.168.4.1 5.255,0.451,2.374,0.000 5.256,0.451,2.374,0.000
Receving Power Data via microUSB cable
This feature is available in F/W v1.4 or later.
You can receive power data(current, voltage, power, watt-hour) from your SmartPower2 to your PC or ODROIDs through serial.
The serial output is available only when the output power is enabled.
Requirement Parameters
- 115200bps 8N1
- no-flow-control
1. Connect your SmartPower2 to PC via microUSB cable
2. Run Serial serial console program like putty or minicom
3. Enable power on
LED State
LED | State | Description |
---|---|---|
PWR(D1) | off | Input power off |
on | Input power on | |
blink | Output power on | |
WiFi Status | off | no WiFi connection |
on | WiFi connected | |
blink | Webpage loaded |
System Reset
After boot, press the ON/OFF switch for 5 seconds to reset all settings including WiFi.
Hardware
Documentation
Schematic
Data Sheet
- MCU - ESP8266 Espressif low power 32-bit MCU
- USB to UART - CP2104 single chip usb-to-uart bridge
- 3A 16V Stepdown - MP1495S High Efficiency 3A, 16V, 500kHz Synchronous Step Down Converter
- Digital Potentional Meter - MCP4652 7/8-Bit Single/Dual I2C Digital POT with Volatile Memory
- Current/Power Monitor - ina231 High- or Low-Side Measurement, Bidirectional CURRENT/POWER MONITOR with 1.8-V I2C Interface
- 10A 18V Stepdown - MP8762 High Efficiency, 10A, 18V Synchronous Step-down converter
Software
Upload the Firmware
Simple instruction for Firmware upload.
Linux
1. Install the requerments
- host
$ sudo apt install python-pip git $ sudo pip install esptool
2. Get the binaries about firmware and web source
- host
$ git clone https://github.com/hardkernel/smartpower2.git $ cd smartpower2
3. Upload
You should check your esp8266 serial number like “/dev/ttyUSB0” or “/dev/ttyUSB1”
- host
$ sudo esptool.py --chip esp8266 --port /dev/ttyUSB0 --baud 921600 write_flash 0x00000 prebuilt/firmware.bin 0x100000 prebuilt/spiffs.bin
Windows
The instructions were tested on Windows 10.
1. Get the binaries about firmware and web source from this link
https://github.com/hardkernel/smartpower2/releases
And then, you need to extract the zip file on your work folder.
2. Download and extract the flash tool
3. Run the exe file into the folder
4. Select ESP8266
5. Start upload
You have to input binaries and other parameters as shown below picture.
COM port is variable depending on your PC environment.
Build Firmware
This guide is working with x86 platforms only. The development tools are not available for ARM platforms.
You can use Arduino IDE or PlatformIO for build platform.
Arduino IDE
1. Install Arduino IDE for ESP8266
Download the Arduino IDE via this link
https://www.arduino.cc/en/Main/Software
Run Arduino IDE and open “File → Preferences” on the menu bar
Add https://arduino.esp8266.com/stable/package_esp8266com_index.json into “Additional Boards Manager URLs”
After adding the url, you are able to search “esp8266” in “Tools → Board → Boards Manager”.
Install the esp8266 Android version 2.4.2!
Currently, Smartpower2 is not compatible with version esp8266 Android v2.5.0 or higher.
Select “Tools → board” to “NodeMCU 1.0(ESP-12E Module)”
2. Get source code
Download the latest source code.
Unpack and open the “smartpower2.ino” in Arduino
Configure your Sketchbook location to your project root folder.(In my case $HOME/Downloads/smartpower2-1.4)
Restart Arduino IDE. Then, you can see “ESP8266 Sketch Data Upload” on the tools menu bar.
3. Compile and upload
Run upload!
Run “ESP8266 Sketch Data Upload” on the tools menu bar.
This platformio not available at this time
Please refer to https://github.com/platformio/platform-espressif8266/issues/150
PlatformIO
Linux
1. Install PlatformIO
sudo apt-get install python-pip sudo pip install -U platformio platformio --version
If you have any issue while installing it, refer this guide.
http://docs.platformio.org/en/stable/installation.html
2. Get source code
sudo apt-get install git git clone https://github.com/hardkernel/smartpower2.git -b v1.6-platformio
3. Build & Upload
Connect microUSB to Host PC.
You can see the list of USB drivers “CP210x UART Bridge” by lsusb in the terminal.
cd smartpower2 sudo platformio run sudo platformio run --target upload sudo platformio run --target uploadfs
Windows
1. Install platformIO
http://docs.platformio.org/en/stable/installation.html
2. Get source code
3. Install libraries
Install libraries with platformio library manager
- Websocket(549)
- Simpletimer(419)
- LiquidCrystal_I2C(576)
platformio lib install 549 419 576
3. Build & Upload
Run CMD and move to the smartpower2 folder and Connect microUSB to Host PC.
You can see the list of USB drivers “CP210x USB to UART Bridge(COMx)” on the Device Manager.
cd /path/to/dir/smartpower2 platformio run platformio run --target upload platformio run --target uploadfs
Troubleshooting
"undefined reference to sqrt" error
If you have any errors such as the following.
/home/kyle/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/lib/libm.a(lib_a-w_sqrt.o):(.literal+0x8): undefined reference to `__ieee754_sqrt' /home/kyle/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/lib/libm.a(lib_a-w_sqrt.o): In function `sqrt': /xtensa/esp-open-sdk/crosstool-NG/.build/src/newlib-2.0.0/newlib/libm/math/w_sqrt.c:69: undefined reference to `__ieee754_sqrt' collect2: error: ld returned 1 exit status *** [.pioenvs/esp12e/firmware.elf] Error 1
Please try to replace the libm.a file in the “.platformio/packages/toolchain-xtensa/xtensa-lx106-elf/lib/” after extract.
F/W Version History
Release Date | Version | Description | Git |
---|---|---|---|
Oct 11 2019 | v1.6 | Fix the “ISR not in IRAM” error | https://github.com/hardkernel/smartpower2/tree/v1.6-arduino |
May 17 2019 | v1.5 | Add arduino branch | https://github.com/hardkernel/smartpower2/tree/v1.5-arduino |
May 28 2018 | v1.4 | Add receiving power data function through serial | https://github.com/hardkernel/smartpower2/tree/v1.4 |
February 12 2018 | v1.3 | Fix compile errors | |
March 27 2017 | v1.2 | Fix the LCD display of watt hours, display volts and amps to three decimal places on the web interface. | |
January 22 2017 | v1.1 | Add console logging with telnet and make SSID unique to each device | https://github.com/hardkernel/smartpower2/tree/v1.1 |
Release Note of F/W v1.6
- Fix the “ISR not in IRAM” error : https://github.com/hardkernel/smartpower2/commit/03741a6fb96f5e2b64f3f342e8ed324136e78ea3
Release Note of F/W v1.5
- Add the Arduino branch
- Fix build flags on the platformio : https://github.com/hardkernel/smartpower2/commit/998e002d1c4520b54701307dd60f841c9bf58f63
Release Note of F/W v1.4
- You can receive power data(current, voltage, power, watt-hour) from your SmartPower2 through serial
Release Note of F/W v1.1
Thanks to https://github.com/OtherCrashOverride
New features
- Assign a Unique SSID on each device for using multiple SmartPower2s simultaneously.