code and software projects

pretty much everything i do has been electronic or had electronics and code buried within it forever, but not much of it has made it to the intertubes. it should be no surprise that most of this is now code, and electronics to support that code. (since the world remains firmly analog there remains analog electronics, mostly as interface to code.) everything i do is embedded, no graphics, no commodity audio, no social media, etc.

roadster code

the rambler roadster has four computer in/under the instrument panel. they are all peers in a stateless, redundant, IPC (inter-processor communication) and realtime environment. the networking is non-heirarchical and cooperative and multi-tasking is cooperative and single-threaded (meaning that it is easily debugged and performance is great). the boxen are, in order of physical visibility:

the code in all computers is structured identically (and quite intentionally). i'm currently attempting to document the methodology, but it's tedious and i don't know if anyone cares. the multi-tasking strategy is strongly implied by Casey Reas/Ben Fry's Wiring model (though i haven't followed it in detail to see how it might have diverged). if it can be summed up in one sentence (unlikely) my fastCode strategy is code that never blocks. each task loop (as i call them) has a setup() method, called one time, a loop() method, called repeatedly and forever as rapidly as possible (usually 1000 to 10,000 times/second) and (only!) two other public methods, sendMessage() and receiveMessage(). this is event loop programming taken to its logical extreme. it is very simple.

my code, sans explanation, is on my github page. this code runs on Arduino Mega 2560 CPUs with my own custom but fairly straightforward electronics. the four roadster repositories require the roadster-specific library and the more general SR_libraries libraries, also on github. the latter contains the fairly simple timer and other functions that this coding strategy relies on. again it's simple, not complex.

i've begun the process of documenting the closed-loop electronic cooling system.

how i write fast code

this is a placeholder page for a writing project tentatively titled fastCode. i've written a lot of very high performance Arduino code including radio networking protocols that use a dirt-cheap 2.4GHz radio module.

all of my code uses a fairly straightforward, rigorous model of event loop programming.

these links are old and not useful.