Electronics. Code. A few open questions.

Things I'm
working out.*

I'm Sreekar. I like taking an idea far enough that it starts asking me questions back.

Notes on circuits, small experiments, and putting software together. What made sense, what didn't, and where I want to pick up next.

Open the notebook
The supplied breadboard prototype from the power-quality meter projectFROM THE WORKBENCH / 01
One question tends
to become several.
THE POWER METERStarting with one reading.
Different kinds of getting stuck

Four things I've been exploring.

A few pages from each.
The journal

Questions. Attempts.
Things to come back to.

Some notes are a few lines.
Others needed a little more room.

82 notes, four projects
NOTE
Power meter

Starting with one number

The first number has quite a journey behind it. In the meter, the voltage module and current clamp produce signals for an ADS1115, and the controller receives digital readings over I²C. I like following that route because it makes the project more interesting than a screen full of values. My re

·4 min read
NOTE
Power meter

Words I thought I understood

RMS, power factor and I²C are the unfamiliar terms named in my report. They no longer look like one enormous subject when I put them beside the actual programs. The scanner deals with communication. The raw sampler selects GAIN_ONE and converts counts using a stated scale of 0.125 millivolts pe

·3 min read
NOTE
Power meter

The explanation made sense. The board is taking longer.

GAIN_ONE is a small name with a large effect on the meaning of a reading. The saved raw sampler selects it and gives the scale as 0.125 millivolts per count. It then reads A0 and A1 separately and calls computeVolts for each. I can follow that much directly instead of leaving the ADC as a box l

·3 min read
NOTE
Power meter

Following the voltage reading

My meter's voltage path has several different kinds of information along it. The ZMPT101B module produces a signal for an external ADS1115, and the controller receives converted values over I²C. I find the drawing more useful when I follow that route instead of only recognising the boxes. The A

·4 min read
NOTE
Power meter

Can the controller find the ADC?

The scanner asks a wonderfully small question: does anything answer at this address? In the saved program, the loop tries addresses from 1 to 126, calls Wire.endTransmission and prints an address when the returned error is zero. It uses GPIO 8 for SDA, GPIO 9 for SCL and 115200 baud for the ser

·3 min read
NOTE
Power meter

0x48

Seeing 0x48 after a blank serial monitor felt much bigger than the address looked. The controller had asked a question and something on the board had answered. That excitement is part of the project account, and the later log gives the communication result a precise record: one device at 0x48 o

·4 min read
NOTE
Power meter

I have readings. What do they mean?

One preserved line gives me a count and its input-voltage equivalent: 13190 and 1648.75 millivolts. At the raw sampler's stated scale of 0.125 millivolts per count, the multiplication agrees exactly. The result is 1.64875 V, close to the intended midpoint. This is the kind of small calculation

·3 min read
NOTE
Power meter

Leaving a note I can actually use

The current-sensor log has a useful ending: In Progress. It does not pretend the next check already happened. Dated 29 June 2025, it names the Soldron 878D load, describes almost six bias-circuit variations and preserves example output near the midpoint instead of the expected waveform. I can r

·3 min read
NOTE
Power meter

The reading changed when I moved a wire

A reading changing after a wire moves is a very physical clue. The report describes desk bumps and wire touches followed by a frozen I²C bus, ADC-not-found messages or raw readings jumping. That gives me a path to follow before changing another formula. Information has already travelled through

·4 min read
NOTE
Power meter

I keep going back to the code

Code sits still while I read it. A loose contact does not. The report describes time spent looking for software bugs that were actually caused by physical connections, and the saved sketches help me see how easily the screen can hide that distinction. The raw sampler prints counts and input vol

·3 min read
NOTE
Power meter

What do I actually ask my mentor?

The current-sensor log gives me a specific question to work with: why does the reading stay near the midpoint when a changing signal is expected? The 12 July 2025 entry names a Soldron 878D load and almost six bias-circuit variations, with the investigation still In Progress. I can put that obs

·3 min read
NOTE
Power meter

Keeping the scanner handy

The saved scanner repeats its question every five seconds. It resets the responding-device count, tries the addresses, prints the result and waits before starting again. That’s a useful small program even beside a larger meter sketch. It leaves out sensor calibration and power calculations deli

