Somu

A tiny FIDO2 security key for two-factor authentication and passwordless login

Limited items in stock

View Purchasing Options
Aug 26, 2019

Project update 4 of 9

Writing Blink on Somu

Progress

We’re nearly at \$31k and have 429 backers! We’re almost to our minimum goal. Please keep sharing, it really helps! If we can get to \$50k (our next goal), we’ll add a unique "swirl/tie-dye" case. Every one of these cases turns out different.

Blinky

Want to tweak the firmware on your Somu? Best start with changing the color of the LED!

Go ahead and checkout the Solo repository.

 git checkout https://github.com/solokeys/solo/
 cd solo


The FIDO2 and U2F functionality is in fido2/. It’s more-or-les generic and tries not to make any assumptions about the hardware. For hardware specific code (like the LED), check out the source files in targets/stm32l432.

 cd targets/stm32l432


The easiest way to change the LED behavior is to edit app.h, and go to this portion:

  //                              0xRRGGBB
  #define LED_INIT_VALUE          0x000800
  #define LED_WINK_VALUE          0x000010
  #define LED_MAX_SCALER          15
  #define LED_MIN_SCALER          1
  // # of ms between each change in LED
  #define HEARTBEAT_PERIOD        150
  // Each LED channel will be multiplied by a integer between LED_MAX_SCALER
  // and LED_MIN_SCALER to cause the slow pulse.  E.g.
  // #define LED_INIT_VALUE          0x301000
  // #define LED_MAX_SCALER          30
  // #define LED_MIN_SCALER          1
  // #define HEARTBEAT_PERIOD        8
  // Will pulse from RBG(0x301000) to RGB(0x903000) to RGB(0x301000) ...
  // Which will take ~8 * (30)*2 ms

Currently, the LED will start at HEX color 0x000800, which is green. Then it will increase in intensity, to 0x00C000 (15x), and be much brighter. Then it dims back to 0x000800. Repeat. You can change the speed of the pulsing by editing HEARTBEAT_PERIOD.

If you aren’t getting the behavior you’d like from editing these settings, then no problem! Open up device.c and scroll to the heartbeat function. It implements the LED behavior, and you can edit it directly.

Other areas of interest:

Acknowledgements

Nitrokey

Have you heard of Nitrokey? They are a sponsor and they people there have been our friends now for a while. Please check them out, they have an impressive security key offering.

Nitrokey is a leading vendor of open source security hardware for data encryption, key management and user authentication. The company was founded in Berlin, Germany in 2015 and can count thousands of users including numerous well-known international enterprise customers. Nitrokey has launched the second product generation and has an extensive portfolio of five products.

Fomu + Tomu

Our friends @mithro and @xobs (Tim Ansell and Sean Cross) are the makers of Tomu (original open U2F key in your USB port), and the very recent Fomu (the FPGA that fits inside your USB port). If you like Somu, you must check out the CCC talk given by @mithro and @xobs.


Sign up to receive future updates for Somu.

Subscribe to the Crowd Supply newsletter, highlighting the latest creators and projects