MicroCode
Imagine the Complexity
Radio - Hardware - Software - Firmware - Linux - 5G - Management - Testing
Open Radio Access Network
"Good things come in small packages"
Micro Processors
Whether you use a System on Module (SOM) or build with discrete components, the embedded team is deeply involved.We bring up the board and provide the final software platform. The result is a clean, reliable infrastructure that is completely independent of the underlying hardware.We work alongside hardware engineers, communicating effectively and bridging the gap between disciplines. Together, we are a complementary team that diagnoses issues in both hardware and software, ensuring a fast and smooth development cycle.We take full charge of the entire software, from initial specification and methodology to final implementation, bringing life and intelligence to the hardware.
Real-Time Programming
Real-time programming is a specialized expertise reserved for a select few. It involves creating deterministic programs that must execute at a precise time, every time.Unlike a standard task-driven system, real-time code is interrupt-driven and demands the precise management of multiple DMAs, interrupts, and timers. It often uses multi-core processors for parallelism and a math co-processor for high-speed computation.Due to the nature of this work, the visibility into the system is very low, making development and debugging incredibly challenging.Our Solution: The Simulation SkeletonWe overcome these challenges with our proprietary simulation skeleton. This unique framework allows all code to be written, tested, and verified on a Windows simulation environment before deployment on the embedded processor. We simulate various data inputs, enabling single-step debugging of functions and simultaneous execution across all cores.
An example of our work is a system that processes 1 GSa/s (billion per sec) of A/D samples, performs complex mathematical operations, and produces a verified output signal with flawless precision.This level of performance requires the kind of specialized skills and experience we bring to every project.
Web Access & GUI
Remote access is no longer a feature, it's a requirement.Prioritizing the User Interface early in the development cycle shifts the focus toward customer usage.We provide these multi-platform technologies:
Interface | Description |
---|---|
Desktop Application | A high-performance, full-featured .NET C# application that runs natively on both Windows and Linux. This application is more than just a GUI; it is the comprehensive control hub managing complex communication channels like TCP, USB, and Wi-Fi. It often serves as the stationary control center for an array of remote embedded devices. |
Web | The embedded product gains full Web Server capabilities, allowing any standard browser to become the control panel. We specialize in building dynamic pages that provide real-time, live-updating views and control. |
Command-Line (CLI) | A powerful, scriptable option for advanced users and automated environments. |
Linux
Linux is the best thing that can happen to an embedded system.
It boosts a device's capabilities many times over, turning it into a powerful computer.While its vast ecosystem gives you everything you need, it comes with a cost:
it requires skilled adaptation.We are masters of this adaptation, handling the complexities of hardware, libraries, and the kernel itself. We don't just use Linux; we build it from the source code.Our unique approach allows us to run Linux applications on a Windows environment, treating Linux as a powerful runtime, not just a development environment.The final result is a versatile device that is ready to be used by anyone, built with the power and flexibility that only a true embedded expert can deliver.
Software Maturity
At the core of our service is meticulous software design.
We don't just write code; we engineer solutions that are robust, scalable, and easy to maintain.We build our solutions using Object-Oriented Programming (OOP) in C++ and C#, a methodology that ensures a solid foundation for the project. This approach leads to a smooth development process, with a high degree of predictability and a clear path for future growth.What truly sets our work apart is the clarity of our code. We take immense pride in writing visually clean and well-documented code with consistent naming conventions.Any developer can open a file from our project and confidently understand its function, ensuring a transparent and maintainable solution for years to come.
Our Services
We go far beyond traditional outsourcing,
we embed ourselves directly into your daily DevOps workflow.We foster a fruitful collaboration and are
always ready to take the lead.
About Us
O-RAN
MicroProcessors
Type | Example |
---|---|
Processors | ARM, Tensillica, Nxp e200 |
Small CPU | Texas Instruments Tiva, STM32, Nxp Kinetis |
Large CPU | Texas Instruments Sitara, Nxp LS/LX cores |
Free OS | TI-RTOS, NXP-MQX, FreeRTOS, Linux |
SBC | BeagelBone, RaspberryPI, Nxp LS1046A-RDB |
New Projects
Type | Situation |
---|---|
1 | You have a new concept but lack the team to build it. |
2 | You need to show a working concept model in a very short period of time. |
3 | Your team is focused on a current project, and you need a new, parallel project delivered quickly. |
4 | You find outsourcing to be more cost-effective than training and hiring full-time employees. |
5 | Your existing team needs to accelerate development with proven leadership and expertise. |
Project Enhancement
Title | Content |
---|---|
Software Upgrade | Implemented a secure software upgrade process via network or USB, with support for signed packages and multiple image partitions (backup, current, and default). |
Model-View-Controller (MVC) | Completely redesigned the display system using an MVC architecture, resulting in a cleaner, more robust, and easier-to-maintain user interface. |
System Redundancy | Developed a high-availability solution that allows for seamless, non-disruptive failover to a backup system. |
Precise Time Protocol (PTP) | Developed a custom servo algorithm to achieve nanosecond-level accuracy for PTP synchronization. |
Production Tools | Developed production tools for board-level testing and programming of default images. |
Microsoft Visual Studio | Introduced Visual Studio as the primary development environment for editing, compiling, and debugging. This also provided a unified platform for simulation and project management. |
Technology Integration
Technology | Description |
---|---|
Linux Kernel Upgrade | We replaced the Linux kernel, ensuring all other system components remained unchanged. |
Real-Time OS | Embed a real-time operating system (RTOS) like FreeRTOS or MQX into a secondary on-board CPU, creating a more mature and robust software structure. |
OpenSSL Migration | Replaced the OpenSSL package and adapted all peripheral code to support new cryptographic ciphers. |
NETCONF Management | Imported a complete NETCONF-based management system into the product using Netopeer. Netconf replaces the older SNMP, both created by IETF. |
Chip Provisioning | We prepare and bring programmable chips into service by downloading their firmware at runtime and verifying their operation. Examples include power management, clock, and Ethernet PHY chips. |
Cisco-Style CLI | Gave the product a familiar user interface with a Cisco-like command-line menu. |
Empower with SBC
Activity | Details |
---|---|
💻 Manage project assets | Prepare the software environment: get all sources, customizing build scripts, centralizing sources on a Git repository. |
🔍 Hardware and Driver Analysis | Study the SBC's technical documentation. Focus on essential drivers as I2C, SPI, PCI. |
⚡ Flashing | Simplifying the process of flashing the OS and firmware onto the board's storage (e.g., eMMC or SD card). |
✅ Quality and Testing | Execute a comprehensive suite of test utilities to validate the platform's functionality. |
⚙️ Application Development | Create the primary application software optimized for the SBC's resources, including its CPU, memory, and power consumption. |
Software Leadership
Board Bring-up