·3 min read
NOTE
Power meter

Moving off the breadboard

The transfer to perfboard has a concrete physical record. The top view shows socket strips, resistors, a capacitor and wires. The underside shows soldered paths in place of the temporary contacts described in the breadboard account. I can see why the job was more than copying a list of componen

·3 min read
NOTE
Power meter

Can I take this part out later?

The socket strips are the detail I want to follow in the top-view photograph. They sit beside resistors, a capacitor and wires on the perforated board, with the soldered connections underneath. A socket joins a module to the assembly while leaving a different kind of access from soldering every

·4 min read
NOTE
Power meter

Checking the underside

The solder side changes what I have to look at. The photograph of the green perfboard shows paths joining positions underneath the sockets and components visible from above. Recognising a module is no longer enough; I have to think about the relationship between its connection points. Putting t

·4 min read
NOTE
Power meter

The connection is behaving better

A communication result and a measurement result can arrive at different stages. The report describes the move to soldered perfboard after connection trouble. The later log records a scanner PASS at 0x48 while its current-sensor investigation remains In Progress. That distinction helps me explai

·3 min read
NOTE
Power meter

Why am I subtracting 1.65?

There are two different midpoint methods in the saved code. The smaller RMS sketch subtracts 1.650 V from voltage and 1.651 V from current. The final sketch collects the raw readings first, calculates a separate mean for each channel, and subtracts that mean before converting the centred values

·4 min read
NOTE
Power meter

Why a normal average does not work

The saved RMS sketch makes the formula happen a little at a time. It starts a squared sum and count at zero, reads a channel, converts the count to input volts, removes its offset and adds the square. After the collection, it divides by that channel's count and takes the root. I like being able

·4 min read
NOTE
Power meter

Finding the formula in the code

SumSqV and countV give the RMS equation somewhere to live in the program. The smaller sketch resets them inside loop, adds one squared centred value at a time and divides by the number collected. Current has its own sum and count. The final file organises the same work differently, with stored

·4 min read
NOTE
Power meter

The current reading needs its own check

The current-channel log records a stubborn result: almost six bias-circuit variations, a Soldron 878D load and readings staying near the midpoint instead of the expected waveform. The entry is dated 12 August 2025 and marked In Progress. That gives the current path its own problem to understand

·3 min read
NOTE
Power meter

Does 400 samples really take 200 milliseconds?

The final loop collects 400 voltage readings and 400 current readings. TOTAL_SAMPLES is 40 times 10, and each entry requests A0 followed by A1. That settles what the count means in this file: 400 software pairs and 800 conversions, rather than 400 simultaneous observations. The comment still ca

·4 min read
NOTE
Power meter

Are the voltage and current readings taken together?

The two values share an array index, but they do not come from one simultaneous call. The final sketch reads A0 and then A1 for every entry. Later, their calibrated values are multiplied into sum_p. That’s the precise place where the relationship between voltage and current enters the result. I

·4 min read
NOTE
Power meter

Where did these calibration numbers come from?

The calibration guide gives a concrete adjustment rule: new factor equals old factor times the reference reading divided by the program reading. It gives separate voltage and current versions of that relationship. That’s much more useful to me than treating 769.0 and 0.85 as numbers that simply

·3 min read
NOTE
Power meter

Why the display stops below 0.05 A

The final gate changes more than the current display. When i_rms is strictly below 0.05 A, the code sets both current and active power to zero before calculating apparent power. That gives a displayed zero a specific software explanation. The smaller RMS version has another route: it gates curr

·3 min read
NOTE
Power meter

The same number, with two different units

The full program takes two different routes to a power value. For active power, it adds calibrated voltage-current products and averages them. For apparent power, it multiplies the separate RMS results. I can locate both operations in the code, which makes the W and VA labels much easier to exp

·3 min read
NOTE
Power meter

I almost called power factor efficiency

The ratio in the saved code is active power divided by apparent power. That gives me a particular way to examine the word efficiency in the plot in the report's power-factor title. Both inputs to the ratio come from electrical measurements; there is no useful-output measurement in that calculat

·3 min read
NOTE
Power meter

The square root is the easy part

The reactive-power expression sits behind a definite condition in the saved file. reactive_power begins at zero, and the program calculates the square root of S squared minus P squared only when apparent power is greater than active power. I can study that choice alongside the familiar power tr

·3 min read
NOTE
Power meter

How many crossings make one cycle?

The saved frequency rule counts one direction of crossing. A previous centred voltage sample must be below zero and the next at or above it. After the collection, the program uses the crossing count minus one divided by the duration of the whole acquisition. Those are definite choices I can fol

·3 min read
NOTE
Power meter

I recognise 1.41. Now I have to explain it.

The peak in the final sketch is the largest absolute calibrated voltage sample. fabs makes the convention explicit: both positive and negative excursions can supply the magnitude. The program divides that peak by RMS only when RMS voltage is above 10 V, otherwise returning zero. I can connect t

·3 min read
NOTE
Power meter

The display looks more confident than I feel

The display precision is chosen in Serial.printf. Voltage and power get two decimal places, current gets three, and power factor and crest factor get three. I find that a useful detail to remember while looking at the complete output: printed digits are a formatting choice, while their physical

·4 min read
NOTE
Power meter

Can I explain this part without the answer open?

The RMS loop gives me a particular explanation to try in my own words. A reading becomes input volts, the offset is removed, its square joins a running total, and that total is averaged and rooted. Then a calibration factor supplies the sensor scale. I can point to each operation in the saved p

·3 min read
NOTE
Power meter

Four months later, the questions have changed

The first build began in June 2025 and took about four months in my project notes. Looking back at the saved work, I can give that period a more particular shape: communication with the ADC, trouble with temporary connections, the move to perfboard and the mathematics that gives sampled values

·3 min read
NOTE
Power meter

Why I am opening the small sketches first

The four saved sketches give me four ways to look at the meter. The scanner searches for replies, the raw sampler prints counts and input volts, the RMS program works through separate collections, and the full meter combines stored readings into more quantities. I like the fact that their jobs

·3 min read
NOTE
Converters

Two converters that do the same job, until I look closer

I'm comparing two commercial buck converters, the XL4015 and the MP2307DN. Both lower a DC voltage, but they do it with different current paths and different nominal switching frequencies. The study gives me 180 kHz for the XL4015 and 340 kHz for the MP2307DN. Those numbers look easy to place i

·3 min read
NOTE
Power meter

Half a second is a long time for this waveform

Delay(500) looks quite ordinary at the end of the raw sampler. Against a 50 Hz waveform, it is a long wait: half a second contains 25 ideal cycles. Before that wait, the sketch reads A0 and A1, converts them with computeVolts and prints counts beside input volts. That makes its purpose clearer

·3 min read
NOTE
Converters

The switch is off. The current still needs somewhere to go.

The switch turning off is where I want to keep following the circuit. In the XL4015's non-synchronous arrangement, an external diode provides a path for the inductor current. In the MP2307DN's synchronous arrangement, a controlled low-side MOSFET takes that role. The current does not simply sto

·4 min read
NOTE
TinyML

Two short words, and everything the microphone hears around them

OFF, ON and noise are the three classes in the exported voice model. The application begins with a one-second audio window: 16,000 raw samples at 16 kHz. After feature processing, the model has a 650-value input and produces predictions for those three labels. That’s a much more interesting rou

·4 min read
NOTE
Converters

How five divided by twelve became a much bigger question

The calculation is 5 divided by 12, about 0.417. I’m using an ideal buck-converter example with 12 V at the input and 5 V at the output. The duty ratio is the fraction of a cycle for which the main switch is on. The division is easy; the reason the fraction belongs to the voltage is what I want

·3 min read
NOTE
Converters

The maths was fine. I was comparing different questions.

The heading says 12 V down to 5 V at a 3 A load. Then the MP2307 calculation uses 3.3 V, while the XL4015 calculation uses 5 V. The current-ripple allowances change too: 1.5 A in one example and 0.9 A in the other. Before I compare the final inductor values, I need to notice that the questions

·3 min read
NOTE
TinyML

Before I blame the model, what did the microphone send it?

