Enlightened-Otter is an Open-Source and OSHW work-light for hacker/maker events like the chaos communication congress. It is based upon a STM32F334 with its high resolution timer as dual boost converter. The main goal is to provide cordless, high CRI, high brightness, flicker-free illumination with a variable color temperature. This is achieved by using LEDs with high a CRI (>93, STW9Q14C) and the boost converter operating at a frequency of up to 850khz. The PCB also features USB-C (power profile 1) to deliver enough power to charge the 18650 type batteries as well as keep up operation of the boost converter.
Enlightened-Otter can be screwed onto an empty bottle of Mate (or similar), therefore serving with a very small footprint.
Typical Value | |
---|---|
Iout (per channel) | 0-500mA |
Vout (per channel) | 0-18.5V |
Pout (per channel) | 0-7.5W* |
Illuminance (3500k @400mA) | 1600lx* |
Illuminance (6500k @400mA) | 2000lx* |
Vin (USB) | 4.8-14V |
Iin (USB) | 3A |
Vbat | 3.8V |
Ibat (max) | 5A |
Boost frequency | 500khz** |
Iripple (@2.5kHz) | < 0.5mA |
* Needs to be measured again
** Needs to be evaluated again
Change Inc/defines.h to fit your desires, then build with
make clean all
and flash it via Ozone or st-utils
st-flash --reset write build/*.bin 0x8000000
Click to play
- Touch does not work when licked (tested by @NiklasFauth)
- Workaround: Do not lick PCB
- Src/ : Contains the source files to build the firmware
- Drivers/ : Contains the STM library files
- Inc/ : Contains the header files as well as the customization file for the firmare
- Tools/ : Contains python scripts to generate specific code
- HW/ : Contains the Schematic, Gerber and other Hawrdware files
- Images/ : Contains the images used in this repo
- 3D Files/ : Contains the 3D file to be printed as inlet as well as its source
- / : Contains other build files e.g. Makefile, linkerscript
PCB V2.1 is here, V2.11 is ordered.
Complete power redesign. HW is flashable, both boost converter work properly up to a current of ~500mA, current regulation works on both boost converters ( < +-0.5mA up to 500mA, regulation frequency is 2.5khz), RT9466 seems to do its job, does work properly on batteries, not on USB. Measuring thought the RT does not work, Power down does. LED outputs and Touch inputs work, has correct fault handling. Advanced User interface is also working, current and color can be set via touch input. Soft on/off works fine. Gamma correcture is applied. The whole PCB can be shut down by holding the power button.
HW regulates after boot while main loop is basically empty \o/
- measuring throught the RT does not work
- ADC1 wrong values -> investigate
- test esp8266
- implement esp8266
- visualize battery voltage -> moodlight LEDs
- Overtemp protection
- Find more to do's
- Implement moodlight LEDs
- touch slider is not super responsive -> investigate
- "Mobile handling"
- Touch is not that responsive
- Added filters to touch input
- Battery low alarm/turnoff -> is implemented, doesnt work, see RT9466 measuring
- everything is super slow when Itarget is 0.0 -> investigate
- UVP
- Port firmware to V2.1
- RT cannot be turned off or cannot charge batteries - investigate
- Optimize code
- make it less ugly
- now make it faster
- Test I2C - broken?
- writing works, reading is buggy, switch to dma
- implemented DMA
- Receiving data does not work properly, data is present but not written into the variable
- switched msb and lsb -.-
- rewrite gamma correction
- use old one, but interpolate between points
- didnt work properly, will do later
- Test it
- use old one, but interpolate between points
- find MPP
- is at ~500khz
- Fix regulator above 180mA
- is flickering quite alot above 180mA
- Rewrite regulation, seems to be flickering
- was gamma correction causing that problem
- HW
- See HW/README.md
- Make user Interface more responsive
- Order new PCB (V1.1)
- 3D Design
- get rid of flicker at 0.5-2.5mA
- temperature calculation
- get rid of global variables
- moved them into structs
- make the code more Timer/Interrupt based
- HRTIM
- HRTIM FLT
- ADC
- TSC
- I2C/UART
- Regulator
- UI
- gamma correction
- write tool to generate gamma correction curve
- Implement it
- Test/debug it
- Fix the HRTIM FLT1 line
- Test Injected ADC
- ADC tested and seems to work just fine
- Add moving average filter to smooth out ADC values
- Add JEOC Interrupt
- current calculation
- Fix/write TSC controller
- Add second TSC bank
- Make it interrupt based
- write code
- Test that
- Fix I2C timing/Interrupt issue
- Get HRTIM to run
- Get the LED's to light up
- Write regulator
- Write simple, working I regulator
- Make it cycle time independent
- Make regulator interrupt based
- Write a better PI regulator
- Basic TSC,UART,DAC,COMP,I2C and GPIO functionality
- Write the user interface
- Make it usable
- Readout of touchslider
- Be an otter
- PCB does not burn