Skip to main content

Posts

Showing posts with the label SDCC

Open source 24-channel USB high-voltage driver

When it comes to automation and control systems, there's often a need for multiple digitally controlled output terminals with high-voltage handling capabilities. Many existing modules are bulky, expensive, or require numerous additional components to function. To address this gap, I've developed a fully open-source, USB-controlled 24-channel high-voltage driver. This device provides precise, flexible control in a compact and user-friendly package. The project is open hardware, released under the CERN-OHL-W license, ensuring transparency from hardware schematics to firmware code. The driver module communicates via USB using a simple virtual COM port, eliminating the need for special drivers and complex setups. Prototype version of the module. At the core of the system are three TPIC6B595 shift registers, each supplying eight open-drain outputs that can handle up to 50V and sink currents of up to 150mA per channel. These registers are daisy-chained to achieve a total of 24 ...

6-channel speaker selector

At the beginning of 2018, we developed the first version of the 6-channel speaker selector using PIC16F88 MCU and ULN2803 Darlington transistor array. In this new design, we redesign it with low-cost MCU and Darlington transistor arrays. This design also provides the same functionality as the 6-channel speaker selector switch we designed earlier. This new speaker selector uses STC15W201 MCU. This MCU is a low-cost 8051 MCU designed by STC micro . At the time of this writing, the STC15W201 can obtain for less than US$ 0.8. To drive the seven segments and to control the relays, this design uses the popular 74HC595 8-bit shift register ICs. PCB of the 6-channel speaker selector. To select each speaker channel, we use pair of 12V DPDT relays. These relays interface to 74HC595 through a ULN2001D 3-channel Darlington transistor array IC. This 3-channel Darlington driver IC is functionally equivalent to the famous 8-channel ULN2003 IC. This ULN2001D version is an 8-pin IC and is av...

Infrared remote control clone utility

IR Clone is an open-source IR remote control analyzer tool. This utility can analyze any IR remote control that modulates the IR signal with a 38kHz carrier signal. This utility has an option to store and retrieve up to 16 IR signals. In addition, it has PC software to analyze and edit captured IR signals. The hardware component of this analyzer is built around the STM8S003F3 MCU. It has 24LC32 EEPROM installed to store the captured IR signals. This unit is designed to operate with a 5V to 9V DC power source or a 3V battery.  Finished prototype of the IR Clone module Operating modes such as capture or replay can be changed using an onboard jumper on the PCB. These operating modes can change at any time without restarting the unit. In addition to the IR clone PCB, the only external component needed to operate this system is a 4×4 matrix keypad . Most of the generally available 4×4 keypads can directly couple with this system. The dimensions of the IR Clone PCB are 41.2mm × 32.1m...

STM8S005C6T6 Ethernet development board

In this project, we built an STM8S005C6T6 based Ethernet development board for our IoT experiments. This development board consists of ENC28J60 , 10BASE-T stand-alone Ethernet controller, CH340G , USB serial interface, 2 LED indicators, and passive buzzer unit. The firmware framework for this development board has been developed using SDCC . To enable IPv4 support, we convert the EtherCard driver, which is available for the Arduino platform. The current version of this driver supports all other EtherCard functions except TCP support. Finished STM8S005C6T6 IoT development board. In the given design, the SPI terminals of the MCU are connected to the ENC28J60 Ethernet controller. All SPI terminals, such as MISO / PC7 , MOSI / PC6 , and SCK / PC5 , are connected directly to the Ethernet controller. In addition, the PC4 terminal of the MCU is used as ENC28J60, CHIP-SELECT .  The CH340G USB serial interface is connected to the UART2 terminals of the MCU. In STM8S005C6T6, the UAR...

STM8S001J3 based Programmable timer module

Programmable timer lite is a miniature, USB programmable timer module. This module can handle more than 100 alarm configurations and trigger the output channel based on the programmed conditions. The timer module can program using SRIKit 's Timer Controller software. All the timer configurations are store in the EEPROM to prevent the loss of data during power failures. Programmable timer module. We design this module around the STM8S001J3M microcontroller and DS3231 real-time clock. AMS1117-3.3 regulator in this module can handle a maximum of 9V DC input without installing an external heatsink. Bottom side of the timer module These programmable timer modules were specifically developed to handle long-duration alarm configurations which span up to years. Firmware of this timer module develops using SDCC version 3.9. Programming utility is a GUI application and develops using Lazarus and FPC toolchain. Both these projects are built and tested on a 64-bit Linux environment. Th...

Clock module with seven segment display

This project is about a simple LED clock module based on STM8S103F3 MCU and DS3231 RTC. This clock module is designed to handle a generally available 14.2mm (0.56 inch) 4-digit seven-segment displays. This module use 12-pin (6-pin × 2) socket to connect the seven-segment display to the PCB, and it allows to mount the display unit off from the PCB. Prototype version of the clock module The " alarm terminal " of this module is available as an open-collector output. This terminal allows the user to connect an external circuitry to this module. The module can power up using 5V or 3V DC power source. The necessary power source can select using a jumper in the module. This module also provides a slot to install a small CR1220 type battery to backup the time and alarm configuration. Front side of the module (without seven segment display unit) Bottom side of the module   The dimensions of this module are 65.4mm × 29.6mm. With the seven-segment display, the depth of the assembled ...