TODO LIST¶
Rants¶
Magic Numbers¶
In the same way that the terms “hats” and “capes” have replaced ‘daughter boards’ by the Arduino Generation, “Magic Numbers” have replaced “hex values” for MCU Bitfield configurations.
Demo Programs¶
More complex demo’s¶
A blinky with pb switches to increase or decrease the blink period. This means some thought must be invested in how it will all work as a non-interrupt switch press would be missed my a blocking delay and so on.
New Doc Projects Planned¶
Perl/GTK sqlite Bitfield browser
QSPI memory chip library for temperature logger
LTC2450 16bit Delta Sigma ADC demo
Resistance solderer and boxcutter pcb prot design
Demo my home etched pcb methods
OLED display driver
Accelerometer
Dual stepper driver
H-Bridge analog servo driver with quadrature encoder and PWM
300C soldering heater controller using a NTC thermistor, perhaps with a lmt-01 to calibrate at room temp and 100 C ?
Epson RTC module demo
Barometer and temp sensor display
Power measuring using Ti patents and a FPGA
Etching Boards¶
If you are using FeCl3 or HCl and your wastewater goes to a sewage treatment plant, neutralize with NaOH and flush it down the loo. Only the copper ions are problematic, but in the sewer your brew will thinned down to a homeopathic level – well below the amount of copper that permanently leaks from plumbing and roofs. Of course it is better to not dissolve copper with etchant in the first place, so use wide traces and the “copper pour/fill” function of your PCB software. If you design for minimum spacing, you can etch several m² with 1kg FeCl3.
Recently I replaced the Proxxon drill press with a cheap CNC toy, probably my best investment in tools ever. Regarding double sided PCBs: use one side as an exclusive ground layer, without etching. Chamfer the holes that have no ground connection, solder grounded component leads on both sides. You may also use tiny copper rivets (availabe at the usual chinese sources) as vias.
Comparisons planned¶
Small Open Source Forths only:
Flashforth
Amforth
Island PCB LMT-01 demoing timer/interupt non blocking delay¶
Documentation Fixes TBD¶
redo https://mecrisp-stellaris-folkdoc.sourceforge.io/common.html#calltrace-txt point out the @ significance and its XT
redo https://mecrisp-stellaris-folkdoc.sourceforge.io/flowcharting.html?highlight=graphviz replace this flowchart with a useful blinky one
<crest> hooks are variables containing an execution token (aka a function pointer)
<crest> find is just : find ( addr len -- ) find-hook @ execute ;
the variable find-hook is initalized with a pointer to core_find
<crest> @ -----------------------------------------------------------------------------
<crest> Wortbirne Flag_visible, "find"
<crest> find: @ ( address length -- Code-Adresse Flags )
<crest> @ -----------------------------------------------------------------------------
<crest> ldr r0, =hook_find
<crest> ldr r0, [r0]
<crest> mov pc, r0
crest> the "magic" happens in core_find
Completed Tasks¶
STM32F103¶
07may2020: create new bitfield type combining both CNF and MODE for easy GPIO config. Perhaps change the underlying SVD to combine them ?
DONE 19 Feb 2021
Accurate 1 uS Blocking Delay¶
25 Feb 2021: Use a timer with a pin output so the delay can be verified on the scope. Perhaps port to assembly from forth and add to kernel ?
At 48 MHz, there are only 48 cycles to use every 1us, so a 1us blocking delay doesnt waste much cpu.
Done
Quadrature rotary switch¶
DONE! 4 Aug 2021; https://mecrisp-stellaris-folkdoc.sourceforge.io/quadrature-rotary-switch.html