
Sign up to save your podcasts
Or


After 5 weeks or so, we're finally back! You'd think this episode is filled with 5 weeks worth of exciting techie stuff, but don't get your hopes up yet. Because it's not.
Domen joins in to talk about his experiments with home automation, and a sowing exhibition lacking electronics and software. Furthermore, we talk about a disco LED box hack, and briefly list the difference between WS2812 and WS2813 intelligent LED.
Relevant links:
Screenshot of temperature monitoring in action (from https://io.adafruit.com/):
Some pics of the disco LED box hack (take out innards, glue WS2812 strip into a matrix shape, and insert at back wall of box):
(video would be nice, but is not yet done - remember, we're lazy around here.)
Finally, the "we" in announcements doesn't just mean the royal we / majestic plural, but there's an actual co-host! Introduction is in the audio contents, so I guess you'll just have to listen.
We talk about first contact with the Rust programming language, coroutines for implementing lightweight tasks/threads, various smaller topics and some upcoming events.
Links:
Here's a code snippet hopefully illustrating what I called "coroutines" and should probably have been called "protothreads".
Function "print_2nd_word" is a protothread. It can be called repeatedly passing a character each time. Only the 2nd word is printed, one character at a time.
void print_2nd_word( char c ) { CR_BEGIN; while ( c != ' ' ) CR_YIELD; CR_YIELD; // skip space while ( c != ' ' ) { putchar( c ); CR_YIELD; } }To do this, the function keeps track of where it exited last time it was called, using a number of macros:
#define CR_BEGIN static void *jmp = &&lbl_crstart; goto *jmp; lbl_crstart: ( void )jmp; #define CR_YIELD do { jmp = &&GLUE( lbl, __LINE__ ); return; GLUE( lbl, __LINE__ ): ( void )jmp; } while ( 0 )"CR_BEGIN" is basically setup-code.
"CR_YIELD" is the simplest primitive in this context, and does: exit the protothread function, and resume at this point next time it's called.
More advanced macros - e.g. to repeatedly wait for an event - can be built on top of, or in the same way as "CR_YIELD".
Note that these macros use GCC's "computed gotos" (i.e. take the address of a C label, and jump to that address using "goto"). Here's an implementation of both macros using ANSI C:
#define CR_BEGIN static int cr_st = 0; switch( cr_st ) { case 0: ; #define CR_YIELD do { cr_st = __LINE__; return; case __LINE__: ; } while( 0 ) #define CR_END CR_YIELD; }(In this case, an additional macro "CR_END" is necessary as glue to conform to C syntax/nesting.)
Funfact: it's a bit of a PITA to add sourcecode to this page.
HNY2019! Not a whole lot of stuff to talk about, so this is quite a short episode.
You're welcome.
After some fluffy and unrelated list of New Year's Resolutions, we talk about progress for a decorative VGA generator device w.r.t. mechanics and software.
I had never been to the monthly HCC!programmeren meeting, so let's talk a bit about that a bit as well, and about ways to stimulate collaboration within a group of likeminded people.
Bonus Funfact: I tried to destroy the Bluetooth interface of a headphone I bought last time, and now I'm happy I failed - BT is perhaps nice after all.
VGA generator device with "enclosure", front and back:
Nicely aligned batch of these:
Apologies for the apparently low volume and low tone of voice - I think someone might have been tired.
This episode discusses ongoing PCB failures, oscilloscope overdrive recovery, a BT-enabled headphone that would just keep connecting, some local events (GLOW, Awesome Space repair day, and the HCC Retro quarterly meeting). Finally, an experiment gone out of control resulted in a small PCB for generating colour effects for 4 connected VGA monitors. Ruby is used as "effect description language".
Links:
If interested, here's basically how one would define one out of many possible colour-effects for the VGA generator board, executed in parallel:
("Compiling" all effects on a timeline will result in a list of (R,G,B) tuples for each 60 Hz frame for each of the 4 monitors connected to the PCB.)
Connector-fail:
VGA generator board rendering:
Actual assembled PCB:
Yay, after one year we're still polluting the virtual airwaves, so let's review the last year of podcasting (only takes about 8 minutes - don't cry).
RetroChallenge RC2018/09 has finished, so we take a look at its winners and honourable mentions. Minor topics include a Hackalot visit, USB nullmodem hack, breadboard fail and fried scope probe clip. I briefly tried to generate a VGA image from software, but why not do it using an FPGA next time?
Following convo deals with my initial experience with the Lattice ICEstick (iCE40HX1K) FPGA devboard, supported by a completely open toolchain (Yosys, Arachne-PNR, IceStorm). The J1(a) CPU is a small Forth-aimed CPU in Verilog, which leads yours truly into the weird and wonderful world of the Forth programming language.
Nullmodem hack using homebrew module:
Lame VGA image:
Fancy VGA adapter:
Lots of little topics this time, woven together by clever commentary. That's CBA Podcast for you. In the spotlight this time: a shout-out to the Quality Team behind this podcast, impressions from the recent Eindhoven Maker Faire, HCC Retro and Bonami Homecomputer visits, a look back at the current (finished?) RetroChallenge, how to learn Ruby, a DIY portable voltage-reference, the Open Bench Logic Sniffer USB logic analyser, and fun with my angle grinder.
Relevant links to the above:
Small DIY USB dual voltage reference(tm) before and after blobbing it with hot glue:
...and corresponding extremely complex schematic:
Open Bench Logic Sniffer threshold-voltages for all buffered inputs (0..16):
You can, of course, send feedback to the show using the email-adress listed at the top of the page. Today's episode briefly touches on PCB-cleaning, meta- and actual work for the RetroChallenge 2018/09, scripting-languages (again - a never-ending story), and upcoming local events.
Relevant links:
Just back from the ElectroMagnetic Fields (EMF) camp in the UK, so there's a little review of that. Furthermore, we talk about a LED-strip decoration, badge-sized mini-version of an 1-bit CPU, PCB-failures (and successes!), the upcoming RetroChallenge and my entry for that, and 2 small talks I can now get nervous about.
Links and shownotes:
LED-strip decoration for EMFcamp and driver:
LED-strip in action (sorry, no video):
Minimal version of Qibec 1-bit CPU (now with 1-bit LOL-addressbus too):
Recorded from my cellphone + external mic this time, so feedback w.r.t. sound-quality (or anything else!) is welcome, as usual.
This episode is about getting a new solder-iron tip for the TS100 iron, progress for hand-milling PCB's, a look inside a small MP3-player, and looking at how WS281x works and how to control it.
Links:
My hacked driver (ATmega164):
To counter the evil midsummer heat, we bring you another cool and refreshing episode. Topics include a 45 Vdc SMD LED, DIN-rail prototyping, reconsidering the workings of a previously disassembled coffee-machine, getting zapped by a vintage coffee-grinder, and an unused yet brand new angle-grinder.
Also, I am currently too lazy to make show-notes.
From the publisher's feed