# Sprint V - Venusaur
10/21/2024 - 11/3/2024
![[2024V Banner.png]]
[[Lab Update - 2024-10-20|Previous Lab Update]] | [[Lab Update - 2025-02-10|Next Lab Update]]
## Summary
[[#Pretty Pictures]]
### Rat Rig
I spent the last two weeks going absolutely ham crazy calibrating the Rat Rig. Those who know me know I've said this many times, but I basically broke new ceilings every day. Fine tuned resonances, learned some new slicer tricks, etc. I went through a full 1kg spool just doing test prints.
One thing I found was big printers can only do much with input shaper. I can get a pretty much perfect surface finish, great dimensional accuracy, and pretty good outer shell. The main thing my Bambu outperforms my Rat Rig at is definitely the outer shell/external perimeters.
Also the Rat Rig is just crazy super fast, especially for how high quality the prints are coming out. It's worth taking into consideration I'm printing about 4x faster and getting ~80% of the quality/consistency on a print bed 4x as large.
### Breadbox
Beyond the relentless onslaught of test prints piling up in the corner of my lab, I also broke in the new Breadbox by putting together a simple LM386 Audio Amplifier circuit. The platform feels good but I can already see some tweaks it needs to be more useful.
### Joule Thief
I've been doing research on some upcoming project ideas, but the main one I'm looking at right now is the Joule Thief BMS System.
The basic idea is that most non-rechargeable batteries actually still contain 40-60% of their total energy. There are circuits like the Joule Thief that can cleverly extract a decent amount of that energy. I'm looking into what it would take to drain a battery as completely as possible, and how to precisely measure and quantify the amount of energy extracted. I also want to learn how to handle rechargeable batteries, LiPo cells, and BMS circuits.
Putting it all together, I want to make a LiPo Energy Bank that I only charge using discarded non-rechargeable batteries. It's a fun precision instrumentation & power electronics project
## Contents
### Rat Rig - Thousand Calibrations
- [[#Flow (Re)Calibration]]
- [[#Stringing and Retraction Tests]]
- [[#Filament Optimization]]
- [[#Klipper Notifications]]
- [[#Preheat Macro]]
- [[#New RatOS and Beacon Calibration]]
- [[#No Z-Hop - Speed Boost]]
- [[#Flow Rate & Surface Finish Calibration]]
- [[#Bed Mesh & Beacon Calibrations]]
- [[#New Beacon Features Review]]
- [[#Air Quality]]
- [[#Hexagon Calibrations 2]]
- [[#Hexagon Calibration 3]]
- [[#Egg Man Slicer Videos]]
- [[#Hexagon Calibration 4]]
- [[#PA Reference]]
- [[#Shaper Calibration]]
- [[#Pressure Advance]]
- [[#Hexagon Calibrations 4: Outer Walls]]
- [[#Generating Resonance Graphs]]
- [[#Belt Tension Calibration]]
- [[#Accelerometer Issue]]
- [[#Input Shaper Tuning]]
- [[#Tuning Tower Resonance Tests]]
- [[#Abridged Resonance Notes (Getting Impatient)]]
- [[#Tightening Belts]]
- [[#New Resonances]]
- [[#Command Reference]]
- [[#Weighted Top Resonances]]
- [[#Calibration Battery 2]]
- [[#Damping Ratio]]
### Breadbox - LM386 Audio Amplifier Circuit
- [[#Speaker Impedance]]
- [[#Overview of the Op-Amps I have laying around]]
- [[#LM386 Audio Amplifier Build Notes]]
### Joule Thief
- [[#System Description]]
- [[#Shopping List]]
- [[#Research Questions]]
- [[#YouTube Research Notes]]
- [[#GPT Research Notes]]
---
## Project Logs
### Rat Rig - Thousand Calibrations
#### Flow (Re)Calibration
I did some invasive work over the weekend, so I need to recalibrate the flow rate. The motor cages I printed showed clear signs of overextrusion.
Did the 100/120 test and got a perfect 20, so that's fine.
Loading up EM Cube and running the first test at 1.000.
This time I'll optimize for tactile smoothness over visual surface finish.
##### Test 1 - 1.000
Slight ridges in the middle, lowering 0.5% to 0.995
##### Test 2 - 0.995
Another step in the right direction. Next is 0.990
##### Test 3 - 0.990
This one is the smoothest so far.
##### Test 4 - 0.985
This one got less smooth. I don't believe there are now gaps between the lines, so I'm not sure why. But I guess the golden number is somewhere between 985 and 990.
##### Test 5 - 0.9875
Undecided whether 3 or 5 is smoother. May try 0.9925. Angel said 3 is smoother, so 0.9925 it is.
##### Test 6 - 0.9925
Hmm, not quite
##### Test 7 - 0.991
Still not quite. Gonna call it at 0.989 and move on.
#### Stringing and Retraction Tests
I set up SuperSlicer since it has better tools for this and can automatically generate test prints. It's important to have an efficient workflow for calibrating these things.
##### Retraction Test 1
![[Pasted image 20241024141404.png]]
- The gist here is that it prints 5 different objects, one at a time, at different print temperatures, while incrementing the retraction distance every couple layers.
- 255 looks the best. The higher temperatures see much more stringing.
- I have Short Layer Slowdown disabled for this as well so it's more difficult test conditions
##### Retraction Test 2
Tried 255,250,245. 250C looks best. Going to try no Z hop this time.
Results are great. Lowering temps from 265 -> 250 and keeping Z-hop off. It makes me nervous because Z-hop is what stops it from clipping into big prints and destroying the hotend, but I'm hoping that I've done a good enough job addressing thermal warp that that won't happen anymore. I also have a backup hotend either way.
#### Filament Optimization
- I'm also going to start drying 1kg ASA spools so once everything else is dialed I can see if I can tell a difference with higher quality filament.
- I'm sure a new/clean PTFE tube will help as well.
- Considering cleaning out the Filament Sensor as well as the Extruder gears.
- 1kg Flashforge Black ASA in the hot box at 65C for 6 hours.
##### Interesting note from Standardprintco.com
`When compared with ABS, ASA experiences less shrinkage when cooling (0.7% versus 1.6% for ABS), but the problem is not entirely non-existent. For this reason, you'll want to ensure your printer is equipped with both to ensure your part stays warp-free and stuck to the bed.`
#### Klipper Notifications
- I can set up Pushbullet or Telegram integration to get Klipper to send me a notification.
- This might be worth setting up.
- I use Toolboard at 60C as the indicator that pre-print heat soaking is finished.
#### Preheat Macro
- In the filament preheat settings, you can define a bed temp, nozzle temp, and custom GCode.
- So for ASA I have it
- Set bed to 110C
- Home All Axes
- Move to (250,250,5)
Super easy, actually.
#### New RatOS and Beacon Calibration
[New Beacon Calibration Guidelines for RatOS](https://github.com/HelgeKeck/RatOS/blob/documentation_v2.1/site/docs/configuration/beacon_contact.md)
[Beacon Contact Docs](https://docs.beacon3d.com/contact/)
It's been a while since I did a system update. I've been putting it off because I saw there were some conflicts with RatOS and the Beacon Calibration configs recently, but it looks like they've resolved all that now.
Once I update there are some good new features for me to make use of. It looks like the Beacon sensor is getting more value add.
- RatOS Heat Soaking Time Variables/Macros
- Beacon Temperature Expansion Calibration
- Beacon Gantry Warp Compensation
All things I've been struggling with for the last few months. Hopefully a closer look at this stuff will solve some of my problems.
However, Beacon now provides Beacon Contact measurement, which is super scary, so I'll have to read all this stuff very carefully
#### No Z-Hop - Speed Boost
This thing is so much faster it's like Rock Lee dropping his training weights. Super impressive. It might be worse investing in better stepper cooling and tuning near-limit flow rates. No matter how fast I print ASA I definitely have sufficient cooling, since 40% on my 20W 4028 is already pretty overkill for ASA.
#### Flow Rate & Surface Finish Calibration
I printed some enamel pin things holder things for Angel and I'm starting to see what my next steps are.
![[Pasted image 20241026060551.png]]
When calibrating EM, I'm printing squares with 10-20 top layers and about 90x90 dimensions. There's definitely some smush/overextrusion ridges at the edges near the perimeters on those, but the center area of the square usually ends up coming out very smooth.
So now, on smaller prints like this enamel pin holder, that smooth and polished finish is nowhere to be found.
A couple things come to mind to try:
- Increasing top layers (to match test conditions)
- Decreasing Solid Infill Speed (which is far more uneven)
- Decreasing EM (since that's what I see here)
Additionally, this print seems like a good test in general for checking dimensional accuracy, sharp angles, surface finish, etc.
It's got most of the basic features a print might have, while avoiding most of the more complex ones.
##### Hexagon Test 1
- Test: Slower Solid Infill
- Solid Infill Speed: 350 -> 180 mm/s (test)
- Notes
- Just noticed SuperSlicer has a settings of `Maximum acceleration when Extruding` defaulting to 15k slowing me down.
- Wondering if I should be testing at 0.1mm or 0.2mm layer height. I guess I'll learn which parameters are effected and how eventually.
- Surface finish is definitely a bit smoother and better, but I'm not sure if it's worth the sacrifice in speed. I have a feeling there's something else I can change to get better results at speed
- Dimensional Accuracy
- ASA allegedly shrinks about 0.70%, and the hexagon sides should be 55m. It's a good example since they don't perfectly align on 90s or 45s. I can rotate them 5/10/15 degrees each test to see how variations manifest as well.
- Measures
- 54.71 -> -0.53%
- 54.93 -> -0.12%
- 54.76 -> -0.43%
- Average Shrink: 0.36%
##### Hexagon Test 2
- Test: Lower EM 2%
- Solid Infill Speed: 350 mm/s (revert)
- EM: 0.989 -> 0.970 (test)
- Max Accel while Extruding: 15k -> 20k
- Object Scale: 100.36%
- Notes
- Definitely got worse. I think it's more of a speed thing than an overextrusion thing, so I'm reverting the flow rate.
- I'm also seeing way more gaps in between perimeters now from increasing the acceleration.
- I noticed SuperSlicer didn't pick up my unique acceleration for external perimeters
- Thinking about switching the extrusion width back to 0.4mm basis from 0.6mm basis. I'm starting to get a hunch that's a factor too.
- Dimensional Accuracy
- 55.09 -> +0.16%
- 54.88 -> -0.22%
- 55.00 -> +0.00%
- Average Shrink: 0.02%
- 100.36 x 99.98% = 100.34%
##### Hexagon Test 3
- Test: Slower Moves
- General Accel: 10k
- External Perimeter Accel: 3k
- Top Solid Accel: 3k
- EM: 0.989 (revert)
- Notes
- Perimeter lines are MUCH cleaner.
- Top layer is generally smoother but still has that rough and choppy finish
- Forgot to to Object Scale
- Dimensional Accuracy (100.36%)
- 55.04
- 54.92
- 55.10
##### Hexagon Test 4
- Test: Thinner Lines
- Extrusion Widths: 0.6 -> 0.4 mm
- Object Scale: 100.33%
- Keep lower accel
- Notes
- Looks wayyy better. That was a great call.
- 0.6mm width extrusions will be useful for draft prints, fast and functional from here on, but they're not good for pretty prints.
- Dimensional Accuracy (100.33%)
- 55.06
- 54.99
- 54.89
##### Max Line Overlap
![[Pasted image 20241026132459.png]]
This Filament Setting seems relevant for ASA, since it's known to be more viscous. I might try setting it to 90%
There's also this one under Print Settings > Width & Flow
![[Pasted image 20241026132609.png]]
I'm going to change a lot of parameters at once for the next test to see if I come up with something substantially different. This may explain why my flow rate seems well tuned but I'm still having problems - the ASA is simply too viscous to seep into its own cracks, and so the lines should be spaced further apart.
These are new settings that I've never touched before so let's see what happens
##### Hexagon Test 5
- Test: Reduce Overlap
- Print Settings > Width & Flow > Overlaps
- Perimeter Overlap: 100% -> 90%
- External Perimeter Overlap: 100% -> 90%
- Gap Fill Overlap: 100% -> 90%
- Solid Fill Overlap: 100% -> 90%
- Infill/perimeters encroachment: 25% -> 15%
- Filament Settings > Filament Properties
- Shrinkage: 100% -> 99.7%
- Max Line Overlap: 100% -> 90%
- EM: 0.989 -> 0.990 (setting this as new default)
- Notes
- **This is probably the smoothest surface texture I've produced. I can't catch my nail on any ridges. It's very flat.**
- It looks even better and is much less rough to the touch. There are still some areas where it ends up feeling rough and jagged.
- Now that I'm thinking in terms of viscosity, flowing, and seeping into cracks in between lines, I'm rethinking the decision to use 250C nozzle temp.
- If it's hotter, then it should be less viscous (but off-gas more) and seep into the cracks better and end up smoother.
- I'm satisfied with how the perimeters and the infill encroachment looks at 15%. Maybe 5% is worth trying.
- So for the next tests I'm inclined to try one of the three:
- Hotter Nozzle - 260C
- Even Less Overlap - 80%
- Less Cooling/No Cooling
- Dimensional Accuracy
- This one is double-larger because I changed Shrinkage in slicer settings but didn't scale the print back to 100% in the Plater
##### Hexagon Test 6
- Test: Increase Temperature/Reduce Viscosity
- Nozzle Temp: 250C -> 260C (revert)
- Cooling Fan: 40% -> OFF
- Shrinkage: 99.7% (keep) & Scale: 100.00% (revert)
- Notes
- Looks way worse somehow. Dimples everywhere.
##### Hexagon Test 7
- Test: Reduce Temperature, Increase Cooling
- Nozzle Temp: 250C (revert)
- Cooling Fan: 100%
- Notes
- This is good, closer to 5, but 5 is still clearly the best so far.
- Revert Fan to 40%
##### Hexagon Test 8
- Test: Tweak Overlap
- Print Settings > Width & Flow > Overlaps
- Perimeter Overlap: 90% -> 80%
- External Perimeter Overlap: 90% -> 80%
- Gap Fill Overlap: 90% -> 80%
- Solid Fill Overlap: 90% -> 80%
- Infill/perimeters encroachment: 15% -> 10%
- Filament Settings > Filament Properties
- Shrinkage: 100% -> 99.7%
- Max Line Overlap: 100% -> 80%
- EM: 0.990 -> 0.989 (revert)
- Temp: 250C (revert)
- Cooling Fan: 40% (revert)
- Top Solid Infill Speed: 60 -> 120 mm/s
##### Hexagon Test 9
- Test: New Filament
- Switching to my FlashForge 1kg ASA filament that I dried earlier
- It is still in the dryer and the dryer is active while it is printing
- Otherwise, the same print
##### Hexagon Test 10
- Test: Same print, at 50%
- Speed Factor: 100% -> 50% (in RatOS)
- Notes
- Absolutely the best by far
##### Hexagon Test 11
- Test: Same print, at 75%
- Speed Factor: 50% -> 75% (in RatOS)
- Notes
- As good as #10, but surface texture is less consistent.
##### Hexagon Test 12
- Test: Back to full speed, single perimeter
- Accel: 10k -> 20k
- Top Solid Infill: 120mm/s (keep)
- Top Solid Infill Accel: 3k (keep)
- Solid Infill: 350 -> 500 -> 350
- External Perimeters: 2 -> 1
- Notes
- Cancelled because the infill was going too fast. Something was off.
- Repeating
- Adding a notch to the design so I can tell where north is.
#### Bed Mesh & Beacon Calibrations
The excellent bed mesh I spent so much time producing back in August has been decaying and is now gone. Where I consistently got <0.400 range on my bed mesh and the occasional <0.3 or even <0.2, I'm now getting >0.500 and my cold mesh is currently 0.986.
Terms
- Cold Mesh = Bed Unheated
- Warm Mesh = Bed at Temperature, no Heat Soak time
- Hot Mesh = Bed at Temperature, Printer Heat Soaked
Currently I'm getting
- Cold Mesh: 0.986mm
- Warm Mesh: 0.928mm
- Hot Mesh
- Toolboard @ 57C, 50 minutes: 0.498mm
![[Pasted image 20241026061554.png]]
There are some new beacon features I can set up to work on this issue, but it'll take some time to read through all these docs.
#### New Beacon Features Review
[Beacon Contact Docs](https://docs.beacon3d.com/contact/)
*If your chamber regularly hits 65C+ during operation or probing, it is recommended to calibrate your Beacon hot. Get it up to temperature by soaking it at the homing distance with your bed hot and run through `BEACON_CALIBRATE` after it has stabilized. The temperature compensation is applied relative to the model temperature, so this will reduce the applied compensation and minimize residual thermal errors.*
##### Beacon Models
- **I need to calibrate beacon after heat soaking.**
- When running `BEACON_CALIBRATE` it saves the calibration model to `default` by default. I can run `BEACON_MODEL_LIST` to see the list of models it has stored.
- `BEACON_MODEL_SELECT NAME=modelname` to change models
- `BEACON_MODEL_SAVE NAME=modelname` to save models. This requires a Save Config as well.
- `BEACON_MODEL_REMOVE NAME=modelname` to delete
- Each Beacon Model has its own Z-Offset
- Calibrate Beacon
- Then Tune First Layer/Z-Offset
- Apply this tuned value to the beacon model using `Z_OFFSET_APPLY_PROBE`
- Run a Save Config to save the model
- Now your beacon model will remember the Z-Offset
Generally, you do not need to create a different profile unless your bed conditions are very different.
If you switch bed plates for a specific material, that warrants a new beacon model.
If you are switching from enclosed to unenclosed or do not need a hot chamber, that *may* require a new beacon model.
##### Beacon Accelerometer
- To use the accelerometer on the Beacon, you need to point the `[resonance_tester]` to the beacon in the config file:
```
[resonance_tester]
accel_chip: beacon
probe_points: 90, 90, 20
```
- Basic Commands
- `ACCELEROMETER_QUERY`
- `MEASURE_AXES_NOISE`
- `TEST_RESONANCES AXIS=X`
- You can switch between chips on the command line like this:
```
ACCELEROMETER_QUERY CHIP=beacon
MEASURE_AXES_NOISE CHIP=beacon
TEST_RESONANCES AXIS=X CHIP=beacon
TEST_RESONANCES AXIS=X CHIP=adxl345
```
- You can adjust the sensitivity of the accelerometer in the config as well
```
#accel_scale: 16g
# Adjust the sensitivity of the accelerometer during shaper measurement,
# valid settings on RevH are 16g, 8g, 4g and 2g.
```
##### Beacon Contact
- Basic Premise
- Beacon Contact involves the z-axis motion being interrupted by high resolution inductive measurements.
- The nozzle physically rams into the bed on purpose, and beacon's inductive sensor will notice, and then stop it from pushing further.
- The benefit of doing this is that Z-Offset can be calibrated perfectly and automatically
- This perfect Z-Offset is called TrueZero
- Restrictions & Cautions
- This performance is limited to hard, robust surfaces: raw steel, powder coated PEI, or thin glass over aluminum
- Additional mitigations may be required to keep the nozzle clean during contact probing
- The contact force is low, but some thin PEI laminate sheets may melt when contacted by a print-temp nozzle. Reduced temp probing is recommended
- If you work with less robust bed plates or often print filaments known to ooze significantly, you would be better served by probing at reduced nozzle temperatures.
- Probing at reduced nozzle temps require additional positive offsets to account for the remaining thermal expansion that occurs when climbing to actual print temps.
- Basic Requirements
- Beacon must be approaching a metallic target when nozzle makes contact
- Beacon must be rigidly couples to the hotend, such that its motion is interrupted by nozzle contact
- Who Uses Contact?
- For someone who doesn't swap build plates and doesn't swap nozzles very often, inductive sensing alone is generally sufficient.
- Someone who swaps build plates and nozzles often is better served by a contact-oriented workflow that calibrates itself on every print.
- Contact can be used to generate a new beacon model & z-offset calibration every print (never storing/using a "default" beacon model):
```
[beacon]
home_method: contact
home_method_when_homed: proximity
home_autocalibrate: unhomed
```
- Beacon Auto-Calibration
- `BEACON_AUTO_CALIBRATE` enhances the traditional beacon workflow with the new Contact system.
- Recall that `BEACON_CALIBRATE` involves a manual process of tuning Z-Offset, usually with the paper-friction test.
- `BEACON_AUTO_CALIBRATE` allows a beacon model to be calibrated at any X/Y position, *requiring the toolhead to be manually positioned at the desired location before beginning*
- The traditional beacon operating mode was to use a pre-configured beacon model and induction proximity in order to function as a Z-Endstop
- The G28 homing command can be reconfigured in the config and can be adjusted on the fly with command line parameters
- For example, `G28 Z METHOD=CONTACT CALIBRATE=1` will do the equivalent of `BEACON_AUTO_CALIBRATE`, but additionally move the toolhead to the homing position first.
```
[beacon]
home_method: proximity
home_method_when_homed: proximity
home_autocalibrate: never
```
- Safe Z Home Configuration
- The beacon section of the config can be set up to use Contact-based homing to auto-calibrate the beacon model when performing the first Home after printer startup, and then switch to using Proximity-based homing thereafter.
- These are the recommended defaults for a full contact workflow:
```
[beacon]
contact_max_hotend_temperature: 180 # increase to probe at print temps
home_xy_position: 117.5, 117.5 # update with your safe position
home_z_hop: 5
home_z_hop_speed: 30
home_xy_move_speed: 300
home_method: contact # use proximity for induction homing
home_method_when_homed: proximity # after initial calibration use induction
home_autocalibrate: unhomed # contact will calibrate beacon on first hom
```
- With these settings, the first home at power on will use contact to calibrate beacon for scan mode. Subsequent homes will use the newly generated calibration model.
Lots of other stuff for refining the poke/contact sequence, but it seems like this already isn't very relevant for me. I don't switch print beds situationally like that.
##### RatOS Updates and Guidelines
[New Beacon Calibration Guidelines for RatOS](https://github.com/HelgeKeck/RatOS/blob/documentation_v2.1/site/docs/configuration/beacon_contact.md)
- Says to read the Beacon Contact Docs first, which I now have.
- RatOS now comes with a fully automated beacon calibration sequence that has Beacon Contact enabled by default.
- By default the beacon contact feature is enabled. If you want to disable it, set `variable_beacon_contact_start_print_true_zero` to False.
- Initial Calibration
- Run `BEACON_INITIAL_CALIBRATION`
- Then `SAVE_CONFIG`
- Beacon Latency Check
- Run `BEACON_POKE_TEST`
- It will home and then poke the bed
- You'll receive the Latency Score
- Temperature Expansion Calibration
- Unload filament from nozzle
- Let machine cool back down to ambient
- Run `BEACON_CALIBRATE_NOZZLE_TEMP_OFFSET` - this auto sequence take a while
- Final Calibration
- Run `BEACON_FINAL_CALIBRATION BED_TEMP=85 CHAMBER TEMP=45` or whatever you want.
- Optional but recommended
- Run `SAVE_CONFIG`
- Beacon Scan Compensation (BETA)
- Can automatically compensate for gantry twist
- But Gantry Twist isn't really my problem.
##### Conclusion
After reviewing all this new doc stuff, I've determined Beacon Contact and the new gantry twist compensation stuff doesn't really apply to my current use case. I'll still have to heat soak my printer. If I don't heat soak for an hour my gantry is going to expand and warp dynamically throughout the print either way, and I don't think any calibration will change that. I'm probably better off adding a space heater system or something to the printer to keep the air in there around 60C. But I'm also pretty sure that a space heater on top of my 1300W bedplate will be too much and trip a breaker or something.
#### Air Quality
Finally picked up an air quality sensor.
Two measurements:
1. On top of the enclosure, 30 minutes into printing
2. After 5 seconds inside the enclosure, immediately after print completion
![[Pasted image 20241027113856.png]]
#### Hexagon Calibrations 2
Having weird issues with infill patterns. I guess I thought it would throttle but it isn't, and the quality looks terrible before it hits the 24mm3/s throttle point.
Probably because I lowered it to 0.10mm layers and 0.40mm extrusions.
I wonder if increasing the temperature again would fix that.
I'll try printing the next one at 265 and see if anything looks better.
If that doesn't work, I'll just slow it down.
I'm realizing I can iterate a little faster now.
##### Hexagon Test 2-1
- Test: Fix infill quality with higher temperatures
- Nozzle Temp: 250C -> 265C
- Notes
- That worked a bit, but it seems pretty clear I should just slow it down.
##### Hexagon Test 2-2
- Test: Slow down infill speed
- Nozzle Temp: 265C -> 250C (revert)
- Infill Speed & Sparse Speed: 350 -> 200 mm/s
- Notes
- Looks better, much fewer breaks in the grid. I can tell that this is probably an issue specific to 0.1mm layers, every layer infilled. The nozzle is scuffing by on all these super shallow lines
- Calibrating all this to 0.1mm is showing the speed limits of my extruder, but I'm not hitting flow rate. I'll have to see if I need to reduce flow rate when I switch back to orbs at 0.6mm width and 0.3mm layer heights, etc.
##### Hexagon Test 2-3
- Test: Every other infill, very slow top layer
- Infill Every Other Layer
- Top Solid Infill Speed: 120 -> 60 mm/s
- Top Solid Infill Accel: 3k -> 1k
- Notes
- Best one yet! Beats 1-10. It's just a bit smoother to the touch.
- Now for more speed
- Then fix pressure advance
##### Hexagon Test 2-4
- Test: Maxing out Speed
- Infill Speed: 200 -> 400mm/s
- External Perimeters: 180 -> 250mm/s
- General Accel: 10k -> 20k
- Notes
- The texture of the subsurface infill is too inconsistent, and it makes the top layer look bad.
- External perimeters weren't too affected, but do look slightly worse.
##### Hexagon Test 2-5
- Test
- Infill Speed: 400 -> 200 mm/s
- External Perimeters: 250 -> 120 mm/s
- Notes
- External perimeters are only slightly worse at 250, so I'm increasing it to 200 moving forward - at least at this quality bracket.
- I'm hitting some diminishing returns and am having trouble getting consistently perfect results on the top layer. Little dimples and stuff. I think I need to remove the nozzle and actually clean the hotend, replace the PTFE, etc.
- Replace PTFE
- Remove Nozzle, Clean out Hotend
- Test Square Corner Velocity
- Tune Pressure Advance
- Optimize Travel moves
##### Hexagon Test 2-6
- Test
- External Perimeter Speed: 120 -> 60 mm/s
- External Perimeter Accel: 3k -> 1k
- Pressure Advance:
- PA: 0.01 -> 0.05
- Smooth Time: 0.04 -> 0.10
- Notes
- PA and ST didn't have a significant effect
- External Perimeters are not substantially better
- Stop Surface still has weird dimples. 2-3 was best still
##### Hexagon Test 2-7
- Test
- Revert PA and ST - 0.01 and 0.04
- External Perimeter Speed/Accel: 200/5k
- Top Surface Infill Speed/Accel: 200/5k
- External Perimeter First: OFF -> ON
- Avoid Crossing Perimeters: OFF -> ON, 200mm
##### Hexagon Test 2-8
- Test
- Revert Settings back to Test 2-3
- Keep Avoid Perimeter Crossing
- Top Infill Width: 0.4 -> 0.35
- Notes
- Looks good. Next is to text if cleaning, oil, extruder tension, belt tension, etc. have an impact
- I've also seen online that ABS may benefit from as low as 35% line overlap.
- It might be worth printing several objects in one run, with increments in line overlap
##### Hexagon Test 2-9
- Test
- Oiled Rails
- Cycled Cleaning Filament
- +1 Turn on Extruder Tension
- Same GCode as 2-8
- Notes
- Looks great. Printed it three times total now and they look very consistent.
- Those minor maintenance changes did help
#### Hexagon Calibration 3
Now that I have some reliable, speedy, and quality settings, I can batch test prints more intelligently. Having to annotate the previous test and come up with new tweaks every 20 minutes is actually super exhausting.
##### Hexagon Test 3-1
- Test
- 5 prints, 20% intervals of overlaps:
- Solid Infill Overlap
- Ext. Perimeter Overlap
- Gap Fill Overlap
- Perimeter Overlap
- Filament Overlap Limit: 100%
- Notes
- This one threw me for a loop. The one at 100% looks and feels the best
- The earlier ones I printed alone at 80% look closer to 20/40/60%
- So I guess I'll print another one at 100% and verify that it looks good. Not sure why or how that happened. Maybe it just came out better because it was in a different part of the bed, or because I heat soaked more fully.
- Next major calibration is outer shell quality for sure. I'm seeing bad claw marks stretching through it. Maybe some external perimeter first kind of stuff.
#### Egg Man Slicer Videos
[# Best Possible Settings for a Clean & Fast Print](https://youtu.be/dWL2swAqcyY)
- Start by analyzing the print for solid infill and sparse infill where it's not needed. Usually in small perimeter areas
- Make sure the infill pattern makes sense for the print. Linear patterns don't look right on circular objects, etc.
- Take a moment to visualize travel moves and see if they'll create marks/stringing issues
- Start the analysis by reducing the print to the bare minimum:
- 2 Perimeters (1 internal, 1 external)
- 1 Top layer
- 1 Bottom Layer
- 0% Infill
- You may see unnecessary infill near perimeters - related to "Ensure Wall Thickness"
- The "Avoid crossing walls" is useful for optimizing travel moves as well
- Take a moment to visualize print speed. If the outer shell's print speed is variable, this will greatly affect surface gloss, especially with matte filaments
- "Slow down for overhangs" is a big factor
- Slowing down print speeds for short layer times is also a major contributor here
- First Layer Reliability > Everything Else
- Don't be afraid to smush the z-offset using custom gcode for the print
- If your z-offset is too low, it'll pillow out and will have a sharp edge on the first layer - this is fixed by increasing "Elephant Foot Compensation".
- Increasing by 0.10mm is usually enough
- Analyze the pathing of the printhead for the first layer and make sure it isn't stupid.
- If you're using concentric fill, try and get it to fill outside-in, instead of inside-out, etc.
- Modifiers are scary but they are your friend
- e.g. You can use modifiers to only generate infill within the domain of a cylinder (and leave other inner print space empty)
- You can also use modifiers to change the number of top/bottom layers for a particular region of the print.
- Modifiers also have priorities, which you have to be pay attention to
- Infill patterns can add material where it's not needed. Pay close attention
- Top Surface Optimization
- Recommend slightly reducing the width of all top layer lines to get cleaner top surfaces
- Outer Wall: 0.42 -> 0.4
- Inner Wall: 0.45 -> 0.4
- Top Surface: 0.42 -> 0.35
- Avoid single dot extrusions
- Adjust top surface line width (above) until tiny dots are replaced with closed shapes.
- 0.32mm is how low he goes in the video. Not sure how low is too low
- Recall you can adjust these parameters only within the scope of a modifier
- You can adjust where the seam is by rotating the geometry slightly
- You can make prints faster, more reliable, and use less material by taking the time to make things perfect.
[# 5 Tricks For Incredibly Clean Prints!](https://youtu.be/CxbidoZCw1A)
- Line width should be within 50% to 150% of the nozzle diameter
- Avoid crossing walls is very important, again
- Enabling "Outer Perimeter First" has some tradeoffs
- Since the outer wall is usually where overhangs occur, and there won't be any prior lines for it to attach to, overhangs tend to be worse
- BUT dimensional accuracy tends to be a bit better, since the outer wall is placed and cooled first and then the inner wall has to ooze around it instead of vice versa
- Again, be mindful of keeping print speed consistent for outer shells
- Disable Slow down for overhangs
- Disable Slow down for short layer times
- These can cause cooling issues
- OrcaSlicer can keep perimeters at speed, and then slow down infill to get the best of both worlds
- Infill Pattern
- Monotonic and Concentric infill usually look the best, but don't sleep on the beautiful patterns that can happen sometimes.
- Keep prints close to minimize travel moves/times OR print by object
- Other factors
- Temp Tuning
- Flowrate
- Pressure Advance
- Dry Filament
- Retraction Settings
- Belt Tension
#### Hexagon Calibration 4
The prints are looking great.
Next Tuning Targets
- Pressure Advance
- Input Shaper
- Section on measuring the ringing frequency
- Outer Shell Quality
I noticed the lower belt seizes near the very back end of the printhead's range.
The motors are obviously strong enough to manipulate it anyway, but when they're off it doesn't move evenly.
I'm not sure when or where that happened.
Things that affect Pressure Advance:
- Different filaments and brands
- Nozzle Sizes
- Large Hotend Temp Changes
- Enabling/Disabling Input Shaper
- Changing hotend, extruder, tubing length
#### PA Reference
![[PA-Squares.jpg]]
#### Shaper Calibration
[Klipper: Measuring Resonances](https://www.klipper3d.org/Measuring_Resonances.html#measuring-the-resonances)
[Klipper: Resonance Compensation](https://www.klipper3d.org/Resonance_Compensation.html)
Printer starts rattling around 70-75 Hz
When you run `SHAPER_CALIBRATE`, it provides recommended accel for each type of input shaper AND a recommend input shaper.
You should still review the chart and decide, since the script can make suboptimal choices.
##### Ringing Tower Test Setup
- Ringing Tower STL Slicing
- Layer Height: 0.2mm
- Infill: 0%
- Top Layers: 0
- Perimeters: 2
- External Perimeter Speed: set at intention
- Minimum Layer Time: OFF
- Dynamic Acceleration Control: OFF
- Do not rotate the model.
- Pre-Print RatOS Config
- `square_corner_velocity` set to default fo 5.0
- `SET_VELOCITY_LIMIT MINIMUM_CRUISE_RATIO=0`
- `SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0`
- `TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5`
- Adjust to desired test conditions
##### Ringing Tower 1 - (1k + 5x1k)
- Notes
- Looks surprisingly terrible. I think it might be a cooling issue, so I'm running the same test again but with the fan at max this time.
##### Ringing Tower 1 - (1k + 5x1k)
- Notes
- 100% Fan caused it to come loose and fail about halfway through.
- Getting the impression I should just print my external perimeters at 1k accel
Decided to make a post on the Rat Rig Discord to try and get some guidance
#### Pressure Advance
I wanted to try it tilted at a 45 and at 0 to see if I get different numbers
##### PA 1-1
- 45 degrees
- 0.0 to 0.05 in 0.0025 increments
- 0.0400 seems to be the sharpest corner
##### PA 1-2
- no rotation
- 0.0 to 0.05 in 0.0025 increments
- 0.0350 seems to be the sharpest
##### Conclusion
- Splitting the difference and setting PA to 0.0375.
##### Smooth Time Test 1
- 0.0 to 0.05 in 0.0025 increments
- Best one is 0.05, so the optimal is probably further forward
##### Smooth Time Test 2
- 0.04 to 0.10 in 0.0025 increments
- Best one is 0.06
##### Conclusion
Pressure Advance: 0.0375
Smooth Time: 0.0600
#### Hexagon Calibrations 4: Outer Walls
I'm pretty sure I just need to print the perimeters dramatically slower.
In this case I can print the external perimeters first, so lets see what I can come up with.
Setting overlap to 100% moving forward.
##### Hexagon Test 4-1
- Test (5)
- External Perimeters First: ON
- External Perimeter Acceleration: 1k
- New Pressure Advance and Smooth Time
- New Shaper Calibration (still auto)
- External Perimeter Speeds:
- 40, 60, 80, 100, 120
- Notes
- Top surface stays perfect, but the shell still sucks across the board.
- But I am noticing that they're all about equally bad, which means it's probably acceleration more than speed.
- Going even slower
##### Hexagon Test 4-2
- Test (2)
- External Perimeters First: OFF
- External Perimeter: 60mm/s @ 1k
- Internal Perimeters: same speed
- Second Print Rotated 30 degrees (flush on X)
- Notes
- Now top surface and outer shell are all 60mm/s
- Doubles the print time to about 43 minutes... About 25 minutes overall spend slowly drawing out perimeters
- I'll need to start printing these in pairs with 15/30 degree offset so I can get all sides of the kinematics
- That Calilamp thing might be useful after all
#### Generating Resonance Graphs
I was SSH'd into the pi digging around looking for the scripts to manually generate the graphs using the python script and csv exports from shaper calibrate
I forgot there was just a button to run the macro on the homepage that I didn't have visible lol.
#### Belt Tension Calibration
From 10/21:
![[belt-tension-resonances-2024-10-21-200753.png]]
From 10/30:
X-Axis:
![[Pasted image 20241030225718.png]]
```
Fitted shaper 'zv' frequency = 56.8 Hz (vibrations = 2.7%, smoothing ~= 0.054) To avoid too much smoothing with 'zv', suggested max_accel <= 12600 mm/sec^2 Fitted shaper 'mzv' frequency = 55.8 Hz (vibrations = 0.0%, smoothing ~= 0.065) To avoid too much smoothing with 'mzv', suggested max_accel <= 9200 mm/sec^2 Fitted shaper 'ei' frequency = 66.8 Hz (vibrations = 0.0%, smoothing ~= 0.072) To avoid too much smoothing with 'ei', suggested max_accel <= 8300 mm/sec^2 Fitted shaper '2hump_ei' frequency = 83.2 Hz (vibrations = 0.0%, smoothing ~= 0.078) To avoid too much smoothing with '2hump_ei', suggested max_accel <= 7700 mm/sec^2 Fitted shaper '3hump_ei' frequency = 99.6 Hz (vibrations = 0.0%, smoothing ~= 0.083) To avoid too much smoothing with '3hump_ei', suggested max_accel <= 7300 mm/sec^2 Recommended shaper is mzv @ 55.8 Hz
shaper_type_x:mzv shaper_freq_x:56.200 damping_ratio_x:0.100000
```
Y-Axis:
![[Pasted image 20241030225729.png]]
```
Fitted shaper 'zv' frequency = 41.4 Hz (vibrations = 28.0%, smoothing ~= 0.094) To avoid too much smoothing with 'zv', suggested max_accel <= 6700 mm/sec^2 Fitted shaper 'mzv' frequency = 33.6 Hz (vibrations = 2.7%, smoothing ~= 0.180) To avoid too much smoothing with 'mzv', suggested max_accel <= 3300 mm/sec^2 Fitted shaper 'ei' frequency = 45.2 Hz (vibrations = 6.5%, smoothing ~= 0.158) To avoid too much smoothing with 'ei', suggested max_accel <= 3800 mm/sec^2 Fitted shaper '2hump_ei' frequency = 46.0 Hz (vibrations = 0.0%, smoothing ~= 0.255) To avoid too much smoothing with '2hump_ei', suggested max_accel <= 2300 mm/sec^2 Fitted shaper '3hump_ei' frequency = 55.6 Hz (vibrations = 0.0%, smoothing ~= 0.265) To avoid too much smoothing with '3hump_ei', suggested max_accel <= 2200 mm/sec^2 Recommended shaper is 2hump_ei @ 46.0 Hz
shaper_type_y:2hump_ei shaper_freq_y:46.200 damping_ratio_y:0.100000
```
#### Accelerometer Issue
![[Pasted image 20241031091010.png]]
Looks like the accelerometer isn't working?
Idk.
- Have to specify `ACCELEROMETER_QUERY chip=toolboard` for some of the commands but not others.
- e.g. Measure Axes Noise doesn't require a chip
![[Pasted image 20241031101847.png]]
My Baseline Acceleration reading do agree with this dimension layout.
```
accelerometer values (x, y, z): 296.082377, -9178.553681, 76.609550
```
It seems like it's mounted upside down though.
#### Input Shaper Tuning
Starting point - heat soaked, belts redone, etc.
```
#*# [input_shaper]
#*# shaper_type_x = mzv
#*# shaper_freq_x = 56.2
#*# shaper_type_y = 2hump_ei
#*# shaper_freq_y = 46.2
```
##### Hexagon Test 4-3
- Test: Tune up kinematics
- Notes: Ringing issue is now isolated but not reduced
#### Tuning Tower Resonance Tests
- Notes from Ref Docs
- I can manually set the input shaper parameters once I've decided on settings after a few tests
- The Klipper Resonance Compensation reference suggests testing MZV then EI
- 2HUMP_EI and 3HUMP_EI are not used with `shaper_freq = resonance frequency` since they're used to reduce several resonances at once.
- `SET_INPUT_SHAPER SHAPER_TYPE=EI`
- It doesn't say when to test ZV
- EI Creates more smoothing than MZV
- My Notes
- Obviously I want to get speeds and accel as high as possible while being as smooth as possible
- Going to test MVZ and EI both at 120 & 500-6500, decide which looks better, then increase speed and acceleration
##### Tuning Tower Test 1 - MVZ/120/6.5k
- Test Parameters
- Speed
- External Perimeter Speed: 120 mm/s
- Perimeter Speed: 120mm/s
- Input Shaper Config
- X-Axis
- Type: MZV
- Frequency: 56.2 Hz
- Damping Ratio: 0.10
- Y-Axis
- Type: MZV
- Frequency: 46.2 Hz
- Damping Ratio: 0.10
- Accelerations
- Initial: 500 mm/s2
- Step: +500 mm/s2
- Final: 6500 mm/s2
- Notes
- The reference claims that after a certain acceleration, the gap test will split apart.
- My print didn't do that, so I'm assuming I can go higher than 6500.
- The Stretch/Claw Marks are completely gone as well.
- I'm not sure if that was resulting from the belting & kinematics issue, or if it was related to the internal perimeters being much faster.
- Around 3500-5000 looks better than the steps above and below it on this test.
- There seems to be a higher frequency ringing completely irrespective of the test
- The Y-Axis is cleaner, and the curved grooves in the wall aren't what's echoing, there is a completely vertical line ringing in here. Not sure what that's about.
- The X-Axis definitely has worse ringing, so I'm looking to see if EI does anything for it. After that, Upping the accel to climb to 10k, 20k, etc.
- There are some corner artifacts but I imagine those will go away once I turn on & recalibrate Pressure Advance
##### Tuning Tower Test 2 - EI/120/6.5k
- Test Parameters
- Speed
- External Perimeter Speed: 120 mm/s
- Perimeter Speed: 120mm/s
- Input Shaper Config
- X-Axis
- Type: EI
- Frequency: 56.2 Hz
- Damping Ratio: 0.10
- Y-Axis
- Type: EI
- Frequency: 46.2 Hz
- Damping Ratio: 0.10
- Accelerations
- Initial: 500 mm/s2
- Step: +500 mm/s2
- Final: 6500 mm/s2
- Notes
- EI Looks better on X by a small but definitive amount
- There's still a sweet spot right around 4500 accel
- Y is almost exactly the same. The only difference is less horizontal streaking, which I wasn't expecting to be a factor
- Moving forward with EI and raising the accel, speed, and speed differential
##### Tuning Tower Test 3 - EI/240/15k
- Test Parameters
- Speed
- External Perimeter Speed: 240 mm/s
- Perimeter Speed: 240mm/s
- Input Shaper Config
- X-Axis
- Type: EI
- Frequency: 56.2 Hz
- Damping Ratio: 0.10
- Y-Axis
- Type: EI
- Frequency: 46.2 Hz
- Damping Ratio: 0.10
- Accelerations
- Initial: 3000 mm/s2
- Step: +1000 mm/s2
- Final: 15000 mm/s2
- Notes
- Looks surprisingly good, comparing against MZV
##### Tuning Tower Test 4 - MZV/240/15k
- Test Parameters
- Speed
- External Perimeter Speed: 240 mm/s
- Perimeter Speed: 240mm/s
- Input Shaper Config
- X-Axis
- Type: MZV
- Frequency: 56.2 Hz
- Damping Ratio: 0.10
- Y-Axis
- Type: MZV
- Frequency: 46.2 Hz
- Damping Ratio: 0.10
- Accelerations
- Initial: 3000 mm/s2
- Step: +1000 mm/s2
- Final: 15000 mm/s2
- Notes
- X looks terrible! Definitely EI For X moving forward
- May be worth defining 2HUMP_EI
- EI Seems tremendously more stable for both axes across all accelerations I've tested so far
##### Tuning Tower Test 5 - EI/240/20k
- Test Parameters
- Speed
- External Perimeter Speed: 240 mm/s
- Perimeter Speed: 240mm/s
- Input Shaper Config
- X-Axis
- Type: EI
- Frequency: 56.2 Hz
- Damping Ratio: 0.10
- Y-Axis
- Type: EI
- Frequency: 46.2 Hz
- Damping Ratio: 0.10
- Accelerations
- Initial: 8000 mm/s2
- Step: +1000 mm/s2
- Final: 20000 mm/s2
- Notes
- Looks great, actually better at some higher frequencies even
- Sticking with EI for now, increasing speed to 360
- Changing Accel parameters
- Going to increase damping on X as well
##### Tuning Tower Test 6 - EI/360/20k
- Test Parameters
- Speed
- External Perimeter Speed: 360 mm/s
- Perimeter Speed: 360mm/s
- Input Shaper Config
- X-Axis
- Type: EI
- Frequency: 56.2 Hz
- Damping Ratio: 0.25
- Y-Axis
- Type: EI
- Frequency: 46.2 Hz
- Damping Ratio: 0.10
- Accelerations
- Initial: 14000 mm/s2
- Step: +500 mm/s2
- Final: 20000 mm/s2
- Notes
- 336mm/s -> 24 mm3/s seems to be the limit at 0.2mm layer height
- Smoothing seems to push the claw marks further back? confusing
- Lower the Smoothing
- Try external perimeter at 180, perimeter at 360, same test
- This one is all clawed up
- There's a really explicit band right in the middle where it looks way better
- Around 16.5k and 17k
- It's really interesting. There is a high frequency diagonal ringing that switches direction around this deadzone
- Going to tighten the acceleration band after the differential speed test
- I have a feeling 360/180 won't work, because 360 is just a bit too fast and will create shell issues that will pass through an otherwise acceptable 180
- So maybe reduce to 240/180 or 240/120 depending on how this ends up looking
- It could be a flow rate thing and maybe 360/180 will work just fine for 0.10mm
- It's worth seeing how a reduced layer height affects this test
##### Tuning Tower Test 7 - EI/360-180/20k
- Test Parameters
- Speed
- External Perimeter Speed: 180 mm/s
- Perimeter Speed: 360mm/s
- Input Shaper Config
- X-Axis
- Type: EI
- Frequency: 56.2 Hz
- Damping Ratio: 0.10
- Y-Axis
- Type: EI
- Frequency: 46.2 Hz
- Damping Ratio: 0.10
- Accelerations
- Initial: 14000 mm/s2
- Step: +500 mm/s2
- Final: 20000 mm/s2
- Notes
- Y is pretty much perfect
- X is still struggling a bit
- Changing X Frequency from 56.2 to 53.0
- Narrowing the accel band
- Start: 15000
- Step: +250
- Final: 18000
- After that, Lower the speeds again (120/120 or 120/60 or 180/60) and see if the quality increases meaningfully
##### Tuning Tower Test 7 - EI/360-180/20k
- Same as 7, but with X_Frequency set to 53Hz.
- Results about the same, maybe worse
##### Tuning Tower Test 8 - EI/120-120/20k
- Test Parameters
- Speed
- External Perimeter Speed: 120 mm/s
- Perimeter Speed: 120 mm/s
- Input Shaper Config
- X-Axis
- Type: EI
- Frequency: 56.2 Hz
- Damping Ratio: 0.10
- Y-Axis
- Type: EI
- Frequency: 46.2 Hz
- Damping Ratio: 0.10
- Accelerations
- Initial: 14000 mm/s2
- Step: +500 mm/s2
- Final: 20000 mm/s2
- Notes
- Getting the vertical ringing again on slower velocities, which is strange
- But not on high speeds
- Going to try 2hump for y and 3hump for x
#### Abridged Resonance Notes (Getting Impatient)
Still Running 14500 -> +500 -> 20000 for all of the following test
##### Test 9
- 2hump and 3hump are ridiculous, too much smoothing.
- They do look good, but unacceptable loss of detail.
##### Test 10
- Ran at 180-180
- Looks good, but dealing with some very obvious low frequency ringing in X
##### Test 11
- Running 180-60
- Looks good. I consider this acceptable. I still have the high frequency vertical ringing
- It's one or the other, feature-based ringing at high speeds
- or HF Vertical ringing at lower speeds
- I suspect it has to do either with belt tension or with extruder tension
- try lowering extruder tension (bite marks in extrusion on non-viscious filament?)
- try increasing belt tension (belt wobbling?)
##### Test 12
- Running 240-120
- Loosened Extruder Tension two hand turns
- Depending on how the ringing looks I may revert and/or adjust belt tension
It seems like both axes-the whole machine resonates around 30Hz
![[resonances_x_2024-11-02-000547.png]]
New X-Resonance
Try EI at 54.2 Hz instead of my previous 56.2Hz I guess
Gonna try tightening the belts - since the resonance is also at the belt tension for both, but lower belt is looser
Y Resonance is at 30Hz.
Giving the upper belt 2 turns, lower belt 1 turn, then rerunning.
#### Tightening Belts
>Try putting 10kg on top of the printer and see how it affects resonances
Belt Tension Before:
![[belt-tension-resonances-2024-10-31-021432.png]]
ChatGPT suggested tightening the higher peak more, so
2 Turns on Upper and 1 Turn on Lower
Belt Tension After:
![[belt-tension-resonances-2024-11-02-002651.png]]
Very cool, I'm sub 1e6 now.
~0.6 turns on Lower
~0.3 turns on Upper
Curious to see if I need to do an extended heat soak before running belt tension
![[belt-tension-resonances-2024-11-02-003910.png]]
Got worse,
rolling lower belt back half a turn
![[belt-tension-resonances-2024-11-02-004735.png]]
That's better, and more balanced.
Not gonna push my luck.
New Shaper Calibration next, then rerunning the tests:
- 360-360
- 240-120
- 180-60
#### New Resonances
![[resonances_x_2024-11-02-005533.png]]
These are improvements
The 125Hz hump jumped up slightly 0.4->0.5
The actual peak of the X went down from 5.5->3.2
```
X Results
Fitted shaper 'zv' frequency = 71.6 Hz (vibrations = 13.4%, smoothing ~= 0.037)
To avoid too much smoothing with 'zv', suggested max_accel <= 20000 mm/sec^2
Fitted shaper 'mzv' frequency = 63.4 Hz (vibrations = 0.5%, smoothing ~= 0.051)
To avoid too much smoothing with 'mzv', suggested max_accel <= 11800 mm/sec^2
Fitted shaper 'ei' frequency = 78.4 Hz (vibrations = 1.4%, smoothing ~= 0.052)
To avoid too much smoothing with 'ei', suggested max_accel <= 11400 mm/sec^2
Fitted shaper '2hump_ei' frequency = 93.2 Hz (vibrations = 0.0%, smoothing ~= 0.063)
To avoid too much smoothing with '2hump_ei', suggested max_accel <= 9700 mm/sec^2
Fitted shaper '3hump_ei' frequency = 113.2 Hz (vibrations = 0.0%, smoothing ~= 0.065)
To avoid too much smoothing with '3hump_ei', suggested max_accel <= 9400 mm/sec^2
Recommended shaper is mzv @ 63.4 Hz
```
![[resonances_y_2024-11-02-005544.png]]
Y is about the same as before, but with much lower peaks around 70-75.
I think I should've been changing the target X/Y frequencies along with the input shapers earlier. whoops.
```
Fitted shaper 'zv' frequency = 40.8 Hz (vibrations = 10.0%, smoothing ~= 0.097)
To avoid too much smoothing with 'zv', suggested max_accel <= 6500 mm/sec^2
Fitted shaper 'mzv' frequency = 37.8 Hz (vibrations = 0.8%, smoothing ~= 0.143)
To avoid too much smoothing with 'mzv', suggested max_accel <= 4200 mm/sec^2
Fitted shaper 'ei' frequency = 43.0 Hz (vibrations = 0.0%, smoothing ~= 0.174)
To avoid too much smoothing with 'ei', suggested max_accel <= 3400 mm/sec^2
Fitted shaper '2hump_ei' frequency = 54.2 Hz (vibrations = 0.0%, smoothing ~= 0.184)
To avoid too much smoothing with '2hump_ei', suggested max_accel <= 3300 mm/sec^2
Fitted shaper '3hump_ei' frequency = 66.2 Hz (vibrations = 0.0%, smoothing ~= 0.187)
To avoid too much smoothing with '3hump_ei', suggested max_accel <= 3200 mm/sec^2
Recommended shaper is mzv @ 37.8 Hz
```
#### Command Reference
`SET_INPUT_SHAPER SHAPER_TYPE=`
`SET_INPUT_SHAPER SHAPER_FREQ_X=`
`SET_INPUT_SHAPER DAMPING_RATIO_X=`
`SET_VELOCITY_LIMIT MINIMUM_CRUISE_RATIO=0`
`SET_PRESSURE_ADVANCE ADVANCE=0`
`TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=8000 STEP_DELTA=1000 STEP_HEIGHT=5`
#### Weighted Top Resonances
I put about 50lbs on top of the printer to see if it would affect the resonances or performance, and it basically didn't.
#### Calibration Battery 2
I printed another 15 or so resonance tests but got tired of annotating them all so fully. I also started canceling them midway since I get the info I need pretty early on.
At this point I have gone through a full 1kg spool just performing calibration prints. It's pretty tiring lol.
![[Pasted image 20241103114451.png]]
#### Damping Ratio
I'm seeing the higher the damping ratio, the worse the ringing gets. I feel like this runs counter to the instruction I've been receiving from guides online and ChatGPT but whatever.
Current Best:
```
Unweighted - 240-240
shaper_type_y:ei shaper_freq_y:38.600 damping_ratio_y:0.010000
shaper_type_x:ei shaper_freq_x:75.400 damping_ratio_x:0.010000
```
##### Lower Belt Seized again
Reducing the tension one full turn on each, I had to walk the upper belt back up around half a turn to balance it, not sure why. The belt resonance is about the same but the peak response is 1.75 on lower vs. 1.00 on upper, so I'm guessing the lower belt is just a bit too tight.
![[Pasted image 20241104063109.png]]
### Breadbox - LM386 Audio Amplifier Circuit
#### Speaker Impedance
Speakers are generally 4R, 8R, or 16R
The rating is given as an impedance, and it represents an approximate average of the resistive-inductive load's impedance across its intended operational frequency band.
In this case that band is the human audible range: 20Hz - 20kHz.
My Speaker is 2.8R, so 4R class.
#### Overview of the Op-Amps I have laying around
##### LM386
Specifically designed as an audio amplifier, the LM386 can drive speakers directly and is optimized for low-power audio applications. It has built-in gain control (up to 200x), making it ideal for simple audio amplification circuits without the need for many external components.
##### LM358
While versatile and commonly used in general-purpose applications, the LM358 isn’t specifically optimized for audio. It lacks the output drive capability for direct speaker operation, and its noise characteristics aren't ideal for audio fidelity.
##### LM324
Similar to the LM358 but with four op-amps in a single package. It’s useful for low-frequency signal processing and general applications but isn’t optimized for audio. It may struggle to drive speakers cleanly without additional amplification stages.
##### LM393
This is a comparator rather than a typical op-amp, so it’s unsuitable for audio amplification. Comparators operate in a switching mode, which creates a very clipped, distorted output if used for audio.
#### LM386 Audio Amplifier Build Notes
##### Circuit Diagram
![[F35RRBIJ7GGMD67.webp]]
##### Parts List:
- 1x 10kR
- 2x 100uF
- 1x 100nF NP
- 1x 1000uF
- 1x Speaker
- 1x LM386
##### Measurements
| Label | Measure |
| ------ | ------- |
| 1000uF | 929.8uF |
| 100uF | 97.92uF |
| 100uF | 95.76uF |
| 100uF | 93.23uF |
| 100nF | 95.13nF |
| 10kR | 10.10kR |
| 10kR | 10.01kR |
##### Datasheet Review
###### Chip Label:
98ATNHG3
LM386N-1
###### Links:
[OctoPart](https://octopart.com/lm386n-1%2Fnopb-texas+instruments-24814170?r=sp)
[TI Datasheet](https://www.ti.com/product/LM386#tech-docs?HQS=ti-null-null-verifimanuf_df-manu-pf-octopart-wwe)
###### Datasheet Notes:
Class AB
Mono Channel
Specs
- Vs_max = 18
- Vs_min = 4V
- P_out = 0.325W
- Iq_typ = 4mA
- Vsig = 4V to 18V
- PSRR = 50dB
###### Screenshots from Datasheet
![[Pasted image 20241102143648.png]]
![[Pasted image 20241102143659.png]]
![[Pasted image 20241102143718.png]]
![[Pasted image 20241102191142.png]]
### Joule Thief - Initial Research
#### System Description
- Joule thief circuit
- Diode into some super capacitor thing
- Pulsed LiPo Charging?
- The most important part here is the intermediate energy buffer that stands between the joule thief and the BMS
##### Precision and Budget Considerations
Considering that ChatGPT keeps recommending me $2000 pieces of bench kit I should probably figure out what level of precision I'm going for.
I can estimate the energy content of a battery, the remaining unused content, to 100J/1kJ/10kJ and then extract it to a similar level of precision
The first pass MVP needs to be simple and imprecise to prove the concept
#### Shopping List
Looks like I can get started for under $200
##### Joule Thief Parts
- Battery Tester
- https://a.co/d/61ORCQq
- https://a.co/d/91lB8wt
- Ferrite Cores
- https://a.co/d/4mBZxS0
- https://a.co/d/8rBXIkq
- https://a.co/d/hxaLM8Z
- https://a.co/d/iTQFP4V
- https://a.co/d/fLa8GC2
- Enamel Wire for Winding
- https://a.co/d/eDksbOC
- https://a.co/d/hL46Cwo
- https://a.co/d/0GKYTLp
- Supercapacitors
- https://a.co/d/9ySBNfb
- https://a.co/d/5RFjvUN
- https://a.co/d/0oAfXnG
- 18650 Cells
- https://a.co/d/7uOzpsw
- https://a.co/d/8czHoza
- 18650 Charger/Tester
- https://a.co/d/fi6lFru
- 18650 Plastic Spacers
- https://a.co/d/5eErUtf
- Spot Welder
- https://a.co/d/84WDMNk
- https://a.co/d/8MMGL60
- Nickel Ribbon
- https://a.co/d/hlIxFw1
- BMS Board/s
- https://a.co/d/8NGtBNl
- Heat Shrink Vinyl Wrap
- https://a.co/d/dCHHTDO
- Bullet Plug Connectors
- https://a.co/d/423AwKk
#### Research Questions
- What kind of intermediary stage should be going in between the petty generator and the BMS for charging to buffer and condition this energy?
- What goes into high-quality battery monitoring & diagnostics?
- How are diagnostic practices different for rechargeable and non-rechargeable batteries?
- I need to be able to accurately and precisely evaluate used non-rechargeable batteries (UNRB's) so I can predict how much energy my system will be able to extract from them in order to characterize my design's efficacy.
- What's an RTD?
- Overview of Electrochemical Impedance Spectroscopy
- You mention algorithms such as EKF and ML models being used in high end BMS.
- More detail on what kind of algorithms are used in BMS diagnostics?
- What kind of algorithms are used in closed loop/multi-stage charging?
- Are these distinct algorithms?
- It sounds like I'd need to design precision analog voltage and current tracking circuits placed at the UNRBs terminals so I can properly characterize it before and during extraction.
- Is that sufficient to serve the role of the battery analyzer, or are there more metrics to consider?
- It seems like the battery analyzer subsystem produces initial measurements, and then the programmable load creates artificial test conditions for the battery analyzer subsystem to generate additional contextual data. From there, ADC, and data logger are what provide me the diagnostic data in an intelligible format.
- Does this system description cover the bases? How could it be reconfigured, and what might it be missing? Are there any redundancies?
- It seems like the main benefit of the EIS is measuring internal resistance of the battery.
- Are there are methods for measuring this parameter, and is EIS the best?
- Are there other parameters that only EIS can provide?
- Is EIS measurement related to the programmable load?
#### YouTube Research Notes
##### # BMS (Battery Management System) || DIY or Buy || Properly protecting Li-Ion/Li-Po Battery Packs
https://youtu.be/rT-1gvkFj60
- He's got another video where he builds a custom LiPo Battery Bank
- BMS are cheap online
- Builds a DIY BMS based on Steward Pittaway's Design
- See also Collin Hickey or Adam Welsh
- Based on the HY2213
- Single Cell LiPo Battery Charger IC
- Can get niche components on Ebay
- This may require a microscope
- This will require SMT soldering
- It would be good to have perfboard and a cutting tool on hand
- Along with a technique for actually bridging the stuff
- Thinking an LCD display like my air quality monitor
- Will need much better crimping process too. Too many JST's when just one is awful.
- How do you put out a LiPo fire? LiPo Failure modes to be aware of?
- Looks like you have to get an additional PCB for every pair of LiPo cells. hmm....
##### # EBike Battery Pack || DIY or Buy || Electric Bike Conversion (Part 2)
https://youtu.be/b2sBhDxmPmA
- 18650 Cells seem to be everyone's go-to choice
- He's got these little plastic clip things and metal brackets holding the pack together. They look really nice.
- Most Li-Ion cells have a nominal of 3.6V and a charging of 4.2V
- So Range is 3V-4.2V
- You have to stack up quite a few to get to something like 48V/1000W
- A good cell is
- Samsung INR18650-25R
- 2500mAh
- Other alternatives?*
- "13S2P Lithium Ion Battery Pack" - what does this mean?*
- 13 series, 2 parallel?
- Two cells in parallel seems common and safe
- But if they're not the same voltage current can flow between them
- These plastic spacers are interlocking too. Super cool.
- 7mm wide x 0.3mm thick / 40A rated Nickel Ribbon
- Cut to length and then
- kWeld Battery Spot Welder Tool
- Powered by LiPo battery, can make welding spots
- 100J / 0.3mm Nickel Strip
- Adjutable power output for the spot welding
- Press the electrodes into the strip about 3mm apart and hit the button
- Charging Method:
- CCCV
- 1.25A at 4.2V (per cell)
- Since it's 13S2P
- 54.6V and 2.5A are the actual charging conditions
- What other charging methods are there?*
- Attach 10AWG wire to the terminals
- Measure the voltage of each battery pair
- Over a long period of time, the cells will decay.
- BMS manages this and slows down decay
- This setup doesn't seem like it allows for replacing any particular battery cell...
- Active diagnostics to a BMS requires a wire to be soldered to every single cell
![[Pasted image 20241029092851.png]]
More Info
https://www.instructables.com/DIY-EBike-Battery-Pack/
##### # Build your own portable POWER STATION (1200w, USB-C and MORE!)
https://youtu.be/adY-S8AH_Jc
- 84 Cell build
- 12S7P build
- Good practice to measure each cell and match them into close voltage groups
- Matters a LOT more when using old or refurbished cells
- Worth investing in a charger to get all the cells up to the same voltage before building
![[Pasted image 20241029093905.png]]
- The PVC wrapper on the cells obscures the fact that the body shell is the ground terminal.
- Scuffing it can introduce shorts
- Again, use the plastic spacers
- The spacers do seem to have mounting holes for screws, etc.
- Nvm he drilled out the holes himself
- Smart to use non-conducting nylon bolts though
- Very rigid mounting solution
- DO NOT SOLDER DIRECTLY TO THE BATTERY TERMINALS
- Battery terminals have large thermal mass so the solder joint will suck
- And if you get it too hot it'll damage the battery anyway
- Lose Lose Situation
- Spot Welder + Nicklel Strips Superior
- Thicker strips and heavy duty spot welder for high current packs
- NO DISTRACTIONS NO MUSIC WHEN WELDING STRIPS ON
- Even dropping a nickel strip onto the pack can short the batteries and cause a huge problem/fire
- Clever of him to use a PTFE sheet as an insulating, high temp body material.
- Not sure if ASA can do that job.
- Basically PTFE body panels and Nylon bolts for everything
![[Pasted image 20241029095605.png]]
- Average together the weak nylon bolts using an aluminum plate braced against it all
- Some M4 Threaded inserts inserted into the aluminum. But wtf am I seeing here?
![[Pasted image 20241029095723.png]]
![[Pasted image 20241029095748.png]]
- Looks sturdy now
- Aluminum Panels with a Vinyl Wrap is a good way to made something look very polished.
- Kapton Tape and Airflow are important
- Oak Edgings also look nice
![[Pasted image 20241029095908.png]]
- Airflow is important, so it might be a bad idea to put something like this into the understory of breadbox.
- Couple of different voltage regulators to provide stock output voltages, and then an adjustable one as well
- The whole thing could be run from banana plugs so it can inject directly into the breadboard too.
- Smart to include USB charging ports and stuff
- This paneling is super clean
- Getting aluminum panel+vinyl pilled
- High power current connectors - "Dean's Connectors"
- Strong enough to power a microwave through an inverter for an hour. Just throw it in your trunk lol.
- Pretty heavy though.
![[Pasted image 20241029100646.png]]
![[Pasted image 20241029100755.png]]
![[Pasted image 20241029101111.png]]
##### # Supercapacitor Joule Thief
https://youtu.be/jq7cqmDtZDc
Quick 5-minute demo of the circuit
Question is, can the energy be stored in a supercapacitor and then quantified?
Precision of this circuit can vary from 24-96%. Great!
Looks like I'll need to overdesign some precision application for this. Horayyy
##### # How Does the Joules Thief ⚡Free Energy Work?
https://youtu.be/scH2kFMjetA
- It's basically a voltage amplifier
- Batteries die as their electrochemical reaction efficiency decreases, resulting in reduced voltage
- There are still unreacted chemicals inside, which means we can find a way to extract it
- There are several variations of the circuit
- Toroidal coil and inductive kickback is the key here.
- The toroidal coil has two windings wrapping around in opposite directions. It's more of a transformer
- One winding bridges the current limiting resistor to the BJT base
- One winding bridges the battery/source to the junction that forks into the BJT Collector and the Load
- The two currents/magnetic fields are in opposite directions and cancel eachother out
- The stronger current determines the net direction/effect
- More current will flow into the collector, since the first path has the current limiting resistor.
- The reactive negative voltage from the collector's path then reverses through the transformer and generates a positive voltage along the resistor-base path
- This further engages the transistor action
- The transistor allowing more current to flow through the CE channel then causes a stronger inductive reaction voltage
- Which then flips through the transformer to generate a stronger positive voltage pushing current into the base
- This is a positive feedback loop
- Once the inductor's magnetic field saturates and stops changing, the reaction voltages dissipate, and current stops flowing into the transistor base, cutting off the CE channel.
- Now that the BE path and CE path are both cut off & the inductor is saturated, the inductive kickback process takes place and a voltage spike/burst of energy passes through the load as the inductor's magnetic field collapses
- During this time, the inductor also mirrors a countervoltage that prevents current from flowing into the base and reopening the CE channel.
- This action is oscillatory and frequency is largely determined by the inductor.
##### # Joule Thief Battery Charger
https://youtu.be/I8W20uwtJ3Y
Made some improvements
- Added a capacitor on xf
- zener diode to stabilize base voltage
- diode to prevent backflow into bjt
- output cap for smoothing/stabilization
![[Pasted image 20241029160936.png]]
##### # All You Ever Wanted To Know About The Joule Thief
https://youtu.be/N20gG6bDRlo
- Energy capturing
- Converting low voltage energy sources into useful output
- "A “Joule Thief” is a simple voltage booster circuit. It can increase the voltage of a power source by changing the constant low voltage signal into a series of rapid pulses at a higher voltage."
![[Pasted image 20241029161301.png]]
Not actually that useful of a video
##### # How to make an authentic Joule Thief.
https://youtu.be/K53beWYdIpc
- Oscillator feedback circuit with a transistor
- Gonna need to get a battery tester probably
- Most single-use battery energy capacity is wasted because electronics require a minimum voltage to turn on.
![[Pasted image 20241029162303.png]]
- "Vampire Micro Torch" - Bigclive invented the Joule Thief name lol
- Need to hand wind the toroid, which means I need some new parts
- Popular BJTs
- BC547
- 2N3904
- 2N2222
- One winding goes to the base
- One winding goes to the collector
- Depends on the core, but it can be around 80-100kHz
- There's an element of high voltage ringing that allows it to continue running even after the battery has fallen below VBE/Diode turn-on voltage.
- He said it should die around 0.6V, but can run as low as 0.35V
- Very interesting effect. Probably one of those 80% of work for the last 20% of output things to get it below 0.35V
- You can use a center tap transformer
- It has three terminals, so connect the middle tap to the battery's positive terminal
Didn't finish this video
#### GPT Research Notes
##### @ Overview of Joule Thief Circuit Topology & Function
A Joule thief circuit is a simple and efficient boost converter designed to extract the last bit of energy from a power source, typically a low-voltage battery, even when it's almost depleted. Here’s a breakdown of how it works to "drain" a battery:
1. **Components & Basic Setup**: A basic Joule thief circuit consists of a transistor, a small inductor (usually made by winding two coils together on a ferrite core), a resistor, and a low-power LED or similar load. The resistor limits the base current into the transistor, and the inductor stores and releases energy in pulses.
2. **Initial Power**: When power is applied (even at very low voltages like 0.5V), a small current flows through the resistor and into the base of the transistor, turning it on. This allows current to start flowing through the inductor and the transistor’s collector-emitter junction, which causes a rapid buildup of magnetic energy in the inductor.
3. **Inductive Kickback**: As the inductor’s magnetic field builds up, the current through the transistor’s base also increases until it saturates. At this point, the magnetic field collapses suddenly, releasing a “kickback” or spike of voltage. This surge is directed to the load (like an LED), allowing it to operate even if the original battery voltage is below the LED’s forward voltage.
4. **Oscillation & Draining Effect**: This process repeats very quickly, creating a self-oscillating loop where the circuit constantly pulls small amounts of energy from the battery, even when the voltage is below what would normally power the load. This efficient use of remaining energy allows the battery to be "drained" much lower than usual.
By leveraging this cyclical storage and release of magnetic energy, a Joule thief circuit can essentially “squeeze” the last joules out of a battery, allowing even near-depleted cells to power low-voltage devices.
##### @ Joule Thief Intermediate Energy Buffer Design
To efficiently harness and store energy from low-voltage, intermittent sources, an intermediary power conditioning and buffering stage is essential. Here’s a breakdown of how we can achieve this:
###### 1. **Energy Harvesting Module**
- **Purpose**: This module interfaces directly with your low-voltage sources to maximize energy capture, regardless of fluctuations or dips. By stabilizing the input, it ensures that power is conditioned before it reaches the Battery Management System (BMS).
- **Recommended Solution**: A specialized *energy harvesting IC* with a Maximum Power Point Tracking (MPPT) algorithm, like Texas Instruments’ **BQ25570**. It’s designed for ultra-low-power energy harvesting from sources as low as 100 mV, perfect for variable solar and kinetic sources.
- **Key Features**:
- MPPT to maximize energy from intermittent sources.
- Built-in power management to enable charging a Li-ion/LiPo battery directly.
- Voltage regulation for more stable BMS input.
- **Part Number**: TI BQ25570.
###### 2. **Capacitor Bank for Energy Buffering**
- **Purpose**: To handle the fluctuations in power output from the sources, especially for short bursts, a capacitor bank can act as a buffer, smoothing the input to the BMS.
- **Design Consideration**: Use a capacitor bank with low Equivalent Series Resistance (ESR) to minimize losses. Supercapacitors (e.g., 10 F, 2.7 V) are effective here, as they can handle rapid charge and discharge cycles.
- **Recommended Configuration**: Place the capacitor bank after the energy harvesting module and before the BMS input. This buffer ensures the energy from intermittent sources is leveled out before reaching the battery.
- **Suggested Part**: A pack of **Maxwell BCAP0010 P270 T01** or similar.
###### 3. **DC-DC Boost Converter for Voltage Regulation**
- **Purpose**: Since many of your sources (e.g., solar cells, hand-crank generators) output low and variable voltage, a boost converter is necessary to step this up to the level required by the BMS for efficient charging.
- **Recommended Solution**: A *boost converter* with high efficiency at low input voltages, such as the **LTC3105** from Analog Devices. This boost converter is optimized for energy harvesting applications and can output a stable voltage even from input as low as 0.2 V.
- **Key Features**:
- High efficiency (>90% under optimal conditions).
- Adjustable output voltage (up to 5 V, suitable for charging a LiPo battery).
- Integrated MPPT to dynamically adjust input power.
- **Part Number**: Analog Devices LTC3105.
###### 4. **Joule Thief Variant for Energy Extraction**
- **Purpose**: For extracting residual energy from “dead” batteries, a modified Joule Thief circuit will work effectively. A Joule Thief circuit can boost the small remaining voltage to a usable level and transfer this energy into the main power bank.
- **Design Adjustments**: Use a toroidal inductor with a high turn ratio to optimize energy transfer from low-voltage batteries. Adding a small capacitor across the battery terminals can help stabilize the extraction.
- **Integration**: Feed the output from the Joule Thief circuit into the capacitor bank or directly into the boost converter. This will ensure that even small bursts of residual energy are stored effectively.
###### Suggested Configuration and Flow
1. **Energy Source (Solar Panel/Hand Crank) → Energy Harvesting Module (BQ25570) → Supercapacitor Bank → Boost Converter (LTC3105) → BMS and Battery Bank**.
2. **Dead Battery → Modified Joule Thief → Capacitor Bank/Boost Converter → BMS and Battery Bank**.
This setup will allow you to buffer and regulate power from both intermittent sources and the residual energy harvested via the Joule Thief, providing a steady charging flow to your LiPo battery bank. Each component in this intermediary stage conditions the input to ensure stable, efficient charging, even with highly variable or low-power inputs. Let me know if you'd like more specific guidance on circuit design or additional part recommendations!
###### Recommended Parts
Here's a list of all the recommended parts:
1. **Energy Harvesting IC**
- **Part Number**: Texas Instruments **BQ25570**
- **Purpose**: Energy harvesting with MPPT for maximizing energy capture from intermittent sources.
2. **Supercapacitors (Capacitor Bank)**
- **Part Number**: Maxwell **BCAP0010 P270 T01** (or similar supercapacitors)
- **Purpose**: Acts as a buffer to handle power fluctuations before the BMS input.
3. **DC-DC Boost Converter**
- **Part Number**: Analog Devices **LTC3105**
- **Purpose**: Boosts low, variable voltage from energy sources to a stable level for charging.
4. **Inductor for Joule Thief Circuit**
- **Type**: Toroidal inductor with a high turn ratio (customizable based on desired efficiency and voltage output).
- **Purpose**: Used in the modified Joule Thief circuit for boosting residual energy from low-voltage batteries.
These components together will enable you to efficiently capture, buffer, and transfer energy from your low-voltage sources into the LiPo battery bank. Let me know if you need details on specific part variants or suppliers!
##### @ Principles and Methodologies for LiPo Charging
Certainly! The **Constant Current/Constant Voltage (CCCV)** charging method is widely used for LiPo (Lithium Polymer) cells due to its effectiveness in balancing speed, safety, and longevity. Here’s a breakdown of CCCV charging principles, along with a few alternative paradigms and their unique applications.
###### 1. **CCCV Charging Principles**
- **Stage 1: Constant Current (CC) Phase**
- In the initial charging phase, the charger applies a constant current to the LiPo cell. This current is usually set to a fraction (often 0.5-1C, where C is the capacity of the battery) to avoid excessive heat generation.
- During this phase, the cell’s voltage rises steadily as it accumulates charge.
- The constant current phase continues until the cell reaches its maximum voltage (typically around 4.2V per cell for standard LiPo batteries).
- **Stage 2: Constant Voltage (CV) Phase**
- Once the cell reaches its peak voltage (e.g., 4.2V), the charger switches to a constant voltage mode. Here, the current gradually decreases as the battery’s internal resistance rises with increasing charge.
- This phase continues until the charging current drops to a preset minimum threshold (often around 0.05C or less), indicating the cell is nearly fully charged.
- At this point, the charging process typically stops to prevent overcharging, which can lead to overheating, cell degradation, or even failure.
**Why CCCV for LiPo?**
- **Safety**: CCCV helps control the charging process to avoid dangerous conditions like overvoltage, which can lead to thermal runaway.
- **Longevity**: By tapering off the current at high charge levels, CCCV minimizes wear on the cell’s structure, extending its useful lifespan.
- **Efficiency**: CCCV balances charging speed and cell capacity, maximizing usable charge without overstressing the battery.
###### 2. **Alternative Charging Paradigms**
While CCCV is the standard for LiPo cells, there are several alternative methods, each suited to specific scenarios. Some of these include:
###### 2.1 **Pulsed Charging**
- **Description**: Pulsed charging delivers bursts of high current separated by short rest periods. During these pauses, the cell's internal chemistry has a moment to "relax," helping to reduce the risk of heat buildup.
- **Applications**: Pulsed charging can improve charge acceptance and reduce cell temperature, especially beneficial for fast-charging applications.
- **Pros**: Helps with heat management and may slightly extend battery life if managed carefully.
- **Cons**: Requires a precise controller to optimize pulse timing, and improperly tuned pulses can lead to cell damage.
###### 2.2 **Inductive or Capacitive Charging**
- **Description**: Capacitive or inductive charging is commonly seen in wireless power transfer systems. In these systems, a magnetic or electric field is used to transfer energy to a battery without direct physical connections.
- **Applications**: Popular for consumer devices (e.g., smartphones, electric toothbrushes) where contactless charging is desired.
- **Pros**: Convenient for devices that need to be charged without connectors.
- **Cons**: Typically less efficient than wired CCCV, with limitations on charging rates and more heat generation due to lower efficiency.
###### 2.3 **Trickle Charging**
- **Description**: Trickle charging delivers a very low continuous current, just enough to counteract self-discharge. It's commonly used for NiMH and lead-acid batteries but can apply to LiPo in low-power applications.
- **Applications**: Useful in maintaining charge in backup or long-term storage scenarios where the battery remains connected but discharges slowly.
- **Pros**: Helps maintain charge in idle cells without overcharging.
- **Cons**: Not suitable for high-capacity LiPo cells due to the risk of overcharging and cell degradation over time.
###### 2.4 **Multi-Step Charging**
- **Description**: Multi-step charging allows dynamic adjustments to the charging current, based on real-time feedback about the cell’s internal resistance, temperature, and state of charge. This approach can involve a mix of CC and CV phases, or even custom profiles tailored to a specific battery chemistry.
- **Applications**: Used in high-performance battery management systems, such as those in electric vehicles, where battery longevity and health are critical.
- **Pros**: Extends battery life by optimizing each charge phase based on real-time data.
- **Cons**: Requires sophisticated control systems and high-quality battery monitoring to avoid damaging the cell.
###### 2.5 **Fast Charging**
- **Description**: Fast charging methods use higher-than-standard current rates to shorten charging time. They often employ advanced temperature and voltage management to prevent thermal issues.
- **Applications**: Seen in high-demand consumer electronics (e.g., mobile devices) and electric vehicles where time-efficient charging is crucial.
- **Pros**: Reduces charging time significantly.
- **Cons**: Puts strain on battery cells, potentially reducing lifespan if not carefully managed with proper cooling and current control.
###### Summary
The CCCV method remains the gold standard for LiPo due to its balance between charging speed, safety, and battery health. However, depending on your specific needs, integrating elements of alternative methods (like pulsed or multi-step charging) might offer advantages. For example, if you’re aiming to capture energy rapidly from intermittent sources, pulsed or fast charging could optimize your setup, given that you manage cooling and current peaks. For longevity-focused applications, multi-step charging is ideal but requires sophisticated monitoring.
Let me know if you’d like to dive into a custom charging solution for your setup!
##### @ Open Loop vs. Closed Loop Charging Paradigms
You're absolutely correct in noting that **multi-step/dynamic charging** is generally the most sophisticated closed-loop process among these methods, as it actively monitors and adjusts parameters in real-time based on feedback from the battery.
For **CCCV** and **pulsed charging**, let's examine the feedback mechanisms:
###### 1. **CCCV Charging: Open-Loop with Basic Feedback**
- CCCV charging is often considered *semi-open loop*. While it does incorporate some feedback from the battery (mainly voltage and current readings), this feedback is typically limited to two main transitions:
- **Constant Current to Constant Voltage Transition**: Once the battery voltage reaches the predefined threshold (e.g., 4.2V for LiPo), the charger automatically reduces the current to hold a constant voltage.
- **Charge Termination**: The process stops when the current decreases below a certain threshold in the CV phase.
- **Feedback Complexity**: CCCV does not dynamically adapt based on the battery’s internal resistance, temperature, or other parameters beyond voltage and current. In other words, it doesn't continuously evaluate the battery’s condition to optimize charging but rather follows a preset “recipe” based on standard LiPo characteristics.
- **Closed-Loop Aspects**: Though it uses basic feedback for transitioning stages, CCCV is largely *open-loop* in nature because it lacks continuous, real-time adjustments based on battery condition.
###### 2. **Pulsed Charging: Open-Loop with Limited Feedback**
- Pulsed charging can be designed as either open-loop or semi-closed loop, depending on the sophistication of the charger.
- In simpler implementations, the charger applies high-current pulses with timed intervals, disregarding the battery’s state. This is fully *open-loop* and risks overheating if not carefully calibrated.
- **Advanced Pulsed Chargers**: More advanced designs include temperature monitoring or voltage feedback to control pulse duration, frequency, and intensity, introducing some level of closed-loop control. However, these designs still lack the detailed, real-time adaptability of multi-step charging.
- **Feedback Complexity**: Compared to CCCV, even advanced pulsed charging doesn’t analyze real-time changes in internal resistance or dynamically adjust pulse profiles based on real-time data. Instead, it often uses a preset duty cycle or interval control based on initial temperature or voltage.
###### 3. **Multi-Step/Dynamic Charging: Fully Closed-Loop**
- **Feedback Integration**: Multi-step charging uses comprehensive, real-time feedback from multiple parameters, including:
- Voltage and current readings
- Temperature
- Internal resistance estimation (through Electrochemical Impedance Spectroscopy in sophisticated systems)
- **Dynamic Adaptability**: Multi-step systems continuously adjust the current, voltage, and even charging profile based on the state of charge, battery health, and temperature. This ensures optimal charging tailored to the battery’s exact condition, making it a fully closed-loop system.
- **Applications in Complex Systems**: Due to its complexity, dynamic charging is common in electric vehicles and high-performance batteries where precise charge management is critical to maintain long-term health and efficiency.
###### Summary
- **CCCV** and **pulsed charging** incorporate basic feedback but operate largely on preset parameters, with limited real-time adaptability.
- **Multi-step/dynamic charging** stands out as the only fully closed-loop approach, adjusting continuously based on a rich set of real-time battery data.
This real-time adaptability is why multi-step charging is favored for high-value batteries and applications where precise charge management is crucial. Let me know if you'd like to explore ways to implement closed-loop control in your charging setup!
##### @ Differences in Diagnostics & Instrumentation for Rechargeable and Non-Rechargeable Batteries
Here’s a breakdown addressing each of these high-level questions in detail.
###### What goes into high-quality battery monitoring & diagnostics?
High-quality battery monitoring and diagnostics aim to ensure battery performance, safety, and longevity, and require sophisticated instrumentation and techniques to monitor real-time status, predict battery life, and detect faults. Key elements include:
1. **Voltage Monitoring**: Accurate voltage measurement is foundational for tracking a battery’s state of charge (SoC) and state of health (SoH). High-quality systems often use precise analog-to-digital converters (ADCs) to minimize measurement error and may apply noise filtering techniques to ensure accuracy.
2. **Current Measurement**: Real-time current monitoring helps determine charging/discharging rates and battery efficiency. Hall-effect or shunt-based current sensors with high precision and fast response times are common. Accurate current data is critical for calculating cumulative capacity (mAh) and efficiency.
3. **Temperature Sensing**: Temperature directly impacts battery health and safety, as overheating can lead to thermal runaway. Thermistors, RTDs, or digital temperature sensors close to or integrated within battery packs provide real-time data. High-quality systems include multiple temperature sensors to monitor cell and module temperatures, allowing for prompt intervention if anomalies are detected.
4. **Internal Resistance Measurement**: Internal resistance is an indicator of battery aging. Techniques like Electrochemical Impedance Spectroscopy (EIS) or simpler pulse-resistance methods provide real-time resistance data, allowing early detection of degradation. This requires precision current pulses and complex signal processing.
5. **State of Charge (SoC) and State of Health (SoH) Estimation**: Advanced battery management systems (BMS) use algorithms to estimate SoC and SoH based on voltage, current, temperature, and historical usage data. Algorithms such as Extended Kalman Filtering (EKF) or machine learning models are employed in high-end BMS for accurate, predictive diagnostics.
6. **Cycle Counting and Usage Profiling**: Cycle counting tracks charging/discharging cycles, while profiling usage patterns helps in estimating battery degradation. High-quality systems correlate cycles with temperature and load conditions to refine SoH predictions.
7. **Fault Detection and Protection**: Fault detection uses all the above data to identify conditions like overvoltage, undervoltage, overcurrent, or over-temperature and takes corrective actions, like shutting down power or isolating cells.
###### How are diagnostic practices different for rechargeable and non-rechargeable batteries?
The diagnostic focus shifts significantly between rechargeable and non-rechargeable batteries:
1. **Rechargeable Batteries**:
- **Lifetime Monitoring**: Diagnostics focus on prolonging battery lifespan and optimizing performance, with a strong emphasis on monitoring internal resistance, SoH, and SoC.
- **Cycle Life Tracking**: Rechargeable batteries undergo cyclic stress, so diagnostic systems track charge/discharge cycles and rate-related degradation to predict and maximize usable life.
- **Thermal and Voltage Management**: Continuous monitoring of temperature and voltage helps manage the effects of repeated charging and discharging, protecting the battery from unsafe operating conditions.
- **Health Algorithms**: Diagnostic algorithms for rechargeable batteries predict aging by analyzing patterns and usage cycles, essential for informing replacement or recalibration decisions.
2. **Non-Rechargeable Batteries**:
- **Residual Capacity Estimation**: The main diagnostic goal is estimating remaining energy, given non-rechargeables do not need cycle tracking. Voltage and sometimes internal resistance measurements provide a gauge of residual capacity.
- **One-time Use Management**: Since these are single-use batteries, monitoring focuses on evaluating whether they can safely power a device until depletion.
- **Internal Resistance**: As non-rechargeable batteries age, internal resistance increases and impacts performance. Diagnostics track this parameter to gauge the battery's viability.
- **Disposal Readiness**: Diagnostics assess end-of-life conditions to prevent leakage or discharge hazards, especially important for safe disposal.
###### Instrumentation for Evaluating Used Non-Rechargeable Batteries (UNRBs)
Accurate diagnostics of used non-rechargeable batteries requires careful instrumentation to gauge remaining capacity, internal resistance, and viability for energy extraction. Here’s a list of relevant instrumentation:
1. **Battery Analyzer**:
- Specialized battery analyzers can measure capacity, internal resistance, and estimated remaining charge. Instruments like the **Cadex C7000 Series Battery Analyzer** are versatile, capable of testing a wide range of battery chemistries and sizes, providing precise measurements of SoC and SoH.
2. **Electrochemical Impedance Spectroscopy (EIS)**:
- EIS measures a battery’s internal resistance and response to small voltage perturbations at different frequencies. This helps estimate remaining capacity and overall battery health, especially useful for batteries with high internal resistance due to aging.
3. **Precision Voltage and Current Meters**:
- Precision meters, like those from **Keysight or Fluke**, measure voltage and current with high resolution, essential for low-power residual measurements in aged batteries. They also support tests to determine self-discharge rate, an indicator of how much power the battery loses over time.
4. **Programmable DC Load**:
- A programmable load, such as the **BK Precision 8600 Series**, lets you simulate various load conditions and observe how the battery responds under load. This test gives a better indication of usable remaining capacity and stability under stress, helping predict energy extraction potential.
5. **Data Logging System**:
- To evaluate trends in used battery performance over time, a data logging system (standalone or integrated with your battery analyzers) captures voltage, current, and resistance data at set intervals. This supports historical analysis, helping refine the system's efficacy by identifying patterns in energy extraction success.
6. **Software for Analysis**:
- Software that supports curve fitting and model analysis, like **MATLAB** or **LabVIEW**, can analyze collected data to model energy extraction potential based on prior tests, further refining prediction accuracy.
###### Summary
To summarize:
1. High-quality battery diagnostics involve voltage, current, temperature, resistance monitoring, SoC/SoH estimation, and fault detection.
2. Rechargeable batteries need continuous monitoring for cyclic degradation and capacity estimation, while non-rechargeable batteries focus on residual capacity and safety checks for disposal.
3. For evaluating UNRBs, tools like battery analyzers, EIS, precision meters, programmable loads, and data loggers are essential for accurately predicting remaining extractable energy, critical for characterizing your system’s performance in reclaiming energy from used batteries.
Let me know if you’d like recommendations on specific models or additional configuration details for any of these instruments!
##### @ Long-Term Diagnostics Algorithms vs. Real-Time Charging Algorithms
Here’s a breakdown of each question with detailed explanations.
###### What’s an RTD?
An **RTD (Resistance Temperature Detector)** is a sensor used to measure temperature by correlating the resistance of the sensor element with temperature. The most common RTDs use platinum (Pt100 or Pt1000 sensors) due to its stable, predictable resistance changes over temperature, making it suitable for precise measurements.
**Key Characteristics of RTDs**:
- **Accuracy**: RTDs are highly accurate and stable, with linear response curves that make temperature measurement straightforward.
- **Range**: They typically operate from -200°C to +600°C.
- **Durability**: RTDs are durable and provide consistent measurements over time, which is why they’re popular in battery management systems (BMS) for monitoring cell temperatures.
###### Overview of Electrochemical Impedance Spectroscopy (EIS)
**Electrochemical Impedance Spectroscopy (EIS)** is a technique used to characterize a battery’s internal resistance and impedance by applying a small alternating current (AC) signal over a range of frequencies and measuring the battery’s response.
**How EIS Works**:
- **Frequency Spectrum Analysis**: EIS varies the frequency of an AC signal across a battery or cell and records the resulting voltage and current. By analyzing impedance across frequencies, it detects aspects of internal resistance related to the battery’s chemistry, electrode properties, and electrolyte condition.
- **Key Parameters Extracted**:
- **Internal Resistance**: EIS provides both the real and imaginary components of impedance, breaking down resistive and capacitive aspects, which correlate with internal resistance and charge transfer resistance.
- **State of Health (SoH)**: Because impedance tends to increase with aging and degradation, EIS is a reliable method to evaluate SoH, giving insights into battery lifespan and performance degradation.
- **Applications**: EIS is commonly used in laboratory settings and high-end BMS to assess cell quality, aging, and failure modes.
###### Algorithms in BMS Diagnostics
High-end BMS diagnostics employ algorithms to assess battery condition, predict remaining useful life, and optimize charging/discharging safely. Here are some commonly used algorithms:
1. **Kalman Filter Variants (e.g., Extended Kalman Filter - EKF)**:
- **Purpose**: EKF is widely used for SoC and SoH estimation, as it can handle the nonlinearities of battery characteristics.
- **How It Works**: The EKF updates its SoC and SoH predictions based on observed voltage and current, refining its estimates by comparing predicted values with real-time measurements. It’s especially useful for filtering out noise and adjusting predictions based on unexpected deviations.
- **Advantages**: Provides robust and adaptive estimations with relatively low computational overhead.
2. **Machine Learning (ML) Models**:
- **Purpose**: ML models like neural networks, regression models, or support vector machines (SVM) are used for SoH prediction and fault detection.
- **How It Works**: ML algorithms learn from historical data on voltage, current, temperature, and impedance to make predictions about battery life, degradation rates, and fault risks. In practice, these models can account for complex battery behavior patterns that are hard to model with physics-based equations alone.
- **Advantages**: ML models can generalize across a wide variety of batteries and adapt to new data, improving prediction accuracy over time.
3. **Coulomb Counting with Correction Factors**:
- **Purpose**: Coulomb counting is a technique to estimate SoC by measuring the current flowing into and out of the battery.
- **How It Works**: This method calculates SoC by integrating the current over time but typically incorporates correction algorithms to compensate for errors like self-discharge or incomplete charge cycles.
- **Advantages**: Simple to implement but works best when combined with other estimation techniques (e.g., EKF) to maintain accuracy.
4. **State of Health Prediction Models**:
- These use historical data and cycle count information to predict battery lifespan. Empirical models (e.g., Arrhenius models for temperature impact) and data-driven models can both be used here to project degradation under different conditions.
###### Algorithms in Closed-Loop/Multi-Stage Charging
Closed-loop and multi-stage charging algorithms differ from those in diagnostics, as they focus on **real-time charging control** to optimize safety, speed, and efficiency:
1. **Constant Voltage/Current Control (CV/CC)**:
- In CCCV charging, simple feedback control algorithms, like **Proportional-Integral (PI)** or **Proportional-Integral-Derivative (PID) controllers**, maintain constant current or voltage by adjusting the output based on battery voltage feedback.
- **Closed-Loop Behavior**: This maintains stable current or voltage without overcharging or undercharging, ensuring the battery receives a safe, optimal charge.
2. **Adaptive Algorithms for Temperature and Load Management**:
- Algorithms monitor cell temperature and adjust charging current to prevent overheating. Some systems use **temperature-feedback control loops** to throttle charging when high temperatures are detected.
- **Real-Time Adaptability**: By adjusting in real time, these algorithms prevent thermal damage and extend battery life.
3. **Dynamic Charging Profiles**:
- In high-performance applications, **dynamic profiles** adjust current and voltage based on battery impedance, temperature, and real-time SoC feedback. Advanced algorithms, sometimes incorporating ML models, adapt charging parameters to conditions, balancing between fast charging and battery health.
- **Complexity**: These adaptive algorithms are more sophisticated than standard CCCV and require ongoing data on the battery’s response to the charge.
###### Are These Distinct Algorithms?
Yes, the algorithms for **BMS diagnostics** and **closed-loop/multi-stage charging** are generally distinct, although there is some overlap in data and feedback mechanisms:
1. **Diagnostic Algorithms** (e.g., EKF, ML models, SoC/SoH estimation) are focused on understanding the battery’s current health, remaining life, and identifying potential issues. These often run in parallel with the BMS, gathering data for long-term battery performance analysis rather than direct charge control.
2. **Charging Algorithms** are more about **real-time control** for the charging process. They utilize closed-loop systems (e.g., PID or dynamic feedback profiles) to adjust current and voltage safely during charging. While these algorithms may access diagnostics data (e.g., SoC or temperature) to make charging safer, they don’t perform the deep diagnostics that predict SoH or degradation.
In short, diagnostic algorithms focus on **battery condition assessment** and **predictive insights**, while charging algorithms prioritize **immediate charging safety and efficiency**. Some sophisticated BMS systems do combine elements of both, using diagnostic data to inform charging decisions dynamically, especially in multi-step charging setups.
## Pretty Pictures
[[#Sprint V - Venusaur]] - back to top
![[IMG_9909.jpg]]
![[Pasted image 20241106145408.png]]
![[Photo Nov 02 2024, 4 52 47 PM 1.jpg]]
![[Photo Nov 03 2024, 3 21 35 PM (1) 1.jpg]]
![[Photo Oct 30 2024, 9 32 04 AM 1.jpg]]
![[Photo Nov 03 2024, 6 07 34 PM 2.jpg]]
![[Photo Oct 28 2024, 8 30 19 PM.jpg]]
![[Photo Oct 25 2024, 9 26 00 PM.jpg]]
[[#Sprint V - Venusaur]] - back to top