Skip to content

Project Development

In this page I've logged my changing project ideas and the tests, experiments and developments that happened on each week. It's a lot of work!

Week 1

I started generating project ideas, but none of them fully convinced me.

Week 2

I went for two possible final projects:

  1. A ceiling lamp in the style of architect desk lamps that moves in response to touch.

  2. A kinetic sculpture based on a parametric trellis, inspired by flip-dot displays.

By the end of the week, I'm leaning towards the parametric trellis.

Week 3,4,5

I concentrated on playing around, learning and having fun. I created a Voronoi photo stand, a trypophobiac-unsafe face mask, a miniature brass sculpture, and a parametric lampshade.

Week 6

I had an epiphany while riding in this months' Massa Critica. I decided to go for one main project and a secondary project to monkey around.

Progress:

Bonobo lights

The Contraption

One of the first things I need is to bend (brass) wire exactly in right angles. I'm looking at how jewellers do it and it's quite imprecise.

RC plane amateurs also do this a lot. They seem to tendo to do it manually, with pliers.

I think the most cost- and effort-effective way to do this is making a jig with a wood offcut and nails.

I made some test wire sculpture/circuits with .6mm hollow brass tubes we had lying around:

Functional circuit

A mere sculpture

I bought some brass and copper wire from Amazon. I'm not sure the brass is actual brass.

I bought brass in 1.6mm width for mechanisms and 0.6mm (~AWG22) for circuits. I chose 0.6mm because it fits into a breadboard and 1.6mm because it's close to the 1.75mm blank PCBs that we have, which I can machine into gears, and I think the gears and wires being a similar dimension can be aesthetically pleasing.

Week 07

Created my first spur gears using the Roland!

First spur gears

Prior Art / Useful references

Week 08

Got brass rods 1.6mm diameter and brass wire AWG22 (0.6mm), bent some metal.

Week 09

Made a little crankshaft.

Created my test LED multiplexer!

Week 10

Tested hole widths.

Made a full set of gears.

Week 11

Didn't progress much; I concentrated on getting up to date with group work and documentation.

Week 12

Made a new schematic for a 24-LED RGB multiplexer that should go into the final Bonobo lights.

It will have 6 "rows" (2xRGB) and 12 "columns".

The RGB LEDs that we have have a forward voltage of

  • Red: 2V
  • Green: 3.2V
  • Blue: 3.2v

All of them are rated for 20mA current, which is more than a single pin in the SAMD21 can source/sink. I want to drive them hard because they will have a max duty cycle of 1/6th and very high refresh rate, so I should be able in principle to overdrive them a bit. They also have an "absoulute maximum rating" per the datasheet of 200/100/100 mA.

  • Overdriving LEDs answer in StackExchange: "an in-house rule of thumb I follow is to derate the average power rating of the LED by 10% for every 100% increase of drive current over nominal"; "With 20 microsecond pulses, the 20 mA LED survives approximately 17.5 times its nominal current rating before destruction". It seems that, with very short pulses and alternating LEDs in different packages, I might get away with driving the LEDs quite hard: 10x even.

TODO test one RGB LED to destruction with overdrive at 100mA: 20

I think therefore I'll have to drive them with 5V

R: 100mA at 5V

3V resistor drop -> R = V / I = 3/.1 = 30Ω. The next closest value is 33Ω

G/B: 100mA at 5V:

1.8V resistor drop -> R = V / I = 1.8/.1 = 18Ω. The next closest value is 20Ω

I could be more efficient if I added voltage regulators to the red channels: it would same some energy

R: 100mA at 3.3V 1.3V resistor drop -> R = V / I = 1.3/.1 = 13Ω. The next closest value is 20Ω

Week 13

I made the first Proof of Concept for the Bonobo lights: an LED that lights up in a fixed position in the wheel of the bicycle. It's documented in the section for week 11.

Week 14

I mounted the Bonobo POC in an actual bike. It worked!

I started considering using addressable LEDs like these for the MVP.

I presented in the final project review and Guillem Camprodon pointed me to LadyAda's SpokePOV project. Also, someone asked whether the final version was going to be visible from both sides and suggested using internal reflection in acrylic. I didn't know it at the time but that question ended up setting me on the path to finding the reflecting solution, which I'm quite proud of.

MVP design

The MVP is very likely going to be the final version: there likely wont be further iterations. I have ideas about how to evolve it but there's not a lot of time left.

The final Bonobo lights is modular. It can work in standalone mode or in coordinated mode.

Standalone mode: basically what I have now, only with an APA102-based LED strip and a new, redesigned board. This requires only a spoke unit (and battery).

Coordinated mode: several spoke units are hooked up to a single hub unit that has more processing power and wireless capabilities, and presents a smartphone-accesible interface.

Spoke unit

