Skip to content

Commit

Permalink
update doc
Browse files Browse the repository at this point in the history
  • Loading branch information
mathieucarbou committed Jul 28, 2024
1 parent 56461ab commit 6d352f5
Show file tree
Hide file tree
Showing 12 changed files with 348 additions and 216 deletions.
20 changes: 20 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"files.associations": {
"*.cps": "javascript",
"*.config": "cpp",
"__bit_reference": "cpp",
"__hash_table": "cpp",
"__split_buffer": "cpp",
"__tree": "cpp",
"array": "cpp",
"deque": "cpp",
"initializer_list": "cpp",
"map": "cpp",
"regex": "cpp",
"string": "cpp",
"string_view": "cpp",
"unordered_map": "cpp",
"vector": "cpp",
"ostream": "cpp"
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 5 additions & 4 deletions docs/blog.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ description: Blog

# Blog

- [2024-07-01 - Shelly Solar Diverter / Router](/blog/2024-07-01_shelly_solar_diverter)
- [2024-06-26 - Everything on le JSY](/blog/2024-06-26_everything_on_the_jsy)
- [2024-06-25 - Remote JSY through UDP](/blog/2024-06-25_remote_jsy)
- [2024-06-23 - Development is still in progress](/blog/2024-06-23_development_is_still_in_progress)
- [2024-07-24 - The Importance of a good ZCD circuit](./blog/2024-07-24_the_importance_of_a_good_zcd_circuit)
- [2024-07-01 - Shelly Solar Diverter / Router](./blog/2024-07-01_shelly_solar_diverter)
- [2024-06-26 - Everything on le JSY](./blog/2024-06-26_everything_on_the_jsy)
- [2024-06-25 - Remote JSY through UDP](./blog/2024-06-25_remote_jsy)
- [2024-06-23 - Development is still in progress](./blog/2024-06-23_development_is_still_in_progress)
52 changes: 52 additions & 0 deletions docs/blog/2024-07-24_the_importance_of_a_good_zcd_circuit.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---
layout: default
title: Blog
description: "The Importance of a good ZCD circuit"
---

_Date: 2024-07-024_

# The Importance of a good ZCD circuit

During YaSolR development, I've tested several ZCD modules with an oscilloscope, but also programmatically with a library allowing me to analyse the quality of the detection of ZCD pulses.

My conclusions, which are also common to a lot of other experts in Solar Routers, is that **the quality of the ZCD module is very important for the accuracy of routing.**

## What is a ZCD circuit?

Please read the [YaSolR Overview](../overview#zero-cross-detection-zcd) to understand the concept of Zero-Cross Detection.
A Wikipedia article is also available [here](https://en.wikipedia.org/wiki/Zero_crossing).

Using a good ZCD circuit producing a reliable pulse is very important.

If the pulses are not reliable, some short flickering could be caused by a mis-detection of the zero point or by the existence of spurious pulses (false-positives), and consequently cause the TRIAC to fire at the wrong time, or the calculations for the burst fire sequence to be wrong.
These are visible if you plug an incandescent light bulb to the dimmer output: the bulb will flicker from time to time.
The effect on a water tank resistance is even bigger: it will create some spurious spikes of power consumption, that the router will try to compensate just after by considerably reducing the dimming level.
This creates some waves instead of keeping the import and export at a near-0 level.

These phenomena are not visible with a good ZCD module coupled with a Random SSR.

The Robodyn is such a device that has an unreliable ZC pulse: all experts working on Solar Routers who have measured that correctly, tend to agree with the fact that **the Robodyn is one of the worst device to use because of its unreliable ZC and poor quality circuit and heat sink**.

Here is below a YaSolR screenshot of the Grid Power graph showing the effect of a bad ZCD module on the power consumption and import.
On the lef side, the Robodyn ZCD is used, then I've switched (live) to a dedicated ZCD module.

[![](assets/img/screenshots/robodyn-vs-zc-module-grid-power.jpeg)](assets/img/screenshots/robodyn-vs-zc-module-grid-power.jpeg)

Here is another example below of th YaSolR PID Tuning view showing the input value of the PID controller.
The dedicated ZCD module was used, then I've switched (live) to a Robodyn ZCD module.
The update rate is high: 3 times per second.
All the JSY measurements are captured and displayed.
You can clearly see the flickering caused by the bad quality of the Robodyn ZCD pulses, which gets compensated just after by the PID controller.

[![](assets/img/screenshots/robodyn-vs-zc-module-pid-tuning.jpeg)](assets/img/screenshots/robodyn-vs-zc-module-pid-tuning.jpeg)

Lastly, here is a graph showing in Home Assistant the effect of the Robodyn ZCD on the dimmer output.
The Robodyn ZCD was used form 11:58 to 12:02, then I've switched (live) to a dedicated ZCD module.

[![](assets/img/screenshots/robodyn-vs-zc-module-ha.jpeg)](assets/img/screenshots/robodyn-vs-zc-module-ha.jpeg)

You can read more about these issues here also:

- [About dimmer boards](https://github.com/fabianoriccardi/dimmable-light/wiki/About-dimmer-boards)
- [Notes about specific architectures](https://github.com/fabianoriccardi/dimmable-light/wiki/Notes-about-specific-architectures#esp32)
30 changes: 16 additions & 14 deletions docs/build.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ description: Build
- [The Minimalist](#the-minimalist)
- [The Adventurer](#the-adventurer)
- [The Elite](#the-elite)
- [The Professional (🚧)](#the-professional-%F0%9F%9A%A7)
- [The Professional](#the-professional)
- [Possible Upgrades](#possible-upgrades)
- [Remote JSY](#remote-jsy)
- [Alternative: The Shelly Solar Diverter](#alternative-the-shelly-solar-diverter)
Expand Down Expand Up @@ -42,7 +42,7 @@ Here are below some examples:
- [The Minimalist](#the-minimalist): the cheapest and easiest to build
- [The Adventurer](#the-adventurer): for people who want to mitigate the flaws of the Robodyn and do some improvements over the existing Robodyn
- [The Elite](#the-elite): for people who want to use a Random SSR instead of a Robodyn to safely dim more power and have a better Zero-Cross Detection circuit
- [The Professional (🚧)](#the-professional-%F0%9F%9A%A7): probably the best and safe solution out there but requires an additional power source
- [The Professional](#the-professional): probably the best and safe solution out there but requires an additional power source
- [Possible Upgrades](#possible-upgrades): some additional components you can add to your router
- [Remote JSY](#remote-jsy): a standalone application to place in your electrical panel to send the JSY metrics through UDP for remote installations
- [Alternative: The Shelly Solar Diverter](#alternative-the-shelly-solar-diverter): a limited Solar Diverter / Router with Shelly devices and a voltage regulator
Expand All @@ -61,7 +61,7 @@ Reuse your existing Shelly EM or Shelly 3EM to build a router!
> - Supports **Phase Control** and **Burst mode**
> - Reuse your Shelly EM or 3EM and send through MQTT grid power and voltage
> - You can also use a SSR and ZCD module instead of the Robodyn
> {: .block-tip }
{: .block-tip }

> ##### WARNING
>
Expand All @@ -70,7 +70,7 @@ Reuse your existing Shelly EM or Shelly 3EM to build a router!
> - Bypass mode will use the Robodyn dimmer at 100% power
> - Not as precise as a JSY (MQTT delays)
> - No local measurement in place to measure the routed power (statistics will be empty)
> {: .block-warning }
{: .block-warning }

### The Minimalist

Expand All @@ -84,14 +84,14 @@ The _Minimalist_ build uses inexpensive and easy to use components to start a ro
>
> - Robodyn includes Zero-Cross Detection circuit
> - Supports **Phase Control** and **Burst mode**
> {: .block-tip }
{: .block-tip }

> ##### WARNING
>
> - Advised load not more than 2000W
> - Robodyn has poor quality heat sink, soldering and Zero-Cross pulse
> - Bypass mode will use the Robodyn dimmer at 100% power
> {: .block-warning }
{: .block-warning }

### The Adventurer

Expand All @@ -107,15 +107,15 @@ See the [Robodyn](#robodyn) section for more information.
>
> - Robodyn includes Zero-Cross Detection circuit
> - Supports **Phase Control** and **Burst mode**
> {: .block-tip }
{: .block-tip }

> ##### WARNING
>
> - Advised load not more than 2000W
> - Robodyn has poor quality heat sink, soldering and Zero-Cross pulse
> - Bypass mode will use the Robodyn dimmer at 100% power
> - Requires to unsolder the heat sink and triac and put a new triac on a new heat sink
> {: .block-warning }
{: .block-warning }

### The Elite

Expand All @@ -132,14 +132,16 @@ The _Elite_ build is for people who want to use a Random SSR instead of a Robody
> - Supports **Phase Control** and **Burst mode**
> - Other types of Heat Sink are available: the image above is just an example. Pick one according to your load.
> - All the components can be easily attached onto a DIN rail
> {: .block-tip }
{: .block-tip }

> ##### WARNING
>
> - Bypass mode will use the SSR dimmer set at 100% power
> {: .block-warning }
{: .block-warning }

### The Professional (🚧)
### The Professional

(🚧)

The _Professional_ build uses a Voltage Regulator to control the power routing.
This is probably the best reliable and efficient solution, but it is more complex to setup and wire.
Expand All @@ -155,13 +157,13 @@ It requires an additional 12V power supply.
> - Supports **Phase Control** and **Burst mode**
> - Heat sink are bigger and better quality: bigger models are also available
> - All the components can be easily attached onto a DIN rail
> {: .block-tip }
{: .block-tip }

> ##### WARNING
>
> - Requires an additional 12V power supply (i.e. Mean Well HDR-15-15 12V DC)
> - Bypass mode will use the dimmer set at 100% power
> {: .block-warning }
{: .block-warning }

### Possible Upgrades

Expand Down Expand Up @@ -333,7 +335,7 @@ Links are provided for reference only, you can find them on other websites.
> 2. The heat sink must be chosen according to the SSR / Triac. Here is a good video about the theory: [Calcul du dissipateur pour le triac d'un routeur](https://www.youtube.com/watch?v=_zAx1Q2IvJ8) (from Pierre)
>
> 3. Make sure to [improve the Robodyn wiring/soldering](https://sites.google.com/view/le-professolaire/routeur-professolaire)
> {: .block-important }
{: .block-important }

### Random and Zero-Cross SSR

Expand Down
13 changes: 9 additions & 4 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,18 @@ But this website will help you pick and build your router.
YaSolR is one of the **most optimized and powerful** Solar Router firmware available:

- **12-bits resolution** with linear interpolation for a precise TRIAC control
- **25 measurements / second** with a local JSY
- **20 measurements / second** with a remote JSY
- **Up to 25 measurements / second** with a local JSY
- **Up to 20 measurements / second** with a remote JSY
- **PID Controller** optimized and customizable
- **PID Tuning** web interface
- **RMT Peripheral** used for DS18 readings
- **Harmonics** can be lowered to comply with regulations thanks to several settings
- **Custom dimmer library** optimized for ESP32 (🚧)
- **MCPWM** (Motor Control Pulse Width Modulator) for phase control (🚧)
- **3-Phase** support
- **Precise Zero-Cross Detection with pulse analysis**
- **Dimmer range remapping** like Shelly Dimmers
- **Detailed Calibration**

This is a big **Open-Source** project following **best development practices**.
YaSolR is:
Expand Down Expand Up @@ -145,7 +148,10 @@ Each output supports an optional measurement device to measure the power routed
- `Dimmer Duty Limiter`: Set a limit to the dimmer power to avoid routing too much power
- `Dimmer Temperature Limiter`: Set a limit to the dimmer to stop it when a temperature is reached. This temperature can be different than the temperature used in auto bypass mode.
- `Statistics`: Harmonic information, power factor, energy, routed power, etc
- `Automatic Resistance Calibration` (🚧): if a JSY or PZEM is installed, automatically discover and save the resistance value of the connected load.
- `Automatic Resistance Detection`: if a JSY or PZEM is installed, automatically discover and save the resistance value of the connected load.
- `Dimmer Range Remapping`: Remap the dimmer duty to a different range (e.g. 10-80%).
Some dimmers (especially voltage regulator controlled through a PWM-analog conversion), are working between 1-8V so remapping the duty is necessary.
- `Zero-Cross Pulse Analysis` (🚧): YaSolR will try to get some pulse analysis from the Zero-Cross Detection

### Grid Power Measurement

Expand Down Expand Up @@ -209,7 +215,6 @@ The router can be completely controlled remotely through a Home Automation Syste
- `Access Point Mode`: router can **work in AP mode without WiFi and Internet**
- `Admin Password`: to protect the website, API and Access Point
- `Captive Portal` a captive portal is started first time to help you connect the router
- `DNS & mDNS`: Discover the device on the network through mDNS (Bonjour) or DNS
- `Ethernet & Wifi`: **ESP32 boards with Ethernet and WiFi are supported**
- `NTP` support to synchronize time and date with Internet. If not activated, it is still possible to manually sync with your browser.
- `Offline Mode`: **The router can work without WiFi, even teh features requiring time and date.**
Expand Down
Loading

0 comments on commit 6d352f5

Please sign in to comment.