I had no need for negative voltages, because of common mode limitations. I blow up one INA3221 board when I connect negative and positive voltages. I look forward for the changed lib Kind regards, Bill
On Monday, September 1, 2025 at 6:51:25 PM UTC+2 Rob CJ wrote: > Hi Bill, > > Ah, I forgot to take negative voltages (and currents) into account. In the > documentation - when the voltage is negative and the sign bit is set - yo > need to take the two's complement not only the sign. > > Will fix it both for sword/sdword and floats. > > BTW. You use word for the voltage in your sample program but if the > current becomes negative, the voltage should also be negative. So why not > use sword for the voltage too? > > Kind regards, > > Rob > > > > ------------------------------ > *Van:* [email protected] <[email protected]> namens Bill Beek > <[email protected]> > *Verzonden:* zondag 31 augustus 2025 20:25 > > *Aan:* jallib <[email protected]> > *Onderwerp:* Re: [jallib] INA3221 board > > Hi Rob, during testing I ran into a problem. > > If the current becomes negative, you lose the sign (bit 15). > > If bit 15 becomes high, the measured value increases by 32760, (the 3 > LSB's don't count). > > That was also the reason that I limited myself to using int "words" in the > library. > > I have Adapted the library and delete some floats to test the phenomenon. > > In the main program I use "swords". > > I send my versions for checking. > Kind regards, Bill. > > On Sunday, August 31, 2025 at 3:32:33 PM UTC+2 Bill Beek wrote: > > Hi Rob, > I have tried to test but nothing happens, no serial output too, I think my > 16F1825 is broken. > Now I will port it to another PIC and try out the lib. > I post my findings later. > > Kind regards, Bill. > > On Saturday, August 30, 2025 at 12:13:32 PM UTC+2 [email protected] > wrote: > > Hi Bill, > > I completed the library, tested all functions with a module I purchased. > It should be using floats and not using floats. > > Attached the library and a simple sample program. > > I will add it later to Jallib. > > If you find something strange or you are missing something, let me know. > > Kind regards, > > Rob > > > > Op donderdag 21 augustus 2025 om 21:25:54 UTC+2 schreef [email protected] > : > > Hi Bill, > > Yes, strange that I multiplied it twice. Good that you found it. > > I am still waiting for the module to arrive so that I can test all library > functions. > > I will let you know when I added the library and the sample to Jallib. It > will then be in the next bee-package. > > Kind regards, > > Rob > ------------------------------ > *Van:* [email protected] <[email protected]> namens Bill Beek > <[email protected]> > *Verzonden:* donderdag 21 augustus 2025 20:37 > > *Aan:* jallib <[email protected]> > *Onderwerp:* Re: [jallib] INA3221 board > Hi Rob, > I tested the combined lib, and i found 1 bug in the integer part. > In case of current > ~ 43 mA the value was not correct, I think overload > of the dword. > In the shunt voltage was 2 times multiplied by 1000 when I correct that > the measurements > are okay. > Kind regards, Bill. > > > On Wednesday, August 20, 2025 at 7:04:24 PM UTC+2 Rob CJ wrote: > > Hi Bill, > > That is good to hear and thanks for testing it. > > I combined it in one library and one sample program. Default is the use of > word/dword. If you want to use the float version then define the following > before including the library (also shown in the sample program): > -) INA3221_USE_FLOAT = TRUE > > Attached the update. > > Kind regards, > > Rob > > ------------------------------ > *Van:* [email protected] <[email protected]> namens Bill Beek > <[email protected]> > *Verzonden:* woensdag 20 augustus 2025 11:01 > > *Aan:* jallib <[email protected]> > *Onderwerp:* Re: [jallib] INA3221 board > Hi Rob, > Both versions working fine. > I will wait for the final version with float and integers and test again > > BTW when somebody needs higher resolution for voltage the ADS1115 board > offers > 4 channels 16 bits or 2 channels differential measurements maybe project > for the future. > > Thanks for the good work, Bill > > > On Tuesday, August 19, 2025 at 7:52:24 PM UTC+2 Rob CJ wrote: > > Hi David, > > Yes I can make one version and use a define "INA3221_USE_FLOAT". > > The default is then that it uses words and dwords. > > Thanks for the suggestion. > > Kind regards, > > Rob > > ------------------------------ > *Van:* [email protected] <[email protected]> namens > [email protected] <[email protected]> > *Verzonden:* dinsdag 19 augustus 2025 19:44 > > *Aan:* jallib <[email protected]> > *Onderwerp:* Re: [jallib] INA3221 board > Sorry to break in, i followed this subject from far away.... > > My opinion is that botj version should go to the lib. > > Maybe one file with "define" to choose between float or integer? > > Just my 2 cents.... > > Obtenir BlueMail pour mobile <https://bluemail.me/download/> > Le 19 août 2025, à 19:41, Rob CJ <[email protected]> a écrit: > > > Hi Bill, > > Ah, now I understand. What I do not understand is that this is also > incorrect in other - Arduino - Libraries. I applied your corrections. > Thanks for that. > > BTW. I did not yet address negative voltages, will do that when testing > the module to see if that works at all. > > I made a second version without floats. This means: > -) Shunt resistor must be in mOhm > -) Shunt voltage is in uV > -) Current is in uA > -) Bus voltage is in mV > > When compiling these are the differences. > > Version without floats: > Code area: 1485 of 8192 used (words) > Data area: 111 of 1024 used > Software stack available: 80 bytes > Hardware stack depth 4 of 16 > > Version with floats: > Code area: 2427 of 8192 used (words) > Data area: 139 of 1024 used > Software stack available: 80 bytes > Hardware stack depth 4 of 16 > > I attached both version and called the new one 'no_float'. So the question > is which one should be in Jallib? > > Kind regards, > > Rob > > > > ------------------------------ > *Van:* [email protected] <[email protected]> namens Bill Beek > <[email protected]> > *Verzonden:* dinsdag 19 augustus 2025 15:24 > *Aan:* jallib <[email protected]> > *Onderwerp:* Re: [jallib] INA3221 board > > > Hi Rob, > > I tested the bus voltage, shunt_voltage and current functions, > unfortunately it didn't work. > > So I looked at the lib and saw that the 3 lsb's shift were still present. > > The multiplication was also incorrect, the whole word value must be used. > > The 3 lsb's simply don't participate, so the multiply factor for the > bus_voltage is 1 mV and for the shunt_voltage 5 uV, however, the resolution > is then 8 mV and 40 uV respectively. > > Bits 15 to 3 contain the measured values. After the change, those > functions worked properly. > > Btw Vasile the common mode I chose an inverting opamp in case of negative > voltages and the ADC of the PIC. > > The current is measured by INA3221 on the common side. > > Kind regards, Bill. > > > On Tuesday, August 19, 2025 at 6:34:16 AM UTC+2 vsurducan wrote: > > Hi Rob, > Perhaps using float will limit de usability of the library in fast > processes or for small memory microcontroller size. > > Constant multiplication seems much faster assuring the precision you need. > It has the disadvantage of an external computation using cmul executable > and translation to jal code. ( btw, cmul.exe it should be included in the > jal package if it is not already). > > INA3221 seems to be very handy IC for energy measurement applications, > except perhaps the limited common mode voltage, this might be a valuable > library. > > best wishes, > Vasile > > > On Mon, Aug 18, 2025, 19:53 Rob CJ <[email protected]> wrote: > > Hi Bill, > > I was looking at changing all values from float to word and dword but > because of that you need to define the shunt restors in uOhm, the shunt > value in uV, the current in uA and the bus value in V. This makes it - I > think - less logical for the user. When using floats it is all logical > everything in Ohm, Amper and Volt. > > So for know I kept the floats. > > Attached the full library and a sample program. I did not change the > calulations you mentioned since I do not know what you changed. > > Can you give this version a try? > > Once I have the module I will test all functions and if OK add this > library and a sample program to Jallib. > > Thanks. > > Kind regards, > > Rob > > ------------------------------ > *Van:* [email protected] <[email protected]> namens Bill Beek > <[email protected]> > *Verzonden:* maandag 18 augustus 2025 15:42 > *Aan:* jallib <[email protected]> > *Onderwerp:* Re: [jallib] INA3221 board > > Hi Rob, > I look forward to the final version, thank you for your effort. > BTW the current function is not used, the calculation and calibrations > of the real resistance I do in the main program. > By max current and dividing by 0.1 you need a dword in the present > function. > I don't know how to handle the sign bit when there is negative current, I > dont > use it at the moment , others will do maybe. > > kind regards Bill. > > > On Monday, August 18, 2025 at 1:00:08 PM UTC+2 Rob CJ wrote: > > Hi Bill, > > I agree with you not to use floats and do the calculation in the main > program. Yesterday I completed the library with all functions. I will first > remove the floats and include your fix and will then send you the update. I > also ordered the module so I can test all functions. > > Met vriendelijke groet, > Rob Jansen > ------------------------------ > *From:* [email protected] <[email protected]> on behalf of > Bill Beek <[email protected]> > *Sent:* Sunday, August 17, 2025 8:32:44 PM > *To:* jallib <[email protected]> > *Subject:* Re: [jallib] INA3221 board > > > Hi Rob, I have the program working. > > When i looked at the registers it was very clear that I make some mistakes. > > I changed the last version of the lib again because the shifting of the 3 > lsb's turned out to be incorrect and the multiplication in the voltages was > also incorrect. > > The 3 LSBs do not participate, bit 4 is 8 mV, respectively 40 uV. > > So just read the registers in the main program. > > I no longer use a floating point for this, only word format. > > The calculations, and the display format are done in the main program. > > Finally, extending the lib would be nice, especially some configurations > of the functions. > > The time out function is very useful. > > I'll leave it up to you whether you go along with my solution, see the > changed library. > > kind regards, Bill. > > > On Saturday, August 16, 2025 at 1:05:52 PM UTC+2 Rob CJ wrote: > > Hi Bill, > > I made a small mistake in the default IIC address 🙁. I fixed that. > > Some other remarks. I saw in a video that the Arduino Library you > mentioned is not correct. I saw in your update that you corrected that. I > saw the same fix in an Arduino Library from Adafruit. I also saw you added > a function to read the register values which is handy. > > I added the changes to the attached library but I also added a timeout > function. When the IIC communication is not working this function will > return TRUE after you called it (after which it will be reset). I changed > the call to the IIC routines so that it keep track of any timeout. I > updated the samle program. > > Next to that I changed the array with shunt resistor values by floats and > set them by defaul to 0.1 Ohm which seems to be the commonly used value and > I saw that was also the case in your update. > > I think I will extend the library further and I am thinking of ordering a > module to test. The library needs functions to change for example the shunt > resistor value, etc. > > So see if you still get non-changing values and check the timeout and if > so, change the IIC address. > > Kind regards, > > Rob > > > > ------------------------------ > *Van:* [email protected] <[email protected]> namens Bill Beek > <[email protected]> > *Verzonden:* zaterdag 16 augustus 2025 12:18 > > *Aan:* jallib <[email protected]> > *Onderwerp:* Re: [jallib] INA3221 board > > Hello Rob, > > I tested the program, but unfortunately, I didn't get good results. > > The current shows 1.6447997E1 with and without current. > > The voltage shows 8.223999E0 with and without voltage. > > So, nothing changes. > > I looked at the datasheet and the library and made some adjustments, also > without success. > > I also tried reading the config, ID, and manufacturer registers, all of > which returned 4040h. > > But I’m not sure if I dit that right. > > Here is my version with a litle typo. > > > On Tuesday, August 12, 2025 at 8:33:39 PM UTC+2 Bill Beek wrote: > > Thank you Rob, > I will look at it later, this week is very hot in the shack in my attic. > > thanks again, > kind regards Bill. > > > On Tuesday, August 12, 2025 at 8:16:54 PM UTC+2 Rob CJ wrote: > > Hi Bill, > > Small - but important - fix of the library. > > Use this version. > > Thanks > > Kind regards, > > Rob > > ------------------------------ > *Van:* [email protected] <[email protected]> namens Rob CJ < > [email protected]> > *Verzonden:* dinsdag 12 augustus 2025 19:28 > > *Aan:* jallib <[email protected]> > *Onderwerp:* Re: [jallib] INA3221 board > Hi Bill, > > Attached my first attempt of the library for the INA3321. I only > implemented the functions you called. > > I might add more functions later. > > You find the libary and a sample program for a PIC16F1825 so you may need > to swich to a PIC that you normally use. I only compiled it since I could > not test it. > > Can you give it a try. > > Thanks. > > Kind regards, > > Rob > > > ------------------------------ > *Van:* [email protected] <[email protected]> namens Bill Beek > <[email protected]> > *Verzonden:* zondag 10 augustus 2025 12:08 > *Aan:* jallib <[email protected]> > *Onderwerp:* Re: [jallib] INA3221 board > > > Sorry Rob I can't get the text to be organized properly. > > I'll try again. > > Hi Rob, thank you for your quick response. > > Currently I have 1 INA3221 board left so I can still test. > > I now use the library of Rob Tillaart "INA3221_RT" > > #include "INA3221.h" > > INA3221 INA(0x40); > > And the commands for initialization and default setup. > > INA.begin(); > > ch = 0 to 2 > > U = INA.getBusVoltage(ch); > > I = INA.getCurrent_mA(ch); > > I hope this is enough info, > > Thank you very much for the effort. > > kind regards, Bill. > > > On Sunday, August 10, 2025 at 11:45:44 AM UTC+2 Bill Beek wrote: > > Hi Rob, thank you for your quick response. > Currently I have 1 INA3221 board left so I can still test. > I now use the library of Rob Tillaart "INA3221_RT" > #include "INA3221.h" INA3221 > INA(0x40); > And the commands for initialization and default setup. > INA.begin(); > ch = 0 to 2 > U = INA.getBusVoltage(ch); > I = INA.getCurrent_mA(ch); > I hope this is enough info, > Thank you very much for the effort. kind regards, Bill. > > > On Saturday, August 9, 2025 at 8:05:05 PM UTC+2 Rob CJ wrote: > > Hi Bill, > > What I could do is only implement the functions you are using instead of > porting all functions. That would save time. I do not have such a device > so I cannot test it so if I have something you become the tester 🙂. > > Can you tell me which Arduino functions you use from this library? > > Kind regards, > > Rob > > > > ------------------------------ > *Van:* [email protected] <[email protected]> namens Bill Beek > <[email protected]> > *Verzonden:* zaterdag 9 augustus 2025 19:49 > *Aan:* jallib <[email protected]> > *Onderwerp:* Re: [jallib] INA3221 board > > Hi Rob, > TNX for your replay, > I looked at it and found it too complicated to implement all the > functions. By the way, I only use the Volt and Amp functions. So far I use > an Arduino Nano and the INA3221 in a triple output power supply . But I > like JAL much more. > > On Saturday, August 9, 2025 at 7:01:01 PM UTC+2 Rob CJ wrote: > > Hi Bill, > > Let's hope that somebody created something for JAL that can be turned into > a JAL library. > > I had a quick look at the Arduino library and it seems to be a number of > small but readable functions and 'only' about 500 lines of source code so > it seems douable to make a JAL library out of it. How far did you get > porting it? > > Kind regards, > > Rob > > > > ------------------------------ > *Van:* [email protected] <[email protected]> namens Bill Beek > <[email protected]> > *Verzonden:* vrijdag 8 augustus 2025 20:21 > *Aan:* jallib <[email protected]> > *Onderwerp:* [jallib] INA3221 board > > Hi all, is there anyone who has made a library for the INA3221 > Three-Channel Shunt Current and Supply Voltage Monitor module (I2C)? I've > been looking at the arduino lib to convert it to a JAL lib, but it's a bit > too complicated for me. Greetings, Bill > > > > > -- > You received this message because you are subscribed to the Google Groups > "jallib" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/d/msgid/jallib/d1457069-00f6-4edf-9e52-2ca8078b25b5n%40googlegroups.com > > <https://groups.google.com/d/msgid/jallib/d1457069-00f6-4edf-9e52-2ca8078b25b5n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > -- > You received this message because you are subscribed to the Google Groups > "jallib" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/d/msgid/jallib/59fb5bce-a58a-4e0b-ae12-441bb1b3e0f7n%40googlegroups.com > > <https://groups.google.com/d/msgid/jallib/59fb5bce-a58a-4e0b-ae12-441bb1b3e0f7n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > -- > You received this message because you are subscribed to the Google Groups > "jallib" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/d/msgid/jallib/0b07cd1d-a2f2-43fb-9c05-370cdc0e13d2n%40googlegroups.com > > <https://groups.google.com/d/msgid/jallib/0b07cd1d-a2f2-43fb-9c05-370cdc0e13d2n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > -- > You received this message because you are subscribed to the Google Groups > "jallib" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/d/msgid/jallib/AM7PR02MB6098982290F3959C06D94D30E62BA%40AM7PR02MB6098.eurprd02.prod.outlook.com > > <https://groups.google.com/d/msgid/jallib/AM7PR02MB6098982290F3959C06D94D30E62BA%40AM7PR02MB6098.eurprd02.prod.outlook.com?utm_medium=email&utm_source=footer> > . > > -- > You received this message because you are subscribed to the Google Groups > "jallib" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/d/msgid/jallib/e13b96c7-e85f-45ed-846e-45c7d82b6030n%40googlegroups.com > > <https://groups.google.com/d/msgid/jallib/e13b96c7-e85f-45ed-846e-45c7d82b6030n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > -- > You received this message because you are subscribed to the Google Groups > "jallib" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/d/msgid/jallib/be855725-07ee-45da-811b-777c7344c08bn%40googlegroups.com > > <https://groups.google.com/d/msgid/jallib/be855725-07ee-45da-811b-777c7344c08bn%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > -- > You received this message because you are subscribed to the Google Groups > "jallib" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/d/msgid/jallib/9204233d-307a-4264-be61-6a16358ae795n%40googlegroups.com > > <https://groups.google.com/d/msgid/jallib/9204233d-307a-4264-be61-6a16358ae795n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > -- > You received this message because you are subscribed to the Google Groups > "jallib" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > > To view this discussion visit > https://groups.google.com/d/msgid/jallib/AM7PR02MB60987327EA36FE434A465EBBE631A%40AM7PR02MB6098.eurprd02.prod.outlook.com > > <https://groups.google.com/d/msgid/jallib/AM7PR02MB60987327EA36FE434A465EBBE631A%40AM7PR02MB6098.eurprd02.prod.outlook.com?utm_medium=email&utm_source=footer> > . > > -- > You received this message because you are subscribed to the Google Groups > "jallib" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/d/msgid/jallib/5956d1cb-4b06-4e3a-bc81-b09ba202f120n%40googlegroups.com > > <https://groups.google.com/d/msgid/jallib/5956d1cb-4b06-4e3a-bc81-b09ba202f120n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > -- > You received this message because you are subscribed to the Google Groups > "jallib" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/d/msgid/jallib/AM7PR02MB609893E89A3DF5C897E7B4A0E630A%40AM7PR02MB6098.eurprd02.prod.outlook.com > > <https://groups.google.com/d/msgid/jallib/AM7PR02MB609893E89A3DF5C897E7B4A0E630A%40AM7PR02MB6098.eurprd02.prod.outlook.com?utm_medium=email&utm_source=footer> > . > > -- > You received this message because you are subscribed to the Google Groups > "jallib" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/d/msgid/jallib/b0a12d9e4ca768.8ff4848df3be28%40gmail.com > > <https://groups.google.com/d/msgid/jallib/b0a12d9e4ca768.8ff4848df3be28%40gmail.com?utm_medium=email&utm_source=footer> > . > > -- > You received this message because you are subscribed to the Google Groups > "jallib" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/d/msgid/jallib/8fa6a310-c6d2-4a1b-8ef4-e8e20cf66c34n%40googlegroups.com > > <https://groups.google.com/d/msgid/jallib/8fa6a310-c6d2-4a1b-8ef4-e8e20cf66c34n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > -- > You received this message because you are subscribed to the Google Groups > "jallib" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/d/msgid/jallib/947d9f7a-9ed8-4752-a80e-22bb7678a764n%40googlegroups.com > > <https://groups.google.com/d/msgid/jallib/947d9f7a-9ed8-4752-a80e-22bb7678a764n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > -- > You received this message because you are subscribed to the Google Groups > "jallib" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/d/msgid/jallib/5d5a906f-8181-47c6-907e-4b9510daaa98n%40googlegroups.com > > <https://groups.google.com/d/msgid/jallib/5d5a906f-8181-47c6-907e-4b9510daaa98n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "jallib" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/jallib/e6ec6b79-39cc-4c5e-82e5-f60997fc07bfn%40googlegroups.com.