The microphone test has a smaller job than the classifier. Its code sets 16 kHz, 32-bit left-channel I²S, with word select on GPIO 15, data on 16 and clock on 14. It reads blocks into an int32 buffer, then prints a value called SoundLevel. Before treating that number as evidence about a word, I

·3 min read
NOTE
Converters

Following the loss through the diode

The off-state path gives me a particular place to follow power loss. In the XL4015 example, current passes through the freewheeling diode. In the MP2307DN example, a controlled low-side MOSFET conducts. The useful comparison is between a forward-voltage-drop term and a resistance term, with the

·4 min read
NOTE
TinyML

A hundred recordings become one minute and forty seconds

The dataset view contains 100 one-second clips: one minute and forty seconds of sound. The split is 82 training examples and 18 test examples. That’s a concrete scale I can think about, rather than simply calling the dataset small or large. Each second is one of the examples behind the patterns

·4 min read
NOTE
Power meter

Three sets of calibration values, and no simple story yet

The calibration pairs are literal differences between saved versions. The report and smaller RMS sketch contain 769.0 and 0.85. The final-named file contains 766.0 and 0.85, while another copy contains 625.0 and 30.0. I can compare those actual values without assuming that three files represent

·3 min read
NOTE
Converters

The two words beside the efficiency figure

I compared the two converters on the bench and recorded peak efficiencies of 96% for the XL4015 and 95% for the MP2307DN. Keeping the input, output and load conditions beside each reading helped me understand why the percentages changed across the sweep.

·4 min read
NOTE
TinyML

Trying to understand the part between the sound and the model

The MFCC block has definite settings: 13 cepstral coefficients, 20 ms frames, a 20 ms stride, 32 filters and a 256-point FFT. Its output is a 650-value feature representation, while the audio window begins with 16,000 raw samples at 16 kHz. Those are different stages of the route from sound to

·4 min read
NOTE
Converters

One change I can actually follow: the switching frequency

I’m keeping the ideal question fixed so I can follow one change: switching frequency. The calculation is 12 V input, 5 V output and 0.9 A peak-to-peak inductor-current ripple. With those conditions held still, the duty ratio is 5/12, and the report's equation gives about 18.0 microhenries at 18

·3 min read
NOTE
TinyML

The big percentage was not the most interesting thing on the screen

The validation screen gives 88.2% accuracy and a loss of 0.28. The confusion matrix makes the result more particular: the OFF and ON rows are in their correct columns, while the noise row is split equally between ON and noise. That’s the part I want to understand before treating the overall per

·4 min read
NOTE
Converters

The note I want to find when I reopen this project

A value in microhenries is not a complete converter note. It needs the question that produced it. The report gives a useful example of why: the benchmark heading says 12 V down to 5 V at 3 A, but one calculation uses 3.3 V, and the ripple allowances are 1.5 A and 0.9 A. Keeping only the answers

·3 min read
NOTE
TinyML

Three milliseconds sounded great, until I read the target name

I timed the classifier on the ESP32-S3: 3 ms for INT8 and 35 ms for floating point. Three milliseconds felt quick, but the feature-processing stage still needed attention. I kept its timing separate from the classifier so I could see where the complete processing pass spent its time.

·4 min read
NOTE
Converters

A converter can work and still have a heat problem

The thermal question begins inside the power calculation. The converter study separates high-side conduction, the diode or low-side path, switching loss and inductor copper loss. Those give me particular places to look for power that does not reach the load. Heat is therefore part of understand

·4 min read
NOTE
TinyML

Why does the model look better on the screen than through the microphone?

The live microphone results were less encouraging than the validation screen. That made the route into the classifier more interesting to me. A model file does not receive the word ON as a meaning; it receives a representation of the captured sound. The laptop recordings and the INMP441 stream

·5 min read
NOTE
Kindred Hands

Who is going to upload the saree?

I offered to upload the products myself. That was a practical part of Kindred Hands, not just a feature on a website. In Pochampally, the first conversations did not turn into participation as quickly as I expected. After about a week, only one initial contact had sent photographs and descripti

·3 min read
NOTE
TinyML

The code has started drawing a current graph

The PPK2 views show two different electrical windows at a 3.3 V source setting. The wider view covers 10 seconds, with 50.13 mA average current, 87.10 mA maximum and 0.50 C of charge. The closer view covers 257.8 ms, with 54.44 mA average, 87.85 mA maximum and 14.04 mC. The time boundary is par

