-
Simulator for display
10/06/2021 at 03:20 • 0 commentsFirst off, apologies for the lack of updates, I've been making slow but steady progress on the display when I can find the time.
The major updates so far have been developing out a Bluetooth messaging scheme for control of the display, inputs, and retrieving data from it (stuff like measured RPM, and the RTC time). I've also developed a python shell app that can be used to connect to the display and sends these Bluetooth commands.
I now want to focus on programming in games and animations, but I've found the the slow compile/upload times have made it difficult to stay motivated, as they make debugging a very painful process. In light of the problem, I've recent been learning OpenGL, and have been able to make a basic simulator for the display that I can test my code against before flashing it to the actual display. Hopefully this will make development go much smoother from now on.
Video of physical display and simulator running same code:
-
LED Current Measurments
07/02/2019 at 20:17 • 0 commentsJust did some testing on the amount of current drawn from the LEDs. In my project I'm running the APA102's at 3.3V which is technically out of spec according to their datasheet, but they seem to still work fine.
I did my testing with a set of 8 LEDs (1 blade), and I saw that:
- Each LED draws about 20mA at full brightness (white)
- At half brightness (white) each LED draws about 10mA, so the current draw seems to be linearly related to the brightness value
- With all the LEDs turned off there's still about a 7mA current draw, which means each LED consumes about a 1mA statically
-
Updated Control Board
07/02/2019 at 20:01 • 3 commentsThe main control board was updated with the following hardware:
- HM-11 Bluetooth Module: Will allow for control and interfacing with display while it's spinning
- IR Led Driver Circuitry: The hall effect trigger signal is now also fed into an inverting buffer which drives an IR LED. This LED is oriented such that it shines on a receiver circuit (consisting of an array of phototransistors) on the stationary base. This setup creates an optocouple and allows me to transmit the hall effect trigger signal from the rotating control board to the stationary motor control circuitry. As the motor I'm using doesn't have an encoder, this signal will allow me to adaptively control the motor speed.
- Additional Bluetooth Status LEDS: An LED for the bluetooth connection status, and one connected to the bluetooth TX line make it easier to see what's going on with the bluetooth module, and also add a little bit of flair to the board.
The boards were fabricated using OSH park, and I had a stencil made through OSH Stencils. This was my first time using a stencil but aside from some minor solder bridges between the microcontroller pins, everything came out fine, and I found the experience to be much easier than placing the solder paste on each pad by hand.
I feel it's worth noting that I incorporate the receiving circuitry for the inductive coils onto the control board itself, instead of just mounting the coil's PCB. This involves desoldering the components from the coil's PCB and resoldering them onto my board. Which is definitely a less than ideal situation. I would love to instead develop my own inductive power transmission circuit as to not have to rely on these modules, but my previous attempts didn't pan out. If anyone has any comments or advice on this matter, I'd very much appreciate it.
-
Getting back to work
06/07/2019 at 19:48 • 0 commentsGetting back to work on this project after a very long break. Major issues left that I want to address are:
- Adding control method to interact with display while it's running
- Description: Currently the only way of interacting with the display is to flash the firmware, there is no way of interacting with it while it is running. Addressing this issue allows for interactivity with the display, and opens the possibility for simple applications or games to run on the display.
- Planned Fixes: Update control board to integrate HM-11 bluetooth module, and develop simple android application which can send data to display
- Address screen jitter issue
- Description: In it's current state, the image that the display creates does not always remain stable, it will commonly will jump back and forth harshly by a few degrees. I believe the underlying cause of this issue has to do with the timing of the timer interrupt that's responsible for pushing out the LED data, and the hall effect trigger interrupt which syncs the display.
- Planned Fixes:
- Implement closed loop speed control for the motor. Current the motor speed is just controlled manually via a potentiometer. I plan on adding additional hardware to the control board which will allow me to send the hall effect trigger to motor control microcontroller and be used for speed control.
- Improve the efficiency of pushing out the LED data to decrease the time the processor spends in the timer interrupts. I've observed that the SPI transfers my code is doing isn't as fast as the hardware allows, ideally I would like to push the LED data out via DMA SPI transfers instead.
- Adding control method to interact with display while it's running