It's been a long time since I made some programmer, so it's time to look at the market what's new here.
Silabs is manufacturing interesting microcontrollers - EFM8. It's cheap, based on venerable 8051 core and its programming interface is described in appnotes, SDCC will do the job as compiler, so why not?
Friend of mine discovered the new EFM8 are quite cheap micros with nice set of peripherals, though having 8051 core. The core isn't most powerful one, but it's been around for decades, with lot of development tools for. If you exclude paid (and expensive) commercial compilers, you can use the SDCC, so this new kid got already very usable software support. Teh onyl thing about EFM8 I really don't like are the names - do you really need to name your micro "Laser bee"? What the gefro ghalvh. It sounds more stupid than Ubuntu codenames.
Silabs took classic "big company" line of thinking - here you got IDE with crippled compiler (though you can ask them to generate one-machine key to unlock the compiler, at least today) and closed source programmer/debugger. Fortunately, the programming interface is documented relatively good.
Being not happy with this approach, I decided to build my own programmer, to get really open-source toolchain.
I took PIC16F1825 and built simple hardware on piece of perfboard
The bottom side is my classic messy point to point soldering job
By the way, the EFM8 micro is soldered on one of my universal adapters from #Breakout board set I made time ago
I reused serial command parser from my #Microchip PIC Arduino based programmer project, added bitbanged C2 interface protocol support and the first micro was programmed after one evening of work. It should work on Windows and Linux. I strongly believe it should be easy to compile for Mac too, but I can't prove it.
The programming speed isn't much awesome now - 2kb/s for programming or 1kb/s for both programming/verify - but I expect it to get better with new revisions of firmware and software.
I bought some more EFM8 chips and plan to add support for them, so stay tuned. Resources are - as usual - on github, take a look here.
SiLabs used to use SDCC for their old IDE until they have licensed it from Keil. Not so sure about crippled Keil C compiler. The one time license thing unlocks the compiler and supports their product. SiLabs tagged on source code level debugger with register access. See my link in my other comment for what the IDE does.
I have used SDCC for a very long time since the 2.X days and even mess with the pee hole optimizer to try to get better code. I am not that impressed at the code generation when I was trying to port (8051) USB code from TI. Ended up giving up and wrote my own.
I know their IDE, used it as starting point and I bought the 25EUR demo board with Sharp LCD as well. Nice board, little bit convoluted, though. I didn't like the lack of directly available schematics.
The Keil compiler is size limited by default and you have to activate it online to get unrestricted version for that given computer. Honestly, I hate this so much. They can switch it off anytime - for example, as Raisonance did it for "free" STM8 compiler when the "market introduction" period was over. Rather I'd accept worse optimization of SDCC than waiting for a day when some white collar bean counter decides to switch off the compiler for free. The silicon products are fine, documentation is usable, but the software ecosystem is a bit stinky, to me.
After all, this project isn't any competition to Silabs official tools, just another way of doing the thing. Some people just like to have options to choose from.
But this is my philosophically-religious point of view, one may disregard it ;-)
ST has a similar deal with Keil for their MDK for the STM32F0 and STM32L0 line. I am using that and loving it. My guess is that ST, SiLabs etc pay a lump of $$$ to Keil to license the compiler for use with their product. So this is not a trial. Keil is now owned by ARM anyways.
There are things you'll be missing not using their IDE setup beside the debugger. There are device libraries e.g. USB library that comes with the IDE. Trust me to say that it is not something you want to code. (I have done full-metal coding, wrote my own USB device stack for TI part and make a few USB devices.)
BTW the schematic for the development board comes with the IDE install for some strange reasons. I have enough to figure out the pin out, part number and the need for termination for the C2 debug stuff. (The Segger debugger part is not covered in the schematic.)
Probably I need to emphasis that this project is much "because I can". There is little probability I'll be actively doing any project targeted for EFM8, because it offers nothing that much better than the MCUs I'm using on daily basis. My plan is to develop this programmer and leave it to other folks to enjoy or develop further.
On the other hand, before I'd ever start some open-source programmer project, I need to make sure it is usable with open-source tools, that's it - not that I'm anti-IDE guy. I understand what IDE and middleware libraries can offer (in both positive and negative ways), already went this route for at least half a dozen MCU vendors - in professional and hobby work.
Once I coded USB device stack for specific MCU and USB SIE/PHY combination, partially in assembly language. I agree it is no big joy.
I was looking into that last year for a project, but the documentation wasn't ready as it was a new product. I saw some half baked attempted on Arduino on github, but it didn't go any where.
I ended up buying the eval board and made a small PCB to connect to the 0.05" pitched C2 interface to use their hardware debugger/programmer.
SiLabs used to use SDCC for their old IDE until they have licensed it from Keil. Not so sure about crippled Keil C compiler. The one time license thing unlocks the compiler and supports their product. SiLabs tagged on source code level debugger with register access. See my link in my other comment for what the IDE does.
I have used SDCC for a very long time since the 2.X days and even mess with the pee hole optimizer to try to get better code. I am not that impressed at the code generation when I was trying to port (8051) USB code from TI. Ended up giving up and wrote my own.