·4 min read
NOTE
Kindred Hands

One order is already asking a lot of questions

Kindred Hands was intended to help weavers sell more directly to customers without our taking commission. My technical responsibilities included the e-commerce and multi-vendor side of the initiative, with support. That made the route after a product page part of my responsibility too. A photog

·4 min read
NOTE
Power meter

A useful reference is still a different circuit

The reference drawing and the ADS1115 program follow different routes. The drawing names ESP-WROOM-32, takes the sensor signals into the controller's ADC inputs and shows I²C serving an LCD. The application reads an external ADS1115 over I²C instead. I find the comparison useful because the pur

·4 min read
NOTE
Kindred Hands

WordPress, Dokan, and the jobs behind the names

WordPress and Dokan were part of the initial route I looked at for the multi-vendor side of Kindred Hands. They gave me something concrete to investigate. Instead of imagining one website that somehow handled everything, I could begin asking which part managed content, which part handled vendor

·3 min read
NOTE
Converters

I can finally ask a better question than “which one is better?”

I can now give a more useful answer than one winning converter name. The XL4015 and MP2307DN are commercial chips with different off-state paths and nominal switching frequencies. The XL4015 example uses an external diode; the MP2307DN controls a low-side MOSFET. I can follow that difference th

·3 min read
NOTE
Kindred Hands

The first price is only the beginning

The continuing costs around the first route changed the direction of my Kindred Hands setup. I had looked at WordPress and Dokan, then explored open-source alternatives and linked the chosen pieces with support. The cost question did more than send me looking for a lower price. It changed what

·4 min read
NOTE
TinyML

I can calculate 46.3 millijoules. What did those millijoules do?

I recorded 14.04 mC at a 3.3 V supply over a 257.8 ms inference window. Multiplying the charge by the supply voltage gave 46.332 mJ, or about 46.3 mJ per inference. I checked the calculation against the average current and duration before writing the result down.

·4 min read
NOTE
Kindred Hands

The bill that comes back later

Running costs were one of the reasons I changed the first route considered for Kindred Hands. That made the question of what continues later much more practical. A service might be easy to choose at the beginning, while the reason for that choice becomes harder to explain once other work takes

·3 min read
NOTE
Kindred Hands

A feature list is very good at distracting me

My work on Kindred Hands included the e-commerce platform and multi-vendor functionality. The wider project also involved research and integration of virtual try-on. Those are different kinds of work, and I find them more useful to explain separately than to collect under the word advanced. Int

·3 min read
NOTE
TinyML

What the battery would have to power between predictions

The classifier is only one part of what a battery would power. The application collects a complete audio frame, processes it, prints timings and class probabilities, then waits for one second. The code's delay does not put the controller into a documented sleep mode, and the application does no

·4 min read
NOTE
Kindred Hands

Free to download, still my responsibility

The reason for comparing costs came from the purpose of Kindred Hands. I wanted a direct route to customers without our taking commission, and the initiative was intended as not-for-profit. Continuing costs around the first software route led me to explore alternatives. The purpose and the comm

·3 min read
NOTE
TinyML

A prediction is the end of the route, not the whole project

The voice project ends each processing pass with OFF, ON or noise, but the prediction is only the last visible part of the route. The export expects 16,000 raw samples at 16 kHz and uses a 650-value feature representation for three classes. The application has to supply that input before the mo

·4 min read
NOTE
Kindred Hands

The instructions are where the choice gets interesting

There were real choices in the Kindred Hands software journey. I looked at the initial WordPress and Dokan route, the continuing costs changed the direction, and I brought a couple of open-source alternatives together with guidance. The wider project also included research, evaluation and integ

·3 min read
NOTE
Kindred Hands

The smaller question is usually the better one

Research support was part of bringing the alternative setup together for Kindred Hands. I used that assistance alongside my mentor's support after the continuing costs changed the route. It gave me another way to approach unfamiliar software, but the explanations still had to connect to the ser

·3 min read
NOTE
Kindred Hands

The boxes are easy. The arrows are the problem.

