
In Progress
Posted
Paid on delivery
I need C code for the SDD1333 display driver. The code should enable graphic drawing capabilities, specifically for lines and shapes. Requirements: - Basic display initialization - Graphic drawing capabilities, particularly for lines and shapes The ideal candidate should have: - Proficiency in C programming - Experience with display drivers, especially SDD1333 - Strong understanding of graphic primitives Please include examples of similar work done. SDA RB4 SCL RB6 RES# RB7 Slave ADDR 0x3C Included main.c file that was used to test wiring. To start, I would like to write numbers 0-140 about 50 x 50 pixels square. Basically a structure that takes a number as it's argument and sends it to SSD1333 for display. Probably white color, but I'll leave that up to you. 50 x 50 pixels is arbitrary. Whatever looks good centered on the SSD133.
Project ID: 40689533
57 proposals
Remote project
Active 1 min ago
Set your budget and timeframe
Get paid for your work
Outline your proposal
It's free to sign up and bid on jobs
57 freelancers are bidding on average $497 USD for this job

With an extensive background in C programming and Embedded Systems, I have proven my proficiency in coding and driving intelligence into hardware. Paired with my strong understanding of graphic primitives and experience with display drivers (specifically SDD1333), I am confident in my abilities to develop the C code you require. Allow me to showcase more than just my skills, but also my ability to create effective and efficient products. My complete IoT product engineering experience aligns well with the full product development workflow your project demands. From the concept formation to the final product, I understand how to maximize code performance and deliver a consistent and reliable design. If chosen, not only will I ensure your C code facilitates comprehensive graphic drawing capabilities for lines and shapes; but I will also provide clean organization, detailed commenting, and proper documentation for seamless future modifications. Trusting me with this project means trusting a dedicated electrical engineer who approaches each task with a deep sense of responsibility and professionalism. Let's write those numbers 0-140 in style on that 50x50 pixels square center-fixed on SSD1333!
$750 USD in 7 days
8.5
8.5

As an accomplished software development company, Web Crest has a strong foundation in C programming and delivering exemplary code for display driver projects. Our experienced team has familiarity with graphic primitives and display drivers including SDD1333. Thanks to our technical expertise and comprehensive understanding of C programming language, we can help you craft C code that would effectively initialize the display and enable graphing drawing capabilities for lines and shapes as you desire. In terms of similarity to your project, we've designed various graphic-based applications that are integral to their functionalities. We thrive on generating practical solutions powered by adaptable and maintainable codes - precisely what your project necessitates. Our commitment lies in providing businesses like yours with scalable digital products that streamline processes and amplify product value. When you choose Web Crest, anticipate not just competent execution, but transparent communication, agile project management, and long-term technical support. Let's work together closely and trailblaze a solution that'll exhibit your vision for the SDD1333 on target.
$300 USD in 3 days
6.7
6.7

Hi, I can help develop this compact ANC and echo-reduction module from concept to prototype-ready PCB. I have 10+ years of experience in PCB design, embedded electronics, and signal-processing hardware. I can help select the best feed-forward, feedback, or hybrid ANC topology for your application. I’ll design the complete schematic and compact PCB in KiCad or Altium. The design will target 20 dB+ attenuation from 50 Hz–2 kHz with latency below 10 ms. I can validate the approach using SPICE and MATLAB/Simulink before hardware fabrication. The selectable delta, alpha, omega, beta, and brain-wave signal modes can also be integrated. You’ll receive the native schematic, PCB files, Gerbers/ODB++, BOM, and performance report. I’m ready to start with the topology and schematic and iterate quickly through each milestone.
$500 USD in 5 days
6.4
6.4

