CBA Podcast

CBA Podcast

By Michai RamakersTechnology
Download on the App Store

CBA Podcast episodes

  • episode 35: home sensors, disco LED hack and airplanes

    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:

    • push sensordata to cloud for visualisation and retrieval:
      • simple (free, up to 10 sensors, 1 datapoint/minute, 1 month history):
        • https://io.adafruit.com/
        • https://pushdata.io/
        • https://thingspeak.com/
      • more advanced, for sensors and actuators, with more complex config:
        • https://www.home-assistant.io/
    • Maker Faire Ruhr (Dortmund, Germany), 23 and 24 March
    • RetroChallenge 2019/03

    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.)

    20 min
  • episode 34: Rust, coroutines and cohosting

    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:

    • Rust programming language:
      • Discover the world of microcontrollers through Rust!
      • The Embedded Rust Book
      • LLVM Intermediate representation
    • Coroutines / protothreads:
      • Coroutines and simpler protothreads for building stackless cooperative tasks
      • Protothreads under the hood: Duff's device or GCC's computed goto
      • convoluted example: 6502 asm + Tcl = protothreads
    • short video of VGA generator board in action
    • RetroChallenge 2019/03 (whole month of March) is open
    • Maker Faire Ruhr (DASA, Dortmund, DE): 23+24 March
    • HCC!retro meeting (Bilthoven, NL): 16 March

    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.

    21 min
  • episode 33: new year's resolutions, SD-card interfacing and programming-meeting

    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:

    12 min
  • episode 32: a lying oscilloscope, TV repair attitude and VGA generation

    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:

    • EEVblog forum post on oscilloscope overdrive recovery
    • video 1, video 2 and video 3 of my VGA generator board
    • an older QuickStart page I made about using the NetPBM family of human-writable bitmap formats
    • the GLOW festival (light-themed, annual, Eindhoven, NL)
    • Awesome Space retro place (Utrecht, NL)
    • HCC Retro interessegroep / division (Bilthoven, NL)
    • HCC Robotica interessegroep / division (page in Dutch, Amersfoort, NL)
    • RobotMC.be robot-related group (page in Dutch, Sint-Katelijne-Waver, BE)

    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:

    19 min
  • episode 31: one year anniversary, RC2018/09 results, FPGA and Forth

    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.

    • RetroChallenge 2018/09 contestants and final results
    • Hackalot hackspace (.nl, text in Dutch)
    • iCE40 FPGA:
      • Lattice iCEstick USB FPGA devboard (iCE40HX1K)
      • Yosys RTL synthesis tool for Xilinx 7 and Lattice iCE40
      • Arachne-PNR place & route tool for Lattice iCE40
      • IceStorm bitstream manipulation tools for Lattice iCE40
    • iCE40 FPGA & Forth:
      • Swapforth for the J1a CPU and other platforms
      • Swapforth explicitly for the J1a CPU
      • Swapforth reference targeted at iCEstick, including memory map and peripheral access
    • Forth:
      • Gforth manual (HTML) or in PDF format - EXCELLENT
      • Thinking Forth book by Leo Brodie
      • Starting Forth by Leo Brodie (PDF), or in HTML format
      • Programming Forth by Stephen Pelc
    • HCC Retro division (in Dutch) - seems a bit outdated perhaps

    Nullmodem hack using homebrew module:

    Lame VGA image:

    Fancy VGA adapter:

    22 min
  • episode 30: social stuff, Ruby and a USB logic analyser

    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:

    • HCC Retro division meetings in Bilthoven, NL (page in Dutch)
    • Bonami SpelComputer Museum in Zwolle, NL (page in Dutch)
    • RetroChallenge, and my entry for that
    • Rubylearning.com: a readable Ruby tutorial
    • Ruby-doc.org core API reference
    • Open Bench Logic Sniffer USB logic analyser
    • Rigol DS6000-DK demo board for testing scopes/analysers
    • PulseView GUI for this and other capture-devices (manual)
    • Trotec PAGS 10-125 angle grinder (roarrrrrrr!!!)

    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):

    18 min
  • episode 29: feedback, cleaning PCBs, scripting again

    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:

    • RetroChallenge 2018/09
    • Electrolube SWAS flux-cleaner
    • small Aoyue 9050 ultrasonic cleaner
    • a video about the Qibec CPU LOL-edition
    • HCC Retro division meeting: 22 September, Bilthoven (NL)
    • Maker Faire Eindhoven (NL), 29-30 September
    • The Overkill festival, Enschede (NL) - when..? Add a date plz.
    13 min
  • episode 28: EMFcamp review, mini-CPU and more PCB-fail

    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:

    • Electromagnetic Field camp (pics/videos available from link somewhere on that page)
    • RetroChallenge September 2018 and my entry for that
    • HCC (Hobby Computer Club), Retro division

    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):

    14 min
  • episode 27: new TS100-tip, MP3-player innards and controlling a WS2811 LED-strip

    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:

    • Miniware TS100 soldering iron and included TS-B2 conical tip vs nicer TS-C4 tip
    • WS2811 datasheet @ Adafruit

    My hacked driver (ATmega164):

    15 min
  • episode 26: DIN-rail prototyping, coffee-machine revisited and another zap

    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.

    14 min

About CBA Podcast

From the publisher's feed

A (mostly un-cohosted) podcast where we talk about progress - or lack thereof - of hobby-projects, mostly related to software, electronics or mechanical engineering.