Morse blinking jewelry

A proof that the PIC10F200 can be useful after all.

Similar projects worth following
Blinking is so overrated !

Designed around 2009-2010, using the then-almost-new Microchip PIC10F200, these tiny modules can hang around a neck or under an ear and blink your favourite motto. This is a crazy social icebreaker for all sorts of parties, particularly the non-geeky ones, if you want to really catch eyes !
The message can be up to 190 characters (including spaces, yes) and the power comes from a 927-sized 3V lithium coin cell. Depending on many factors, it can morse during a day or two...

This project is mainly the "open sourcing" of a design from some years ago. I recently decided to stop working with artists and focus on CPU design, so there was no reason to hold on the files anymore.

All the files are (C) Yann Guidon and hereby released under Creative Commons BY-SA license, in the hope that it will inspire new applications !

Background story time !

I started to use the PIC10F200 for an earring in 2007 for the Satine concert. No morse code, yet, but a LFSR driving 3 indepedent white LED.

The damn thing would sparkle like crazy and could be seen from a distance but it was still just blinking. The singer (Mia) was really shining but...... Yeah it's nice for occasional use on stage but it was a bit "too much".

A bit later I outdid myself and designed an even smaller earring... prototype :

using one of the first pink LEDs I could find, and most of the electronics was for voltage conversion (from 1V to 3V with a custom "Joule Thief"). This time, the LED would "blink" a message in Morse code... But the weakness would remain the power supply and the mechanical part, with springs for the battery.

A bit later (2010) I created a new, simplified version using power LEDs like Luxeon on Star modules.

Power LED have a larger die hence better photon efficiency so I can undervolt them. They come on an aluminium frame that I carve to create a battery holder. I found a suitable steel clip/spring to keep the battery in place...

(video from 2013, courtesy of Cristina)

Later version would allow a choice of LED colour and mount...

Using the cheap BFMP, I can program any alphanumeric message if there is a Morse code for it :-)

I have created and built probably half a dozen of these, mostly as birthday gifts. Women love them because they are unique, personal, very visible and show ingenuity. But even though I managed to reduce the BOM, the cost is still very high in tools, time and prototypes, so they are not mere gadgets...

I can still build a few on demands, if needed, but don't expect me to do a jeweler's work :-)


dumb text/message (write your own)

plain - 35.00 bytes - 03/21/2018 at 23:46


Convert raw text to .INC file with the UNIX dd program

x-shellscript - 187.00 bytes - 03/21/2018 at 23:39


test.txt converted by

inc - 595.00 bytes - 03/21/2018 at 23:46



The heart of the system, contains the Morse code definitions and all the machine code. Change the port/pin numbers and the __config

asm - 5.27 kB - 03/21/2018 at 23:46


  • 1 × PIC10F200 SOT23 Microprocessors, Microcontrollers, DSPs / ARM, RISC-Based Microcontrollers
  • 1 × 470 Ohms resistor 0805
  • 1 × LUXEON STAR LED (color to be chosen)
  • 1 × steel clip
  • 1 × sticky copper foil

View all 6 components

  • Circuit

    Yann Guidon / YGDES03/31/2018 at 04:11 0 comments

    You can't make it simpler...

    The PIC is directly powered from a primary Lithium battery.

    The LED is connected to a free pin of the PIC through a resistor (the value depends on the colour and the brightness). The more resistance, the less current, the longer the coin cell lasts...

    I have chosen to use a low-side switching on GP2 but this is software-configurable.

    5 wires are soldered on the pins for programming purposes. Once the chip is programmed and tested, the wires can be cut.

    That's all.

  • Encoding

    Yann Guidon / YGDES03/26/2018 at 10:58 0 comments

    The PIC10F has a very, very small addressing space. The PIC10F200 has only 256 instructions in Flash memory and virtually no SRAM space. The message must be stored in the program space as a RETLW array.

    The program space must also store the decoding code so the simpler, the better. For example, it's not possible to store a ASCII->Morse translation table. So the message must be stored in a pre-encoded format that is both compact and straight-forward to interpret.

    I have chosen to limit the Morse "characters" to 5 tics, and the number 5 fits in 3 bits. Hence 5+3=8 and a character fits in a byte.

    • 3 LSB give the "tic count" (how many dit/dahs) (the case of 0 means "space")
    • 5 bits give the lengths of the respective tics (0 for dit, 1 for dah)

    The translation is performed during assembly with a list of #define so the software is very simple and no storage is lost. The whole program is less than 60 instructions...

View all 2 project logs

  • 1
    Create a binary/.HEX for PIC10F

    Type your message in a raw file (.txt with notepad). The files's size must be below 190 bytes (including spaces !)

    Then convert the text file into an .INC file (it's a collection of RETLW instructions with symbols) using the script (I used bash and dd under Windows to ease the pain)

    Then include the .INC file in the main morse10F.asm file (change the filename as needed)

    Assemble with MPLAB.

    Flash the PIC.

    Check it works as expected.

View all instructions

Enjoy this project?



danjovic wrote 05/06/2018 at 21:42 point

Thoroughly fair to be featured!! After all it's an awesome project!

  Are you sure? yes | no

Dr. Cockroach wrote 05/07/2018 at 15:48 point

Congrats and great going :-D

  Are you sure? yes | no

Morning.Star wrote 03/22/2018 at 12:49 point

I never learned Morse, never needed it. I still think it looks pretty twinkling away on the singers neck. Nice video Yann, BTW. :-)

Its a pity it isnt really economical, one idea that struck me as soon as I saw this one was semaphore with LEDs. Also completely meaningless to me and a lot of people but equally pretty... :-D

  Are you sure? yes | no

Yann Guidon / YGDES wrote 03/22/2018 at 17:45 point

LED semaphores ? hmmmmmmmmm just create a project !

  Are you sure? yes | no

Daniel U. wrote 03/22/2018 at 10:35 point

I think it is hard to read your morse blink. Do you use the correct ratio between duration of short and long blinks, as well as the spaces in between? It is nice if someone like me knowing morse code actually can decode what it says...!

  Are you sure? yes | no

Yann Guidon / YGDES wrote 03/22/2018 at 17:44 point

The symbols respect the standard 1-3 norm and the speed can be tuned in the source code.
It's also mostly a sort of "social icebreaker" since so few people understand morse and they have to ask the wearer for the meaning of the message :-)

  Are you sure? yes | no

Frank Buss wrote 05/07/2018 at 05:57 point

Or they would think it is a weird tech geek and avoid talking to them :-)

  Are you sure? yes | no

Yann Guidon / YGDES wrote 05/07/2018 at 15:14 point

Frank : or they just stare uncannily at the blinking thing, which makes the conversation awkward.

"My eyes are here !" :-D

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates