About this project
Why I built LimiFrog
It all started over a year ago. I was working on a wearable accessory and I needed a credible demonstrator. Powerful enough to demonstrate the main features. Small enough to convince people this may one day end up on their wrist or inside their pocket. Since the platforms that were around did not satisfy me (too limited, too cumbersome or too power-hungry), I set out to develop my own custom board. Along the way, people liked it and told me: “hey, with what you're packing in there, that would be a cool platform for a lot of other projects, you should open it !”.
Finally I followed that advice, enhanced a bit the board for maximum versatility and, with the help of a few folks, worked on the software to make the whole thing easy to use ...and here is LimiFrog !
What's inside LimiFrog ?
LimiFrog also includes standard features such as LEDs and programmable switches, as you would expect. Don't need the full set of functionalities ? LimiFrog comes in different configurations, described further down this page.
LimiFrog is powerful and energy-efficient
With its Cortex-M4, LimiFrog is dramatically more powerful than Arduino-class devices. Yet, in its STM32L4 implementation, it's ultra low-power.
And in contrast with mini-PC type of boards, LimiFrog combines respectable processing power with extreme energy efficiency and a wide choice of possible interactions with its environment — all included in its tiny volume.
LimiFrog can display stuff (and it looks good)
LimiFrog packs a bunch of sensors
The selected chips are state-of-the-art MEMS sensors and offer many operating modes, basic to advanced. Want the details — part numbers and so on ? Follow this link.
LimiFrog connects to smartphones and PC (or to another LimiFrog, too)
BlueTooth 4.1 functionality (a.k.a BlueTooth Low-Energy, BTLE, or BlueTooth Smart) is provided by a pre-certified module (Panasonic PAN1740) which includes a chip antenna, for a completely self-contained solution.
Of course USB connectivity is available, too.
LimiFrog is extendible
Sure, there's a lot of things on-board . However you may still want to interface LimiFrog with some external system — a buzzer, a motor controller, another board...
The good news is, there's an extension port for that. You can choose to solder header pins onto the board for permanent access to the extension port, or just temporarily plug them in when needed.
The extension pins can be configured to support a large choice of interfaces (and, using the libraries provided, setting an extension pin is often a matter of just one line in a configuration file).
The following table shows the main possibilities — for instance, an I2C bus can be made available on pins 9 and 10 of the extension port.
LimiFrog adapts to your needs
Different users have different needs. Therefore LimiFrog comes in different configurations. The board is the same in all cases, some components are present or absent depending on the selected configuration. The following table maps the different configurations available; use it to check what the rewards correspond to.
Dimensions and Weight
The board per se is 41mmx34mm (1.6''x1.3'').
The display (glass area) is 36x31mm (1.4''x1.2''), of which pixel area: 29x23mm (1.1''x0.9'')
Board weight ~6g, Battery<15g, Display <4g
Total weigth <25g (excluding case)
Overall dimensions when cased depend on protective case design. In a "stacked elements" configuration, expect circa 44mx41mmx14mm (1.7''x1.6''x0.55'').
How to use LimiFrog ?
LimiFrog is programmed in C (or C++) — with MicroPython support coming.
LimiFrog "C" API
LimiFrog wants to be fun and easy to exploit, even if you know just a little "C" or are more familiar with Arduino sketches. But you may also use it for serious developments — it's got quite a few MIPS under the hood, after all !
So LimiFrog comes with the following :
> ‘Board support’ functions, to immediately set up the board (all micro-controller I/Os, clocks, etc.) and to control the on-board hardware in an easy way.
> A selection of high-level on-chip peripheral control functions, suitable for a number of standard use cases. The intent is not to replace the peripheral control library provided by ST (very polyvalent but complex to use at first). It is rather to help newcomers to the STM32 get started
> Integration of some very handy middleware: a full USB stack, a FAT file system and a professional graphics library to drive the display.
Nervetheless, experienced embedded programmers retain full control over the hardware and software and may use them in whatever way they like.
Here's an illustration of usage of the provided middleware, where LimiFrog behaves as USB drive and its file contents are browsed from a computer desktop:
> Example code -
Under this link , you will find a short program that illustrates usage of the provided libraries to fully initialize LimiFrog and use some of its resources with limited coding effort.
Without or with OS
All the above runs on 'bare metal', without OS. But for more advanced uses, a number of embedded OS or real-time kernels can run on STM32. In particular, there is an ongoing effort from the RIOT OS community to port this promising little OS (open-source) to LimiFrog.
Development can be done using gcc for ARM and makefiles in a terminal environment; LimiFrog documentation will come with instructions to obtain the tools and makefiles will be included in the example projects.
Alternatively, to develop with an IDE (Integrated Development Environment) and a GUI, there are multiple options, some commercial, some free. The latter category includes the Eclipse-based "OpenSTM32 system workbench" (which relies on gcc and can be freely downloaded for Windows and for Linux), ad-hoc solutions based on Eclipse+gcc+OpenOCD, as well as CooCox's CoIDE.
In the works: MicroPython Support
LimiFrog has all it takes to support MicroPython !
MicroPython is a micro-controller optimized implementation of the Python 3.4 standard, where scripts are interpreted directly on the micro-controller. It is a very interesting proposition when ease of development takes priority over execution speed. MicroPython was developed and first implemented by Damien George on the pyboard, funded on Kickstarter. Documentation on its characteristics can be found on MicroPython's web site.
We have started working on this more recently than the rest of this project.
The porting of the standard MicroPython libraries to LimiFrog is ongoing (the good news is, LimiFrog's processing and storage subsystem bears many similarities with the pyboard).
In a second step we will be adding libraries for the sensors, the display and the connectivity.
The schedule will be refined as we progress in this development.
We will be joining forces with the rest of the MicroPython ecosystem, so that MicroPython projects can be of mutual benefits.
Example Android App for your smartphone
LimiFrog will also come with some sample Android code (example native App) for your smartphone to communicate with LimiFrog over BlueTooth Low Energy. You can start from this code to write your own App.
Click on the picture below for a demo of an App getting and exploiting data from LimiFrog (opens in a new window) -
Protective cases for LimiFrog
We have developed ad-hoc protective cases such as those you see in the video or photos on this page. They are important to protect the module, in particular the display.
The 3D models will be released so that you can print them at home, at a fablab or using any 3D printing shop. If you are into 3D modelling, you may also want to improve upon these models — and share them back.
You will need to connect and (depending on the desired form factor) stack the board, the battery and the display if present, then insert that set into the case.
There's already been some prospective work to further improve the LimiFrog concept in the future. So we thought we'd share that with you. After some research around a number of options, we have converged on the concept shown below.
The back of the case would be detachable and could be functionalized to serve specific purposes.
Below is an animation, but remember these views are computer models at this stage. Significant work is still required to go from these to physical objects. We will provide more details on this stretch goal in due time if we pass our initial funding objective before the end of the campaign.
They like LimiFrog
LimiFrog's electronic board and supporting software will be open-sourced. Exceptions are the low-level layers of the emWin graphics library and the BlueTooth Low-Energy stack whose license terms do not allow this. 3D-printable enclosures will also be open-sourced.
Where we stand & Why we need you
The hardware is ready and functional. Small batches of the board have been built on automated assembly lines to test different PCBA shops. Only a few optimizations are planned, with no significant functional change.
We already have a substantial software package that includes libraries, unit tests and demos. We will further enhance this package, improve its documentation and implement stricter coding conventions.
The boards built until this summer were fitted with an STM32-L1. The STM32-L4 is fully pin-compatible as well as software-compatible (owing to the use of the HAL library with same API).
Money from our backers will essentially be used to launch production of LimiFrog in sufficient quantities to lower production costs. This involves buying components in large volumes and launching batches of PCB fabrication and assembly in large quantities too.
The critical path between this campaign and shipment of rewards is the procurement of all parts. To be safe, we have only selected chips that are readily available from electronic component distributors. However, for significant quantities, all references may not be in stock and some factory leadtime must be taken into account.
Want more ? There are some stories and demos on the blog section of LimiFrog.io. This one for example - illustrating use of the proximity detector, accelerometer and extension port to control a small robot.
Meet the Team
Please help spread the word
Risks and challenges
When production and shipping are involved, it can never be assumed that every single step in the process, from sourcing to delivery, will be totally glitch-free.
Should any issue arise, I believe my experience from past jobs in dealing with the development and industrialization of products sold in multi-million units would prove very useful.
This being said, LimiFrog exhibits no extraordinary challenge in terms of manufacturing: the board is a standard design; the parts selected are on the catalogue of major distributors and are fully suitable for automated assembly in mostly any modern PCBA shop.
I will report to backers any setback if they occur and make every effort to solve them.Learn about accountability on Kickstarter
Support this project
- (27 days)