Applied Procrastination | Improving The Worlds Largest Open-Source Ferrofluid Display @AppliedProcrastination | Uploaded August 2021 | Updated October 2024, 3 hours ago.
If you’ve followed us for a while, you know that displaying ferrofluid vertically comes with challenges.
To counteract gravity, the electromagnets must be able to change how much force they apply on the ferrofluid - a problem we can solve with pulse width modulation. Previously we’ve implemented PWM in software, which is seriously ineffective. We’ve already made a whole video on how we optimized this to work at all ( youtube.com/watch?v=ZXVIQhwBu1w ).
The main idea of our new PCB design is to move PWM away from the microcontroller, simplifying the code a ton. We achieve this by abusing LED drivers. LED drivers are a type of ICs that typically aren't meant to provide any logic-signals and are not rated to sink enough current for an electromagnet to turn on (each channel can typically sink around 20mA, where closer to 200mA is necessary for an electromagnet (rough numbers)). The only LED driver we found that could satisfy our needs was PCA9685. It can be set up in a totem pole configuration, which allows us to use it more as a GPIO expander with PWM capabilities than as an LED driver. This means we can daisy-chain the PCA9685 with a ULN2803 Darlington Transistor array – which, in turn, has the capacity to sink enough current for the magnets.
--------------
Twitter: twitter.com/AppliedProc
Facebook: facebook.com/AppliedProc
Instagram: instagram.com/appliedprocrastination
--------------
Open Source files and project details:
Code:
Github repos:
github.com/AppliedProcrastination/FerroFetchFirmware
github.com/appliedprocrastination/AprocAnimation
github.com/appliedprocrastination/MagnetControllerV2-library
PCB files & more details:
Github repo: github.com/appliedprocrastination/FetchCADFiles
Instructables: instructables.com/Mesmerizing-Ferrofluid-Display-Silently-Controlled
Hackaday.io: hackaday.io/project/167056-fetch-a-ferrofluid-display
Hackster.io: hackster.io/AppliedProc/fetch-a-ferrofluid-display-ca8557
Arduino project hub: create.arduino.cc/projecthub/AppliedProc/fetch-a-ferrofluid-display-ca8557
--------------
Credits:
Intro/Theme song:
- Nicklas Myhre: instagram.com/myhre.nicklas
If you’ve followed us for a while, you know that displaying ferrofluid vertically comes with challenges.
To counteract gravity, the electromagnets must be able to change how much force they apply on the ferrofluid - a problem we can solve with pulse width modulation. Previously we’ve implemented PWM in software, which is seriously ineffective. We’ve already made a whole video on how we optimized this to work at all ( youtube.com/watch?v=ZXVIQhwBu1w ).
The main idea of our new PCB design is to move PWM away from the microcontroller, simplifying the code a ton. We achieve this by abusing LED drivers. LED drivers are a type of ICs that typically aren't meant to provide any logic-signals and are not rated to sink enough current for an electromagnet to turn on (each channel can typically sink around 20mA, where closer to 200mA is necessary for an electromagnet (rough numbers)). The only LED driver we found that could satisfy our needs was PCA9685. It can be set up in a totem pole configuration, which allows us to use it more as a GPIO expander with PWM capabilities than as an LED driver. This means we can daisy-chain the PCA9685 with a ULN2803 Darlington Transistor array – which, in turn, has the capacity to sink enough current for the magnets.
--------------
Twitter: twitter.com/AppliedProc
Facebook: facebook.com/AppliedProc
Instagram: instagram.com/appliedprocrastination
--------------
Open Source files and project details:
Code:
Github repos:
github.com/AppliedProcrastination/FerroFetchFirmware
github.com/appliedprocrastination/AprocAnimation
github.com/appliedprocrastination/MagnetControllerV2-library
PCB files & more details:
Github repo: github.com/appliedprocrastination/FetchCADFiles
Instructables: instructables.com/Mesmerizing-Ferrofluid-Display-Silently-Controlled
Hackaday.io: hackaday.io/project/167056-fetch-a-ferrofluid-display
Hackster.io: hackster.io/AppliedProc/fetch-a-ferrofluid-display-ca8557
Arduino project hub: create.arduino.cc/projecthub/AppliedProc/fetch-a-ferrofluid-display-ca8557
--------------
Credits:
Intro/Theme song:
- Nicklas Myhre: instagram.com/myhre.nicklas