
Company News
Socket Named Top Sales Organization by RepVue
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.
@freik/arduino2proj
Advanced tools
This is a tool to input Arduino platform configuration files and produce a GNU Makefile that can be include'd by your little project. It's been tested on projects using:
First, you need to install the bun runtime. Once that's installed, create a makefile include-able file by doing this:
bunx @freik/arduino2proj folder/with/platform/board/txt/files other/folders with/libraries
> include.win.mk
(You'll need to create different files for Windows, Linux, and MacOS) Then from your Makefile:
# Some 'location' details
ifeq ($(OS),Windows_NT)
ARD=${HOME}/AppData/Local
SERIAL_PORT=COM9
else ifeq ($(shell uname -s), Darwin)
ARD=/Applications/Arduino.app/Contents/Java/hardware
SERIAL_PORT=$(shell ls /dev/cu.usbmodem5*)
else
$(error Linux support untested, but probably works like Darwin)
endif
# Some Teensy inputs:
# Your MPU will have different inputs required
# When you try to build, the include.*.mk files will tell you the vars you need to define
IN_SPEED=24
IN_USB=serialhid
IN_OPT=osstd
IN_KEYS=en-us
EXTRA_TIME_LOCAL=0
BOARD_NAME=teensy31
TOOLS_PATH=${ARD}/tools/arm
RUNTIME_HARDWARE_PATH=${ARD}/teensy
CMD_PATH=${ARD}/tools
SERIAL_PORT_LABEL=${SERIAL_PORT}
SERIAL_PORT_PROTOCOL=serial
# These seem common for everything...
PROJ_NAME=filename
BUILD_PATH=output-dir
# My custom flags
COMPILER_CPP_EXTRA_FLAGS=-DDEBUG=2 -DTEENSY
# Libraries to use:
LIB_WIRE=1
LIB_SPI=1
# Include path commands
USER_INCLUDES=-Iinclude
# C++ source files (can also set S and C files this way)
USER_CPP_SRCS=file0.cpp file1.cpp
ifeq ($(OS),Windows_NT)
include teensy.win.mk
else ifeq ($(shell uname -s), Darwin)
include teensy.mac.mk
else
include teensy.lin.mk
endif
I started this because building in the Arduino IDE is quite slow, for a variety
of reasons that I could go into. Anyway, I write C++ to run on my devices, not
.ino files, so I don't need half of what causes the speed problems (#include
file detection), and the other half seems silly.
Currently this thing works acceptably for my building my keyboard firmware (https://github.com/kevinfrei/FreiKey). I've got both the generated include files, as well as the make files for the various keyboards I've made there. Feel free to check it out.
I also used it for a little test project for a pull request test you can see here: (https://github.com/kevinfrei/ST7789_135_240_test)
It seems to work reliably for my needs. I also added some custom modification stuff that I should document somewhere. Here's how I use it in my firmware: (https://github.com/kevinfrei/FreiKey/blob/main/src/adafruit-make-config.json)
It creates a compile_commands.json file that you can use to get fully accurate
VS Code auto-complete, which is pretty excellent.
I can build using 24 cores in a few seconds, and then I flash the firmware. Works like a charm from my Windows, Linux, and Mac systems.
I don't intend to deal with the bootloader stuff. That happens rarely enough it doesn't seem worth the effort. Just use the Arduino IDE if you have to deal with the bootloader.
FAQs
Arduino platform and library to Makefile conversion tool
The npm package @freik/arduino2proj receives a total of 25 weekly downloads. As such, @freik/arduino2proj popularity was classified as not popular.
We found that @freik/arduino2proj demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.

Security News
NIST will stop enriching most CVEs under a new risk-based model, narrowing the NVD's scope as vulnerability submissions continue to surge.

Company News
/Security News
Socket is an initial recipient of OpenAI's Cybersecurity Grant Program, which commits $10M in API credits to defenders securing open source software.