7seg/fw
2018-01-05 11:39:20 +01:00
..
.gitignore Now with working source extraction from firmware 2017-09-01 20:52:34 +02:00
base.c working commit 2017-08-15 14:34:34 +02:00
bus_addr.c Now with working source extraction from firmware 2017-09-01 20:52:34 +02:00
crc.c Add missing files 2017-09-01 20:32:15 +02:00
crc.py Add missing files 2017-09-01 20:32:15 +02:00
gen_cmsis_exports.py Add cmsis export generator 2017-08-23 10:50:43 +02:00
mac.c Add some documentation 2018-01-05 11:39:20 +01:00
mac.h Add some documentation 2018-01-05 11:39:20 +01:00
main.c Add some documentation 2018-01-05 11:39:20 +01:00
Makefile Add discovery and addressing mechanism 2017-12-10 15:59:56 +01:00
mapparse.py fw working commit 2017-06-10 19:14:18 +02:00
mapvis.py fw working commit 2017-06-10 19:14:18 +02:00
MatrixTransform.ipynb Add missing files 2017-09-01 20:32:15 +02:00
measure_transpose_performance.gdb Benchmark code 2017-08-15 15:57:33 +02:00
openocd.cfg Add missing firmware build files 2017-07-20 16:06:33 +02:00
profile.gdb Add profiling script 2017-08-22 20:13:10 +02:00
profile.sh Add profiling script 2017-08-22 20:13:10 +02:00
README.rst Add some documentation 2018-01-05 11:39:20 +01:00
semihosting.c fw working commit 2017-06-10 19:14:18 +02:00
startup_stm32f030x6.s Add missing firmware build files 2017-07-20 16:06:33 +02:00
stm32_flash.ld Now with working source extraction from firmware 2017-09-01 20:52:34 +02:00
system_stm32f0xx.c fw working commit 2017-06-10 19:14:18 +02:00
test.py Add some documentation 2018-01-05 11:39:20 +01:00
transpose.c Add some documentation 2018-01-05 11:39:20 +01:00
transpose.h Add some documentation 2018-01-05 11:39:20 +01:00
transpose_main.c Add transpose test 2017-08-23 10:50:16 +02:00

Note on the LED modulation

To control LED brightness, this project uses a modulation technique known as "Binary Code Modulation" (BCM) or "Bit Angle Modulation" (BAM). The base idea is to clock out all outputs in parallel bit-by-bit, then modulate this with a precisely timed output enable signal. In contrast to PWM this allows almost arbitrarily high channel counts and configurable modulation resolution at low CPU overhead and high frame rates. In this project that is needed due to the large number of channels (32) and the medium oversampling rate (1:8).

A good article explaining BCM can be found on batsocks.co.uk and a nice video explaining has been published by mikeselectricstuff. A possible optimization for even smoother brightness fading (probably mostly in unmultiplexed applications) has been discussed in the forums at picbasic.co.uk.