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

<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