With over 6 years of experience in C Programming, I am the perfect fit for your project. My extensive knowledge in image processing has allowed me to comfortably handle similar projects to yours, including working with display drivers like SDD1333. Your request for graphic drawing capabilities neatly aligns with my expertise, having extensively worked with graphic primitives for line and shape drawing. I see that you've shared the main.c file used to test wiring, and I assure you that I will make full utilization of it to produce top-notch results. In your project description, you mentioned starting by writing numbers 0-140 within a 50x50 pixels square; this is an incredibly manageable task given my experience in delivering clean and efficient code. Additionally, the fact that you specified using a white color is significant as it demonstrates a keen eye for aesthetics. Given my appreciation for designs that look good, I'm confident that we can create an interface that not only displays the numbers as requested but also looks visually appealing and balanced on the SSD1333. Once again, thank you for considering me. Hiring my services means guaranteeing yourself not just expertise but an unwavering dedication to ensuring project success!
$500 USD in 4 days
5.9
5.9

I’ll write a compact SDD1333 driver in C that initializes the display over the given I2C pins (SDA RB4, SCL RB6), handles the RES# line on RB7, and targets slave address 0x3C. The code will include low-level drawing primitives for lines and filled/outlined shapes, then build a number-rendering function on top of those primitives so values 0–140 are drawn as clean, centered 50x50 pixel digits in white. I’ll structure it so the existing main.c wiring test can be reused with minimal changes, and the driver will expose simple, practical calls such as ssd1333_line(), ssd1333_rect(), and ssd1333_number() for direct use.
$500 USD in 7 days
5.8
5.8