The connections were part of my work in Kindred Hands. I was responsible for bringing a couple of open-source tools together with guidance after the first route raised continuing-cost concerns. The e-commerce and multi-vendor responsibilities gave those connections a purpose. Separate useful pi

·4 min read
NOTE
Kindred Hands

Agreement was not yet participation

I had written a pitch and made a website. When I first explained the Kindred Hands idea to people in the weaving community, the conversations sounded encouraging. They agreed readily, and I expected the next part to follow smoothly. I gave them my contact details and went home. Agreement in the

·3 min read
NOTE
Kindred Hands

What one sample product can tell me

My work on Kindred Hands included smoke and regression checks, recording defects and feeding checked results back into development. Checking belonged with the e-commerce and multi-vendor work, rather than beginning only when the home page looked finished. It asked a different question from whet

·4 min read
NOTE
Kindred Hands

One change, one question

Testing and defect reporting were part of my Kindred Hands work. That connects this method to something practical: a result needs to help the next development decision, rather than simply make the screen look more encouraging. My engineering approach includes checking ordinary operation, edge c

·3 min read
NOTE
Kindred Hands

The first attempt did not disappear when I changed direction

Changing the route was part of my work on Kindred Hands. I looked at WordPress and Dokan, continuing costs led me towards alternatives, and I brought open-source components together with guidance. The earlier investigation still mattered because the purpose of the initiative had not changed whe

·3 min read
NOTE
Kindred Hands

What I bring to a mentor discussion

I was responsible for the Kindred Hands software setup, and I had help from my mentor. I brought the alternative components together with guidance after the continuing costs changed the route. Taking responsibility did not mean doing every part without guidance. It meant keeping track of what I

·3 min read
NOTE
Kindred Hands

The work in between the tools

I was responsible for bringing the Kindred Hands software service together, with mentor support. After looking at WordPress and Dokan, the continuing costs led me towards a couple of open-source alternatives. I linked the components with guidance. I was building on existing software, rather tha

·4 min read
NOTE
Kindred Hands

When the cost question changed the route

The continuing costs changed the direction of my Kindred Hands setup. I had looked at WordPress and Dokan, and then began exploring open-source alternatives. The question was no longer only whether a tool could help me get started. It was what choosing that arrangement would mean for the initia

·3 min read
NOTE
Kindred Hands

What would convince me that the whole task works?

Bringing the components together gave Kindred Hands a working software setup. Testing also belonged with the work: smoke and regression checks, recording defects and feeding results back into development. Those responsibilities made it important to understand the question behind a result. A pag

·5 min read
NOTE
Kindred Hands

Putting the project down without losing the question

Kindred Hands sat alongside my studies and sport. Football and volleyball have been important parts of my life, and sport is one way I find balance with academic work. Technical projects also ask for a different kind of attention: a small-looking question can open into several things I need to

·3 min read
NOTE
Kindred Hands

Comparing the same job on both sides

The cost decision in Kindred Hands had a purpose behind it. I wanted to help weavers reach customers more directly without our taking commission, and the initiative was intended as not-for-profit. Continuing costs around the initial WordPress and Dokan route led me to alternatives, which I link

·4 min read
NOTE
Kindred Hands

Can someone use these instructions without me beside them?

Part of my Kindred Hands work involved recording defects and feeding checked results back into development. I also use Research support with documentation, while remaining responsible for the decisions and claims I make. Writing something down therefore has a practical purpose: the explanation

·4 min read
NOTE
Kindred Hands

The website is only part of the work

A daily earning of about Rs350, roughly three days to produce a saree and a selling price of Rs15,000–20,000 are different kinds of numbers. They were part of the concern I was trying to understand through Kindred Hands. Subtracting one from another would not explain the whole route: materials,

·3 min read
NOTE
Kindred Hands

What these three months have changed

The Kindred Hands software phase took about three months and was completed by February 2026. I had looked at WordPress and Dokan, continuing costs changed the direction, and I brought open-source alternatives together with guidance. Reaching a working setup gave that phase an ending, but it als

·3 min read
There's usually another question.
About the notebook

One question tends to become several.

I like circuits, small experiments and figuring out how software fits together. These are the questions and discoveries I want to keep track of.

About me ↗