The story behind this project

In the past decade, we have utilized our superpowers to address various issues all around the world, whether it be creating tools to assist people with disabilities, traversing the depths of the ocean with exploration robots, spanning across rivers and swamps with environmental sensor networks, or harvesting energy from every corner of the Earth, sometimes connecting with satellites in distant skies. But now is the time for us to turn around and craft tools for ourselves. And good tools are the foundation for creating great projects.

During my student days, my backpack always contained a bunch of tools: a multimeter, a programmer, a USB to UART converter, a power adapter, and a variety of modules, accompanied by a prototype board for continuous programming and research, whether I was in a dormitory, on the campus, or somewhere in a lab. I often envied my IT friends who had nothing but a sleek and simple laptop. Even after graduation, the situation didn't change much; I still carried a small toolbox with items like a logic analyzer, a JLink programmer, adapters, etc. I believe that many people all over the world face similar challenges as I did, and it's time for me to solve this problem.

HACKADAY project goals

After several months of iterations, the project's vision has materialized into what you see in the project's images. My goal is to create a compact device that can fit into a pocket and operate independently without the need for a laptop. In real-world scenarios, such as working with robot circuits, car systems, or indoor sensor networks, it's not always feasible to carry a laptop around. The device's small size and standalone functionality will make it convenient and everyone's favorite pocket companion. For instance, I can read and explore the Canbus network of a hotel even while traveling!

When returning to the laptop, it should seamlessly integrate with the laptop to fully leverage its inherent capabilities. In the past, we've had "multi-functional" devices like Bus Pirate, JTAGulator, FT2232, etc. However, these devices always required accompanying schematics and pinout diagrams, which proved to be quite inconvenient. I don't want to spend additional time browsing the web and searching for this information before plugging the dupont cables into the device. That's why with Felini, the pin map for connecting the wires will appear directly on the screen, making the process much smoother and hassle-free.

Compared to the initial ideas, Felini has been simplified to be more budget-friendly. The Felini project aims not only at engineers but also at being a user-friendly tool for students. Some common features like DAPLink, Logic analyzer, signal generator, USB to UART/I2C, which do not require external hardware, in the future, when the USB control command stack is completed, can be fully deployed on any affordable esp32 kit available on the market. For the full version of Felini, everything is open-source, from PCB fabrication, SMT component assembly, to enclosure fabrication, all can be done at JLCPCB. Therefore, anyone passionate about electronics can create their own version.

This project is also 100% open source, from a different perspective, as it can directly load firmware through the USB port without requiring any additional hardware, FELINI can be used as a development kit, compatible with both esp-idf and Arduino, allowing students to learn and innovate on an open-source platform. With some minor customizations, such as removing the 2.54mm connector, FELINI can become a wearable MHI or a smartwatch with accelerometers and a display. It can also serve as a health monitoring device for the elderly or a handheld terminal device. It all depends on your abilities. With a cost of only around $50, FELINI is likely a suitable device for many people.

Specs & features

So what can Felini do? Felini was created after three trial versions, striking a balance between cost and complexity, while possessing the following technical specifications and features.

Specs:

Operating voltage3.3 - 21V
Battery200mAh
USBUSB2.0, PD2.0, 3.0, PPS
Power output 3.3 - 21V (using PPS)
ButtonPower button, Encoder button
Operating SystemFreeRTOS 
DisplayLCD TFT 240*280 Capacitive Touch
CPUESP32S3 240Mz dual-core
Memory8MB PSRAM, 32MB Flash QSPI
ConnectivityBLE/ WIFI 2.4ghz
CAN 2.0
RS485
I2C, SPI, UART
JTAG, PWM, 1Wire
USB 2.0

Features:

Detailed design goals and applications

In terms of aspirations, I want to maximize the hardware capabilities of Felini for embedded applications and achieve performance equivalent to the devices Felini replaces. This will cater to most of my testing needs, and I hope it does the same for you. Here's what I've come up with as a preliminary set of design objectives.

These objectives are fully met by the current prototype:

The following objectives will be developed in the future:

The hardware and 3D models, as well as the device's casing, can be downloaded here.
The software and instructions will be updated later. Time is quite tight; I want to focus on completing the features first. Afterward, I will clean up and annotate the code snippets before sharing them with the community.

Github repo firmware hardware