Enlightened Otter Save

Enlighted-Otter is an Open-Source and OSHW work-light for hacker/maker events like the chaos communication congress, which can be screwed onto a club mate bottle.

Project README

Enlightened-Otter

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.

Specs

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

Building and flashing

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

Images V2.1

V2.1 Front V2.1 Back V2.1 Front V2.1 Back V2.1 Front V2.1 Back

Images V2.0

V2.0 Body

Images V1.1

Battery 1 Battery 2

Top View Side View Bottom View

Videos

Click to play

On a Bottle

Finished Prototype

Boost converter operation

Boost 1

TSC operation

TSC 1

LED brightness test

LED 1

Known Bugs

  • Touch does not work when licked (tested by @NiklasFauth)
    • Workaround: Do not lick PCB

Planning

Folder structure

  • 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

Current state:

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/

To do:

  • 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

Done:

  • 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
  • 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
Open Source Agenda is not affiliated with "Enlightened Otter" Project. README Source: Jana-Marie/Enlightened-Otter
Stars
34
Open Issues
0
Last Commit
4 years ago
License

Open Source Agenda Badge

Open Source Agenda Rating