Greek word of the year: meraki

I found this gem yesterday in a school cafeteria:

meraki [may-rah-kee] (adjective)

This is a word that modern Greeks often use to describe doing something with soul, creativity, or love — when you put “something of yourself” into what you’re doing, whatever it may be. Meraki is often used to describe cooking or preparing a meal, but it can also mean arranging a room, choosing decorations, or setting an elegant table.

Source: https://www.npr.org/templates/story/story.php?storyId=4457805

Piconomix FW Library featured on hackaday.com

I finally enjoyed my 15 minutes of fame when an article called “Arduino Gets a Command Line Interface” by Bryan Cockfield was published on Hackaday on 10 Nov 2018. I am extremely grateful for all of the kind words, comments, stars and GitHub repository forks that it generated. This open source project has been a work of love for more than a decade and it is great to get the feedback that people like it and that it matters. In the process I have learned to be a better internet citizen: the simple act of saying thanks or giving someone’s creation a good rating goes a very long way. Who says there’s no such thing as “free energy”? 🙂

Full disclosure. Did you see the movie “Field of Dreams” starring the great Kevin Costner? Particularly the quote: “build it and they will come”? I wish it worked like that, but in the real world it does not work out quite that way. There are a gazillion open source projects and products out there, all competing for your attention. I submitted a tip to Hackaday and it got accepted after it passed their stringent criteria. You need to let other people know about your project without “shilling” in the process.

As always, I hope you have a grand day!

Move from SourceForge to GitHub and Piconomix FW Library 0.7.0 released

After a cold dark winter sunny spring has arrived (in the southern hemisphere).

This is a major new release with a move from SourceForge to GitHub. Some highlights:

  • Complete redesign of peripheral driver APIs (GPIO, UART, SPI & I2C)
  • Complete overhaul of Doxygen documentation with section numbering added
  • Use of standard types (e.g. uint8_t, int16_t, bool, true, false, etc.)
  • Basic support for monochrome graphics
  • 3rd party libraries included (ChaN’s FatFs, STM32Cube)
  • Extensive support for Arduino Uno R3 (tutorials, examples, apps & documentation)
  • Architecture support for STM32L0
  • Vanilla Forum hosted at https://piconomix.com/forum

Included in the new release is a revamped CLI App (Un*x-like Command Line Interface) for the Arduino Uno R3 to experiment with GPIO, I2C, SPI and ADC:

 

Enjoy!

Pieter

Design Logic 2001 contest runner-up

Yep, that’s me, proud runner up in the Atmel Design Logic 2001 contest! It was a long, long time ago and the world was much, much smaller. Here is the link to the PALM III PDA winning entry.

Circuit Cellar issue 137 December 2001, page 36:

To put it in context, here are all three pages for prosperity:

Logging temperature with Maxim DS18B20 1-Wire sensor

My 12 year old son needed to manually log temperature for 12 hours as part of a school science assignment. I saw this as a great opportunity to demonstrate my incredible engineering skills assist him as a responsible and caring parent.

Yes I know, with an Arduino the job would probably be finished in 5 minutes flat, but where’s the fun in that?! Besides, I’m old-school and stubborn 🙂 I whipped out my ATmega328P  Scorpion Board and crafted a portable 1-Wire bit bang C module and DS18B20 driver (project download link).

Here is a screenshot of the CLI running on the board:

And here is the data graphed over 24 hours. The sensor was resting outside on a brick window sill, which explains why it does not reflect the actual ambient temperature well.

Test&debug your embedded C module with Excel and Visual Studio

For a while now I’ve had a mental itch that needed to be scratched and finally found some time to do something about it. I had a function called rtc_date_time_to_sec_since_y2k() to convert date&time to seconds since Y2K, but I did not have one in the reverse direction… until now 🙂

Here is the best solution that I could find, but I wanted something simpler that I understood well and it only needed to work from 2000 to 2099 (I’m a firm believer in the KISS principle).

First I used an Excel Spreadsheet to have a broad overview of the algorithm:

Finally I created a test project for my RTC C module in the free (as in beer) Visual Studio Community Edition 2017. It tests the whole space (every second from 2000-01-01 00:00:00 to 2099-12-31 23:59:59) and took only 10 minutes on an Intel Core i7-6700 CPU @ 3.40GHz. Running the same test on an 8-bit Atmel AVR @ 7.37 MHz would take (a projected) 25 days!

I use a “defines.h“, “compiler.h” and “pgm_P.h” to make my embedded C modules portable.

Creating a good programming & test jig is not that hard

Creating a good programming & test jig can be a daunting task if you’ve never attempted it before. Here is an example to demonstrate that it’s not that hard if you have a good plan.

I recently had to create a programming jig for an ATmega328PB based board. 1mm diameter test pads were placed on the bottom of the PCB to give access to the ISP pins. Normally one would add two 3mm diameter holes to locate the PCB on the jig, but this PCB was too small and only had two indents on each side to keep it in place. Here is a picture of the board placed on the jig and held in place with two M3 hex spacers on each side:

Here is a picture with the board removed. Note the spring loaded test pins sticking through the top mezzanine PCB:

The test board has 12 through-hole pins that would prevent it from sitting flat on top of the top mezzanine PCB. Holes are made in the top mezzanine PCB to accommodate these through-hole pins:

Here is a picture with the top mezzanine PCB removed. Note that the spring loaded test pins are not soldered to the bottom routing PCB. The gold coating of the test pins and the tight fit of the through-hole pads make a good electrical connection:

The ISP test pads are routed to a standard 2×3 header on the side. +3V3 is supplied with a bench supply via the blue screw terminal. Finally, here is a side profile view to show how it all stacks up:

The two PCBs were ordered from Seeed Studio and the test pins consists of an ECT SPR-25W-1 solder cup receptacle and an ECT POGO-25T36 needle probe.

As always, enjoy, and I hope a few pictures were worth a thousand words.

P.S. If you haven’t seen the Piconomix FW library yet, check it out! Your feedback is very important, please answer the 10 second poll on the same page.

New domain (https://piconomix.com) and Piconomix FW Library 0.6.1 released

We’ve moved to a new spot on the World Wide Web: https://piconomix.com

Piconomix FW Library 0.6.1 changes:

  • More updates and improvements on RTC module (alarm mask; seconds since Y2K; eliminated atomic access requirement)
  • Simplified the return value of some functions in log_fs module
  • Updated links to new domain

 

Piconomic FW Library 0.6.0 released

Major changes:

  • Major rewrite of log_fs module to fix critical flaws, alignment issues and improve API and documentation.
  • Updated and improved dbg module
  • Updated and improved CLI module
  • Removed relative paths from #includes. Now paths can be set (and changed) in Makefiles.
  • Upgraded to Doxygen 1.8.13

Enjoy!