Skip to content

mateusznowakdev/eclair

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EclairM0

Project description and build instructions can be found on my website.

Hardware files can be previewed in these third-party web applications:

License terms for software and hardware are present in the LICENSE.md file.

Jump to:


Building firmware from source

Install the TinyGo SDK. Copy EclairM0 board definition files as follows:

File from this repo Target SDK directory
firmware/_board/board_eclair-m0.go src/machine
firmware/_board/eclair-m0.json targets
firmware/_board/eclair-m0.ld targets

Now you should be able to build and upload new firmware, like this:

cd firmware
tinygo flash -target eclair-m0 -size short

Updating font data

Font data is stored in the tools/newstroke.pbm image file, with tools/newstroke.txt containing font widths. The image file can be edited in GIMP.

These source files can be converted into a working Go code, using the tools/convert.py script, which should work with any modern version of Python:

cd tools
python convert.py newstroke.pbm newstroke.txt > ../firmware/hal/display/font.go

3D-printing the enclosure

Creality Ender-3 V3 KE is my 3D printer. I'm using OrcaSlicer 2.2.0, and at this point I'm too scared to update :)

These are the printing settings recommended by me:

  • Global filament settings (PLA) → 215°C nozzle, 60°C bed
  • "0.12mm Fine" base preset
  • Quality → Seam position: BACK
  • Quality → Scarf joint seam: CONTOUR
  • Quality → Elephant foot compensation: 0.15mm (depends on the printer calibration, default is 0.05mm)
  • Quality → Precise wall: ON
  • Quality → Walls printing order: INNER/OUTER
  • Quality → Detect overhang walls: OFF
  • Strength → Bottom surface pattern: ARCHIMEDEAN or HILBERT for best appearance
  • Speed → First layer: 20mm/s (default is 50mm/s and it's too fast)
  • Speed → Top surface: 100mm/s (default is 250mm/s)

Supports should not be necessary for the bridge under the slide switch cutout.

Any bright filament (yellow, white) would hide most of the inaccuracies, and it will also make the engraved letters more visible.

Engraving button labels

Gerber files generated by KiCad can be converted to a G-code compatible with many desktop CNCs. If you happen to use pcb2gcode, the example config is available in the repo.

It's difficult to get it right the first try, because:

  • the router table is never perfectly flat
  • the enclosure is thin and can bend a little
  • auto-generated toolpaths may result in thicker cuts for some letters
  • some PLA types melt too soon

The best idea is to set the spindle so it barely touches the enclosure at the highest point. Start cutting all letters at once, and lower the spindle at 0.1mm increments. If any letter pair looks okay (at about 0.3mm deep), remove it from the job file and repeat.

Changelog

Software

Version 1.2:

  • Added two more slots for notes

Version 1.1:

  • Added Shift key, and the menu for inserting symbols and some keyboard keys
  • Changed font to NewStroke
  • Changed USB VID/PID and manufacturer/device name
  • Changed battery voltage measurement code
    • Replace resistors before updating -- see Rev.D changelog below

Version 1.0:

  • Initial version

Hardware

Rev.D:

  • Switched to LIR2025(H) battery
  • Changed R51 and R52 resistors, to 22K and 5.1K respectively, to have 1V max output

Rev.C:

  • Added ADC/DAC test point, and extra soldering pad for attaching the unmodified Li-Po battery

Rev.B:

  • Added Schottky diode to prevent battery from back-powering the USB host
  • Added 5V, 3.3V and extra GND test points

Rev.A:

  • Initial revision

About

Pocket device for taking quick notes, acting as a USB HID macropad with custom apps

Topics

Resources

License

Stars

Watchers

Forks