Features and design decisions: - Connector for an APA102-style RGB strip: up to 32 RGB LEDs. - Power? These strips are 5V -> for now, powerbank - Max current draw is theoretically 60mA when full RGB: potentially a single spoke unit could draw 1920mA! - Huge capacitor to smooth the peaks out -> TODO calculate required capacitance. See this and this. - Processor? - SAMD21 or SAMD11? -> SAMD11 has 16KB flash and 4KB RAM. Sounds like too little. I think it doesn't make sense to hamstring myself before knowing my requirements. SAMD21 it is. - Pins? -> Using 2 SERCOM hardware SPI connections: one for connection to the strip, another one to the hub unit.

  • USB programmable
  • Integrated Hall effect sensor
  • How to make this regulable in height to be close enough to the magnet? -> Adai suggests making the magnet regulable rather than the Hall effect sensor.
  • Integrated status LED: TODO imitate the breakout module.
  • Accelerometer: for visual tachometer and fun effects
  • TODO check IMU
  • Logic level converter: see * Logic Level Shifters for Driving LED Strips
  • RGB Status LED: Communicate different statuses to the user.
  • Input from hub unit
  • Ready
  • etc

Future proofing: - Connection for data input from hub: SPI - which pins? SERCOM - What connector? - Connection for power from hub unit? - Do I need thicker gauge wire? - Switching Mechanism

https://learn.adafruit.com/using-atsamd21-sercom-to-add-more-spi-i2c-serial-ports?view=all https://learn.sparkfun.com/tutorials/apa102-addressable-led-hookup-guide/all

Fork unit

Magnet + attachment system.

Hub unit

  • ESP32S3-based
  • Powers the others?
  • Communication with the others?
  • SPI? High data rate, more pins
  • UART?
  • Presents phone-accessble interface.

Decisions to make

  • Charging capability: do I put it on the spoke, in the hub, or in both?
  • PowerBank
  • LiPo: 1cell + boost converter or 2cell plus buck converter?
  • I could use a 2-cell battery, which simplifies use, and an external charger like the one I have.
  • Level shifter?

Spirals

Sprint 1: 7-13rd May

Objective: working spoke unit electronics

Tasks: - Hardware design and production. - Test SMD Hall effect sensors - Do these LEDs work with 3.3V logic? - Update code for addressable LEDs. - At least a couple tests of mount.

Sprint 2: 14-20th May

Objective: Usable spoke unit

Tasks: - Design power pack solution - Design mount - One or two dynamic patterns

Sprint 3: 21-27th May

Objective: TBD. Hub unit?

Tasks: - Build mount - Splash proofing - etc TBD

Sprint 4: 28th May - 3rd June

Objective: System integration

Sprint 5: 4-9th June

Objective: prepare presentation and page

Tasks:

  • Reorg project planning and final project pages
  • Document
  • Record video at Massa Critica
  • Mount 1min video

Week 15

Board 03

I designed board 03! It's the heart of the spoke unit.

v0.2

This is the one that first got assembled. You can find the schematics here.

Board 03 v0.2

Errors / improvements for next version:

  • USB ground is not connected (Doh!)
  • IMU pads don't get cut, so they short out 5V and ground
  • There's one via for VDD near the IMU that doesn't really do anything.
  • The RGB status LED is connected to ground but should be connected to VDD_IN.
  • The RGB status LED is way too bright with 22R for the red channel. I have 10R for the green and blue and the blue is kind of ok. The green doesn't light up.
  • The SMD analog Hall effect sensor that I'm using is not very sensitive.

The FastLED library didn't work on a first try. Adafruit dotstar did, so I went with that, at least to begin. The result was a bit underwhelming, to be honest.

I therefore went back to FastLED and tried to dig in a little deeper. The details are in week 13, since it's related to SPI.

Week 16

I got a full-color version going!

Mounting system

I started designing the mounting system, since it's getting boring mounting and unmounting with packing tape haha.

Changes for v2

  • The reflecting wedge needs to be farther away from the strip, so that there's more space for the reflection. This means it won't be able to hold the strip in place.
  • Walls should be thicker -> 1.5mm should be enough.
  • Need to do something about delamination -> lean for printing?
  • Fix stuck clip issue -> place openings properly, as in the outer side rubber band clip.
  • Fix issue where the spoke crossing blocks mounting -> change hinge to inner side, make mounting clips non-contiguous.

Changes for v3

  • Try curved reflective surface
  • Reinforce problem areas
  • More compact design

Changes for v4

  • Curved tab side edges to prevent delamination
  • Simpler tab mechanism: no through holes
  • Lower alpha for the reflective surface
  • More distance between reflector and LEDs. -> retaining circles to keep LED strip in place.

Changes for v5

  • Reduced friction for the LED strip -> Slightly smaller distance for the retaining circles.

Angle testing

Tested the optimal angle for good side visibility with a test article:

Bonobo mount evolution

Tested printing the LED mount in oblique orientation. Comes out a bit too rigid and dirty and doesn't really fix the delamination issue.

First Road Test

I did my first test ride with the Bonobo Lights!!

Yay!

Weeks 17

I changed to more secure connectors.

I also decided to move to a new board for the spoke unit: board 04.

TODOs for v2

  • Hall sensor to PA03 -> What to do with blue LED?
  • Reduce Hall pilot resistance -> from 1000ohm to what? 200?
  • Decide what to do with blue LED

Next gen mounting system

  • Holds both LEDs and board
  • More resistant to delamination

v9

Switched to translucid PETG. Amazing! Looks cool and it's much more resistant to delamination.

Has holes for viewing the statusLEDs through the casing but doesn't really need them bcause it's translucid.

Missing hole for the sensor.

Stencil

Wanted to give it a cooler look. Decided to use a stencil to spray paint on it.

Tested the following fonts:

  • Fonts for the stencil:
  • Overspray
  • Learchitect
  • Stencilia
  • Bulletproof
  • Gunplay
  • Stencil 1935
  • A Angkatan Bersenjata
  • Legal Vandal

Used A Angkatan Bersenjata.

Cardboard: V1.5 P30 on Rayjet r400.

Looks great!

Issues overcome

  • Soldered the new APA102 strips in reverse orientation. Fixed.
  • The new TH Hall sensors I ordered have a refractory period that makes them useless for my application; used smd ones wired manually.
  • 324 Hall sensor
  • Pin 00 is not analog but it's connected to the Hall sensor in board 04 v1.
  • Routed Hall to blue LED (PA03) / left blue LED disconnected. In board v2 they will be in PA02 (Hall) and PA04, 03, 04, 05 (LEDR LEDG LEDB).

Week 18

Made several new patterns. Recorded video for the final presentation.

Week 19 and later

I started with the graphical user interface

Mount v11

  • Accommodates the production board.
  • More compact
  • Fewer transeversal beams for easier access
  • Retaining circle distance is perfect.

Mount v12

Changes for v12

  • Wider opening for cables
  • Sleeker shape.
  • longer tabs for better closing

ESP32 S3-based hub unit board

For my final project, I want to make several spoke units and control them through a single hub unit. This hub unit will:

Requirements

Required features: - Connect to up to 4 spoke units through I2C and instruct them what pattern to show - Show a phone interface through bluetooth or wifi. - SD card storage - Provide up to 1A @ 5V to each of the spoke units -> Integrated battery / charging capabilities?

Optional features - Transmit frames live for "video" display. - Reacts to sound!!

Design

Base MCU: ESP32S3

I'm going to try to use the Seeed Studio Xiao ESP32S3. It includes many of the features that I'd like to integrate like battery charge management, and it even has a microphone! It also comes with a camera, which I don't need, but the microphone might be cool for reacting to ambient sound. Although the wheels themselves might make too much noise for the ambient sound to be deteceted.

I suspect it will only charge 1 cell batteries. -> TODO investigate upregulating voltage. - This 2S Li Ion BMS is ultra cheap but I don't get how it connects to voltage to charge. - Maybe this charger module is what I need?

I've tried using , which has a ESP32 S3 reference design, which would be super convenient to adapt for my project. There are two problems though: the first is that I haven't used Flux before, so there'd be some learning curve. The second is that it has several components that we don't have available or that are too hard to solder by hand, and I don't know which ones to pick to substitute them. Here I see the value of the Fab component library in limiting the range of parts that novices like me have to consider when designing.

In the end, what I did is ask Tony and Susanna for the boards they made with the same chip, and then modify those in KiCAD using the reference design from Flux as, well, a reference.

Troubleshooting

Sending out Bonobo board for fabrication

I send a v2 (1.0) board 04 out for fabrication. It came out great!!

I soldered it with care.

And it did start

Inspiration

Cool stuff

  • Wintergatan
  • https://www.niklasroy.com/#menuTop https://www.instagram.com/royrobotiks/?hl=en https://www.youtube.com/niklasroy
  • https://danieldebruin.com/ https://www.instagram.com/daniel_de_bruin/?hl=en
  • https://www.youtube.com/@AmyMakesStuff/videos
    https://github.com/amymakesstuff/flexure-fun/blob/master/Flexure%20Lecture%202019%20Amy%20Makes%20Stuff.pdf

Amazing Fab Academy Final Projects

  • Nadie Bremer(Nova jigsaw puzzle): Nice idea, incredible implementation.

  • Elena Cardiel(Lux the smart lamp): Great design and implementation. It impressive how much the final result resembles the initial sketches.

  • Bo Heather Bowman(The Turtle Box): Fun idea, impressive execution scope even if the result is not super exciting.

  • Jason Goodman(BCam: digital magnetic field reader): Really cool project.

  • Wim Lanz(Clodio): Interesting, cool that it floats.

  • Kevin Cheng: He made a robot flexo lamp! Like the one I had in mind 😢.

  • Massimiliano d'Angelo (Lampbot): He did another robot arm lamp.

  • John Story's final project: Love the finish! Wood veneer composite 😍.

  • Clara Devanz (Radiant): Great concept, complex project, amazing execution.

References