Wio Nodes are tiny wireless controller boards built by Seeed Studio as part of the Grove system which supports hundreds of hardware widgets and sensors. The nodes were designed to be configured with the Wio app and linked through a Wio server.
It's unclear if the Seeed Studio Wio service is just down temporarily or entirely deprecated, but the Wio server displayed an error while trying to setup some old Wio Nodes I had sitting in a box. I assumed these nifty little boards were rendered useless by service deprecation, and none of my favorite open source firmwares mentioned support for the "ESP-WROOM-02" chip on the board.
It wasn't until a few days ago when I learned that "ESP-WROOM-02" is not the chip but an assembly, which uses the popular ESP8266 chip at its core. Now the question was not ifbut how can I flash it?
Seeed Studio's Github repo didn't include flashing instructions but did include the board schematics which held the key to flashing.
Wio Node GPIO
The Wio schematic lists the following GPIO connections to grove connectors:
Grove port
Silkscreen grove label
Grove pin #
Wire color
IO
Schematic label
0
UART/I2C0/D0
1
Yellow
3
U0RXD/SPICS1/GPIO3
2
White
1
U0TXD/GPIO1
1
ANALOG/I2C1/D1
1
Yellow
5
GPIO5
2
White
4
GPIO4
Oddly, the silkscreened grove labels don't match the schematic labels for those GPIO. For example, both grove ports list I2C, but SDA is not mentioned at all in the Wio schematic. The ESP schematic includes SDA, but it's on GPIO2 which is not connected to a grove port. It turns out that ESP8266 GPIO supports some software re-assignment, which is how the same grove connector can switch between digital, analog, and I2C.
The schematics also include the following GPIO details:
GPIO0 - Func button
GPIO2 - Onboard blue LED
GPIO15 - Grove VCC power switch
As with other ESP8266 devices, you can boot to flash mode by shorting GPIO0 (Func button) during boot, then send the new firmware over UART (grove port 0).
Requirements
This guide details the process for flashing a Wio Node device and assumes you have some experience flashing other ESP8266 devices. If not, check out the Tasmota getting started guide before continuing.
MicroUSB cable for power (microUSB won't work for flashing)
PC/server/Arduino running ESPHome, Tasmotizer, or your preferred ESP flashing tool
Flashing
Connect the USB-TTL Tx/Rx/gnd pins to the grove port 0 (UART). Do not connect VCC
Connect the microUSB port for power
Boot to flash mode: - Hold the Func button (GPIO0) - Press the RST button - Wait a few seconds then release Func
Start flashing using ESPHome, Tasmotizer, or your preferred flashing tool
If the ESP8266 is not found by the flashing tool, try reversing the Tx/Rx wires and/or changing the USB TTL com port baud rate to 115200.
I first flashed ESPHome but decided to reflash to Tasmota as it's flexible webUI makes prototyping faster. As a side note, you can flash the tasmota.bin over-the-air from the ESPHome onboard webUI!
Tasmota setup
The Generic (0) module can be used since there's no specific Wio module. Select the components to be used on each GPIO.
For a quick PoC test, I used the PWM component on GPIO3 to control a red LED and Relay_i (inverted) on GPIO2 to test the onboard blue LED.
This automatically generates a PWM slider control and on/off toggles on the Tasmota main menu, which is useful for testing but impractical for anything else.
Connecting this to my existing Tasmota integration in Home Assistant was as easy as clicking on the Tasmota Configure MQTT button and entering my server details. Home Assistant magically picked up the device and generated toggles and a slider which work the same as in Tasmota. Here's a video of the auto-generated controls in action.
ESPHome
ESPHome requires less configuration, as it includes a Wio Node device type, however, it seems to only support D0 and D1 as digital I/O out of the box. I don't recall if it's possible to reconfigure these as I2C or analog, or to enable additional GPIO pins (grove pin2) in yaml, so I'll just stick with Tasmota for now.
This is my take on a Home Assistant control panel platform. It's based on this guide to creating a Raspberry Pi minimal browser kiosk but with wake-on-motion and some tweaks to improve the experience. Background info, why I chose this over the other options, and plans for future expansion are at the bottom, for anyone interested. My plan is to install one in each room with room-specific widgets. Hardware RaspberryPi 3 B 8GB or larger high quality microSD Official Rpi 7" touchscreen Official Rpi camera v2 Smartipi touch2 case with camera mount USB keyboard for initial HA login Assemble the parts according to the included instructions but keep the microSD out for now for imaging. Raspbian lite setup Image Raspbian Lite to the SD using the imaging tool or other method. Create an empty file on the SD boot directory named ssh to enable SSH on boot. Create a file in the SD boot directory named wpa_supplicant.conf with the following content, replacing the variables with ...
I recently purchased a KingNovyPC M6 N100 mini PC from Aliexpress to replace a laptop I carry between home and work. I chose the 16GB model with no storage for 27,651 JPY (~$183 US). I think this is a good deal even given the drawbacks below. Let me start with the bad first. Poor thermals The cooling is woefully inadequate for the N100 CPU. The CPU temperature frequently exceeded 90°C under moderately intensive activities, such as installing several Windows updates in parallel. The thermal throttling and lag became noticeable during these times. The fan speed shows "n/a" because there is no yellow fan sensor wire. Replacing the heatsink compound with high-quality silver paste* had negligible impact but removing the top cover dropped temps by ~10°C. That's still high but out of the danger zone. I can think of many ways KingNovy (or the ODM) could have improved this thermal design, such as using a metal case to increase dissipation, but that would have added to the weight...
If you're like me, you may have an image of trains being a legacy of the industrial revolution chugging freight across country but that utilitarian image is naive or at least incomplete. Modern train and subway technology rivals aeronautics and the history of these marvels of engineering is almost romantic. The Railway Museum (鉄道博物館, Tetsudō Hakubutsukan) has done an incredible job of showcasing the progress from the first steam locomotives in the late Edo period to the recent E6 shinkansen since it's opening in 2007. The museum is located in Omiya, Saitama the city North of Tokyo about an hour away from central Tokyo. From Omiya station there's a "new shuttle" line which takes you directly to the Museum station. British-built locomotive #1 from 1871. I wonder how hard it must have been to save all these trains from being turned into ships and planes for the war. In front of most exhibits are explanations in Japanese b...
Comments
Post a Comment