Codewaves Digital Software and hardware projects.


JSON C++ library

I've created small C++ library for parsing and generating JSON object text. More information about JSON here. If you need JSON support in your project, feel free to try it.

You can find library source on github: cwjson


Solar energy system. Part 2

Step 2. System block diagram.

The block diagram of the system is shown below. DC-DC Converter is required to implement MPPT algorithm.

Solar system block diagram

  •  Solar panel - DIY 0.25m² solar panel built using 18 3"x6" solar cells. Output voltage - 9V, current - 3.5A (preliminary values, actual ratings will be available when I build the panel).
  • DC-DC converter - Buck-Boost or Boost converter. Because solar panel voltage is lower than battery voltage, simple boost converter will be sufficient. But I will not be able to connect bigger solar panel with output voltage of 12-20V.
  • Battery - 12V 10Ah SLA battery.
  • Voltage/Current sense circuit - Sense circuit measures panel and battery voltage and current. Accurate measurement is required for MPP tracking.
  • Load control and monitoring - Overload protection. It also disconnects the load if the battery is depleted.
  • System power supply - Regulated 3.3V power supply. Most of the system components are powered by 3.3V.
  • MCU - Microcontroller that implements MPPT algorithm, controls DC-DC converter MOSFET and diplays system information.
  • System information display - Shows current system state on the LCD display. Solar panel power, battery charge, load power and other information.
Filed under: Hardware, Solar 3 Comments

Solar energy system. Part 1

The idea is to create solar system that can charge all my mobile devices, includng phone, psp, iPod and notebook.

Step 1. Calculating power requirements.

  • Mobile phone - 3.7V 2000mAh - 7.4Wh
  • PSP - 3.6V 2000 mAh - 7.2Wh
  • iPod - 3.7V 1000 mAh - 3.7Wh
  • Notebook - 10.8V 4000mAh - 43.2 Wh

Total is 61.5Wh. Let assume that we need that much energy every day or two and our system efficiency is about 50%. This give us value of 120 Wh that we need to produce every day or two. 12V 10Ah battery will be enough to store required energy.

My city insolation level is quite low, annual average is only 100 Wm−2. This means, if I take 1m² solar panel that has peak power of 120W , it will be able to generate only 12W. It's exactly what I need for my system, assuming I'm getting energy 10 hours per day. But I'll starve energy at the winter, because December/January average is only 20Wm−2, and I'll need 5m² solar panel instead of 1m². I'll not use this system to charge my notebook when solar energy is low (mostly at the winter).

I've decided to use 0.25m² DIY solar panel as test panel and design system to support 1m² solar panel in the future.


Cortex M0/M3 disassembler.


mdisasm is basic disassembler for Cortex M0/M3 cores which can be found on STM32, LPC 1xxx and other microcontrollers. It can quickly disassemble binary file to a readable assembly listing. 

Download it here.

Filed under: Cortex, Software No Comments

Hello world!

I've decided to put all my hobby projects to the public. Mostly they will be related to electronics created at home, including software and hardware.

Filed under: General No Comments