{"id":15395161,"url":"https://github.com/orhun/picasso","last_synced_at":"2025-04-16T00:07:10.777Z","repository":{"id":103625958,"uuid":"175389946","full_name":"orhun/Picasso","owner":"orhun","description":"PIC16F877A based 5V/20MHz development board and PIC programmer","archived":false,"fork":false,"pushed_at":"2023-01-01T16:34:08.000Z","size":4973,"stargazers_count":17,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-16T00:06:43.612Z","etag":null,"topics":["development-board","pic-microcontroller","pic16f877a"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/orhun.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null},"funding":{"github":"orhun","patreon":"orhunp"}},"created_at":"2019-03-13T09:37:49.000Z","updated_at":"2025-04-02T18:53:51.000Z","dependencies_parsed_at":"2023-05-24T01:15:26.119Z","dependency_job_id":null,"html_url":"https://github.com/orhun/Picasso","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orhun%2FPicasso","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orhun%2FPicasso/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orhun%2FPicasso/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orhun%2FPicasso/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/orhun","download_url":"https://codeload.github.com/orhun/Picasso/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249173084,"owners_count":21224483,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["development-board","pic-microcontroller","pic16f877a"],"created_at":"2024-10-01T15:26:16.370Z","updated_at":"2025-04-16T00:07:10.758Z","avatar_url":"https://github.com/orhun.png","language":"C","readme":"# Picasso \u003ca href=\"https://github.com/orhun/Picasso/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/release/orhun/Picasso.svg?style=flat-square\"/\u003e\u003c/a\u003e\nPIC16F877A based 5V/20MHz development board and PIC programmer\n\n**[!] This is a discontinued project. [2016]**\n_Documents are published in order to help people that want to create similar projects or think of new ideas._\n\n# Idea\n\nProgramming Microchip's PIC (_peripheral interface controller_)'s and preparing \nelectronic circuit board takes time and also inconvenient in circuit testing process. \nIn other words, using the appropriate PIC programmer and creating the proper circuit board according to\ndesired PIC's datasheet is not practical for situations that needs quick actions like prototyping.\nIn addition to that there is platforms like [Arduino](https://www.arduino.cc), so PIC is not preferable\nexcept embedded applications.\n\nTherefore, idea behind this project is creating a development board/prototyping platform using PIC.\n\n# How?\n\n[Sprut](https://www.sprut.de) is a project that aims to produce PIC programmer hardware with \nserial, parallel and USB techniques. \n(see [Brenner](http://www.sprut.de/electronic/pic/brenner/index.htm))\n_Sprut Brenner_ is a preferred and common programmer board for universal PIC applications.\n\n_Brenner board that I was using:_\n\n![sprut brenner](https://raw.githubusercontent.com/orhun/Picasso/master/img/brenner.jpg)\n\nThere is a 40 pin programmer on board for supporting most of the PIC's. The board itself uses PIC18F2550\n(see [datasheet](http://ww1.microchip.com/downloads/en/DeviceDoc/39632e.pdf)) for communication\nwith software.\n\nPIC16F877A (see [datasheet](http://ww1.microchip.com/downloads/en/devicedoc/39582b.pdf)) is a 40-pin microcontroller \nwhich is used frequently on PIC domain. (It has 256 bytes of EEPROM, 2 PWM 10-bit, ICD etc.)\nThis features of 877A was the main reason for my decision to use this microcontroller in this project.\n\n![pic16f877a](https://raw.githubusercontent.com/orhun/Picasso/master/img/pic16f877a.jpg)\n\nIn order to load your program to PIC (which is called _flashing hex file_) you have to use a software called _US-Burn_.\nUS-Burn also supports various features such as flashing bootloaders, changing PIC configurations and disassembler.\nIt has Windows and Linux support.\n\n![usburn](https://raw.githubusercontent.com/orhun/Picasso/master/img/usburn.jpg)\n[Get US-Burn here.](https://github.com/orhun/Picasso/raw/master/usburn/usburn.zip)\n\nBasically if we replace the 40 pin programmer with 877A (or another PIC), put pins in order (like Arduino) and \nwrite a custom IDE with flashing features, we will have a 5V - 20MHz 877A-based development card. I'd like to call\nit __PICasso.__\n\n# v0.1\n\n![v0.1](https://raw.githubusercontent.com/orhun/Picasso/master/img/v0.1.jpg)\n\nPurpose of this version is seeing how easily can I use 877A's pins with the board above.\n\n```\n● PIC16F877A\n● 7805\n● 1K \u0026 220\n● LED\n● 4MHz crystal osc.\n● 2 x 22pF\n```\n\n# v0.2\n\n![v0.2](https://raw.githubusercontent.com/orhun/Picasso/master/img/v0.2.jpg)\n\nThis version can be considered as the outline of the Picasso project's main idea. \n18F2550 and 16F877A used together in this board with custom pins next to 877A due to testing our thesis.\nEventually, F2550 which is responsible for USB communication can be used with another microcontroller on the\nsame board and this version is open to any developments on the electronics (PCB) and the software side.\n\nHere is the steps that followed for preparing this board:\n\n* PCB\n\n![picasso_pcb_v0.2](https://raw.githubusercontent.com/orhun/Picasso/master/pcb/v0.2/picasso_pcb.jpg)\n\n[EAGLE Project](https://github.com/orhun/Picasso/blob/master/pcb/v0.2/picasso.brd) | \n[PCB](https://github.com/orhun/Picasso/blob/master/pcb/v0.2/picasso_pcb.pdf) \n\n* Circuit Part List\n\n_Same as Sprut's Brenner except PIC16F77A, 20MHz osc., 22pF's, pins and couple of LED's. \nSo here is the c/p part list:_\n\n```\nPart     Value\t\t\tReichelt\tConrad\n===================================================\nC1       220nF                 Z5U-2,5 220n\nC2, C3   22p                   Kerko 22p\nC4       10µF                  rad10/100\nC5       47µF                  rad47/35\nC6, C7   10nF                  X7R-2,5 10n\nC8       100nF                 Z5U-5 100n\nC9, C10  220nF                 Z5U-2,5 220n\nD1 D2    BAT43                 BAT 43\nD3       BZX97-3,3             ZF 3,3\nIC1      PIC18F2550SP          PIC18F2550-I/SP\n\t 28-polige IC-Fassung  GS 28P-S\nIC2      40-poliger Testsockel TEX 40\nL1       680µH                 SMCC 680µ\nL2       10µH                  SMCC 10µ\nLED1     grün                  LED5mm2MAgn\nLED2     gelb                  LED5mm2MAge\nQ1       20 MHz                20-HC49U-S\nQ2,Q3,Q5 BC338-25              BC338-25\nQ4,Q6    BC328-25              BC328-25\nR1       1k                    1/4W 1K\nR2,R3,R6 10 k                  1/4W 10K  \nR4       4k7                   1/4W 4,7K\nR5       2k2                   1/4W 2,2K\nR7,R13   10k                   1/4W 10K\nR8,R12   100k                  1/4W 100K\nR9..R11  10k                   1/4W 10K\nR14      0 (Drahtbrücke)\nR15      1 k                   1/4W 1K\nR16      330                   1/4W 330\nSV1      ICSP                  BL 1X10G 2,54\nX2       USB-B-H               USB BW\nJP1      Jumper                Jumper 2,54 RT\n```\n[Brenner Circuit](https://github.com/orhun/Picasso/blob/master/img/b8p5.jpg) and \n[b8p5_partlist.txt](https://github.com/orhun/Picasso/blob/master/doc/b8p5_partlist.txt) might be helpful.\n\n* After preparing the circuit, there is not much left to do. We have to flash the bootloader and firmware to \nPIC18F2550 to use the board with US-Burn software.  \n**To achieve this, a PIC programmer is required due to the need of bootloader flashing.**  \n\n* Flash the [boot_0_20mhz.hex](https://github.com/orhun/Picasso/blob/master/bootloader/boot_0_20mhz.hex) to the 18F2550 \nafter US-Burn detected the PIC.\n  \n* After flashing the bootloader, put 18F2550 in your circuit and connect it's USB to your computer. Make sure everything is working with USB and circuit. (_Check if any smoke coming out_)  \n\n* Start the US-Burn software. It will redirect you to firmware update section if everything goes right for you.\n\n![firmware_update](https://raw.githubusercontent.com/orhun/Picasso/master/img/firmware_update.jpg)\n\n* Select the [b8_fw16.hex](https://github.com/orhun/Picasso/blob/master/firmware/b8_fw16.hex) and upload new firmware.\n\n* Reset the programmer. In this point you might have to make some calibrations. \nSo see [b8_calibration_en.pdf](https://github.com/orhun/Picasso/blob/master/doc/b8_calibration_en.pdf)\n\n* Finally put PIC16F877A in place and you are ready to go. You can flash your program (hex) into PIC and use it's pins\neasily just by connecting the USB.\n\n# v0.5\n\n![v0.5](https://raw.githubusercontent.com/orhun/Picasso/master/img/v0.5_1.jpg)\n\nSome circuit updates were made with this version.\n* PIC16F877A placed horizontally.\n* All pins gathered in one place. Required labels added.\n\n![v0.5_pins](https://raw.githubusercontent.com/orhun/Picasso/master/img/v0.5_3.jpg)\n\n![v0.5_2](https://raw.githubusercontent.com/orhun/Picasso/master/img/v0.5_2.jpg)\n\n* PCB\n\n![picasso_pcb_v0.5](https://raw.githubusercontent.com/orhun/Picasso/master/pcb/v0.5/picasso_pcb.jpg)\n\n[EAGLE Project](https://github.com/orhun/Picasso/blob/master/pcb/v0.5/picasso.brd) | \n[PCB](https://github.com/orhun/Picasso/blob/master/pcb/v0.5/picasso_pcb.pdf) \n\n* Circuit Part List\n\n_Same components with v0.2_\n\n* Instructions\n\n_Same installation/configuration procedure with v0.2_\n\n# v1.0\n\n![v1.0_1](https://raw.githubusercontent.com/orhun/Picasso/master/img/v1.0_1.jpg)\n\nCircuit board improved and new featured added with this version. \n\n* ICSP (_In-Circuit Serial Programming_) pins added for PIC16F877A.\n* 5V input added to circuit with 7805 regulator.\n* Some component's including LEDs position changed.\n\n![v1.0_2](https://raw.githubusercontent.com/orhun/Picasso/master/img/v1.0_2.jpg)\n\n* PCB\n\n![picasso_pcb_v1.0](https://raw.githubusercontent.com/orhun/Picasso/master/pcb/v1.0/picasso_pcb.jpg)\n\n[EAGLE Project](https://github.com/orhun/Picasso/blob/master/pcb/v1.0/picasso.brd) | \n[PCB](https://github.com/orhun/Picasso/blob/master/pcb/v1.0/picasso_pcb.pdf) \n\n_Components and instructions are same with v0.5_\n\n# Missing Features\n\n* There is no custom IDE or flashing software for Picasso. (_yet?_) So you have to use a third-party software\nlike MikroC to compile your code (create hex) \u0026 flash to PIC.\n\n* Picasso uses Sprut Brenner's sources which is an inactive project.\n\n**Demo will be added hopefully.**\n\n## License\n\nGNU General Public License ([v3](https://www.gnu.org/licenses/gpl.txt))\n\n## Copyright\n\nCopyright (c) 2016-2023, [orhun](https://www.github.com/orhun)\n","funding_links":["https://github.com/sponsors/orhun","https://patreon.com/orhunp"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Forhun%2Fpicasso","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Forhun%2Fpicasso","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Forhun%2Fpicasso/lists"}