I can develop C firmware for the SSD1333 display driver targeting the provided wiring (SDA RB4, SCL RB6, RES# RB7, Slave ADDR 0x3C). I’ll deliver basic initialization plus graphic primitives for lines and shapes, then build a centered rendering path to draw numerals by mapping values into 50×50 pixel blocks (starting with 0-140, ~50×50 each). Using your test main.c as the baseline, I’ll verify bus transactions, controller setup, and implement efficient draw routines (windowing/coordinate addressing) so numbers and geometric shapes render cleanly in white (or an easy color toggle if the panel supports it). Deliverables: optimized C driver (init, set-addr window, drawPixel/line/rect, and digit/number render function), integration with the existing main.c, and a small demo that iterates 0-140 in sequence.
$250 USD in 6 days
5.4
5.4

For your SSD1333 176x176 RGB OLED, I will develop a clean C driver for the PIC16F17126 using the wiring you provided: SDA on RB4, SCL on RB6, RES# on RB7, and I2C address 0x3C. The driver will include initialization, reset timing, command/data transmission, display clearing, address-window handling, pixel and color support, plus graphic primitives for lines, rectangles, and filled shapes. I will also add a simple API such as SSD1333_DisplayNumber(uint16_t value), rendering values 0–140 in a centered, readable font with a practical display area rather than blindly forcing 50x50 pixels. The implementation will follow the datasheet’s I2C control-byte format and GDDRAM mapping on pages 15–20, including the required power-up/reset sequence from page 26. White can be the default color, while retaining RGB color parameters for future use. The attached main.c will be reviewed and integrated rather than replaced unnecessarily. I will provide organized .c/.h files, font data, usage examples, and a test routine that cycles through 0–140 and exercises lines and shapes. My closest embedded example is a Raspberry Pi + PlutoSDR kiosk, where I worked across hardware-facing software and device integration; I also bring 10+ years of C/software development experience and 249+ delivered projects. Will you be able to test the delivered code on the physically wired PIC/display so I can verify the rendered output? Muhammad Saad
$250 USD in 3 days
4.7
4.7

As an experienced embedded systems professional, I possess the in-depth understanding of C programming and I2C bus protocol, both of which are fundamental to the successful development of your SDD1333 display driver. Moreover, I familiarize myself with your requirement, having previously worked on graphic intensive projects involving lines and shapes. Drawing from my 12+ years of experience in the electronics field, I have gained a deep-rooted proficiency in display drivers, especially SDD1333 driver that will lend itself perfectly to your project. My experience doesn’t end with just being cognizant of these technologies, but also extends to full application. In fact, I’ve been responsible for everything ranging from initiation and design all-through manufacturing in my career journey. This diverse experience has furnished me with thorough consciousness about system limitations and enabled me to define precise project timelines so as to deliver project in time. In conclusion, choosing me as your freelancer brings on board meticulousness and well-rounded expertise within electronic design. I am consequential not only for yielding code that meet your specification but will pivot towards a range of options that are both technically proficient and optimize cost efficiency.
$450 USD in 5 days
5.3
5.3

The control byte in front of every I2C write drives the SSD1333: 0x80 as the first byte keeps you in single command mode, drop that continuation bit and the stream free runs as commands, and 0x40 flips the same channel to GDDRAM data. Get that byte wrong and half your init sequence either gets ignored or written straight into display memory as garbage pixels. I'd wire the init the way you're already driving it, RB4/RB6 for SDA/SCL, RB7 pulsed low for RES with the datasheet's minimum reset width honoured first, then charge pump, addressing mode, contrast and display on in that order so nothing races the panel. On top of that a small primitive layer: setPixel doing the page/column math so it drops straight over your GDDRAM writes, line as a Bresenham walk over setPixel, rect as four lines or a filled scan depending on what you need. For the number routine I'd bitmap a fixed digit font, work out width and height for one to three digits, then center that block inside the 50x50 window with integer offsets so it doesn't drift pixel to pixel between values. Drops into your existing main.c without touching the wiring test you've got running. M1: init sequence and I2C control byte handling verified on your board, $215, 2 days. M2: setPixel/line/rect primitives, $215, 2 days. M3: centered number-in-box renderer for 0-140, $220, 1 day. Fixed digit size across 1 to 3 digits, or scale up for single digit values to fill more of the box?
$650 USD in 5 days
4.0
4.0

I have experience developing embedded C firmware, microcontroller display drivers, I2C communication, graphic primitives, and low-level hardware interfaces. I can implement the SDD1333 driver with initialization, I2C communication using SDA RB4 / SCL RB6, reset on RB7, slave address 0x3C, and drawing functions for lines, rectangles, and other basic shapes. I can also create a reusable number-rendering function that accepts a value from 0–140 and displays it centered at an appropriate size, with configurable colour and dimensions. I’ll keep the driver clean, modular, and easy to extend for additional graphics or text later. I can start immediately and would be happy to review the supplied main.c wiring test and share relevant embedded/display-driver work.
$500 USD in 7 days
4.6
4.6

I have extensive experience writing low-level C drivers for OLED displays, including the SSD1333 controller. Your project fits my expertise perfectly. Technical Approach: I2C Communication – Implement robust read/write functions using SDA (RB4), SCL (RB6), RES# (RB7), and slave address 0x3C Proper Initialization Sequence – Follow the SSD1333 power-on sequence: VDD stable → wait 20ms → RES# low for ≥3µs → RES# high Frame Buffer Management – SSD1333 has 176x176 RGB pixels with 16-bit color depth (RGB 5-6-5) Graphic Primitives – Implement Bresenham’s line algorithm, rectangle drawing, and a large digit renderer for numbers 0–140 Font Rendering – Create a 50×50 pixel custom font or scale a smaller font proportionally, centered on display Deliverables: Complete C driver with display init, I2C read/write, command/data separation Graphics library: drawLine(), drawRect(), fillRect(), drawNumber(int num) Your main.c integrated and tested with the wiring you provided Fully commented code with clear API documentation Similar Work: I've developed display drivers for SSD1306, ILI9341, and ST7735 from scratch, including custom font generators and graphic primitive libraries for embedded systems. Timeline: 5–7 days for full implementation, testing with your hardware, and delivery.
$500 USD in 7 days
3.0
3.0

Hi, this looks like a focused SSD1333 driver task: bring up the display over I2C on the PIC16F17126 and add clean graphics primitives for centered numbers and basic shapes. I’ve worked on embedded C display drivers and graphics code, including initialization sequences, coordinate mapping, and drawing routines for small OLED/TFT modules. I’m comfortable reading datasheets and wiring notes, then turning that into reliable code that matches the controller’s expectations. My approach would be to validate the init flow first, then build a compact drawing layer for lines, rectangles, and number rendering. I’d structure the number function so you can pass a value and render it centered in a 50x50 area or another size that fits best on the SSD1333. If you’d like, I can start from your main.c and wire notes and get the first number-rendering version working quickly. Best regards, Gabriel
$250 USD in 7 days
2.4
2.4

I've spent 20+ years in embedded C, mostly PIC and AVR/STM32 over I2C and SPI. I've written OLED/LCD init sequences, GDDRAM addressing, and pixel-level graphics primitives (Bresenham lines, rectangles, fills) from scratch, so a bare-metal SSD1333 driver is a normal build for me. The hard part here isn't the init sequence, it's building a digit-to-bitmap renderer that scales cleanly to an arbitrary block size and stays centered. - Bring-up: RES# low-high pulse, then the SSD1333 command block (display off, remap, contrast, display on) over RB4/RB6 I2C at address 0x3C, checked against your main.c wiring first. - Core primitives: draw_pixel, draw_line (Bresenham), draw_rect/fill_rect. Everything else builds on these. - draw_number(uint8_t value) renders 0-140 with those primitives, scaled to about 50x50 and centered, block size set as a #define so it's easy to resize. - Font starts as simple line/segment shapes (fast, small flash footprint); can swap to a bitmap font later for sharper digits. Color defaults to white, exposed as a parameter. You'll get commented .c/.h source, a short README on the pin map and resizing, tested against your wiring before I call it done. Quick question: is this a PIC (RBx naming), on XC8/MPLAB? And is I2C bit-banged or the hardware module? I can start right away.
$250 USD in 7 days
3.3
3.3

Hello, "SSD1333 Graphics Driver In C" - initialize the display and add reliable number, line, and shape drawing I can build the C driver around your PIC wiring, keeping initialization and I2C command/data handling separate from drawing primitives. I’ll start with the 0–140 number renderer, then add centered lines/shapes and verify the output against your test setup. Can you confirm the exact PIC16F1 device used? Artur Gizycki
$425 USD in 5 days
0.0
0.0

Let's Do This Right The First Time ✔️The key here is careful initialization of the display driver. Working with the SDD1333 requires precise handling of commands for effective graphic drawing. I understand the importance of enabling graphic drawing capabilities for lines and shapes on the SDD1333. What usually matters most here is ensuring the display can accurately render numbers, like structuring the display to handle the size and positioning of graphics. With years of experience in C programming and display drivers, I've helped bring graphic capabilities to various projects. You can expect clear, centered numbers displayed in a visually appealing manner. Based on what you mentioned, my core focus would be: • Basic display initialization • Graphic drawing capabilities • Number rendering in a defined structure If you want I could take a look at your existing files and give you some direction? Best, Kurt.
$300 USD in 7 days
0.0
0.0

Hi! I understand you need C code for the SDD1333 display driver with basic initialization and graphic drawing for lines, shapes, and centered number rendering. I have spent the last several years solving exactly this type of problem in embedded C, display driver work, and graphic primitives, including building clean drawing routines and prototype-friendly display functions for microcontrollers. I’m ready to get started, and I’m confident we can make this project a success and deliver it to a high standard. I’m committed to ensuring everything is completed professionally, efficiently, and exactly according to your requirements. Best regards!
$600 USD in 6 days
0.0
0.0

Hi, I reviewed the supplied main.c and SSD1333 documentation rather than treating this as a generic display-driver job. There are already a few concrete issues worth correcting first. The current 32-byte fill buffer can write one byte past its boundary and sends an odd number of pixel-data bytes even though the display uses 16-bit pixels. I also noticed an ACK/debug helper using 0x33 while the configured SSD1333 address is 0x3C. I would first stabilise the existing PIC/MCC I2C and SSD1333 initialization, then build clean graphics primitives for pixels, lines and rectangles. For numbers 0–140, I would implement a reusable digit renderer rather than storing 141 images. A function can accept the numeric value, scale the digits appropriately and automatically centre the result on the 176×176 display. I will keep the driver modular and documented so additional graphics can be added later without changing the low-level I2C layer. I can start immediately after award.
$475 USD in 4 days
0.0
0.0

With regards to your SDD1333 C Code Development project, I have over a decade of experience delivering excellent results as a Full-Stack Developer. My strong proficiency in C programming coupled with my experience working with various display drivers, including SDD1333, makes me the ideal candidate for your project. I possess a detailed understanding of graphic primitives, a capability you specifically require. My previous projects and clients span diverse industries like Online Delivery, Real Estate, Medical, Education, Shipping, to name a few. This exhibits my flexbility and ability to quickly adapt to new projects. I have also developed software solutions that involved display initialization and graphic drawing capabilities for lines and shapes - similar to what you require here. A notable example being designing and implementing an interactive hospital management system that translated complex healthcare data into easy-to-understand visualizations. I'am highly committed to client satisfaction and will go above and beyond to provide you with tailored IT solutions for your unique needs. My broad skill set isn't limited to Backend development, but includes Frontend expertise as well – a skill that will be handy in this project as we'll need to make sure the numbers are displayed correctly on the SSD1333 screen. Don't hesitate! Let's make your requirement work!
$450 USD in 7 days
0.0
0.0

I can develop robust C code for your SDD1333 display driver, enabling precise line and shape drawing. My experience includes creating similar low-level graphics libraries for embedded systems, where I've optimized for resource-constrained environments and achieved pixel-perfect rendering. I understand the critical nature of efficient driver implementation for smooth graphic performance, and I'm confident I can deliver a solution that meets your requirements swiftly. My approach will involve a direct, register-level interaction with the SDD1333 controller, leveraging the provided pin assignments (SDA RB4, SCL RB6, RES# RB7) and I2C address (0x3C). I will implement standard C functions for display initialization, including power control and timing configurations. For graphic primitives, I'll develop optimized algorithms for drawing lines (e.g., Bresenham's algorithm) and basic shapes like rectangles and circles, ensuring minimal code footprint and efficient memory usage. I'll utilize bit manipulation and efficient loop structures for maximum performance. To ensure alignment with your expectations, could you clarify if there are any specific performance targets for drawing operations, such as frames per second? Also, are there any particular libraries or frameworks you'd prefer to avoid or integrate with? I'm eager to discuss your project further and demonstrate how my expertise can benefit you.
$621 USD in 21 days
0.0
0.0

Hi, there! I understand you need a clean C driver for the SSD1333 display using your existing I2C wiring, starting with reliable initialization and a simple routine that accepts a value from 0–140 and renders it clearly, centred on screen. I’ve worked on similar embedded C display integrations involving I2C/SPI controllers, framebuffer drawing, fonts, lines, rectangles, and other graphic primitives. I can build around your existing main.c, preserve the current pin setup, and keep the driver modular for later graphics expansion. Best regards, George
$500 USD in 7 days
0.0
0.0

Buffalo, United States
Payment method verified
Member since Mar 27, 2025
$30-250 USD
₹600-1500 INR
$25-50 USD / hour
₹1500-12500 INR
$500 USD
$8-15 USD / hour
₹12500-37500 INR
$750-1500 USD
₹600-1500 INR
$30-250 USD
$50-100 USD
$150-200 USD
₹1500-12500 INR
₹600-1500 INR
$30-250 AUD
₹750-1250 INR / hour
$90-120 USD / hour
$5-20 USD / hour
₹600-1500 INR
$15-25 USD / hour
$750-1500 USD